summaryrefslogtreecommitdiff
path: root/src/shader_recompiler
AgeCommit message (Collapse)Author
2021-10-24TexturePass: Fix clamping of images as this allowed negative indices.Fernando Sahmkow
2021-10-16Merge pull request #7077 from FernandoS27/face-downAmeer J
A series of fixes to queries and indexed samplers.
2021-10-17Shader Compiler: avoid overflowed indices on indixed samplers.Fernando Sahmkow
2021-09-29style: Remove extra space preceding the :: operatorMorph
2021-09-24general: Update style to clang-format-12ameerj
2021-09-15Spir-V: Rescale the frag depth to 0,1 mode when -1,1 mode is used in Vulkan.Fernando Sahmkow
2021-09-12Merge pull request #6948 from ameerj/amd-warp-fixMorph
shaders: Fix warp instructions on 64-thread warp devices
2021-09-08Merge pull request #6962 from vonchenplus/spirv_support_legacy_attributebunnei
renderer_vulkan: Spirv support glsl legacy attribute
2021-09-08Detail adjustmentFeng Chen
2021-09-08Detail adjustmentFeng Chen
2021-09-07Re-implement get unused locationFeng Chen
2021-09-07Move attribute related definitions to spirv anonymous namespaceFeng Chen
2021-09-06Dynamic get unused locationFeng Chen
2021-09-06Implement intput and output fixed fnc texturesFeng Chen
2021-09-03Rename parametersFeng Chen
2021-09-03Fix create GraphicsPipelines crashFeng Chen
2021-09-02Add input/output locationFeng Chen
2021-09-01Merge pull request #6900 from ameerj/attr-reorderbunnei
structured_control_flow: Add DemoteCombinationPass
2021-08-31emit_glsl_warp: Fix shuffle ops for 64-thread warp sizesameerj
2021-08-31emit_glsl_warp: Fix ballot related ops for 64-thread warp sizesameerj
2021-08-31emit_spirv_warp: Fix shuffle ops for 64-thread warp sizesameerj
2021-08-31emit_spirv_warp: Fix ballot related ops for 64-thread warp sizesameerj
2021-09-01Add colorfront and txtcoord supportFeng Chen
2021-08-30structured_control_flow: Skip reordering nested demote branches.ameerj
Nested demote branches add complexity with combining the condition if it has not been initialized yet. Skip them for the time being.
2021-08-30structured_control_flow: Conditionally invoke demote reorder passameerj
This is only needed on select drivers when a fragment shader discards/demotes.
2021-08-28structured_control_flow: Add DemoteCombinationPassameerj
Some drivers misread data when demotes are interleaved in the program. This moves demote branches to be checked at the end of the program. Fixes "wireframe" issue in Pokemon SwSh on some drivers
2021-08-26emit_spirv_context_get_set: Fix Get FrontFace return valueameerj
The IR expects GetAttribute to return an F32 value. This case was returning a U32 instead.
2021-08-19SPIR-V: Merge two ifs in EmitGetAttributeValeri
2021-07-30Merge pull request #6767 from ReinUsesLisp/fold-float-packMorph
shader: Fold UnpackFloat2x16 and PackFloat2x16
2021-07-29Merge pull request #6722 from ReinUsesLisp/xmad-optsbunnei
shader: Fold integer FMA from Nvidia's pattern
2021-07-29shader: Fold UnpackFloat2x16 and PackFloat2x16ReinUsesLisp
Simplifies the code a bit when possible. These instructions should be no-ops codegen wise.
2021-07-27shader: Mark ConvertF16F32 and ConvertF32F16 as fp16 instructionsReinUsesLisp
Fixes instances where fp16 types are not declared on SPIR-V but they are used. This shouldn't happen on master, as it's been uncovered by an additional optimization pass.
2021-07-27exception: Make constructors explicitLioncash
Ensures that exception construction is always explicit.
2021-07-27exception: Make what() member function nodiscardLioncash
2021-07-27exception: Narrow down specific headerLioncash
We can use the <exception> header instead of pulling in all of the exception-style classes.
2021-07-26Merge pull request #6724 from lioncash/nodisc-shaderRodrigo Locatti
shader_recompiler: Remove unnecessary [[nodiscard]] instances
2021-07-26Merge pull request #6726 from lioncash/hguardRodrigo Locatti
emit_spirv_instructions: Add missing header guard
2021-07-26Merge pull request #6727 from lioncash/topologyRodrigo Locatti
emit_glasm: Fix LINESS_ADJACENCY typo in InputPrimitive()
2021-07-26Merge pull request #6723 from lioncash/shaderRodrigo Locatti
object_pool: Add missing return in Chunk move assignment operator
2021-07-26emit_glasm: Fix LINESS_ADJACENCY typo in InputPrimitive()Lioncash
This should be LINES_ADJACENCY
2021-07-26emit_spirv_instructions: Add missing header guardLioncash
2021-07-26shader_recompiler: Remove unnecessary [[nodiscard]] instancesLioncash
[[nodiscard]] doesn't do anything on functions with a void return type and causes superfluous warnings.
2021-07-26control_flow: Fix duplicate switch case in OpcodeTokenLioncash
This previously duplicated the case of the PBK case above it.
2021-07-26object_pool: Add missing return in Chunk move assignment operatorLioncash
Prevents undefined behavior from occurring.
2021-07-26shader: Fold integer FMA from Nvidia's patternReinUsesLisp
Fold shaders doing "a * b + c" on integers from the pattern generated by Nvidia's GL compiler. On a somewhat complex compute shader it reduces the code size by 16 instructions from 2 matches on Turing GPUs. On Intel as extracted from KHR_pipeline_executable_properties: Before the optimization: ``` Instruction Count: 2057 Basic Block Count: 45 Scratch Memory Size: 14752 Spill Count: 232 Fill Count: 261 SEND Count: 610 Cycle Count: 11325 ``` After the optimization: ``` Instruction Count: 2046 Basic Block Count: 44 Scratch Memory Size: 13728 Spill Count: 219 Fill Count: 268 SEND Count: 604 Cycle Count: 11367 ```
2021-07-26shader: Use TryInstRecursive on XMAD multiply foldingReinUsesLisp
Simplify a bit the logic.
2021-07-26shader: Add TryInstRecursive utility to valuesReinUsesLisp
2021-07-22shader: Support out of bound local memory reads and immediate writesReinUsesLisp
Support ignoring immediate out of bound writes. Writing dynamically out of bounds is not yet supported (e.g. R0+0x4). Reading out of bounds yields zero. This is supported checking for the size from the IR; if the input is immediate, the optimization passes will drop it.
2021-07-22shader: Fix disabled attribute default valuesameerj
2021-07-22glsl: Simplify FCMP emissionameerj