Fernando Sahmkow
aa471274d9
Do some corrections in conversion shader instructions.
Corrects encodings for I2F, F2F, I2I and F2I
Implements Immediate variants of all four conversion types.
Add assertions to unimplemented stuffs.
7 years ago
ReinUsesLisp
5c280e6ff0
shader_ir: Implement STG, keep track of global memory usage and flush
7 years ago
Fernando Sahmkow
16adc735a5
Correct XMAD mode, psl and high_b on different encodings.
7 years ago
Fernando Sahmkow
ef8be408d3
Adapt Bindless to work with AOFFI
7 years ago
Fernando Sahmkow
492040bd9c
Move ConstBufferAccessor to Maxwell3d, correct mistakes and clang format.
7 years ago
Fernando Sahmkow
c60b0b8432
Fix TMML
7 years ago
Fernando Sahmkow
fd4e994de3
Refactor GetTextureCode and GetTexCode to use an optional instead of optional parameters
7 years ago
Fernando Sahmkow
4841440382
Implement TXQ_B
7 years ago
Fernando Sahmkow
189bd1980c
Implement TMML_B
7 years ago
Fernando Sahmkow
ac3ba9a33e
Corrections to TEX_B
7 years ago
Fernando Sahmkow
7af82ca022
Implement Bindless Handling on SetupTexture
7 years ago
Fernando Sahmkow
fe392fff24
Unify both sampler types.
7 years ago
Fernando Sahmkow
e28fd3d0a5
Implement Bindless Samplers and TEX_B in the IR.
7 years ago
ReinUsesLisp
04979560fb
shader_ir/memory: Reduce severity of LD_L cache management and log it
7 years ago
ReinUsesLisp
24abeb9a67
shader_ir/memory: Reduce severity of ST_L cache management and log it
7 years ago
Mat M
da02946f4f
shader_ir/decode: Silent implicit sign conversion warning
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
7 years ago
ReinUsesLisp
cb68ce7c2f
shader_ir/decode: Implement AOFFI for TEX and TLD4
7 years ago
ReinUsesLisp
cf4ecc1945
shader_ir: Implement immediate register tracking
7 years ago
ReinUsesLisp
5ca63d0675
shader/decode: Remove extras from MetaTexture
7 years ago
ReinUsesLisp
48e6f77c03
shader/decode: Split memory and texture instructions decoding
7 years ago
Lioncash
c1b2e35625
shader/track: Resolve variable shadowing warnings
7 years ago
Fernando Sahmkow
10682ad7e0
shader_decompiler: Improve Accuracy of Attribute Interpolation.
7 years ago
ReinUsesLisp
e60d4d70bc
gl_shader_decompiler: Re-implement TLDS lod
7 years ago
Fernando Sahmkow
f5ec165e8c
Corrected F2I None mode to RoundEven.
7 years ago
Fernando Sahmkow
edd668047c
Fix incorrect value for CC bit in IADD
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
Fernando Sahmkow
0306c50339
Fix TXQ not using the component mask.
7 years ago
ReinUsesLisp
dfa7be5ddf
shader_ir/memory: Add ST_L 64 and 128 bits stores
7 years ago
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.
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
f61c1ed246
shader_ir/memory: Add LD_L 128 bits loads
7 years ago
ReinUsesLisp
9feb68085d
shader_bytecode: Rename BytesN enums to BitsN
7 years ago
ReinUsesLisp
0be835132c
shader_ir/memory: Add LD_L 64 bits loads
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
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.
7 years ago
ReinUsesLisp
a63d7c49fc
shader_ir: Fixup clang build
7 years ago
ReinUsesLisp
1c9c4eefeb
shader_decode: Fixup XMAD
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
af5d7e2c49
video_core: Rename glsl_decompiler to gl_shader_decompiler
7 years ago