| Age | Commit message (Collapse) | Author |
|
VideoCommon: pass the EFB buffer scale into the FramebufferManager
|
|
|
|
of pulling it from config, in the future this will allow us to have multiple framebuffers
|
|
Co-authored-by: Dentomologist <dentomologist@gmail.com>
|
|
VideoCommon: move global variables out of BPFunctions
|
|
VideoBackends / VideoCommon: add support for specifying include files in shader code
|
|
|
|
|
|
shader code
|
|
consistent
|
|
|
|
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`.
|
|
|
|
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.
|
|
2D texture, a texture array, or a cube map; support 2D texture type across backends
Co-authored-by: TellowKrinkle <tellowkrinkle@gmail.com>
|
|
|
|
|
|
|
|
|
|
And fix bug where opengl was getting the wrong coordinates
|
|
|
|
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)
|
|
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.
|
|
GetEFBCacheTileRect
This is for readability only, and should behave identically.
|
|
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.
|
|
|
|
Otherwise we might never hit the early return
if either depth or color doesnt have any active
tiles.
|
|
Massively improves performance in Mario Galaxy on Android.
|
|
|
|
|
|
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.
|
|
|
|
|
|
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.
|
|
Migrates off the printf-based formatting where applicable.
|
|
Regression from #8827.
|
|
FramebufferManager: Fix invalid readback of EFB D24S8 depth
|
|
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().
|
|
glReadPixels() with depth formats is not supported.
Should fix broken EFB access on GLES.
|
|
Fixes assertion tripping when saving state on Adreno.
|
|
Fix CPU EFB access on Adreno with Vulkan backend
|
|
Correct state wasn't being set.
|
|
Needed for the Adreno/Vulkan workaround, and if we ever switch to a D24
texture for the depth buffer w/ unrestricted depth range.
|
|
|
|
|
|
|
|
|
|
FramebufferManager: Don't discard in ReinterpretPixelData
|
|
FramebufferManager: Fix EFB peek cache stretching last tile
|
|
|