summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VideoBackendBase.cpp
AgeCommit message (Collapse)Author
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
2022-12-27VideoCommon: De-globalize PixelShaderManager class.Admiral H. Curtiss
2022-12-11VideoCommon/PixelEngine: Pass Core::System to methods.Admiral H. Curtiss
2022-12-11VideoCommon/PixelEngine: Refactor to class, move to Core::System.Admiral H. Curtiss
2022-12-10VideoCommon/Fifo: Pass Core::System to methods.Admiral H. Curtiss
2022-12-10VideoCommon/Fifo: Refactor to class, move to Core::System.Admiral H. Curtiss
2022-11-29VideoCommon/CommandProcessor: Refactor to class, move to Core::System.Admiral H. Curtiss
2022-10-22VideoCommon: Add reasons for disabled VS expandTellowKrinkle
2022-09-19VideoBackends - Enable Metal without VulkanJosh
2022-07-21VideoBackends: Add Metal rendererTellowKrinkle
2022-07-13VideoCommon: Clear backend_info before populatingTellowKrinkle
2022-06-01VideoBackendBase: Remove __builtin_available for macOS 10.14OatmealDome
2022-05-16Verify graphics config validity after populating the backend infoPokechu22
... and refresh the config before populating the backend info, as the config (specifically iAdapter) needs to be set to correctly populate the backend info. Before, the list of valid antialiasing modes was always determined from the first adapter on the list on startup, regardless of the adapter the user selected.
2022-01-22VideoCommon: Move logging/seen check for unknown opcodes into CommandProcessorPokechu22
That way, they're in the same place the panic alerts are generated.
2022-01-09Config: Port dual core setting to new config system.Admiral H. Curtiss
2021-10-12TMEM: Handle savestate and initScott Mansell
2021-08-03VI: Implement post-scanout XFB outputTechjar
This adds about a frame of latency, and since most games don't change VI registers during scanout, we can get away with outputting the XFB at the start of scanout. WWE Crush Hour is the (only currently known) exception, which has flickering problems when doing it this way. This adds a path to perform the output at the end of scanout, and gates it behind an option which defaults to using the latency-reducing pre-scanout path.
2021-07-25VideoBackendBase: Prefer Vulkan over OGL on macOS Mojave and newerOatmealDome
2021-07-05treewide: convert GPLv2+ license info to SPDX tagsPierre Bourdon
SPDX standardizes how source code conveys its copyright and licensing information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX tags are adopted in many large projects, including things like the Linux kernel.
2021-05-31VideoCommon: Add fallback handling for bounding box when disabled or unsupportedTechjar
The SDK seems to write "default" bounding box values before every draw (1023 0 1023 0 are the only values encountered so far, which happen to be the extents allowed by the BP registers) to reset the registers for comparison in the pixel engine, and presumably to detect whether GX has updated the registers with real values. Handling these writes and returning them on read when bounding box emulation is disabled or unsupported, even without computing real values from rendering, seems to prevent games from corrupting memory or crashing. This obviously does not fix any effects that rely on bounding box emulation, but having the game not clobber its own code/data or just outright crash is a definite improvement.
2020-12-16Fix -Wclass-memaccess warningsLéo Lam
We want to clear/memset the padding bytes, not just each member, so using assignment or {} initialization is not an option. To silence the warnings, cast the object pointer to u8* (which is not undefined behavior) to make it explicit to the compiler that we want to fill the object representation.
2020-11-17VideoCommon: Migrate over to fmtLioncash
Migrates off the printf-based formatting where applicable.
2020-11-05Common/LinearDiskCache: Replace std::fstream with File::IOFileJosJuice
File::IOFile is better suited to this type of task. Split out from a future PR.
2020-10-23VideoCommon: remove HAS_OPENGL from VideoBackendBaseiwubcode