ReinUsesLisp
5ca63d0675
shader/decode: Remove extras from MetaTexture
7 years ago
ReinUsesLisp
48e6f77c03
shader/decode: Split memory and texture instructions decoding
7 years ago
ReinUsesLisp
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.
7 years ago
ReinUsesLisp
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.
7 years ago
ReinUsesLisp
cfb20c4c9d
gl_shader_disk_cache: Save GLSL and entries into the precompiled file
7 years ago
ReinUsesLisp
42b75e8be8
shader_ir: Rename BasicBlock to NodeBlock
It's not always used as a basic block. Rename it for consistency.
7 years ago
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.
7 years ago
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.
7 years ago
ReinUsesLisp
3b84e04af1
shader_decode: Implement LDG and basic cbuf tracking
7 years ago
Lioncash
b2b98b2f44
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
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.
7 years ago
ReinUsesLisp
170c8212bb
shader_ir: Pass to decoder functions basic block's code
7 years ago
ReinUsesLisp
2d6c064e66
shader_decode: Improve zero flag implementation
7 years ago
ReinUsesLisp
d911740e5d
shader_ir: Remove composite primitives and use temporals instead
7 years ago
ReinUsesLisp
50195b1704
shader_decode: Use proper primitive names
7 years ago
ReinUsesLisp
2faad9bf23
shader_decode: Use BitfieldExtract instead of shift + and
7 years ago
ReinUsesLisp
52223313b1
shader_ir: Remove Ipa primitive
7 years ago
ReinUsesLisp
d9118d324a
shader_ir: Remove RZ and use Register::ZeroIndex instead
7 years ago
ReinUsesLisp
5af82a8ed4
shader_decode: Implement TEXS.F16
7 years ago
ReinUsesLisp
e1fea1e0c5
video_core: Implement IR based geometry shaders
7 years ago
ReinUsesLisp
a1b845b651
shader_decode: Implement VMAD and VSETP
7 years ago
ReinUsesLisp
b11e0b94c7
shader_decode: Implement HSET2
7 years ago
ReinUsesLisp
2df55985b6
shader_decode: Rework HSETP2
7 years ago
ReinUsesLisp
dd91650aaf
shader_decode: Implement HFMA2
7 years ago
ReinUsesLisp
027f443e69
shader_decode: Implement POPC
7 years ago
ReinUsesLisp
55e6786254
shader_decode: Implement TLDS (untested)
7 years ago
ReinUsesLisp
ec98e4d842
shader_decode: Update TLD4 reflecting #1862 changes
7 years ago
ReinUsesLisp
03e088a4f4
shader_ir: Fixup TEX and TEXS and partially fix TLD4 decompiling
7 years ago
ReinUsesLisp
21aff36459
video_core: Address feedback
7 years ago
ReinUsesLisp
59b34b1d76
shader_ir: Fixup file inclusions and clang-format
7 years ago
Mat M
57a900cc45
shader_ir: Move comment node string
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
7 years ago
ReinUsesLisp
d4fae3a699
shader_ir: Address feedback to avoid UB in bit casting
7 years ago
ReinUsesLisp
a40fd07516
shader_decode: Implement LOP3
7 years ago
ReinUsesLisp
39f1c6246a
shader_decode: Implement LOP32I
7 years ago
ReinUsesLisp
2b90637f4b
shader_decode: Implement TEX and TXQ
7 years ago
ReinUsesLisp
878672f371
shader_decode: Implement TEXS (F32)
7 years ago
ReinUsesLisp
fbc67a0563
shader_ir: Add condition code helper
7 years ago
ReinUsesLisp
a58abbcfc4
shader_ir: Add predicate combiner helper
7 years ago
ReinUsesLisp
bf07272695
shader_ir: Add comparison helpers
7 years ago
ReinUsesLisp
60f044df56
shader_ir: Add half float helpers
7 years ago
ReinUsesLisp
e3c55e31d7
shader_ir: Add integer helpers
7 years ago
ReinUsesLisp
833d0806f9
shader_ir: Add float helpers
7 years ago
ReinUsesLisp
6b9eea3fe5
shader_ir: Add setters
7 years ago
ReinUsesLisp
12a95ff453
shader_ir: Add local memory getters
7 years ago
ReinUsesLisp
2f87fd060d
shader_ir: Add internal flag getters
7 years ago
ReinUsesLisp
15f431f0cb
shader_ir: Add attribute getters
7 years ago
ReinUsesLisp
864e8f55cf
shader_ir: Add constant buffer getters
7 years ago
ReinUsesLisp
5e639bfcf6
shader_ir: Add register getter
7 years ago
ReinUsesLisp
4aaa2192b9
shader_ir: Add immediate node constructors
7 years ago
ReinUsesLisp
15a0e1481d
shader_ir: Initial implementation
7 years ago