Commit Graph

28763 Commits

Author SHA1 Message Date
Scott Mansell d37f83ffeb Implement AbstractGfx for Software & Null 2023-01-31 19:41:23 +13:00
Scott Mansell f0336a3129 Implement AbstractGfx for OpenGL
Mostly involves moving contents of OGLRender
to OGLGfx and OGLConfig
2023-01-31 18:46:04 +13:00
Scott Mansell 8a23629345 Split AbstractGfx out of Renderer
Almost all the virtual functions in Renderer are part of dolphin's
"graphics api abstraction layer", which has slowly formed over the
last decade or two.

Most of the work was done previously with the introduction of the
various "AbstractX" classes, associated with texture cache cleanups
and implementation of newer graphics APIs (Direct3D 12, Vulkan, Metal).
We are simply taking the last step and yeeting these functions out
of Renderer.

This "AbstractGfx" class is now completely agnostic of any details
from the flipper/hollywood GPU we are emulating, though somewhat
specialized.

(Will not build, this commit only contains changes outside VideoBackends)
2023-01-31 18:46:02 +13:00
Scott Mansell e57eb04ed3 Rename FrameDump.{cpp,h} to FrameDumpFFMpeg.{cpp,h}
The name kind of conflicts with a new FrameDumper class
2023-01-31 18:45:29 +13:00
Scott Mansell 0d4537d60f Move Presenting, Dumping and ImGui out of Renderer 2023-01-31 18:45:21 +13:00
Scott Mansell c38c76abad Refactor to remove virtual from RenderXFBToScreen
Slightly simplifies the upcoming refactor
2023-01-31 18:29:47 +13:00
Scott Mansell a01d5283ec TextureCache: Add content locking
Texture cache occasionally mutates textures for efficiency.
Which is awkward if we want to borrow those textures from texture cache
to do something else, such as a graphics debugger, or async presentation
on another thread.

Content locking provides a way to signal that the contents of a texture
cache entry should not change. Texture cache will be forced to use
alternative strategies.
2023-01-31 18:29:47 +13:00
Scott Mansell 606c18210d TextureCache: Refactor with smart pointers
The whole ownership model was getting a bit of a mess, with a some
of special cases to deal with. And I'm planning to make it even more
complex in the future.
So here is some upfront work to convert it over to reference counted
pointers.
2023-01-31 18:29:47 +13:00
Scott Mansell c1fd4a2013 Move TCacheEntry out of TextureCacheBase
Allows for fowards declaration
2023-01-31 18:29:47 +13:00
Pierre Bourdon 2843cd10a8
Merge pull request #11492 from mandar1jn/file-improvements
Improve the data in the first data block of the skylanders figures
2023-01-31 03:02:39 +01:00
Lioncash cdd3e636e1 Common/Network: Resolve -Wexpansion-to-defined warning
Macros that expand to include the standard define macro are undefined.
This is pretty trivial to fix. We can just do the test and then define
the name itself if it's true, rather than making the set of definition
checks the macro itself.
2023-01-30 14:20:56 -05:00
Lioncash f20790370a Core/ActionReplay: Make use of std::span where applicable
Generifies the interface a little by not strictly requiring the use of
std::vector.
2023-01-30 13:02:09 -05:00
Lioncash adb4c0492d Core/GeckoCode: Make use of std::span where applicable
Generifies the interface a little by not strictly requiring the use of
std::vector.
2023-01-30 12:53:50 -05:00
Mandar1jn c8a91abadc Improve the data in the first data block of the skylanders figures
* Added NUID
* Added BCC
* Added ATQA
* Added SAK
2023-01-30 16:29:20 +01:00
Admiral H. Curtiss df9ba70c35
Merge pull request #11507 from phire/Wnullablitly-completeness
Ignore nullability-completeness warnings in VMA
2023-01-30 10:03:49 +01:00
Admiral H. Curtiss ae712c61c2
Merge pull request #11500 from iwubcode/vulkan_copy_rectangle_one_layer
VideoBackends: update Vulkan's 'CopyRectangleFromTexture' to copy one layer
2023-01-30 10:03:33 +01:00
Admiral H. Curtiss e48424065b
Merge pull request #10839 from CasualPokePlayer/fix_sysconf_settings
Fix SYSCONF movie settings
2023-01-30 09:50:21 +01:00
Admiral H. Curtiss 1eb69ea0a0
Merge pull request #10936 from TellowKrinkle/FixIncludeDirs
CMake: Actually use the include directories specified by dependencies
2023-01-30 09:19:06 +01:00
Admiral H. Curtiss 8edca2039e
Merge pull request #10947 from Zopolis4/opensleuth
Restrict OpenSLES to Android via CMake
2023-01-30 09:02:45 +01:00
Pierre Bourdon a2f4606d33
Merge pull request #11205 from TellowKrinkle/AutoPresent
VideoBackends:Metal: Default to presentDrawable when vsync is on
2023-01-30 09:01:18 +01:00
Scott Mansell 6d7303993c
Merge pull request #11509 from Sam-Belliveau/improved-speed-counter
Tie Speed to CPU Speed and not VPS
2023-01-30 20:41:03 +13:00
TellowKrinkle e4e425b930 VideoBackends:Metal: Assert on pipelines with no render targets
This only actually fails on specific Metal drivers, this way doing it will actually fail the CI and we'll notice
2023-01-29 14:36:28 -06:00
TellowKrinkle 1119a9ba32 VideoCommon: Don't create pipelines with no render targets
Some backends don't like it when you do that
2023-01-29 14:35:23 -06:00
Sam Belliveau ebf114aef5 Tie Speed to CPU Speed and not VPS 2023-01-29 13:33:48 -05:00
Scott Mansell 6ad182edd9 Ignore nullability-completeness warnings in VMA
These cause a lot of warnings when compiling with clang.
And the example VmaUsage.h appears to disable them
2023-01-30 03:11:51 +13:00
Pierre Bourdon 2eda76cffc
Merge pull request #11474 from MayImilae/cleanup-remove-cdutils
Cleanup: Remove CDUtils
2023-01-29 09:50:32 +01:00
Pokechu22 3b4e17292d Revert "DSPLLE: Add assertion for bad DMA alignment"
This reverts commit e140516130. This assert triggers for AX and AXWii uCode games (including the Wii System Menu) for various addresses that seem to be 4-byte aligned. Worse still, if the DSP thread is in use (i.e. for DSP LLE recompiler, but not for DSP LLE interpreter), Dolphin completely hangs after the panic alert. Perhaps the data DMA has fewer restrictions compared to the instruction DMA?

