summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/FramebufferManager.cpp
AgeCommit message (Collapse)Author
2025-11-11Merge pull request #14071 from iwubcode/avoid_config_framebuffer_managerJMC47
VideoCommon: pass the EFB buffer scale into the FramebufferManager
2025-11-06Common: Remove the string parameters from the HookableEvent interface.Jordan Woyak
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-11-02Common: Make HookableEvent use non-static data.Jordan Woyak
Co-authored-by: Dentomologist <dentomologist@gmail.com>
2025-11-02Merge pull request #14042 from iwubcode/bp_functions_globalJMC47
VideoCommon: move global variables out of BPFunctions
2025-11-02Merge pull request #13975 from iwubcode/shader_includesJMC47
VideoBackends / VideoCommon: add support for specifying include files in shader code
2025-10-31VideoCommon: move global variables out of BPFunctionsiwubcode
2025-10-30VideoCommon: Fix render to texture in wrong layoutTellowKrinkle
2025-10-26VideoBackends / VideoCommon: add support for specifying include files in ↵iwubcode
shader code
2025-08-23VideoBackends / VideoCommon: rename member variables in RenderState to be ↵iwubcode
consistent
2025-03-09VideoCommon: Move backend_info out of VideoConfig struct.Jordan Woyak
2024-10-10Modernize `std::fill` with rangesmitaclaw
In DSPCore.cpp, there were two `std::fill` uses that could be simplified using `std::fill_n`. Due to their proximity with other `std::fill` algorithms being modernized with ranges, I chose to make these examples into the rare `std::ranges::fill_n`.
2024-09-30VideoCommon: Dirty pixel shader manager on efb scale changesTellowKrinkle
2024-01-31VideoCommon/Statistics: Remove global system accessor from s_after_frame_eventLioncash
Instead, we make the event take a reference to the system and then pass it in when the event is triggered. This does introduce two other accessors, but these are much easier to refactor out over time, and without modification to the existing event interface.
2023-12-15VideoBackends / VideoCommon: add type enum to dictate whether a texture is a ↵iwubcode
2D texture, a texture array, or a cube map; support 2D texture type across backends Co-authored-by: TellowKrinkle <tellowkrinkle@gmail.com>
2023-02-09Make sure m_prev_efb_format is initilizedScott Mansell
2023-02-09Move m_prev_efb_format into FramebufferManagerScott Mansell
2023-02-09Lint fixesScott Mansell
2023-02-09Move xfb tracking and IR scaling out of RenderBaseScott Mansell
2023-02-09Refactor ClearRegionScott Mansell
And fix bug where opengl was getting the wrong coordinates
2023-01-31Split out everying remaining from SwapScott Mansell
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)
2022-11-15VideoCommon/FramebufferManager: Rename m_efb_cache_tiles_wide to ↵Pokechu22
m_efb_cache_tile_row_stride This also initializes it in the non-tiled case just for consistency, although it's not actually read in that case.
2022-11-15VideoCommon/FramebufferManager: use !IsUsingTiledEFBCache() in ↵Pokechu22
GetEFBCacheTileRect This is for readability only, and should behave identically.
2022-11-15VideoCommon/FramebufferManager: Always update frame access mask on depth peeksPokechu22
0e02ddcf52ed86060ac1a0a85fa144738fa5163c removed separate logic for tiled versus non-tiled EFB peek caches, and as part of that made it so that color peeks updated the frame access mask even when a non-tiled cache is in use. However, the same change was not made for depth peeks. I'm not sure if this affected anything in practice.
2022-11-04VideoCommon:FramebufferManager: CleanupRobin Kertels
2022-11-04VideoCommon:FramebufferManager: Mark cache as valid after refreshRobin Kertels
Otherwise we might never hit the early return if either depth or color doesnt have any active tiles.
2022-10-01VideoCommon: Update EFB peek cache on draw done and tokensRobin Kertels
Massively improves performance in Mario Galaxy on Android.
2022-07-21VideoBackends:Metal: MSAA supportTellowKrinkle
2022-05-25Common: Refactor PointerWrapDentomologist
2022-02-21FramebufferManager: Flush pending EFB pokes in PopulateEFBCachePokechu22
I.e. flush pokes before running an EFB peek, if the cache tile isn't present. If the cache tile is present, then EFB pokes should have been written to the cache tile and thus don't need to be flushed.
2022-01-01VideoCommon: Add names for textures and shadersPokechu22
2021-12-18Eliminate VarType for ComponentFormatPokechu22
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.
2020-11-17VideoCommon: Migrate over to fmtLioncash
Migrates off the printf-based formatting where applicable.
2020-09-25FramebufferManager: Fix EFB readbacks with MSAA onStenzek
Regression from #8827.
2020-05-28Merge pull request #8827 from stenzek/adreno-more-like-brokenrenoConnor McLaughlin
FramebufferManager: Fix invalid readback of EFB D24S8 depth
2020-05-25VideoCommon/ShaderGenCommon: Make template functions regular functionsLioncash
These are only ever used with ShaderCode instances and nothing else. Given that, we can convert these helper functions to expect that type of object as an argument and remove the need for templates, improving compiler throughput a marginal amount, as the template instantiation process doesn't need to be performed. We can also move the definitions of these functions into the cpp file, which allows us to remove a few inclusions from the ShaderGenCommon header. This uncovered a few instances of indirect inclusions being relied upon in other source files. One other benefit is this allows changes to be made to the definitions of the functions without needing to recompile all translation units that make use of these functions, making change testing a little quicker. Moving the definitions into the cpp file also allows us to completely hide DefineOutputMember() from external view, given it's only ever used inside of GenerateVSOutputMembers().
2020-05-24FramebufferManager: Copy to color format for depth readbacks on GLESStenzek
glReadPixels() with depth formats is not supported. Should fix broken EFB access on GLES.
2020-05-24FramebufferManager: Fix invalid readback of EFB D24S8 depthStenzek
Fixes assertion tripping when saving state on Adreno.
2019-08-08Merge pull request #8276 from stenzek/adreno-efb-accessConnor McLaughlin
Fix CPU EFB access on Adreno with Vulkan backend
2019-08-03FramebufferManager: Fix restoring of EFB depth bufferStenzek
Correct state wasn't being set.
2019-07-31FramebufferManager: Correctly handle read back D24S8 texturesStenzek
Needed for the Adreno/Vulkan workaround, and if we ever switch to a D24 texture for the depth buffer w/ unrestricted depth range.
2019-07-24Config: Add an option to skip saving texture cache to save stateStenzek
2019-07-24FramebufferManager: Support saving EFB to save stateStenzek
2019-04-28FramebufferManager: Fix invalid transitions for 1xIR in EFB cacheStenzek
2019-03-30FramebufferManager: Fix broken EFB peeks in GL with MSAA onStenzek
2019-03-29Merge pull request #7895 from stenzek/framebuffer-corruptionConnor McLaughlin
FramebufferManager: Don't discard in ReinterpretPixelData
2019-03-27Merge pull request #7934 from stenzek/stretched-efb-peeksJMC47
FramebufferManager: Fix EFB peek cache stretching last tile
2019-03-27FramebufferManager: Fix EFB pokes being offset by 1 in D3DStenzek