summaryrefslogtreecommitdiffstats
path: root/src/video_core/shader/decode (unfollow)
Commit message (Collapse)AuthorFilesLines
2019-07-07Delete decode_integer_set.cppTobias1-0/+0
2019-06-24decode/texture: Address feedbackReinUsesLisp1-0/+1
2019-06-21shader_ir: Fix image copy rebase issuesFernando Sahmkow1-2/+7
2019-06-21shader: Implement bindless imagesReinUsesLisp1-2/+28
2019-06-21shader: Decode SUST and implement backing image functionalityReinUsesLisp1-0/+89
2019-06-21shader: Implement texture buffersReinUsesLisp1-0/+44
2019-06-07shader: Split SSY and PBK stackReinUsesLisp1-10/+8
Hardware testing revealed that SSY and PBK push to a different stack, allowing code like this: SSY label1; PBK label2; SYNC; label1: PBK; label2: EXIT;
2019-06-06shader: Use shared_ptr to store nodes and move initialization to fileReinUsesLisp26-8/+34
Instead of having a vector of unique_ptr stored in a vector and returning star pointers to this, use shared_ptr. While changing initialization code, move it to a separate file when possible. This is a first step to allow code analysis and node generation beyond the ShaderIR class.
2019-05-23shader/decode/*: Add missing newline to files lacking themLioncash18-18/+18
Keeps the shader code file endings consistent.
2019-05-23shader/decode/*: Eliminate indirect inclusionsLioncash6-1/+5
Amends cases where we were using things that were indirectly being satisfied through other headers. This way, if those headers change and eliminate dependencies on other headers in the future, we don't have cascading compilation errors.
2019-05-22shader/decode/memory: Remove left in debug pragmaLioncash1-2/+0
2019-05-21shader/memory: Implement ST (generic memory)ReinUsesLisp1-21/+35
2019-05-21shader/memory: Implement LD (generic memory)ReinUsesLisp1-7/+21
2019-05-20shader: Implement S2R Tid{XYZ} and CtaId{XYZ}ReinUsesLisp1-14/+28
2019-05-10video_core/shader/decode/texture: Remove unused variable from GetTld4Code()Lioncash1-1/+0
2019-05-04shader/decode/texture: Remove unused variableLioncash1-1/+0
This isn't used anywhere, so we can get rid of it.
2019-05-03shader_ir/other: Implement IPA.IDXReinUsesLisp1-5/+8
2019-05-03shader_ir/memory: Assert on non-32 bits ALD.PHYSReinUsesLisp1-0/+3
2019-05-03shader: Add physical attributes commentariesReinUsesLisp1-1/+1
2019-05-03shader_ir/memory: Implement physical input attributesReinUsesLisp1-3/+6
2019-05-03shader: Remove unused AbufNode Ipa modeReinUsesLisp2-6/+3
2019-05-03shader_ir/memory: Emit AL2P IRReinUsesLisp1-0/+17
2019-04-26shader_ir/texture: Fix sampler const buffer key shiftReinUsesLisp1-1/+1
2019-04-21Corrections Half Float operations on const buffers and implement saturation.Fernando Sahmkow2-15/+16
2019-04-18video_core: Silent -Wswitch warningsReinUsesLisp2-5/+7
2019-04-16shader_ir/decode: Fix half float pre-operations and remove MetaHalfArithmeticReinUsesLisp5-29/+21
Operations done before the main half float operation (like HAdd) were managing a packed value instead of the unpacked one. Adding an unpacked operation allows us to drop the per-operand MetaHalfArithmetic entry, simplifying the code overall.
2019-04-16shader_ir/decode: Implement half float saturationReinUsesLisp1-4/+2
2019-04-16shader_ir/decode: Reduce severity of unimplemented half-float FTZReinUsesLisp3-3/+9
2019-04-16Do some corrections in conversion shader instructions.Fernando Sahmkow1-16/+53
Corrects encodings for I2F, F2F, I2I and F2I Implements Immediate variants of all four conversion types. Add assertions to unimplemented stuffs.
2019-04-14shader_ir: Implement STG, keep track of global memory usage and flushReinUsesLisp1-35/+74
2019-04-08Correct XMAD mode, psl and high_b on different encodings.Fernando Sahmkow1-9/+30
2019-04-08Adapt Bindless to work with AOFFIFernando Sahmkow1-7/+18
2019-04-08Move ConstBufferAccessor to Maxwell3d, correct mistakes and clang format.Fernando Sahmkow1-1/+2
2019-04-08Fix TMMLFernando Sahmkow1-5/+7
2019-04-08Refactor GetTextureCode and GetTexCode to use an optional instead of optional parametersFernando Sahmkow1-23/+24
2019-04-08Implement TXQ_BFernando Sahmkow1-2/+8
2019-04-08Implement TMML_BFernando Sahmkow1-5/+10
2019-04-08Corrections to TEX_BFernando Sahmkow1-4/+5
2019-04-08Unify both sampler types.Fernando Sahmkow1-10/+12
2019-04-08Implement Bindless Samplers and TEX_B in the IR.Fernando Sahmkow1-6/+52
2019-04-03shader_ir/memory: Reduce severity of LD_L cache management and log itReinUsesLisp1-2/+2
2019-04-03shader_ir/memory: Reduce severity of ST_L cache management and log itReinUsesLisp1-2/+3
2019-03-31shader_ir/decode: Silent implicit sign conversion warningMat M1-2/+2
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-03-30shader_ir/decode: Implement AOFFI for TEX and TLD4ReinUsesLisp1-24/+88
2019-02-26shader/decode: Remove extras from MetaTextureReinUsesLisp1-14/+23
2019-02-26shader/decode: Split memory and texture instructions decodingReinUsesLisp2-493/+525
2019-02-14shader_decompiler: Improve Accuracy of Attribute Interpolation.Fernando Sahmkow2-3/+14
2019-02-12gl_shader_decompiler: Re-implement TLDS lodReinUsesLisp1-1/+1
2019-02-11Corrected F2I None mode to RoundEven.Fernando Sahmkow1-3/+3
2019-02-11Fix incorrect value for CC bit in IADDFernando Sahmkow1-2/+2
2019-02-07shader_ir: Remove F4 prefix to texture operationsReinUsesLisp1-8/+7
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 codeReinUsesLisp1-96/+58
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-03Fix TXQ not using the component mask.Fernando Sahmkow1-6/+9
2019-02-03shader_ir/memory: Add ST_L 64 and 128 bits storesReinUsesLisp1-3/+11
2019-02-03shader_ir: Rename BasicBlock to NodeBlockReinUsesLisp25-33/+32
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 blocksReinUsesLisp25-26/+27
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 loadsReinUsesLisp1-7/+19
2019-02-03shader_bytecode: Rename BytesN enums to BitsNReinUsesLisp1-4/+4
2019-02-03shader_ir/memory: Add LD_L 64 bits loadsReinUsesLisp1-6/+17
2019-01-30shader_ir: Unify constant buffer offset valuesReinUsesLisp13-21/+23
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 trackingReinUsesLisp1-0/+49
2019-01-16shader_ir: Fixup clang buildReinUsesLisp1-4/+6
2019-01-15shader_decode: Fixup XMADReinUsesLisp1-1/+1
2019-01-15shader_ir: Pass to decoder functions basic block's codeReinUsesLisp25-25/+25
2019-01-15shader_decode: Improve zero flag implementationReinUsesLisp13-73/+53
2019-01-15shader_ir: Remove composite primitives and use temporals insteadReinUsesLisp1-145/+149
2019-01-15shader_decode: Use proper primitive namesReinUsesLisp2-8/+8
2019-01-15shader_decode: Use BitfieldExtract instead of shift + andReinUsesLisp5-46/+18
2019-01-15shader_ir: Remove Ipa primitiveReinUsesLisp1-3/+2
2019-01-15shader_ir: Remove RZ and use Register::ZeroIndex insteadReinUsesLisp1-6/+11
2019-01-15shader_decode: Implement TEXS.F16ReinUsesLisp1-13/+25
2019-01-15shader_decode: Fixup R2PReinUsesLisp1-2/+3
2019-01-15shader_decode: Fixup WriteLogicOperation zero comparisonReinUsesLisp1-1/+1
2019-01-15shader_decode: Fixup PSETReinUsesLisp1-2/+3
2019-01-15shader_decode: Fixup clang-formatReinUsesLisp2-2/+4
2019-01-15video_core: Implement IR based geometry shadersReinUsesLisp1-0/+25
2019-01-15shader_decode: Implement VMAD and VSETPReinUsesLisp1-0/+120
2019-01-15shader_decode: Implement HSET2ReinUsesLisp1-1/+43
2019-01-15shader_decode: Rework HSETP2ReinUsesLisp1-3/+5
2019-01-15shader_decode: Implement R2PReinUsesLisp1-1/+28
2019-01-15shader_decode: Implement CSETPReinUsesLisp1-14/+37
2019-01-15shader_decode: Implement PSETReinUsesLisp1-1/+16
2019-01-15shader_decode: Implement HFMA2ReinUsesLisp1-1/+53
2019-01-15shader_decode: Implement POPCReinUsesLisp1-0/+10
2019-01-15shader_decode: Implement TLDS (untested)ReinUsesLisp1-8/+61
2019-01-15shader_decode: Update TLD4 reflecting #1862 changesReinUsesLisp1-52/+49
2019-01-15shader_ir: Fixup TEX and TEXS and partially fix TLD4 decompilingReinUsesLisp1-50/+49
2019-01-15shader_decode: Fixup FSETReinUsesLisp1-2/+2
2019-01-15shader_decode: Implement IADD32IReinUsesLisp1-0/+11
2019-01-15video_core: Return safe values after an assert hitsReinUsesLisp6-8/+12
2019-01-15shader_decode: Implement FFMAReinUsesLisp1-1/+36
2019-01-15shader_ir: Fixup file inclusions and clang-formatReinUsesLisp1-1/+1
2019-01-15shader_decode: Fixup clang-formatReinUsesLisp2-3/+2
2019-01-15shader_decode: Implement LEAReinUsesLisp1-0/+55
2019-01-15shader_decode: Implement IADD3ReinUsesLisp1-0/+61
2019-01-15shader_decode: Implement LOP3ReinUsesLisp1-0/+60
2019-01-15shader_decode: Implement ST_LReinUsesLisp1-0/+17
2019-01-15shader_decode: Implement LD_LReinUsesLisp1-0/+18
2019-01-15shader_decode: Implement HSETP2ReinUsesLisp1-1/+37
2019-01-15shader_decode: Implement HADD2 and HMUL2ReinUsesLisp1-1/+48
2019-01-15shader_decode: Implement HADD2_IMM and HMUL2_IMMReinUsesLisp1-1/+28
2019-01-15shader_decode: Implement MOV_SYSReinUsesLisp1-0/+27
2019-01-15shader_decode: Implement IMNMXReinUsesLisp1-0/+16
2019-01-15shader_decode: Implement F2F_CReinUsesLisp1-2/+10
2019-01-15shader_decode: Implement I2IReinUsesLisp1-0/+26
2019-01-15shader_decode: Implement BRA internal flagReinUsesLisp1-4/+8
2019-01-15shader_decode: Implement ISCADDReinUsesLisp1-0/+15
2019-01-15shader_decode: Implement XMADReinUsesLisp1-1/+85
2019-01-15shader_decode: Implement PBK and BRKReinUsesLisp1-1/+22
2019-01-15shader_decode: Implement LOPReinUsesLisp1-0/+15
2019-01-15shader_decode: Implement SELReinUsesLisp1-0/+8
2019-01-15shader_decode: Implement IADDReinUsesLisp1-1/+28
2019-01-15shader_decode: Implement ISETPReinUsesLisp1-1/+30
2019-01-15shader_decode: Implement BFIReinUsesLisp1-1/+22
2019-01-15shader_decode: Implement ISETReinUsesLisp1-1/+27
2019-01-15shader_decode: Implement LD_CReinUsesLisp1-0/+31
2019-01-15shader_decode: Implement SHLReinUsesLisp1-0/+8
2019-01-15shader_decode: Implement SHRReinUsesLisp1-1/+26
2019-01-15shader_decode: Implement LOP32IReinUsesLisp1-1/+67
2019-01-15shader_decode: Implement BFEReinUsesLisp1-1/+25
2019-01-15shader_decode: Implement FSETReinUsesLisp1-1/+36
2019-01-15shader_decode: Implement F2IReinUsesLisp1-0/+37
2019-01-15shader_decode: Implement I2FReinUsesLisp1-0/+23
2019-01-15shader_decode: Implement F2FReinUsesLisp1-1/+37
2019-01-15shader_decode: Stub DEPBARReinUsesLisp1-0/+4
2019-01-15shader_decode: Implement SSY and SYNCReinUsesLisp1-0/+19
2019-01-15shader_decode: Implement PSETPReinUsesLisp1-1/+21
2019-01-15shader_decode: Implement TMMLReinUsesLisp1-3/+45
2019-01-15shader_decode: Implement TEX and TXQReinUsesLisp1-0/+219
2019-01-15shader_decode: Implement TEXS (F32)ReinUsesLisp1-0/+199
2019-01-15shader_decode: Implement FSETPReinUsesLisp1-1/+33
2019-01-15shader_decode: Partially implement BRAReinUsesLisp1-0/+12
2019-01-15shader_decode: Implement IPAReinUsesLisp1-0/+12
2019-01-15shader_decode: Implement EXITReinUsesLisp1-1/+32
2019-01-15shader_decode: Implement ST_AReinUsesLisp1-0/+30
2019-01-15shader_decode: Implement LD_AReinUsesLisp1-1/+39
2019-01-15shader_decode: Implement FADD32IReinUsesLisp1-0/+12
2019-01-15shader_decode: Implement FMUL32_IMMReinUsesLisp1-0/+10
2019-01-15shader_decode: Implement MOV32_IMMReinUsesLisp1-1/+9
2019-01-15shader_decode: Stub RRO_C, RRO_R and RRO_IMMReinUsesLisp1-0/+9
2019-01-15shader_decode: Implement FMNMX_C, FMNMX_R and FMNMX_IMMReinUsesLisp1-0/+18
2019-01-15shader_decode: Implement MUFUReinUsesLisp1-0/+29
2019-01-15shader_decode: Implement FADD_C, FADD_R and FADD_IMMReinUsesLisp1-0/+15
2019-01-15shader_decode: Implement FMUL_C, FMUL_R and FMUL_IMMReinUsesLisp1-0/+42
2019-01-15shader_decode: Implement MOV_C and MOV_RReinUsesLisp1-1/+23
2019-01-15shader_ir: Initial implementationReinUsesLisp25-0/+576