Commit Graph

104 Commits

Author SHA1 Message Date
e60d4d70bc gl_shader_decompiler: Re-implement TLDS lod 2019-02-12 17:03:07 -03:00
444231a83d Merge pull request #2108 from FernandoS27/fix-cc
Fix incorrect value for CC bit in IADD
2019-02-12 10:39:03 -05:00
c1accfefde Merge pull request #2109 from FernandoS27/fix-f2i
Corrected F2I None mode to RoundEven.
2019-02-12 10:20:29 -05:00
f5ec165e8c Corrected F2I None mode to RoundEven. 2019-02-11 18:46:45 -04:00
edd668047c Fix incorrect value for CC bit in IADD 2019-02-11 16:44:43 -04:00
889c646ac0 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
d62b0a9e29 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
f09d1dffd1 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
72c70d6808 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
bb4549a73d Merge pull request #2082 from FernandoS27/txq-stl
Fix TXQ not using the component mask.
2019-02-04 20:22:32 -05:00
0306c50339 Fix TXQ not using the component mask. 2019-02-03 18:17:18 -04:00
dfa7be5ddf shader_ir/memory: Add ST_L 64 and 128 bits stores 2019-02-03 19:08:10 -03:00
42b75e8be8 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
6a6fabea58 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
f61c1ed246 shader_ir/memory: Add LD_L 128 bits loads 2019-02-03 00:35:34 -03:00
9feb68085d shader_bytecode: Rename BytesN enums to BitsN 2019-02-03 00:25:40 -03:00
0be835132c shader_ir/memory: Add LD_L 64 bits loads 2019-02-03 00:25:40 -03:00
477d616f7d 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
3b84e04af1 shader_decode: Implement LDG and basic cbuf tracking 2019-01-30 00:00:15 -03:00
a63d7c49fc shader_ir: Fixup clang build 2019-01-15 21:06:05 -03:00
1c9c4eefeb shader_decode: Fixup XMAD 2019-01-15 17:54:53 -03:00
170c8212bb shader_ir: Pass to decoder functions basic block's code 2019-01-15 17:54:53 -03:00
2d6c064e66 shader_decode: Improve zero flag implementation 2019-01-15 17:54:53 -03:00
d911740e5d shader_ir: Remove composite primitives and use temporals instead 2019-01-15 17:54:53 -03:00
50195b1704 shader_decode: Use proper primitive names 2019-01-15 17:54:53 -03:00
2faad9bf23 shader_decode: Use BitfieldExtract instead of shift + and 2019-01-15 17:54:53 -03:00
52223313b1 shader_ir: Remove Ipa primitive 2019-01-15 17:54:53 -03:00
d9118d324a shader_ir: Remove RZ and use Register::ZeroIndex instead 2019-01-15 17:54:53 -03:00
5af82a8ed4 shader_decode: Implement TEXS.F16 2019-01-15 17:54:53 -03:00
c68c13e1aa shader_decode: Fixup R2P 2019-01-15 17:54:53 -03:00
ea78c78253 shader_decode: Fixup WriteLogicOperation zero comparison 2019-01-15 17:54:53 -03:00
55a10d02e5 shader_decode: Fixup PSET 2019-01-15 17:54:53 -03:00
a2e22b4359 shader_decode: Fixup clang-format 2019-01-15 17:54:53 -03:00
e1fea1e0c5 video_core: Implement IR based geometry shaders 2019-01-15 17:54:53 -03:00
a1b845b651 shader_decode: Implement VMAD and VSETP 2019-01-15 17:54:53 -03:00
b11e0b94c7 shader_decode: Implement HSET2 2019-01-15 17:54:53 -03:00
2df55985b6 shader_decode: Rework HSETP2 2019-01-15 17:54:53 -03:00
8332482c24 shader_decode: Implement R2P 2019-01-15 17:54:53 -03:00
3f1136ac6f shader_decode: Implement CSETP 2019-01-15 17:54:52 -03:00
7e13e8bfcb shader_decode: Implement PSET 2019-01-15 17:54:52 -03:00
dd91650aaf shader_decode: Implement HFMA2 2019-01-15 17:54:52 -03:00
027f443e69 shader_decode: Implement POPC 2019-01-15 17:54:52 -03:00
55e6786254 shader_decode: Implement TLDS (untested) 2019-01-15 17:54:52 -03:00
ec98e4d842 shader_decode: Update TLD4 reflecting #1862 changes 2019-01-15 17:54:52 -03:00
03e088a4f4 shader_ir: Fixup TEX and TEXS and partially fix TLD4 decompiling 2019-01-15 17:54:52 -03:00
2d9136cec6 shader_decode: Fixup FSET 2019-01-15 17:54:52 -03:00
af5c6e4ccb shader_decode: Implement IADD32I 2019-01-15 17:54:52 -03:00
fc46ecddb3 video_core: Return safe values after an assert hits 2019-01-15 17:54:52 -03:00
148a6418ed shader_decode: Implement FFMA 2019-01-15 17:54:52 -03:00
59b34b1d76 shader_ir: Fixup file inclusions and clang-format 2019-01-15 17:54:52 -03:00