aboutsummaryrefslogtreecommitdiff
path: root/src/shader_recompiler/frontend
AgeCommit message (Collapse)Author
2022-03-20general: Fix clang/gcc build errorsameerj
2022-03-20shader_recompiler: Reduce unused includesameerj
2022-03-18shader_recompiler/EXIT: skip render targets with no outputsLiam
2022-03-17shader_recompiler/EXIT: increment output register on failed enable testLiam
2022-03-16shader_recompiler: Implement LDC.IS address modeLiam
2022-03-13Shader decompiler: do constant propgation before texture pass.Fernando Sahmkow
2022-03-08shader_recompiler/LOP3: Use brute force python results within switch/case.Markus Wick
Thanks to @asLody for optimizing this function. This raised the focus that this function should be optimized more. The current table assumes that the host GPU is able to invert for free, so only AND,OR,XOR are accumulated in the performance metrik. Performance results: Instructions 0: 8 1: 30 2: 114 3: 80 4: 24 Latency 0: 8 1: 30 2: 194 3: 24
2022-01-29lower_int64_to_int32: Add 64-bit atomic fallbacksameerj
2022-01-29shaders: Add U64->U32x2 Atomic fallback functionsameerj
2022-01-27video_minimum_maximum: Implement src operand selectorsameerj
Used by Pokemon Legends: Arceus
2022-01-25shader_recompiler: Remove unnecessary [[nodiscard]]Lioncash
Since ConvertLegacyToGeneric has a void return value, there's nothing that is actually returned by the function.
2021-12-29shader: Add integer attribute get optimization passameerj
Works around an nvidia driver bug, where casting the integer attributes to float and back to an integer always returned 0.
2021-12-18Address format clangvonchenplus
2021-12-18Remove spirv handle legacy related codevonchenplus
2021-11-19Implement convert legacy to genericFeng Chen
2021-11-16rescaling_pass: Logic simplification and minor style cleanupameerj
2021-11-16Shader: Don't rescale FragCoord if used by ShuffleFernando Sahmkow
2021-11-16shader: Properly scale image reads and add GL SPIR-V supportReinUsesLisp
Thanks for everything!
2021-11-16spirv: Implement rescaling patchingReinUsesLisp
2021-11-16shader: Add IsTextureScaled opcodeReinUsesLisp
2021-11-16shader: Add copy constructor to instructionsReinUsesLisp
2021-11-16shader: Add integer division opcodesReinUsesLisp
2021-11-16shader: Add resolution down factor opcodeReinUsesLisp
2021-11-01ShaderCache: Fix Phi Nodes Type on OGL.Fernando Sahmkow
2021-10-31ShaderCache: Order Phi Arguments from farthest away to nearest.Fernando Sahmkow
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-07-29Merge pull request #6722 from ReinUsesLisp/xmad-optsbunnei
shader: Fold integer FMA from Nvidia's pattern
2021-07-26Merge pull request #6724 from lioncash/nodisc-shaderRodrigo Locatti
shader_recompiler: Remove unnecessary [[nodiscard]] instances
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-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: Implement ISETP.Xameerj
2021-07-22shader: Avoid usage of C++20 ranges to build in clangReinUsesLisp
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-22shader: Ignore global memory ops on devices lacking int64 supportameerj
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: Use std::bit_cast instead of Common::BitCast for passthroughReinUsesLisp
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: Emulate 64-bit integers when not supportedReinUsesLisp
Useful for mobile and Intel Xe devices.
2021-07-22shader: Remove IAbs64ReinUsesLisp
2021-07-22shader_recompiler: Fix IADD3 input partitioningameerj
2021-07-22shader: Move loop safety tests to code emissionReinUsesLisp
2021-07-22shader: Calibrate loop safety thresholdReinUsesLisp