summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VideoBackendBase.cpp
AgeCommit message (Collapse)Author
2025-11-11VideoCommon: Make Presenter aware of the next swap time to eliminate unsafe ↵Jordan Woyak
usage of GetTicks() with ImmediateXFB + DualCore.
2025-11-05VideoCommon: pass the EFB buffer scale into the FramebufferManager instead ↵iwubcode
of pulling it from config, in the future this will allow us to have multiple framebuffers
2025-10-13VideoBackend: Rename GetName to GetConfigNameDentomologist
Make the function name more explicit and a better match for GetDisplayName. Change NAME to CONFIG_NAME while I'm at it.
2025-08-14DolphinAnalytics: Use Pascal case for GameQuirk enumDentomologist
2025-07-09VideoBackendBase: Remove redundant unique_ptr resetDentomologist
Remove redundant reset of g_presenter in ShutdownShared, which is already reset earlier in the function.
2025-06-06VideoCommon: initialize and shutdown the CustomResourceManager when the ↵iwubcode
video thread initializes and shuts down
2025-03-23Merge pull request #13093 from mitaclaw/ranges-modernization-4-projectionJMC47
Ranges Algorithms Modernization - Projection
2025-03-14VideoCommon: Create AsyncRequests directly in MMU code to eliminate ↵Jordan Woyak
EFB-related functions in VideoBackendBase.
2025-03-14VideoCommon: Eliminate EFBAccessType enum. Eliminate union and switch ↵Jordan Woyak
statement handler in AsyncRequests.
2025-03-13Merge pull request #13387 from jordan-woyak/frame-pacingJMC47
CoreTiming: Improve frame pacing
2025-03-12VideoCommon: Rename Renderer to EFBInterface.Jordan Woyak
2025-03-10Core/VideoCommon: Push presentation time calculated from CPU thread to GPU ↵Jordan Woyak
thread.
2025-03-10Merge pull request #13403 from jordan-woyak/backend_infoJMC47
VideoCommon: Move backend_info out of VideoConfig struct.
2025-03-09Simplify `std::find_if` with `std::ranges::find` and projectionsmitaclaw
In LabelMap.cpp, the code is currently unused so I was unable to test it. In WiiUtils.cpp, the magic value `1u` was replaced by the constant value `DiscIO::PARTITION_UPDATE`.
2025-03-09VideoCommon: Move backend_info out of VideoConfig struct.Jordan Woyak
2025-03-07Core/VideoBackendBase: Call ExitGpuLoop from Core to eliminate Video_ExitLoop.Jordan Woyak
2024-11-03GeneralWidget: Recommend default video backend in tooltipDentomologist
Recommend the platform's default video backend in the Backend tooltip instead of always recommending OpenGL.
2024-11-03VideoBackendBase: Clarify function nameDentomologist
Rename GetDefaultBackendName to GetDefaultBackendConfigName to distinguish it from the display name.
2024-10-04Partially revert "Revert "Audit uses of IsRunning and GetState""JosJuice
This reverts the revert commit bc67fc97c39628c76a4dbca411b0e8a9bfaf726a, except for the changes in BaseConfigLoader.cpp, which caused the bug that made us revert 72cf2bdb87f09deff22e1085de3290126aa4ad05. PR 12917 contains an improved change to BaseConfigLoader.cpp, which can be merged (or rejected) independently. A few changes have also been made based on review comments.
2024-09-27VideoBackendBase: Only populate backend info when uninitializedDentomologist
Prevent potential issues when creating the Graphics window (and thus calling PopulateBackendInfo) while the core state is Stopping, like we already do while it's Starting or Running.
2024-09-26VideoBackendBase: Check Core state in PopulateBackendInfoDentomologist
Remove the PopulateBackendInfoFromUI function, which had a single caller (GraphicsWindow::OnBackendChanged) and checked that the core wasn't running or starting before calling PopulateBackendInfo. Move the core state check into PopulateBackendInfo and have OnBackendChanged call that instead. This guarantees the check is performed by all callers of PopulateBackendInfo, preventing potential reintroduction of the crash fixed in 3d4ae63f if another call to PopulateBackendInfo is added. As of the previous commit the only other caller of PopulateBackendInfo is Core::Init shortly before s_state is set to Starting, so it will always pass the check and so maintain its current behavior.
2024-09-26GraphicsWindow: Fix crash when opening during emulation startupDentomologist
Fix a crash when opening the Graphics window for the first time during emulation startup when the backend is Vulkan, D3D11, or D3D12. Don't call PopulateBackendInfo() from the Host thread when the core is starting up. First, the function has already been called in Core::Init() so we don't need to again. More importantly, PopulateBackendInfo() calls g_video_backend->InitBackendInfo(), and the Vulkan and D3D implementations of those functions load and then unload libraries (and their associated function pointers) which are potentially in use by other threads. This crash was reliably reproducible with the following steps: 1) Select an affected backend. 2) Enable "Compile Shaders Before Starting" 3) Delete the cached shaders (but not the .uidcache file) for the game you're testing. 4) Close and reopen Dolphin. 5) Start the game. 6) While the game is still booting or compiling shaders, open the Graphics window for the first time in that Dolphin session. Fixes https://bugs.dolphin-emu.org/issues/13634.
2024-09-06Texture Dumping: Show OSD message on startup and when toggledDentomologist
If texture dumping is enabled, notify the user on emulation startup using an On Screen Display message. Also notify the user when texture dumping is toggled. Addresses https://bugs.dolphin-emu.org/issues/12445.
2024-05-01Core::IsRunning: Avoid Global System Accessormitaclaw
2024-04-20VideoCommon: Use GetSpanForAddress safely in texture decodingJosJuice
Now only VertexLoader remains... But that one might be tricky.
2024-03-15VideoCommon: Prefer D3D11/12 over OpenGL on Windows.Jordan Woyak
2024-01-20VideoCommon: Only initialize Bounding Box if supported by GPU/driver.Admiral H. Curtiss
2023-12-22VideoCommon/PixelEngine: Passthrough system instance in constructorLioncache
Simplifies the interface in terms of usage
2023-12-20VideoCommon/CommandProcessor: Pass system instance through constructorLioncache
Makes the use of the interface a little less noisy, especially given how much of the interface depends on an instance being present.
2023-12-18VideoCommon/Fifo: Pass system instance through FifoManager constructorLioncache
Given how many member functions make use of the system instance, it's likely just better to pass the system instance in on construction. Makes the interface a little less noisy to use.
2023-11-26VideoCommon: move xf state management to its own class, so changes can be ↵iwubcode
detected in places other than VertexShaderManager
2023-09-03VideoCommon: Deinit Graphics Mod Manager implicitlySketch
2023-06-08VideoCommon: Pass WindowSystemInfo to InitBackendInfoPokechu22
2023-05-06DolphinAnalytics: Add READS_BOUNDING_BOX game quirkPokechu22
2023-02-15Keep Vulkan precedence over OpenGLJosh
2023-02-15VideoBackend: Make Metal Default on MacOSJosh
2023-02-09Make sure pixel shaders pick up Initial EFB ScaleScott Mansell
2023-02-09Move WidescreenHeuristic to it's own classScott Mansell
It's about the only thing left in renderer
2023-01-31Cleanup headersScott Mansell
2023-01-31Move GraphicsMod out of RenderBaseScott Mansell
2023-01-31Move BoundingBox out of RenderBaseScott Mansell
They were essentially just pass-though methods
2023-01-31Add virtual Initialize() to PerfQueryBaseScott Mansell
Both DX12 and Vulkan already had one.
2023-01-31Implement AbstractGfx for VulkanScott Mansell
2023-01-31Don't set common globals from Video BackendsScott Mansell
2023-01-31Implement AbstractGfx for OpenGLScott Mansell
Mostly involves moving contents of OGLRender to OGLGfx and OGLConfig
2023-01-31Split AbstractGfx out of RendererScott Mansell
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-31Move Presenting, Dumping and ImGui out of RendererScott Mansell
2023-01-31TextureCache: Refactor with smart pointersScott Mansell
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.
2022-12-29VideoCommon: De-globalize GeometryShaderManager class.Admiral H. Curtiss
2022-12-28VideoCommon: De-globalize VertexShaderManager class.Admiral H. Curtiss