summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VideoBackendBase.cpp
AgeCommit message (Collapse)Author
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
2020-10-23VideoCommon: rename USE_VULKAN to HAS_VULKAN in VideoBackendBaseiwubcode
2020-10-23CMake: Add option to enable/disable Vulkan video backendmazes-80
2020-10-21VideoCommon: Simplify VideoBackendBase::GetDefaultBackendNameLéo Lam
Now we can just call GetDefaultVideoBackend to get the default backend and get its name by calling GetName.
2020-10-21VideoCommon: Get rid of the global g_available_video_backendsLéo Lam
Replace it with a function-local static that is initialized on first use. This gets rid of a global variable and removes the need for manual initialization in UICommon. This commit also replaces the weird find_if that looks for a non-null unique_ptr with a simple "is vector empty" check considering that none of the pointers can be null by construction.
2020-09-09Adding AmdPowerXpressRequestHighPerformanceVincent Milum Jr
Adding AmdPowerXpressRequestHighPerformance This will allow AMD drivers to detect the request to use the dGPU instead of the iGPU on compatible hybrid graphics systems. Reference: https://community.amd.com/thread/169965
2020-09-06Make default graphics backend not show up as emptyJosJuice
Fixes https://bugs.dolphin-emu.org/issues/12245. I considered making a change to DolphinQt instead of the core, but then additional effort would've been required to add the same fix to the Android GUI once we start using the new config system there.
2020-05-22Migrate video backend setting to the new config systemLéo Lam
Fixes https://bugs.dolphin-emu.org/issues/12087
2020-01-24Add Dolphin version and current video backend to shader compilation logsRyan Meredith
2019-12-28Compile fixes for Windows-on-ARM64Stenzek
2019-12-05VideoCommon/IndexGenerator: Eliminate static stateLioncash
Now that we've extracted all of the stateless functions that can be hidden, it's time to make the index generator a regular class with active data members. This can just be a member that sits within the vertex manager base class. By deglobalizing the state of the index generator we also get rid of the wonky dual-initializing that was going on within the OpenGL backend. Since the renderer is always initialized before the vertex manager, we now only call Init() once throughout the execution lifecycle.
2019-07-24TextureCache: Support saving cache entries, including EFB copiesStenzek
2019-07-24VideoBackendBase: Do save state logic on the GPU threadStenzek
2019-07-16VideoCommon: Remove unused MathUtil.h include from VideoCommon.hLioncash
This header doesn't actually make use of MathUtil.h within itself, so this can be removed. Many other source files used VideoCommon.h as an indirect include to include MathUtil.h, so these includes can also be adjusted. While we're at it, we can also migrate valid inclusions of VideoCommon.h into cpp files where it can feasibly be done to minimize propagating it via other headers.
2019-04-01Implement D3D12 backendStenzek
2019-03-29VideoBackends: Verify validity before doing full renderer initStenzek
Prevents attempting to create invalid MSAA configurations, for example.
2019-02-19Move most backend functionality to VideoCommonStenzek
2019-01-25Renderer: Use imgui for drawing debug text and OSDStenzek
2018-11-07Vulkan: Support macOS via MoltenVKStenzek
The path to the MoltenVK library can be specified by the LIBMOLTENVK_PATH environment variable, otherwise it assumes it is located in the application bundle's Contents/MacOS directory.
2018-09-28Core: Call InitBackendInfo before loading configStenzek
2018-09-28Don't fill backend info when core is runningStenzek
The current approach results in the UI thread creating a graphics device whilst the core is running, leading to races on function pointers, and potentially crashing.
2018-09-28Remove unused Host_ShowVideoConfigStenzek
2018-05-20VideoBackendBase: Include parameter names in member function declarationsLioncash
Given this is a base class, we should clearly state what the parameters to the functions in its exposed interface actually mean or represent. This avoids needing to hunt for the definition of the functions in cpp files. While we're at it, normalize said parameter names so they follow our naming guidelines.
2018-04-01Remove support for projection hacksJosJuice
This isn't really useful for anything anymore as far as I know.
2018-03-18VideoBackendBase: Migrate functions from MainBase.cpp to VideoBackendBase.cppLioncash
Given that this only contains functions from the VideoBackendBase class, it makes more sense to move these to the relevant cpp file to keep them all together.
2017-05-18Remove D3D12Helios747