ReinUsesLisp
9fe3f3a100
shader_ir: Remove F4 prefix to texture operations
...
This was originally included because texture operations returned a vec4.
These operations now return a single float and the F4 prefix doesn't
mean anything.
2019-02-07 17:36:46 -03:00
ReinUsesLisp
31305cad93
shader_ir: Clean texture management code
...
Previous code relied on GLSL parameter order (something that's always
ill-formed on an IR design). This approach passes spatial coordiantes
through operation nodes and array and depth compare values in the the
texture metadata. It still contains an "extra" vector containing generic
nodes for bias and component index (for example) which is still a bit
ill-formed but it should be better than the previous approach.
2019-02-07 00:46:13 -03:00
bunnei
6f3f5f5d99
Merge pull request #2083 from ReinUsesLisp/shader-ir-cbuf-tracking
...
shader/track: Add a more permissive global memory tracking
2019-02-06 21:56:14 -05:00
bunnei
38df722dc7
Merge pull request #2081 from ReinUsesLisp/lmem-64
...
shader_ir/memory: Add LD_L 64 bits loads
2019-02-05 09:17:48 -05:00
bunnei
66514e4190
Merge pull request #2082 from FernandoS27/txq-stl
...
Fix TXQ not using the component mask.
2019-02-04 20:22:32 -05:00
Fernando Sahmkow
4133c86d71
Fix TXQ not using the component mask.
2019-02-03 18:17:18 -04:00
ReinUsesLisp
a6c3180b68
shader_ir/memory: Add ST_L 64 and 128 bits stores
2019-02-03 19:08:10 -03:00
ReinUsesLisp
92c948999b
shader_ir: Rename BasicBlock to NodeBlock
...
It's not always used as a basic block. Rename it for consistency.
2019-02-03 17:21:20 -03:00
ReinUsesLisp
e3c0f29a4d
shader_ir: Pass decoded nodes as a whole instead of per basic blocks
...
Some games call LDG at the top of a basic block, making the tracking
heuristic to fail. This commit lets the heuristic the decoded nodes as a
whole instead of per basic blocks.
This may lead to some false positives but allows it the heuristic to
track cases it previously couldn't.
2019-02-03 17:21:20 -03:00
ReinUsesLisp
0b57f33fdf
shader_ir/memory: Add LD_L 128 bits loads
2019-02-03 00:35:34 -03:00
ReinUsesLisp
5ae8a056fe
shader_bytecode: Rename BytesN enums to BitsN
2019-02-03 00:25:40 -03:00
ReinUsesLisp
a8cbcb1210
shader_ir/memory: Add LD_L 64 bits loads
2019-02-03 00:25:40 -03:00
ReinUsesLisp
12fbe5dcf8
shader_ir: Unify constant buffer offset values
...
Constant buffer values on the shader IR were using different offsets if
the access direct or indirect. cbuf34 has a non-multiplied offset while
cbuf36 does. On shader decoding this commit multiplies it by four on
cbuf34 queries.
2019-01-30 02:45:50 -03:00
ReinUsesLisp
d516c50fe2
shader_decode: Implement LDG and basic cbuf tracking
2019-01-30 00:00:15 -03:00
ReinUsesLisp
c5c75bc21a
shader_ir: Fixup clang build
2019-01-15 21:06:05 -03:00
ReinUsesLisp
53c06f089d
shader_decode: Fixup XMAD
2019-01-15 17:54:53 -03:00
ReinUsesLisp
1be12d5819
shader_ir: Pass to decoder functions basic block's code
2019-01-15 17:54:53 -03:00
ReinUsesLisp
719c83a4c2
shader_decode: Improve zero flag implementation
2019-01-15 17:54:53 -03:00
ReinUsesLisp
c75f5c634a
shader_ir: Remove composite primitives and use temporals instead
2019-01-15 17:54:53 -03:00
ReinUsesLisp
92610e9705
shader_decode: Use proper primitive names
2019-01-15 17:54:53 -03:00
ReinUsesLisp
44fce20a01
shader_decode: Use BitfieldExtract instead of shift + and
2019-01-15 17:54:53 -03:00
ReinUsesLisp
26d519c0f6
shader_ir: Remove Ipa primitive
2019-01-15 17:54:53 -03:00
ReinUsesLisp
8df3fb8b1e
shader_ir: Remove RZ and use Register::ZeroIndex instead
2019-01-15 17:54:53 -03:00
ReinUsesLisp
35724f3435
shader_decode: Implement TEXS.F16
2019-01-15 17:54:53 -03:00
ReinUsesLisp
afa9967c4a
shader_decode: Fixup R2P
2019-01-15 17:54:53 -03:00
ReinUsesLisp
a90860a63a
shader_decode: Fixup WriteLogicOperation zero comparison
2019-01-15 17:54:53 -03:00
ReinUsesLisp
1314fd5277
shader_decode: Fixup PSET
2019-01-15 17:54:53 -03:00
ReinUsesLisp
495fbb2096
shader_decode: Fixup clang-format
2019-01-15 17:54:53 -03:00
ReinUsesLisp
0b1a2a74b6
video_core: Implement IR based geometry shaders
2019-01-15 17:54:53 -03:00
ReinUsesLisp
095b8f822b
shader_decode: Implement VMAD and VSETP
2019-01-15 17:54:53 -03:00
ReinUsesLisp
a71ce91f9b
shader_decode: Implement HSET2
2019-01-15 17:54:53 -03:00
ReinUsesLisp
5896358e4a
shader_decode: Rework HSETP2
2019-01-15 17:54:53 -03:00
ReinUsesLisp
e0971b5f9c
shader_decode: Implement R2P
2019-01-15 17:54:53 -03:00
ReinUsesLisp
8f2327d84b
shader_decode: Implement CSETP
2019-01-15 17:54:52 -03:00
ReinUsesLisp
da25db6829
shader_decode: Implement PSET
2019-01-15 17:54:52 -03:00
ReinUsesLisp
54bffa5381
shader_decode: Implement HFMA2
2019-01-15 17:54:52 -03:00
ReinUsesLisp
9cf3fe7511
shader_decode: Implement POPC
2019-01-15 17:54:52 -03:00
ReinUsesLisp
43dffc4afc
shader_decode: Implement TLDS (untested)
2019-01-15 17:54:52 -03:00
ReinUsesLisp
8e4e4c60cd
shader_decode: Update TLD4 reflecting #1862 changes
2019-01-15 17:54:52 -03:00
ReinUsesLisp
fb53e79b7f
shader_ir: Fixup TEX and TEXS and partially fix TLD4 decompiling
2019-01-15 17:54:52 -03:00
ReinUsesLisp
8664c00a2e
shader_decode: Fixup FSET
2019-01-15 17:54:52 -03:00
ReinUsesLisp
bdfa3b5fe9
shader_decode: Implement IADD32I
2019-01-15 17:54:52 -03:00
ReinUsesLisp
dc93729f47
video_core: Return safe values after an assert hits
2019-01-15 17:54:52 -03:00
ReinUsesLisp
dbf4c5264b
shader_decode: Implement FFMA
2019-01-15 17:54:52 -03:00
ReinUsesLisp
8ef8fd8188
shader_ir: Fixup file inclusions and clang-format
2019-01-15 17:54:52 -03:00
ReinUsesLisp
6e4aad30c9
shader_decode: Fixup clang-format
2019-01-15 17:54:52 -03:00
ReinUsesLisp
497d16bdf1
shader_decode: Implement LEA
2019-01-15 17:54:52 -03:00
ReinUsesLisp
368b588c7f
shader_decode: Implement IADD3
2019-01-15 17:54:52 -03:00
ReinUsesLisp
37de0d1560
shader_decode: Implement LOP3
2019-01-15 17:54:52 -03:00
ReinUsesLisp
40e9335807
shader_decode: Implement ST_L
2019-01-15 17:54:52 -03:00