aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/shader
AgeCommit message (Collapse)Author
2019-04-08Correct XMAD mode, psl and high_b on different encodings.Fernando Sahmkow
2019-03-31shader_ir/decode: Silent implicit sign conversion warningMat M
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-03-30shader_ir/decode: Implement AOFFI for TEX and TLD4ReinUsesLisp
2019-03-30shader_ir: Implement immediate register trackingReinUsesLisp
2019-02-26shader/decode: Remove extras from MetaTextureReinUsesLisp
2019-02-26shader/decode: Split memory and texture instructions decodingReinUsesLisp
2019-02-25shader/track: Resolve variable shadowing warningsLioncash
2019-02-24Merge pull request #2118 from FernandoS27/ipa-improvebunnei
shader_decompiler: Improve Accuracy of Attribute Interpolation.
2019-02-14shader_decompiler: Improve Accuracy of Attribute Interpolation.Fernando Sahmkow
2019-02-12gl_shader_decompiler: Re-implement TLDS lodReinUsesLisp
2019-02-12Merge pull request #2108 from FernandoS27/fix-ccbunnei
Fix incorrect value for CC bit in IADD
2019-02-12Merge pull request #2109 from FernandoS27/fix-f2ibunnei
Corrected F2I None mode to RoundEven.
2019-02-11Corrected F2I None mode to RoundEven.Fernando Sahmkow
2019-02-11Fix incorrect value for CC bit in IADDFernando Sahmkow
2019-02-07shader_ir: Remove F4 prefix to texture operationsReinUsesLisp
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-07shader_ir: Clean texture management codeReinUsesLisp
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-06Merge pull request #2083 from ReinUsesLisp/shader-ir-cbuf-trackingbunnei
shader/track: Add a more permissive global memory tracking
2019-02-06gl_shader_disk_cache: Save GLSL and entries into the precompiled fileReinUsesLisp
2019-02-05Merge pull request #2081 from ReinUsesLisp/lmem-64bunnei
shader_ir/memory: Add LD_L 64 bits loads
2019-02-04Merge pull request #2082 from FernandoS27/txq-stlbunnei
Fix TXQ not using the component mask.
2019-02-03Fix TXQ not using the component mask.Fernando Sahmkow
2019-02-03shader_ir/memory: Add ST_L 64 and 128 bits storesReinUsesLisp
2019-02-03shader/track: Search inside of conditional nodesReinUsesLisp
Some games search conditionally use global memory instructions. This allows the heuristic to search inside conditional nodes for the source constant buffer.
2019-02-03shader_ir: Rename BasicBlock to NodeBlockReinUsesLisp
It's not always used as a basic block. Rename it for consistency.
2019-02-03shader_ir: Pass decoded nodes as a whole instead of per basic blocksReinUsesLisp
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-03shader_ir/memory: Add LD_L 128 bits loadsReinUsesLisp
2019-02-03shader_bytecode: Rename BytesN enums to BitsNReinUsesLisp
2019-02-03shader_ir/memory: Add LD_L 64 bits loadsReinUsesLisp
2019-01-30shader_ir: Unify constant buffer offset valuesReinUsesLisp
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-30shader_decode: Implement LDG and basic cbuf trackingReinUsesLisp
2019-01-28shader/shader_ir: Amend three comment typosLioncash
Given we're in the area, these are three trivial typos that can be corrected.
2019-01-28shader/shader_ir: Amend constructor initializer ordering for AbufNodeLioncash
Orders the class members in the same order that they would actually be initialized in. Gets rid of two compiler warnings.
2019-01-28shader/decode: Avoid a pessimizing std::move within DecodeRange()Lioncash
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-15shader_ir: Fixup clang buildReinUsesLisp
2019-01-15shader_decode: Fixup XMADReinUsesLisp
2019-01-15shader_ir: Pass to decoder functions basic block's codeReinUsesLisp
2019-01-15shader_decode: Improve zero flag implementationReinUsesLisp
2019-01-15shader_ir: Remove composite primitives and use temporals insteadReinUsesLisp
2019-01-15shader_decode: Use proper primitive namesReinUsesLisp
2019-01-15shader_decode: Use BitfieldExtract instead of shift + andReinUsesLisp
2019-01-15shader_ir: Remove Ipa primitiveReinUsesLisp
2019-01-15video_core: Rename glsl_decompiler to gl_shader_decompilerReinUsesLisp
2019-01-15shader_ir: Remove RZ and use Register::ZeroIndex insteadReinUsesLisp
2019-01-15shader_decode: Implement TEXS.F16ReinUsesLisp
2019-01-15shader_decode: Fixup R2PReinUsesLisp
2019-01-15glsl_decompiler: Fixup TLDSReinUsesLisp
2019-01-15glsl_decompiler: Fixup geometry shadersReinUsesLisp
2019-01-15shader_decode: Fixup WriteLogicOperation zero comparisonReinUsesLisp
2019-01-15glsl_decompiler: Fixup permissive member function declarationsReinUsesLisp
2019-01-15shader_decode: Fixup PSETReinUsesLisp