The change to DSPTool (e391a28102) has not been reverted, as it still fixes broken behavior for DSPSpy at -O0 on real hardware.
2023-01-28 17:26:47 -08:00
MayImilae 37859ec1da Cleanup: Remove CDUtils
This is a cleaning followup for #11456.
2023-01-28 03:50:57 -08:00
iwubcode 271c60781b VideoBackends: update Vulkan's 'CopyRectangleFromTexture' to copy one layer, copying more than one layer doesn't make sense given that we provide both the source/destination layer 2023-01-27 18:41:52 -06:00
Admiral H. Curtiss be2d394b8c
GDBStub: Avoid ppcState global. 2023-01-27 15:22:48 +01:00
Admiral H. Curtiss dd9907ed93
PatchEngine: Avoid ppcState global. 2023-01-27 15:22:48 +01:00
Admiral H. Curtiss 4c349caabd
MIOS: Avoid ppcState global. 2023-01-27 15:22:48 +01:00
Admiral H. Curtiss ed633476e6
IOS: Avoid ppcState global. 2023-01-27 15:22:47 +01:00
Admiral H. Curtiss 0a0b4d325f
HW/SystemTimers: Avoid ppcState global. 2023-01-27 15:22:47 +01:00
Admiral H. Curtiss a784fe1f2f
HW/ProcessorInterface: Avoid ppcState global. 2023-01-27 15:22:47 +01:00
Admiral H. Curtiss 884130f95c
HW/Memmap: Avoid ppcState global. 2023-01-27 15:22:47 +01:00
Admiral H. Curtiss 2bf72de43d
HW/GPFifo: Avoid ppcState global. 2023-01-27 15:22:47 +01:00
Admiral H. Curtiss e2f7855b0e
HW/DSP: Avoid ppcState global. 2023-01-27 15:22:47 +01:00
Admiral H. Curtiss 18d9ec75f1
HW/CPU: Avoid ppcState global. 2023-01-27 15:22:47 +01:00
Admiral H. Curtiss 078a460446
HW/AudioInterface: Avoid ppcState global. 2023-01-27 15:22:46 +01:00
Admiral H. Curtiss b52e8fd295
HLE_OS: Avoid ppcState global. 2023-01-27 15:22:46 +01:00
Admiral H. Curtiss 7fd552081f
HLE function hooking: Avoid ppcState global. 2023-01-27 15:22:46 +01:00
Admiral H. Curtiss 30de91d843
GeckoCode: Avoid ppcState global. 2023-01-27 15:22:46 +01:00
Admiral H. Curtiss 1a826b27a6
FifoPlayer: Avoid ppcState global. 2023-01-27 15:22:46 +01:00
Admiral H. Curtiss 8adabb86cf
Debugger: Avoid ppcState global. 2023-01-27 15:22:45 +01:00
Admiral H. Curtiss bfc951311f
CheatSearch: Avoid ppcState global. 2023-01-27 15:22:45 +01:00
Admiral H. Curtiss bbdfb4bc14
CodeTrace: Avoid ppcState global. 2023-01-27 15:22:45 +01:00
Admiral H. Curtiss 41ad0490f0
CoreTiming: Avoid ppcState global. 2023-01-27 15:22:45 +01:00
Admiral H. Curtiss 94455ee9e1
Boot: Avoid ppcState global. 2023-01-27 15:22:45 +01:00
Admiral H. Curtiss 51e7980d95
Core: Add PowerPCState reference to System. 2023-01-27 15:22:44 +01:00
Admiral H. Curtiss 485bba238e
PowerPC: Add PowerPCState parameter to UpdatePerformanceMonitor(). 2023-01-27 15:22:44 +01:00
Admiral H. Curtiss 61ba516570
PowerPC: Move a few functions to PowerPCState. 2023-01-27 15:22:44 +01:00
Admiral H. Curtiss 0dcf228aaf
PowerPC: Parametrize TU macro. 2023-01-27 15:22:44 +01:00
Admiral H. Curtiss a7d3315b4f
PowerPC: Parametrize TL macro. 2023-01-27 15:22:44 +01:00
Admiral H. Curtiss 2f241856b6
PowerPC: Add PowerPCState parameter to GQR macro. 2023-01-27 15:22:44 +01:00
Admiral H. Curtiss 814c01162a
PowerPC: Remove SPRG0/1/2/3 macros. 2023-01-27 15:22:43 +01:00
Admiral H. Curtiss 2f8b3ac1b7
PowerPC: Parametrize SRR1 macro. 2023-01-27 15:22:43 +01:00
Admiral H. Curtiss 652113e6ba
PowerPC: Parametrize SRR0 macro. 2023-01-27 15:22:43 +01:00
Admiral H. Curtiss 10dabd9975
PowerPC: Remove rDEC macro. 2023-01-27 15:22:43 +01:00
Admiral H. Curtiss c13ca271d8
PowerPC: Parametrize CTR macro. 2023-01-27 15:22:43 +01:00
Admiral H. Curtiss 0a343007cb
PowerPC: Parametrize LR macro. 2023-01-27 15:22:43 +01:00
Admiral H. Curtiss 0f301829d2
PowerPC: Remove rPS macro. 2023-01-27 15:22:42 +01:00
Admiral H. Curtiss 0cd4a226d2
PowerPC: Remove rSPR macro. 2023-01-27 15:22:42 +01:00
Admiral H. Curtiss 27ce432012
PowerPC: Remove rGPR macro. 2023-01-27 15:22:42 +01:00
Admiral H. Curtiss 8fccefa3aa
PowerPC: Remove GPR macro. 2023-01-27 15:22:42 +01:00
Admiral H. Curtiss ba1b624e1b
PowerPC: Remove MSR macro. 2023-01-27 15:22:42 +01:00
Admiral H. Curtiss 4b6b8fa1ae
PowerPC: Remove FPSCR macro. 2023-01-27 15:22:41 +01:00
Admiral H. Curtiss 2f3187eba9
PowerPC: Remove NPC macro. 2023-01-27 15:22:41 +01:00
Admiral H. Curtiss be8d0b76ca
PowerPC: Remove PC macro. 2023-01-27 15:22:41 +01:00
Admiral H. Curtiss 82f3170876
PowerPC: Parametrize THRM1/2/3 macros. 2023-01-27 15:22:41 +01:00
Admiral H. Curtiss 8bab3ac755
PowerPC: Parametrize MMCR1 macro. 2023-01-27 15:22:41 +01:00
Admiral H. Curtiss 126590c4cd
PowerPC: Parametrize MMCR0 macro. 2023-01-27 15:22:40 +01:00
Admiral H. Curtiss 38529a2d8d
PowerPC: Parametrize DMAL macro. 2023-01-27 15:22:40 +01:00
Admiral H. Curtiss 2374365274
PowerPC: Parametrize DMAU macro. 2023-01-27 15:22:40 +01:00
Admiral H. Curtiss 31483e492e
PowerPC: Parametrize HID4 macro. 2023-01-27 15:22:40 +01:00
Admiral H. Curtiss 6f0ab1b33e
PowerPC: Parametrize HID2 macro. 2023-01-27 15:22:40 +01:00
Admiral H. Curtiss 49eeb986c6
PowerPC: Parametrize HID0 macro. 2023-01-27 15:22:40 +01:00
Pierre Bourdon f056cec859
Merge pull request #11480 from Pokechu22/dsp-code-alignment
DSPLLE: Add assertion for bad DMA alignment
2023-01-26 23:17:09 +01:00
Pierre Bourdon 9c9310bf44
Merge pull request #11208 from TellowKrinkle/CPUCull
Cull vertices on the CPU
2023-01-26 23:15:23 +01:00
Pierre Bourdon c6a7465529
Merge pull request #11485 from MayImilae/remove-filepath-from-states-messaging
Remove Filepath from State Save/Load OSD Messages
2023-01-26 05:29:21 +01:00
Lioncash 0d93a31a38 Common/BitSet: Zero initialize data member
Gets rid of the need to remember to initialize them in the constructor,
except when overriding the default initializer.
2023-01-25 04:16:30 -05:00
Lioncash 6446fa7e48 Common/Bitset: Make initializer_list constructor constexpr
This was able to be constexpr since C++14.
2023-01-25 04:13:05 -05:00
TellowKrinkle 7413be1487 VideoCommon: Add configuration option for CPUCull 2023-01-25 02:21:56 -06:00
TellowKrinkle a0e6d7c173 VideoCommon: Explicitly disable fp_contract for CPUCull 2023-01-25 02:21:56 -06:00
TellowKrinkle 1be0149146 VideoCommon: Cull vertices on the CPU 2023-01-25 02:21:56 -06:00
TellowKrinkle b170ef9651 VideoCommon: Add class for quickly transforming and culling vertices on the CPU 2023-01-25 02:21:56 -06:00
Admiral H. Curtiss 6db2171fd0
Merge pull request #11488 from lioncash/point
StringUtil: Make StringUTF8CodePointCount take string_view
2023-01-25 02:33:22 +01:00
Admiral H. Curtiss 9fc959cab0
Merge pull request #11489 from lioncash/init
CoreTiming: Zero initialize all CoreTimingManager throttle members
2023-01-25 02:29:32 +01:00
Lioncash 3607c1dc7d CoreTiming: Zero initialize all CoreTimingManager throttle members
Gives two members without explicit initialization default values to be
consistent with the rest of the class and also ensuring deterministic
values on construction.
2023-01-24 17:20:08 -05:00
Pierre Bourdon 6fad8ac389
Merge pull request #11467 from Simonx22/remove-titlebar-fps-counter
Core: Remove FPS, VPS and speed percentage from window title
2023-01-24 23:04:29 +01:00
Lioncash 1d03835c5d StringUtil: Make StringUTF8CodePointCount take string_view
There's nothing really about this that would need to constrain it to
only std::string instances.
2023-01-24 16:55:43 -05:00
Lioncash e5b91f00b0 Common: Replace StringBeginsWith/StringEndsWith with std equivalents
Obsoletes these functions in favor of the standard member functions
added in C++20.
2023-01-24 14:58:20 -05:00
MayImilae ed121ee679 Removed filepath from State Save/Load OSD messages
Though less important compared to #11470, save states also show the full path in the OSD message and could potentially dox a streamer who is playing in Dolphin. This is a simple fix - it removes the path from the message and only displays the file name.
2023-01-24 07:55:58 -08:00
Pierre Bourdon caca662dbf
Merge pull request #10994 from shuffle2/fs
get rid of HAS_STD_FILESYSTEM
2023-01-24 12:18:25 +01:00
Admiral H. Curtiss d4d6f3db63
Merge pull request #11331 from deReeperJosh/skylandersportal
Emulate Skylanders Portals within Dolphin
2023-01-24 06:56:00 +01:00
Admiral H. Curtiss 7002831c55
Merge pull request #11465 from OatmealDome/qt6-xinput-bug
DolphinQt: Add workaround for Qt 6.3+ bug on Linux
2023-01-24 06:21:19 +01:00
Joshua de Reeper c76d2c16eb Valid block/num checks, rename variables, remove translatable strings
Capitalize Skylander in tr strings

Lint and validation method fixes

Proper Attach and Change Interface method

Re-jig code to exit early and read easier
2023-01-24 18:12:24 +13:00
Pokechu22 e140516130 DSPLLE: Add assertion for bad DMA alignment
I haven't tested this extensively on real hardware, but I do know that bad things happen if the address isn't properly aligned, and libogc says it should be 32-byte aligned.
2023-01-23 15:20:49 -08:00
Simonx22 df6f070a55 Core: Remove FPS, VPS and speed percentage from window title 2023-01-23 21:32:50 +01:00
JosJuice d0da689eeb DolphinQt: Add i18n comments for strings containing the word "watches"
These new strings could use the same clarification as we have for
the existing string "&Delete Watch".
2023-01-23 20:49:22 +01:00