Fernando Sahmkow
0f8f14a732
Corrected F2I None mode to RoundEven.
7 years ago
Fernando Sahmkow
ec3c66c847
Fix incorrect value for CC bit in IADD
7 years ago
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.
7 years ago
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.
7 years ago
ReinUsesLisp
d83818d30a
gl_shader_disk_cache: Save GLSL and entries into the precompiled file
7 years ago
Fernando Sahmkow
4133c86d71
Fix TXQ not using the component mask.
7 years ago
ReinUsesLisp
a6c3180b68
shader_ir/memory: Add ST_L 64 and 128 bits stores
7 years ago
ReinUsesLisp
13b83e6e0f
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.
7 years ago
ReinUsesLisp
92c948999b
shader_ir: Rename BasicBlock to NodeBlock
It's not always used as a basic block. Rename it for consistency.
7 years ago
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.
7 years ago
ReinUsesLisp
0b57f33fdf
shader_ir/memory: Add LD_L 128 bits loads
7 years ago
ReinUsesLisp
5ae8a056fe
shader_bytecode: Rename BytesN enums to BitsN
7 years ago
ReinUsesLisp
a8cbcb1210
shader_ir/memory: Add LD_L 64 bits loads
7 years ago
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.
7 years ago
ReinUsesLisp
d516c50fe2
shader_decode: Implement LDG and basic cbuf tracking
7 years ago
Lioncash
4addab6160
shader/shader_ir: Amend three comment typos
Given we're in the area, these are three trivial typos that can be
corrected.
7 years ago
Lioncash
a7de39a6ba
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.
7 years ago
Lioncash
980ea9cfb1
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.
7 years ago
ReinUsesLisp
c5c75bc21a
shader_ir: Fixup clang build
7 years ago
ReinUsesLisp
53c06f089d
shader_decode: Fixup XMAD
7 years ago
ReinUsesLisp
1be12d5819
shader_ir: Pass to decoder functions basic block's code
7 years ago
ReinUsesLisp
719c83a4c2
shader_decode: Improve zero flag implementation
7 years ago
ReinUsesLisp
c75f5c634a
shader_ir: Remove composite primitives and use temporals instead
7 years ago
ReinUsesLisp
92610e9705
shader_decode: Use proper primitive names
7 years ago
ReinUsesLisp
44fce20a01
shader_decode: Use BitfieldExtract instead of shift + and
7 years ago
ReinUsesLisp
26d519c0f6
shader_ir: Remove Ipa primitive
7 years ago
ReinUsesLisp
685996eabb
video_core: Rename glsl_decompiler to gl_shader_decompiler
7 years ago
ReinUsesLisp
8df3fb8b1e
shader_ir: Remove RZ and use Register::ZeroIndex instead
7 years ago
ReinUsesLisp
35724f3435
shader_decode: Implement TEXS.F16
7 years ago
ReinUsesLisp
afa9967c4a
shader_decode: Fixup R2P
7 years ago
ReinUsesLisp
be9d40cf0d
glsl_decompiler: Fixup TLDS
7 years ago
ReinUsesLisp
d08982ed56
glsl_decompiler: Fixup geometry shaders
7 years ago
ReinUsesLisp
a90860a63a
shader_decode: Fixup WriteLogicOperation zero comparison
7 years ago
ReinUsesLisp
afbbc154d0
glsl_decompiler: Fixup permissive member function declarations
7 years ago
ReinUsesLisp
1314fd5277
shader_decode: Fixup PSET
7 years ago
ReinUsesLisp
495fbb2096
shader_decode: Fixup clang-format
7 years ago
ReinUsesLisp
0b1a2a74b6
video_core: Implement IR based geometry shaders
7 years ago
ReinUsesLisp
095b8f822b
shader_decode: Implement VMAD and VSETP
7 years ago
ReinUsesLisp
a71ce91f9b
shader_decode: Implement HSET2
7 years ago
ReinUsesLisp
5896358e4a
shader_decode: Rework HSETP2
7 years ago
ReinUsesLisp
e0971b5f9c
shader_decode: Implement R2P
7 years ago
ReinUsesLisp
8f2327d84b
shader_decode: Implement CSETP
7 years ago
ReinUsesLisp
da25db6829
shader_decode: Implement PSET
7 years ago
ReinUsesLisp
54bffa5381
shader_decode: Implement HFMA2
7 years ago
ReinUsesLisp
17b2a1d2b0
glsl_decompiler: Remove HNegate inlining
7 years ago
ReinUsesLisp
9cf3fe7511
shader_decode: Implement POPC
7 years ago
ReinUsesLisp
43dffc4afc
shader_decode: Implement TLDS (untested)
7 years ago
ReinUsesLisp
8e4e4c60cd
shader_decode: Update TLD4 reflecting #1862 changes
7 years ago
ReinUsesLisp
fb53e79b7f
shader_ir: Fixup TEX and TEXS and partially fix TLD4 decompiling
7 years ago
ReinUsesLisp
8664c00a2e
shader_decode: Fixup FSET
7 years ago