summaryrefslogtreecommitdiffstats
path: root/src/video_core/shader/shader_ir.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* shader/shader_ir: Mark tracking functions as const member functionsLioncash2019-05-191-3/+4
| | | | | These don't actually modify instance state, so they can be marked as const member functions
* shader/shader_ir: Place implementations of constructor and destructor in cpp fileLioncash2019-05-191-5/+2
| | | | | | Given the class contains quite a lot of non-trivial types, place the constructor and destructor within the cpp file to avoid inlining construction and destruction code everywhere the class is used.
* shader_ir: Move Sampler index entry in operand< to sort declarationsReinUsesLisp2019-04-261-2/+2
|
* shader_ir: Add missing entry to Sampler operand< comparisonReinUsesLisp2019-04-261-2/+3
|
* Merge pull request #2409 from ReinUsesLisp/half-floatsbunnei2019-04-201-22/+25
|\ | | | | shader_ir/decode: Miscellaneous fixes to half-float decompilation
| * shader_ir/decode: Fix half float pre-operations and remove MetaHalfArithmeticReinUsesLisp2019-04-161-16/+10
| | | | | | | | | | | | | | 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-0/+3
| |
| * renderer_opengl: Implement half float NaN comparisonsReinUsesLisp2019-04-161-6/+12
| |
* | Merge pull request #2348 from FernandoS27/guest-bindlessbunnei2019-04-181-5/+35
|\ \ | | | | | | Implement Bindless Textures on Shader Decompiler and GL backend
| * | Move ConstBufferAccessor to Maxwell3d, correct mistakes and clang format.Fernando Sahmkow2019-04-081-2/+2
| | |
| * | Refactor GetTextureCode and GetTexCode to use an optional instead of optional parametersFernando Sahmkow2019-04-081-11/+9
| | |
| * | Implement Bindless Handling on SetupTextureFernando Sahmkow2019-04-081-4/+3
| | |
| * | Unify both sampler types.Fernando Sahmkow2019-04-081-8/+28
| | |
| * | Implement Bindless Samplers and TEX_B in the IR.Fernando Sahmkow2019-04-081-9/+22
| |/
* / shader_ir: Implement STG, keep track of global memory usage and flushReinUsesLisp2019-04-141-3/+13
|/
* shader_ir/decode: Implement AOFFI for TEX and TLD4ReinUsesLisp2019-03-301-3/+6
|
* shader_ir: Implement immediate register trackingReinUsesLisp2019-03-301-0/+3
|
* shader/decode: Remove extras from MetaTextureReinUsesLisp2019-02-261-1/+3
|
* shader/decode: Split memory and texture instructions decodingReinUsesLisp2019-02-261-0/+1
|
* shader_ir: Remove F4 prefix to texture operationsReinUsesLisp2019-02-071-6/+6
| | | | | | 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-5/+5
| | | | | | | | | 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-071-45/+46
|\ | | | | shader/track: Add a more permissive global memory tracking
| * shader_ir: Rename BasicBlock to NodeBlockReinUsesLisp2019-02-031-46/+46
| | | | | | | | 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-031-25/+26
| | | | | | | | | | | | | | | | | | 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.
* | gl_shader_disk_cache: Save GLSL and entries into the precompiled fileReinUsesLisp2019-02-071-0/+9
|/
* shader_ir: Unify constant buffer offset valuesReinUsesLisp2019-01-301-1/+1
| | | | | | | 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-4/+34
|
* shader/shader_ir: Amend three comment typosLioncash2019-01-281-3/+3
| | | | | Given we're in the area, these are three trivial typos that can be corrected.
* shader/shader_ir: Amend constructor initializer ordering for AbufNodeLioncash2019-01-281-2/+2
| | | | | Orders the class members in the same order that they would actually be initialized in. Gets rid of two compiler warnings.
* shader_ir: Pass to decoder functions basic block's codeReinUsesLisp2019-01-151-25/+25
|
* shader_decode: Improve zero flag implementationReinUsesLisp2019-01-151-2/+7
|
* shader_ir: Remove composite primitives and use temporals insteadReinUsesLisp2019-01-151-30/+30
|
* shader_decode: Use proper primitive namesReinUsesLisp2019-01-151-7/+5
|
* shader_decode: Use BitfieldExtract instead of shift + andReinUsesLisp2019-01-151-2/+7
|
* shader_ir: Remove Ipa primitiveReinUsesLisp2019-01-151-2/+0
|
* shader_ir: Remove RZ and use Register::ZeroIndex insteadReinUsesLisp2019-01-151-2/+0
|
* shader_decode: Implement TEXS.F16ReinUsesLisp2019-01-151-2/+6
|
* video_core: Implement IR based geometry shadersReinUsesLisp2019-01-151-0/+3
|
* shader_decode: Implement VMAD and VSETPReinUsesLisp2019-01-151-0/+4
|
* shader_decode: Implement HSET2ReinUsesLisp2019-01-151-0/+1
|
* shader_decode: Rework HSETP2ReinUsesLisp2019-01-151-7/+8
|
* shader_decode: Implement HFMA2ReinUsesLisp2019-01-151-0/+1
|
* shader_decode: Implement POPCReinUsesLisp2019-01-151-1/+3
|
* shader_decode: Implement TLDS (untested)ReinUsesLisp2019-01-151-0/+4
|
* shader_decode: Update TLD4 reflecting #1862 changesReinUsesLisp2019-01-151-0/+3
|
* shader_ir: Fixup TEX and TEXS and partially fix TLD4 decompilingReinUsesLisp2019-01-151-1/+3
|
* video_core: Address feedbackReinUsesLisp2019-01-151-11/+10
|
* shader_ir: Fixup file inclusions and clang-formatReinUsesLisp2019-01-151-1/+0
|
* shader_ir: Move comment node stringMat M2019-01-151-2/+2
| | | Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
* shader_ir: Address feedback to avoid UB in bit castingReinUsesLisp2019-01-151-2/+4
|
* shader_decode: Implement LOP3ReinUsesLisp2019-01-151-0/+2
|
* shader_decode: Implement LOP32IReinUsesLisp2019-01-151-0/+5
|
* shader_decode: Implement TEX and TXQReinUsesLisp2019-01-151-0/+4
|
* shader_decode: Implement TEXS (F32)ReinUsesLisp2019-01-151-0/+18
|
* shader_ir: Add condition code helperReinUsesLisp2019-01-151-0/+3
|
* shader_ir: Add predicate combiner helperReinUsesLisp2019-01-151-0/+3
|
* shader_ir: Add comparison helpersReinUsesLisp2019-01-151-0/+9
|
* shader_ir: Add half float helpersReinUsesLisp2019-01-151-0/+7
|
* shader_ir: Add integer helpersReinUsesLisp2019-01-151-0/+5
|
* shader_ir: Add float helpersReinUsesLisp2019-01-151-0/+5
|
* shader_ir: Add settersReinUsesLisp2019-01-151-0/+8
|
* shader_ir: Add local memory gettersReinUsesLisp2019-01-151-0/+3
|
* shader_ir: Add internal flag gettersReinUsesLisp2019-01-151-0/+2
|
* shader_ir: Add attribute gettersReinUsesLisp2019-01-151-0/+5
|
* shader_ir: Add constant buffer gettersReinUsesLisp2019-01-151-0/+4
|
* shader_ir: Add register getterReinUsesLisp2019-01-151-0/+2
|
* shader_ir: Add immediate node constructorsReinUsesLisp2019-01-151-1/+18
|
* shader_ir: Initial implementationReinUsesLisp2019-01-151-0/+662