bunnei
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
ReinUsesLisp
cfb20c4c9d
gl_shader_disk_cache: Save GLSL and entries into the precompiled file
2019-02-06 22:23:39 -03:00
bunnei
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
bunnei
bb4549a73d
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
0306c50339
Fix TXQ not using the component mask.
2019-02-03 18:17:18 -04:00
ReinUsesLisp
dfa7be5ddf
shader_ir/memory: Add ST_L 64 and 128 bits stores
2019-02-03 19:08:10 -03:00
ReinUsesLisp
0d1d755086
shader/track: Search inside of conditional nodes
...
Some games search conditionally use global memory instructions. This
allows the heuristic to search inside conditional nodes for the source
constant buffer.
2019-02-03 17:21:20 -03:00
ReinUsesLisp
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
ReinUsesLisp
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
ReinUsesLisp
f61c1ed246
shader_ir/memory: Add LD_L 128 bits loads
2019-02-03 00:35:34 -03:00
ReinUsesLisp
9feb68085d
shader_bytecode: Rename BytesN enums to BitsN
2019-02-03 00:25:40 -03:00
ReinUsesLisp
0be835132c
shader_ir/memory: Add LD_L 64 bits loads
2019-02-03 00:25:40 -03:00
ReinUsesLisp
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
ReinUsesLisp
3b84e04af1
shader_decode: Implement LDG and basic cbuf tracking
2019-01-30 00:00:15 -03:00
Lioncash
b2b98b2f44
shader/shader_ir: Amend three comment typos
...
Given we're in the area, these are three trivial typos that can be
corrected.
2019-01-28 07:52:04 -05:00
Lioncash
62e08c30b7
shader/shader_ir: Amend constructor initializer ordering for AbufNode
...
Orders the class members in the same order that they would actually be
initialized in. Gets rid of two compiler warnings.
2019-01-28 07:50:34 -05:00
Lioncash
3e1a9a45a6
shader/decode: Avoid a pessimizing std::move within DecodeRange()
...
std::moveing a local variable in a return statement has the potential to
prevent copy elision from occurring, so this can just be converted into
a regular return.
2019-01-28 07:43:23 -05:00
ReinUsesLisp
a63d7c49fc
shader_ir: Fixup clang build
2019-01-15 21:06:05 -03:00
ReinUsesLisp
1c9c4eefeb
shader_decode: Fixup XMAD
2019-01-15 17:54:53 -03:00
ReinUsesLisp
170c8212bb
shader_ir: Pass to decoder functions basic block's code
2019-01-15 17:54:53 -03:00
ReinUsesLisp
2d6c064e66
shader_decode: Improve zero flag implementation
2019-01-15 17:54:53 -03:00
ReinUsesLisp
d911740e5d
shader_ir: Remove composite primitives and use temporals instead
2019-01-15 17:54:53 -03:00
ReinUsesLisp
50195b1704
shader_decode: Use proper primitive names
2019-01-15 17:54:53 -03:00
ReinUsesLisp
2faad9bf23
shader_decode: Use BitfieldExtract instead of shift + and
2019-01-15 17:54:53 -03:00
ReinUsesLisp
52223313b1
shader_ir: Remove Ipa primitive
2019-01-15 17:54:53 -03:00
ReinUsesLisp
af5d7e2c49
video_core: Rename glsl_decompiler to gl_shader_decompiler
2019-01-15 17:54:53 -03:00
ReinUsesLisp
d9118d324a
shader_ir: Remove RZ and use Register::ZeroIndex instead
2019-01-15 17:54:53 -03:00
ReinUsesLisp
5af82a8ed4
shader_decode: Implement TEXS.F16
2019-01-15 17:54:53 -03:00
ReinUsesLisp
c68c13e1aa
shader_decode: Fixup R2P
2019-01-15 17:54:53 -03:00
ReinUsesLisp
8b5588e776
glsl_decompiler: Fixup TLDS
2019-01-15 17:54:53 -03:00
ReinUsesLisp
dbed6c6485
glsl_decompiler: Fixup geometry shaders
2019-01-15 17:54:53 -03:00
ReinUsesLisp
ea78c78253
shader_decode: Fixup WriteLogicOperation zero comparison
2019-01-15 17:54:53 -03:00
ReinUsesLisp
ab7f52b279
glsl_decompiler: Fixup permissive member function declarations
2019-01-15 17:54:53 -03:00
ReinUsesLisp
55a10d02e5
shader_decode: Fixup PSET
2019-01-15 17:54:53 -03:00
ReinUsesLisp
a2e22b4359
shader_decode: Fixup clang-format
2019-01-15 17:54:53 -03:00
ReinUsesLisp
e1fea1e0c5
video_core: Implement IR based geometry shaders
2019-01-15 17:54:53 -03:00
ReinUsesLisp
a1b845b651
shader_decode: Implement VMAD and VSETP
2019-01-15 17:54:53 -03:00
ReinUsesLisp
b11e0b94c7
shader_decode: Implement HSET2
2019-01-15 17:54:53 -03:00
ReinUsesLisp
2df55985b6
shader_decode: Rework HSETP2
2019-01-15 17:54:53 -03:00
ReinUsesLisp
8332482c24
shader_decode: Implement R2P
2019-01-15 17:54:53 -03:00
ReinUsesLisp
3f1136ac6f
shader_decode: Implement CSETP
2019-01-15 17:54:52 -03:00
ReinUsesLisp
7e13e8bfcb
shader_decode: Implement PSET
2019-01-15 17:54:52 -03:00
ReinUsesLisp
dd91650aaf
shader_decode: Implement HFMA2
2019-01-15 17:54:52 -03:00
ReinUsesLisp
d6f76307fe
glsl_decompiler: Remove HNegate inlining
2019-01-15 17:54:52 -03:00
ReinUsesLisp
027f443e69
shader_decode: Implement POPC
2019-01-15 17:54:52 -03:00
ReinUsesLisp
55e6786254
shader_decode: Implement TLDS (untested)
2019-01-15 17:54:52 -03:00
ReinUsesLisp
ec98e4d842
shader_decode: Update TLD4 reflecting #1862 changes
2019-01-15 17:54:52 -03:00
ReinUsesLisp
03e088a4f4
shader_ir: Fixup TEX and TEXS and partially fix TLD4 decompiling
2019-01-15 17:54:52 -03:00
ReinUsesLisp
2d9136cec6
shader_decode: Fixup FSET
2019-01-15 17:54:52 -03:00
ReinUsesLisp
af5c6e4ccb
shader_decode: Implement IADD32I
2019-01-15 17:54:52 -03:00
ReinUsesLisp
fc46ecddb3
video_core: Return safe values after an assert hits
2019-01-15 17:54:52 -03:00
ReinUsesLisp
148a6418ed
shader_decode: Implement FFMA
2019-01-15 17:54:52 -03:00
ReinUsesLisp
21aff36459
video_core: Address feedback
2019-01-15 17:54:52 -03:00
ReinUsesLisp
59b34b1d76
shader_ir: Fixup file inclusions and clang-format
2019-01-15 17:54:52 -03:00
Mat M
57a900cc45
shader_ir: Move comment node string
...
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-01-15 17:54:52 -03:00
ReinUsesLisp
d4fae3a699
shader_ir: Address feedback to avoid UB in bit casting
2019-01-15 17:54:52 -03:00
ReinUsesLisp
946c86f0bb
shader_decode: Fixup clang-format
2019-01-15 17:54:52 -03:00
ReinUsesLisp
c9cf899d18
shader_decode: Implement LEA
2019-01-15 17:54:52 -03:00
ReinUsesLisp
4fd06efeb9
shader_decode: Implement IADD3
2019-01-15 17:54:52 -03:00
ReinUsesLisp
a40fd07516
shader_decode: Implement LOP3
2019-01-15 17:54:52 -03:00
ReinUsesLisp
b184ca9089
shader_decode: Implement ST_L
2019-01-15 17:54:52 -03:00
ReinUsesLisp
8d42feb09b
shader_decode: Implement LD_L
2019-01-15 17:54:52 -03:00
ReinUsesLisp
21f9e9da09
shader_decode: Implement HSETP2
2019-01-15 17:54:52 -03:00
ReinUsesLisp
68c99d2597
shader_decode: Implement HADD2 and HMUL2
2019-01-15 17:54:52 -03:00
ReinUsesLisp
cf4a08d950
shader_decode: Implement HADD2_IMM and HMUL2_IMM
2019-01-15 17:54:52 -03:00
ReinUsesLisp
376a837511
shader_decode: Implement MOV_SYS
2019-01-15 17:54:52 -03:00
ReinUsesLisp
518a2bd206
shader_decode: Implement IMNMX
2019-01-15 17:54:52 -03:00
ReinUsesLisp
07944a2345
shader_decode: Implement F2F_C
2019-01-15 17:54:52 -03:00
ReinUsesLisp
e8235c0215
shader_decode: Implement I2I
2019-01-15 17:54:52 -03:00
ReinUsesLisp
6ca31f544a
shader_decode: Implement BRA internal flag
2019-01-15 17:54:52 -03:00
ReinUsesLisp
210620ff31
shader_decode: Implement ISCADD
2019-01-15 17:54:52 -03:00
ReinUsesLisp
b0e7920838
shader_decode: Implement XMAD
2019-01-15 17:54:51 -03:00
ReinUsesLisp
becfdb8638
shader_decode: Implement PBK and BRK
2019-01-15 17:54:51 -03:00
ReinUsesLisp
8f37531f8e
shader_decode: Implement LOP
2019-01-15 17:54:51 -03:00
ReinUsesLisp
8486e7f8c8
shader_decode: Implement SEL
2019-01-15 17:54:51 -03:00
ReinUsesLisp
ccb71bece9
shader_decode: Implement IADD
2019-01-15 17:54:51 -03:00
ReinUsesLisp
faadae5814
shader_decode: Implement ISETP
2019-01-15 17:54:51 -03:00
ReinUsesLisp
80183de884
shader_decode: Implement BFI
2019-01-15 17:54:51 -03:00
ReinUsesLisp
078ba28e13
shader_decode: Implement ISET
2019-01-15 17:54:51 -03:00
ReinUsesLisp
acdbbb8885
shader_decode: Implement LD_C
2019-01-15 17:54:51 -03:00
ReinUsesLisp
d79c462af0
shader_decode: Implement SHL
2019-01-15 17:54:51 -03:00
ReinUsesLisp
a2819c204f
shader_decode: Implement SHR
2019-01-15 17:54:51 -03:00
ReinUsesLisp
39f1c6246a
shader_decode: Implement LOP32I
2019-01-15 17:54:51 -03:00
ReinUsesLisp
501284a81a
shader_decode: Implement BFE
2019-01-15 17:54:51 -03:00
ReinUsesLisp
e444a6553f
shader_decode: Implement FSET
2019-01-15 17:54:51 -03:00
ReinUsesLisp
3052eae25e
shader_decode: Implement F2I
2019-01-15 17:54:51 -03:00
ReinUsesLisp
8abe5ba2c8
shader_decode: Implement I2F
2019-01-15 17:54:51 -03:00
ReinUsesLisp
c849b5b320
shader_decode: Implement F2F
2019-01-15 17:54:50 -03:00
ReinUsesLisp
9118deb990
shader_decode: Stub DEPBAR
2019-01-15 17:54:50 -03:00
ReinUsesLisp
97f33f00cf
shader_decode: Implement SSY and SYNC
2019-01-15 17:54:50 -03:00
ReinUsesLisp
abdbafbc20
shader_decode: Implement PSETP
2019-01-15 17:54:50 -03:00
ReinUsesLisp
802c23b8a8
shader_decode: Implement TMML
2019-01-15 17:54:50 -03:00
ReinUsesLisp
2b90637f4b
shader_decode: Implement TEX and TXQ
2019-01-15 17:54:50 -03:00
ReinUsesLisp
878672f371
shader_decode: Implement TEXS (F32)
2019-01-15 17:54:50 -03:00
ReinUsesLisp
c703f0aee4
shader_decode: Implement FSETP
2019-01-15 17:54:50 -03:00
ReinUsesLisp
8215ae942c
shader_decode: Partially implement BRA
2019-01-15 17:54:50 -03:00
ReinUsesLisp
4f95dc950e
shader_decode: Implement IPA
2019-01-15 17:54:50 -03:00
ReinUsesLisp
cacb934f21
shader_decode: Implement EXIT
2019-01-15 17:54:50 -03:00
ReinUsesLisp
0c049e0a21
shader_decode: Implement ST_A
2019-01-15 17:54:50 -03:00
ReinUsesLisp
e3f1233ce1
shader_decode: Implement LD_A
2019-01-15 17:54:50 -03:00