summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_shader_decompiler.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2019-04-16shader_ir/decode: Fix half float pre-operations and remove MetaHalfArithmeticReinUsesLisp1-28/+23
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-16gl_shader_decompiler: Fix MrgH0 decompilationReinUsesLisp1-2/+2
GLSL decompilation for HMergeH0 was wrong. This addresses that issue.
2019-04-16shader_ir/decode: Implement half float saturationReinUsesLisp1-4/+11
2019-04-16renderer_opengl: Implement half float NaN comparisonsReinUsesLisp1-18/+42
2019-04-14shader_ir: Implement STG, keep track of global memory usage and flushReinUsesLisp1-11/+25
2019-04-10Remove bounding in LD_CFernando Sahmkow1-2/+1
2019-04-05gl_shader_decompiler: Rename GenerateTemporal() to GenerateTemporary()Lioncash1-12/+12
Temporal generally indicates a relation to time, but this is just creating a temporary, so this isn't really an accurate name for what the function is actually doing.
2019-04-05gl_shader_decompiler: Fix TXQ typesReinUsesLisp1-2/+3
TXQ returns integer types. Shaders usually do: R0 = TXQ(); // => int R0 = static_cast<float>(R0); If we don't treat it as an integer, it will cast a binary float value as float - resulting in a corrupted number.
2019-04-03gl_shader_decompiler: Return early when an operation is invalidReinUsesLisp1-1/+6
2019-03-31gl_shader_decompiler: Hide local definitions inside an anonymous namespaceReinUsesLisp1-6/+8
2019-03-30gl_shader_decompiler: Add AOFFI backing implementationReinUsesLisp1-38/+85
2019-02-26shader/decode: Remove extras from MetaTextureReinUsesLisp1-21/+35
2019-02-14shader_decompiler: Improve Accuracy of Attribute Interpolation.Fernando Sahmkow1-27/+17
2019-02-12gl_shader_decompiler: Re-implement TLDS lodReinUsesLisp1-21/+34
2019-02-07shader_ir: Remove F4 prefix to texture operationsReinUsesLisp1-12/+12
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-32/+41
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-07gl_shader_disk_cache: Save GLSL and entries into the precompiled fileReinUsesLisp1-3/+4
2019-02-07gl_shader_decompiler: Remove name entriesReinUsesLisp1-5/+3
2019-02-03shader_ir: Rename BasicBlock to NodeBlockReinUsesLisp1-3/+3
It's not always used as a basic block. Rename it for consistency.
2019-01-30shader_ir: Unify constant buffer offset valuesReinUsesLisp1-2/+3
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-30gl_shader_cache: Use explicit bindingsReinUsesLisp1-3/+8
2019-01-30shader_decode: Implement LDG and basic cbuf trackingReinUsesLisp1-6/+38
2019-01-15gl_shader_decompiler: replace std::get<> with std::get_if<> for macOS compatibilityReinUsesLisp1-44/+58
2019-01-15gl_shader_decompiler: Inline textureGather componentReinUsesLisp1-15/+16
2019-01-15shader_ir: Remove composite primitives and use temporals insteadReinUsesLisp1-66/+37
2019-01-15gl_shader_decompiler: Fixup AssignCompositeHalfReinUsesLisp1-1/+1
2019-01-15shader_decode: Use proper primitive namesReinUsesLisp1-10/+8
2019-01-15shader_decode: Use BitfieldExtract instead of shift + andReinUsesLisp1-0/+7
2019-01-15shader_ir: Remove Ipa primitiveReinUsesLisp1-8/+0
2019-01-15gl_shader_decompiler: Use rasterizer's UBO size limitReinUsesLisp1-1/+3
2019-01-15gl_shader_gen: Fixup code formattingReinUsesLisp1-1/+1
2019-01-15video_core: Rename glsl_decompiler to gl_shader_decompilerReinUsesLisp1-1/+1
2019-01-15shader_ir: Remove RZ and use Register::ZeroIndex insteadReinUsesLisp1-4/+5
2019-01-15shader_decode: Implement TEXS.F16ReinUsesLisp1-0/+26
2019-01-15glsl_decompiler: Fixup TLDSReinUsesLisp1-1/+0
2019-01-15glsl_decompiler: Fixup geometry shadersReinUsesLisp1-10/+16
2019-01-15glsl_decompiler: Fixup permissive member function declarationsReinUsesLisp1-133/+133
2019-01-15video_core: Implement IR based geometry shadersReinUsesLisp1-2/+68
2019-01-15shader_decode: Implement HSET2ReinUsesLisp1-0/+6
2019-01-15shader_decode: Rework HSETP2ReinUsesLisp1-26/+33
2019-01-15shader_decode: Implement HFMA2ReinUsesLisp1-4/+5
2019-01-15glsl_decompiler: Remove HNegate inliningReinUsesLisp1-10/+0
2019-01-15shader_decode: Implement POPCReinUsesLisp1-0/+7
2019-01-15shader_decode: Implement TLDS (untested)ReinUsesLisp1-2/+27
2019-01-15shader_ir: Fixup TEX and TEXS and partially fix TLD4 decompilingReinUsesLisp1-9/+20
2019-01-15video_core: Return safe values after an assert hitsReinUsesLisp1-0/+5
2019-01-15video_core: Address feedbackReinUsesLisp1-1/+1
2019-01-15glsl_decompiler: ImplementationReinUsesLisp1-0/+1393