ReinUsesLisp
05d41fa9b7
shader: Add support for "negative" and unaligned offsets
"Negative" offsets don't exist. They are shown as such due to a bug in
nvdisasm.
Unaligned offsets have been proved to read the aligned offset. For
example, when reading an U32, if the offset is 6, the offset read will
be 4.
5 years ago
ReinUsesLisp
5d170de0b5
shader: Implement ISCADD32I
5 years ago
ReinUsesLisp
329dea217d
shader: Always initialize up reference in structure control flow
Fixes ubsan issue.
5 years ago
ReinUsesLisp
d093522fac
shader: Fix ImageWrite indexing
5 years ago
ReinUsesLisp
b659212dbd
shader: Fix TMML queries
5 years ago
ReinUsesLisp
b7764c3a79
shader: Handle host exceptions
5 years ago
ReinUsesLisp
8f3043c3cf
Revert "glasm: Skip phi moves on undefined instructions"
Causes regressions on Bowser's Fury.
5 years ago
ReinUsesLisp
586c785366
glasm: Skip phi moves on undefined instructions
5 years ago
ReinUsesLisp
a49532c8eb
video_core,shader: Clang-format fixes
5 years ago
ReinUsesLisp
9bb3e008c9
shader: Read branch conditions from an instruction
Fixes the identity removal pass.
5 years ago
ReinUsesLisp
ec6fc5fe78
glasm: Implement TEX and TEXS instructions
Remove lod clamp from texture instructions with lod, as this is not
needed (nor supported).
5 years ago
lat9nq
f7a2340205
shader_recompiler: GCC fixes
Fixes members of unnamed union not being accessible, and one function
without a declaration.
5 years ago
ReinUsesLisp
776ab3ea12
shader: Use a non-trivial dummy to construct ASL node union
5 years ago
ReinUsesLisp
bf5e48ffe4
glasm: Initial implementation of phi nodes on GLASM
5 years ago
ReinUsesLisp
d54d7de40e
glasm: Rework control flow introducing a syntax list
This commit regresses VertexA shaders, their transformation pass has to
be adapted to the new control flow.
5 years ago
ReinUsesLisp
3b6a632237
shader: Add floating-point rounding to I2F
5 years ago
ReinUsesLisp
6fd190d1ae
glasm: Implement basic GLASM instructions
5 years ago
ReinUsesLisp
b10cf64c48
glasm: Add GLASM backend infrastructure
5 years ago
ameerj
09dc23f971
shader: ISET.X implementation
5 years ago
FernandoS27
ee61ec2c39
shader: Optimize NVN Fallthrough
5 years ago
FernandoS27
153a77efee
shader: Stub SR_AFFINITY
5 years ago
ameerj
7ecc6de56a
shader: Implement Int32 SUATOM/SURED
5 years ago
ReinUsesLisp
d621e96d0d
shader: Initial OpenGL implementation
5 years ago
FernandoS27
c49d56c931
shader: Address feedback
5 years ago
FernandoS27
b541f5e5e3
shader: Implement VertexA stage
5 years ago
FernandoS27
da936d6ad8
shader: Implement delegation of Exit to dispatcher on CFG
5 years ago
ameerj
fb14820c86
shader: Fix IADD3.CC
5 years ago
ReinUsesLisp
d2b54c6e42
shader: Fix VMNMX selector B
5 years ago
ReinUsesLisp
fe25f42403
shader: Remove identity removal pass for better build times
5 years ago
ReinUsesLisp
aece958c2b
shader: Add missing UndoUse case for GetSparseFromOp
5 years ago
ReinUsesLisp
21e3382830
shader: Simplify code in opcodes.h to fix Intellisense
Avoid using std::array to fix Intellisense not properly compiling this
code and disabling itself on all files that include it.
While we are at it, change the code to use u8 instead of size_t for the
number of instructions in an opcode.
5 years ago
ReinUsesLisp
d10cf55353
shader: Implement indexed textures
5 years ago
ameerj
7a9dc78398
shader: Refactor atomic_operations_global_memory
5 years ago
ameerj
427951d6fe
shader: add missing include guard in half_floating_point_helper.h
5 years ago
ReinUsesLisp
c8f9772d65
shader: Fix gcc warnings
5 years ago
ReinUsesLisp
75dee55486
shader: Inline common Value getters
5 years ago
ReinUsesLisp
23182fa59c
shader: Intrusively store in a block if it's sealed or not
5 years ago
ReinUsesLisp
cc0fcd1b8d
shader: Improve goto removal algorithm complexity
Find sibling node containing a nephew searching from the nephew itself
instead of the uncle.
5 years ago
ReinUsesLisp
f66851e376
shader: Use memset to reset instruction arguments
5 years ago
ReinUsesLisp
c84bbd9e44
shader: Inline common Value functions into the header
5 years ago
ReinUsesLisp
050e81500c
shader: Move microinstruction header to the value header
5 years ago
ReinUsesLisp
e4d1122082
shader: Move siblings check to a separate function and comment them out
5 years ago
ReinUsesLisp
4209828646
shader: Intrusively store register values in block for SSA pass
5 years ago
ReinUsesLisp
6944cabb89
shader: Inline common Opcode and Inst functions
5 years ago
ReinUsesLisp
4bbe530337
shader: Inline common IR::Block methods
5 years ago
ReinUsesLisp
24cc298660
shader: Use a small_vector for phi blocks
5 years ago
ReinUsesLisp
79c2e43fcd
shader: Calculate number of arguments in an opcode at compile time
5 years ago
ReinUsesLisp
469f8bb857
shader: Simplify code for local memory
5 years ago
ReinUsesLisp
7018e524f5
shader: Add NVN storage buffer fallbacks
When we can't track the SSBO origin of a global memory instruction,
leave it as a global memory operation and assume these pointers are in
the NVN storage buffer slots, then apply a linear search in the shader's
runtime.
5 years ago
FernandoS27
2999028976
shader: Address feedback
5 years ago