summaryrefslogtreecommitdiffstats
path: root/src/video_core/shader/decode (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Delete decode_integer_set.cppTobias2019-07-071-0/+0
|
* decode/texture: Address feedbackReinUsesLisp2019-06-241-0/+1
|
* shader_ir: Fix image copy rebase issuesFernando Sahmkow2019-06-211-2/+7
|
* shader: Implement bindless imagesReinUsesLisp2019-06-211-2/+28
|
* shader: Decode SUST and implement backing image functionalityReinUsesLisp2019-06-211-0/+89
|
* shader: Implement texture buffersReinUsesLisp2019-06-211-0/+44
|
* shader: Split SSY and PBK stackReinUsesLisp2019-06-071-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;
* shader: Use shared_ptr to store nodes and move initialization to fileReinUsesLisp2019-06-0626-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.
* Merge pull request #2446 from ReinUsesLisp/tidbunnei2019-05-291-14/+28
|\ | | | | shader: Implement S2R Tid{XYZ} and CtaId{XYZ}
| * shader: Implement S2R Tid{XYZ} and CtaId{XYZ}ReinUsesLisp2019-05-201-14/+28
| |
* | Merge pull request #2485 from ReinUsesLisp/generic-memorybunnei2019-05-251-27/+55
|\ \ | | | | | | shader/memory: Implement generic memory stores and loads (ST and LD)
| * | shader/memory: Implement ST (generic memory)ReinUsesLisp2019-05-211-21/+35
| | |
| * | shader/memory: Implement LD (generic memory)ReinUsesLisp2019-05-211-7/+21
| |/
* | shader/decode/*: Add missing newline to files lacking themLioncash2019-05-2318-18/+18
| | | | | | | | Keeps the shader code file endings consistent.
* | shader/decode/*: Eliminate indirect inclusionsLioncash2019-05-236-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.
* | shader/decode/memory: Remove left in debug pragmaLioncash2019-05-221-2/+0
|/
* Merge pull request #2441 from ReinUsesLisp/al2pbunnei2019-05-192-10/+33
|\ | | | | shader: Implement AL2P and ALD.PHYS
| * shader_ir/other: Implement IPA.IDXReinUsesLisp2019-05-031-5/+8
| |
| * shader_ir/memory: Assert on non-32 bits ALD.PHYSReinUsesLisp2019-05-031-0/+3
| |
| * shader: Add physical attributes commentariesReinUsesLisp2019-05-031-1/+1
| |
| * shader_ir/memory: Implement physical input attributesReinUsesLisp2019-05-031-3/+6
| |
| * shader: Remove unused AbufNode Ipa modeReinUsesLisp2019-05-032-6/+3
| |
| * shader_ir/memory: Emit AL2P IRReinUsesLisp2019-05-031-0/+17
| |
* | video_core/shader/decode/texture: Remove unused variable from GetTld4Code()Lioncash2019-05-101-1/+0
| |
* | shader/decode/texture: Remove unused variableLioncash2019-05-041-1/+0
|/ | | | This isn't used anywhere, so we can get rid of it.
* Merge pull request #2435 from ReinUsesLisp/misc-vcbunnei2019-04-291-1/+1
|\ | | | | shader_ir: Miscellaneous fixes
| * shader_ir/texture: Fix sampler const buffer key shiftReinUsesLisp2019-04-261-1/+1
| |
* | Merge pull request #2322 from ReinUsesLisp/wswitchbunnei2019-04-292-5/+7
|\ \ | | | | | | video_core: Silent -Wswitch warnings
| * | video_core: Silent -Wswitch warningsReinUsesLisp2019-04-182-5/+7
| | |
* | | Merge pull request #2423 from FernandoS27/half-correctbunnei2019-04-292-15/+16
|\ \ \ | |_|/ |/| | Corrections on Half Float operations: HADD2 HMUL2 and HFMA2
| * | Corrections Half Float operations on const buffers and implement saturation.Fernando Sahmkow2019-04-212-15/+16
| | |
* | | Merge pull request #2407 from FernandoS27/f2fbunnei2019-04-201-16/+53
|\ \ \ | |/ / |/| | Do some corrections in conversion shader instructions.
| * | Do some corrections in conversion shader instructions.Fernando Sahmkow2019-04-161-16/+53
| |/ | | | | | | | | | | Corrects encodings for I2F, F2F, I2I and F2I Implements Immediate variants of all four conversion types. Add assertions to unimplemented stuffs.
* | Merge pull request #2409 from ReinUsesLisp/half-floatsbunnei2019-04-205-36/+32
|\ \ | | | | | | shader_ir/decode: Miscellaneous fixes to half-float decompilation
| * | shader_ir/decode: Fix half float pre-operations and remove MetaHalfArithmeticReinUsesLisp2019-04-165-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.
| * | shader_ir/decode: Implement half float saturationReinUsesLisp2019-04-161-4/+2
| | |
| * | shader_ir/decode: Reduce severity of unimplemented half-float FTZReinUsesLisp2019-04-163-3/+9
| |/
* | Merge pull request #2348 from FernandoS27/guest-bindlessbunnei2019-04-181-19/+94
|\ \ | | | | | | Implement Bindless Textures on Shader Decompiler and GL backend
| * | Adapt Bindless to work with AOFFIFernando Sahmkow2019-04-081-7/+18
| | |
| * | Move ConstBufferAccessor to Maxwell3d, correct mistakes and clang format.Fernando Sahmkow2019-04-081-1/+2
| | |
| * | Fix TMMLFernando Sahmkow2019-04-081-5/+7
| | |
| * | Refactor GetTextureCode and GetTexCode to use an optional instead of optional parametersFernando Sahmkow2019-04-081-23/+24
| | |
| * | Implement TXQ_BFernando Sahmkow2019-04-081-2/+8
| | |
| * | Implement TMML_BFernando Sahmkow2019-04-081-5/+10
| | |
| * | Corrections to TEX_BFernando Sahmkow2019-04-081-4/+5
| | |
| * | Unify both sampler types.Fernando Sahmkow2019-04-081-10/+12
| | |
| * | Implement Bindless Samplers and TEX_B in the IR.Fernando Sahmkow2019-04-081-6/+52
| | |
* | | Merge pull request #2315 from ReinUsesLisp/severity-decompilerbunnei2019-04-171-4/+5
|\ \ \ | | | | | | | | shader_ir/decode: Reduce the severity of common assertions
| * | | shader_ir/memory: Reduce severity of LD_L cache management and log itReinUsesLisp2019-04-031-2/+2
| | | |
| * | | shader_ir/memory: Reduce severity of ST_L cache management and log itReinUsesLisp2019-04-031-2/+3
| | | |
* | | | shader_ir: Implement STG, keep track of global memory usage and flushReinUsesLisp2019-04-141-35/+74
| |_|/ |/| |
* | | Correct XMAD mode, psl and high_b on different encodings.Fernando Sahmkow2019-04-081-9/+30
| |/ |/|
* | shader_ir/decode: Silent implicit sign conversion warningMat M2019-03-311-2/+2
| | | | | | Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
* | shader_ir/decode: Implement AOFFI for TEX and TLD4ReinUsesLisp2019-03-301-24/+88
|/
* shader/decode: Remove extras from MetaTextureReinUsesLisp2019-02-261-14/+23
|
* shader/decode: Split memory and texture instructions decodingReinUsesLisp2019-02-262-493/+525
|
* Merge pull request #2118 from FernandoS27/ipa-improvebunnei2019-02-252-3/+14
|\ | | | | shader_decompiler: Improve Accuracy of Attribute Interpolation.
| * shader_decompiler: Improve Accuracy of Attribute Interpolation.Fernando Sahmkow2019-02-142-3/+14
| |
* | gl_shader_decompiler: Re-implement TLDS lodReinUsesLisp2019-02-121-1/+1
|/
* Merge pull request #2108 from FernandoS27/fix-ccbunnei2019-02-121-2/+2
|\ | | | | Fix incorrect value for CC bit in IADD
| * Fix incorrect value for CC bit in IADDFernando Sahmkow2019-02-111-2/+2
| |
* | Merge pull request #2109 from FernandoS27/fix-f2ibunnei2019-02-121-3/+3
|\ \ | | | | | | Corrected F2I None mode to RoundEven.
| * | Corrected F2I None mode to RoundEven.Fernando Sahmkow2019-02-111-3/+3
| |/
* | shader_ir: Remove F4 prefix to texture operationsReinUsesLisp2019-02-071-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.
* | shader_ir: Clean texture management codeReinUsesLisp2019-02-071-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.
* Merge pull request #2083 from ReinUsesLisp/shader-ir-cbuf-trackingbunnei2019-02-0725-34/+34
|\ | | | | shader/track: Add a more permissive global memory tracking
| * shader_ir: Rename BasicBlock to NodeBlockReinUsesLisp2019-02-0325-33/+32
| | | | | | | | It's not always used as a basic block. Rename it for consistency.
| * shader_ir: Pass decoded nodes as a whole instead of per basic blocksReinUsesLisp2019-02-0325-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.
* | Merge pull request #2081 from ReinUsesLisp/lmem-64bunnei2019-02-051-12/+43
|\ \ | | | | | | shader_ir/memory: Add LD_L 64 bits loads
| * | shader_ir/memory: Add ST_L 64 and 128 bits storesReinUsesLisp2019-02-031-3/+11
| | |
| * | shader_ir/memory: Add LD_L 128 bits loadsReinUsesLisp2019-02-031-7/+19
| | |
| * | shader_bytecode: Rename BytesN enums to BitsNReinUsesLisp2019-02-031-4/+4
| | |
| * | shader_ir/memory: Add LD_L 64 bits loadsReinUsesLisp2019-02-031-6/+17
| |/
* | Merge pull request #2082 from FernandoS27/txq-stlbunnei2019-02-051-6/+9
|\ \ | |/ |/| Fix TXQ not using the component mask.
| * Fix TXQ not using the component mask.Fernando Sahmkow2019-02-031-6/+9
| |
* | shader_ir: Unify constant buffer offset valuesReinUsesLisp2019-01-3013-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.
* shader_decode: Implement LDG and basic cbuf trackingReinUsesLisp2019-01-301-0/+49
|
* shader_ir: Fixup clang buildReinUsesLisp2019-01-161-4/+6
|
* shader_decode: Fixup XMADReinUsesLisp2019-01-151-1/+1
|
* shader_ir: Pass to decoder functions basic block's codeReinUsesLisp2019-01-1525-25/+25
|
* shader_decode: Improve zero flag implementationReinUsesLisp2019-01-1513-73/+53
|
* shader_ir: Remove composite primitives and use temporals insteadReinUsesLisp2019-01-151-145/+149
|
* shader_decode: Use proper primitive namesReinUsesLisp2019-01-152-8/+8
|
* shader_decode: Use BitfieldExtract instead of shift + andReinUsesLisp2019-01-155-46/+18
|
* shader_ir: Remove Ipa primitiveReinUsesLisp2019-01-151-3/+2
|
* shader_ir: Remove RZ and use Register::ZeroIndex insteadReinUsesLisp2019-01-151-6/+11
|
* shader_decode: Implement TEXS.F16ReinUsesLisp2019-01-151-13/+25
|
* shader_decode: Fixup R2PReinUsesLisp2019-01-151-2/+3
|
* shader_decode: Fixup WriteLogicOperation zero comparisonReinUsesLisp2019-01-151-1/+1
|
* shader_decode: Fixup PSETReinUsesLisp2019-01-151-2/+3
|
* shader_decode: Fixup clang-formatReinUsesLisp2019-01-152-2/+4
|
* video_core: Implement IR based geometry shadersReinUsesLisp2019-01-151-0/+25
|
* shader_decode: Implement VMAD and VSETPReinUsesLisp2019-01-151-0/+120
|
* shader_decode: Implement HSET2ReinUsesLisp2019-01-151-1/+43
|
* shader_decode: Rework HSETP2ReinUsesLisp2019-01-151-3/+5
|
* shader_decode: Implement R2PReinUsesLisp2019-01-151-1/+28
|
* shader_decode: Implement CSETPReinUsesLisp2019-01-151-14/+37
|
* shader_decode: Implement PSETReinUsesLisp2019-01-151-1/+16
|
* shader_decode: Implement HFMA2ReinUsesLisp2019-01-151-1/+53
|
* shader_decode: Implement POPCReinUsesLisp2019-01-151-0/+10
|
* shader_decode: Implement TLDS (untested)ReinUsesLisp2019-01-151-8/+61
|
* shader_decode: Update TLD4 reflecting #1862 changesReinUsesLisp2019-01-151-52/+49
|
* shader_ir: Fixup TEX and TEXS and partially fix TLD4 decompilingReinUsesLisp2019-01-151-50/+49
|
* shader_decode: Fixup FSETReinUsesLisp2019-01-151-2/+2
|
* shader_decode: Implement IADD32IReinUsesLisp2019-01-151-0/+11
|
* video_core: Return safe values after an assert hitsReinUsesLisp2019-01-156-8/+12
|
* shader_decode: Implement FFMAReinUsesLisp2019-01-151-1/+36
|
* shader_ir: Fixup file inclusions and clang-formatReinUsesLisp2019-01-151-1/+1
|
* shader_decode: Fixup clang-formatReinUsesLisp2019-01-152-3/+2
|
* shader_decode: Implement LEAReinUsesLisp2019-01-151-0/+55
|
* shader_decode: Implement IADD3ReinUsesLisp2019-01-151-0/+61
|
* shader_decode: Implement LOP3ReinUsesLisp2019-01-151-0/+60
|
* shader_decode: Implement ST_LReinUsesLisp2019-01-151-0/+17
|
* shader_decode: Implement LD_LReinUsesLisp2019-01-151-0/+18
|
* shader_decode: Implement HSETP2ReinUsesLisp2019-01-151-1/+37
|
* shader_decode: Implement HADD2 and HMUL2ReinUsesLisp2019-01-151-1/+48
|
* shader_decode: Implement HADD2_IMM and HMUL2_IMMReinUsesLisp2019-01-151-1/+28
|
* shader_decode: Implement MOV_SYSReinUsesLisp2019-01-151-0/+27
|
* shader_decode: Implement IMNMXReinUsesLisp2019-01-151-0/+16
|
* shader_decode: Implement F2F_CReinUsesLisp2019-01-151-2/+10
|
* shader_decode: Implement I2IReinUsesLisp2019-01-151-0/+26
|
* shader_decode: Implement BRA internal flagReinUsesLisp2019-01-151-4/+8
|
* shader_decode: Implement ISCADDReinUsesLisp2019-01-151-0/+15
|
* shader_decode: Implement XMADReinUsesLisp2019-01-151-1/+85
|
* shader_decode: Implement PBK and BRKReinUsesLisp2019-01-151-1/+22
|
* shader_decode: Implement LOPReinUsesLisp2019-01-151-0/+15
|
* shader_decode: Implement SELReinUsesLisp2019-01-151-0/+8
|
* shader_decode: Implement IADDReinUsesLisp2019-01-151-1/+28
|
* shader_decode: Implement ISETPReinUsesLisp2019-01-151-1/+30
|
* shader_decode: Implement BFIReinUsesLisp2019-01-151-1/+22
|
* shader_decode: Implement ISETReinUsesLisp2019-01-151-1/+27
|
* shader_decode: Implement LD_CReinUsesLisp2019-01-151-0/+31
|
* shader_decode: Implement SHLReinUsesLisp2019-01-151-0/+8
|
* shader_decode: Implement SHRReinUsesLisp2019-01-151-1/+26
|
* shader_decode: Implement LOP32IReinUsesLisp2019-01-151-1/+67
|
* shader_decode: Implement BFEReinUsesLisp2019-01-151-1/+25
|
* shader_decode: Implement FSETReinUsesLisp2019-01-151-1/+36
|
* shader_decode: Implement F2IReinUsesLisp2019-01-151-0/+37
|
* shader_decode: Implement I2FReinUsesLisp2019-01-151-0/+23
|
* shader_decode: Implement F2FReinUsesLisp2019-01-151-1/+37
|
* shader_decode: Stub DEPBARReinUsesLisp2019-01-151-0/+4
|
* shader_decode: Implement SSY and SYNCReinUsesLisp2019-01-151-0/+19
|
* shader_decode: Implement PSETPReinUsesLisp2019-01-151-1/+21
|
* shader_decode: Implement TMMLReinUsesLisp2019-01-151-3/+45
|
* shader_decode: Implement TEX and TXQReinUsesLisp2019-01-151-0/+219
|
* shader_decode: Implement TEXS (F32)ReinUsesLisp2019-01-151-0/+199
|
* shader_decode: Implement FSETPReinUsesLisp2019-01-151-1/+33
|
* shader_decode: Partially implement BRAReinUsesLisp2019-01-151-0/+12
|
* shader_decode: Implement IPAReinUsesLisp2019-01-151-0/+12
|
* shader_decode: Implement EXITReinUsesLisp2019-01-151-1/+32
|
* shader_decode: Implement ST_AReinUsesLisp2019-01-151-0/+30
|
* shader_decode: Implement LD_AReinUsesLisp2019-01-151-1/+39
|
* shader_decode: Implement FADD32IReinUsesLisp2019-01-151-0/+12
|
* shader_decode: Implement FMUL32_IMMReinUsesLisp2019-01-151-0/+10
|
* shader_decode: Implement MOV32_IMMReinUsesLisp2019-01-151-1/+9
|
* shader_decode: Stub RRO_C, RRO_R and RRO_IMMReinUsesLisp2019-01-151-0/+9
|
* shader_decode: Implement FMNMX_C, FMNMX_R and FMNMX_IMMReinUsesLisp2019-01-151-0/+18
|
* shader_decode: Implement MUFUReinUsesLisp2019-01-151-0/+29
|
* shader_decode: Implement FADD_C, FADD_R and FADD_IMMReinUsesLisp2019-01-151-0/+15
|
* shader_decode: Implement FMUL_C, FMUL_R and FMUL_IMMReinUsesLisp2019-01-151-0/+42
|
* shader_decode: Implement MOV_C and MOV_RReinUsesLisp2019-01-151-1/+23
|
* shader_ir: Initial implementationReinUsesLisp2019-01-1525-0/+576