summaryrefslogtreecommitdiff
path: root/src/shader_recompiler
AgeCommit message (Collapse)Author
2021-09-02Add input/output locationFeng Chen
2021-09-01Add colorfront and txtcoord supportFeng Chen
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
2021-07-22glsl: Update TessellationControl gl_inameerj
Adheres to GL_ARB_separate_shader_objects requirements
2021-07-22shader: Implement ISETP.Xameerj
2021-07-22shader: Avoid usage of C++20 ranges to build in clangReinUsesLisp
2021-07-22glsl: Clamp shared mem size to GL_MAX_COMPUTE_SHARED_MEMORY_SIZEameerj
2021-07-22shader_recompiler, video_core: Resolve clang errorslat9nq
Silences the following warnings-turned-errors: -Wsign-conversion -Wunused-private-field -Wbraced-scalar-init -Wunused-variable And some other errors
2021-07-22shader: Manually convert from array<u32> to bitset instead of using bit_castReinUsesLisp
2021-07-22glsl: Fix tracking of info.uses_shadow_lodameerj
2021-07-22shader: Ignore global memory ops on devices lacking int64 supportameerj
2021-07-22dual_vertex_pass: Clang formatameerj
2021-07-22emit_spirv: Workaround VK_KHR_shader_float_controls on fp16 NvidiaReinUsesLisp
Fix regression on Fire Emblem: Three Houses when using native fp16.
2021-07-22shader: GCC fmt 8.0.0 fixeslat9nq
2021-07-22shader: Account for 33-bit IADD3 scenarioameerj
2021-07-22shader: Only apply shift on register mode for IADD3ReinUsesLisp
2021-07-22shader: Fix disabled and unwritten attributes and varyingsReinUsesLisp
2021-07-22glsl: Fix shared and local memory declarationsameerj
account for the fact that program.*memory_size is in units of bytes.
2021-07-22opengl: Implement LOP.CCameerj
Used by MH:Rise
2021-07-22spirv: Fix code emission when descriptor aliasing is unsupportedReinUsesLisp
Fixes OpenGL.
2021-07-22glsl: Declare local memory in mainameerj
2021-07-22glsl: Add passthrough geometry shader supportameerj
2021-07-22shader: Use std::bit_cast instead of Common::BitCast for passthroughReinUsesLisp
2021-07-22glasm: Add passthrough geometry shader supportReinUsesLisp
2021-07-22shader: Rework varyings and implement passthrough geometry shadersReinUsesLisp
Put all varyings into a single std::bitset with helpers to access it. Implement passthrough geometry shaders using host's.
2021-07-22shader: Only verify shader when graphics debugging is enabledReinUsesLisp
2021-07-22shader: Unify shader stage typesReinUsesLisp
2021-07-22lower_int64_to_int32: Add missing includelat9nq