Age | Commit message (Collapse) | Author |
|
Add an intermediary class that implements common functions across GPU
accelerated rasterizers. This avoids code repetition on different
backends.
|
|
Implement Fast BRX, fix TXQ and addapt the Shader Cache for it
|
|
|
|
shader_ir: Use std::array with std::pair instead of std::unordered_map
|
|
Shader_Ir: Fix TLD4S from using a component mask.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
hid/npad: Minor cleanup
|
|
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+.
|
|
dmnt_cheat_vm: Correct register Restore and ClearRegs behavior
|
|
These parameters aren't actually modified in any way, so they can be
made const references.
|
|
Previously these were performing the same behavior as the Save and
ClearSaved opcode types.
|
|
Implement a series of ASTC formats and R4G4B4A4 format
|
|
video_core/macro_interpreter: Make definitions of most private enums/unions hidden
|
|
service/apm/controller: Minor interface changes
|
|
ConnectAllDisconnectedControllers()
We should be setting the connection state to true, otherwise we aren't
actually making the controllers connected like the function name
indicates.
|
|
While not an issue, it does prevent fallthrough from occurring if
anything is ever added after this case (unlikely to occur, but this
turns a trivial "should not cause issues" into a definite "won't cause
issues).
|
|
Performs the same behavior, but is built into the core language itself.
No functional change.
|
|
The const qualified variant can also be called in non-const contexts, so
we can remove the non-const variant to eliminate a bit of code
duplication.
|
|
Clearly separate these from the variable declarations to make them more
visible.
|
|
hidden
This allows the implementation of these types to change without
requiring a rebuild of everything that includes the macro interpreter
header.
|