| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
instructions that don't provide it
|
|
|
|
|
|
ConstBufferLocker class to shaders.
|
|
|
|
shader_bytecode: Make Matcher constexpr capable
|
|
Greatly shrinks the amount of generated code for GetDecodeTable().
Collapses an assembly output of 9000+ lines down to ~3621 with Clang,
and 6513 down to ~2616 with GCC, given it's now allowed to construct all
the entries as a sequence of constant data.
|
|
Given the overall size of the maps are very small, we can use arrays of
pairs here instead of always heap allocating a new map every time the
functions are called. Given the small size of the maps, the difference
in container lookups are negligible, especially given the entries are
already sorted.
|
|
Silences a few -Wshadow warnings.
|
|
shader_ir/memory: Ignore global memory when tracking fails
|
|
gl_shader_decompiler/vk_shader_decompiler: Resolve implicit fallthrough cases
|
|
TLD4S always outputs 4 values, the previous code checked a component
mask and omitted those values that weren't part of it. This commit
corrects that and makes sure all 4 values are set.
|
|
Ignore global memory operations instead of invoking undefined behaviour
when constant buffer tracking fails and we are blasting through asserts,
ignore the operation.
In the case of LDG this means filling the destination registers with
zeroes; for STG this means ignore the instruction as a whole.
The default behaviour is still to abort execution on failure.
|
|
|
|
video_core/shader/ast: Minor changes to ASTPrinter
|
|
member functions
These can also trivially be made const member functions, with the
addition of a few consts.
|
|
Given all visiting functions never modify the nodes, we can trivially
make this a const member function.
|
|
vk_shader_decompiler: Mark operator() function parameters as const references
|
|
This member already has an accessor, so there's no need for it to be
public.
|
|
The returned string is simply a substring of our constexpr tabs
string_view, so we can just use a string_view here as well, since the
original string_view is guaranteed to always exist.
Now the function is fully non-allocating.
|
|
It's never used outside of this class, so we can narrow its scope down.
|
|
This can be confusing, given "ident" is generally used as a shorthand
for "identifier".
|
|
Makes a few strings nicer to read and also eliminates a bit of string
churn with operator+.
|
|
These parameters aren't actually modified in any way, so they can be
made const references.
|
|
Implement a series of ASTC formats and R4G4B4A4 format
|
|
video_core/macro_interpreter: Make definitions of most private enums/unions hidden
|
|
|
|
hidden
This allows the implementation of these types to change without
requiring a rebuild of everything that includes the macro interpreter
header.
|
|
maxwell_3d: Silence truncation warnings
|
|
Normaly OpenGL does not care if the areas exceed the texture regions but
other backends such as Vulkan do care about the limits of this areas.
This PR crops the areas of the blit in order that they don't surpass the
limits of the textures. This should help Vulkan and faulty OpenGL
drivers
|
|
video_core/texture_cache: Amend Doxygen references
|
|
texture_cache: Avoid unnecessary surface copies within PickStrategy() and TryReconstructSurface()
|
|
General fixes to Async GPU
|
|
video_core/surface: Add missing break in PixelFormatFromTextureFormat()
|
|
Prevents fallthrough into the following case.
|
|
gl_shader_decompiler: Minor cleanup-related changes
|
|
ExprCondCode operator()
This would previously result in NeverExecute and UnusedIndex being
treated as regular predicates.
|
|
ExprCondCode operator()
This would previously result in NeverExecute and UnusedIndex being
treated as regular predicates.
|
|
TryReconstructSurface()
We can take these by const reference and avoid making unnecessary
copies, preventing some atomic reference count increments and
decrements.
|
|
This can be trivially fixed by making the input size a size_t.
CFGRebuildState's constructor parameter is already a std::size_t, so
this just makes the size type fully conform with it.
|
|
This is only ever used to read, but not write, the resulting string, so
we can enforce this by making it a const member function.
|
|
This allows the function to be completely non-allocating for inputs of
all sizes (i.e. there's no heap cost for an input to convert to a
std::string_view).
|
|
This is only ever used within this function, so we can narrow it's scope
down.
|
|
references where applicable
These member functions don't actually modify the input parameter, so we
can make this explicit with the use of const.
|
|
Avoids an unnecessary atomic reference count increment and decrement.
|
|
This only ever queries if the type exists within the variant, but
doesn't actually do anything with the return value. We can just use
std::holds_alternative for this use case.
|
|
Allows usages of the constructor to avoid an unnecessary copy.
|