yuzu/src/shader_recompiler
ReinUsesLisp 66a0cedba3 shader: Fold integer FMA from Nvidia's pattern
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-26 04:58:02 -03:00
..
backend shader: Fix disabled attribute default values 2021-07-22 21:51:40 -04:00
frontend shader: Add TryInstRecursive utility to values 2021-07-26 01:31:05 -03:00
ir_opt shader: Fold integer FMA from Nvidia's pattern 2021-07-26 04:58:02 -03:00
CMakeLists.txt shader: Rework varyings and implement passthrough geometry shaders 2021-07-22 21:51:39 -04:00
environment.h shader: Rework varyings and implement passthrough geometry shaders 2021-07-22 21:51:39 -04:00
exception.h shader: GCC fmt 8.0.0 fixes 2021-07-22 21:51:40 -04:00
host_translate_info.h shader: Add support for native 16-bit floats 2021-07-22 21:51:38 -04:00
object_pool.h shader: Address feedback + clang format 2021-07-22 21:51:26 -04:00
profile.h glsl: Clamp shared mem size to GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 2021-07-22 21:51:40 -04:00
program_header.h shader: Rework varyings and implement passthrough geometry shaders 2021-07-22 21:51:39 -04:00
runtime_info.h shader: Rework varyings and implement passthrough geometry shaders 2021-07-22 21:51:39 -04:00
shader_info.h shader: Rework varyings and implement passthrough geometry shaders 2021-07-22 21:51:39 -04:00
stage.h shader: Unify shader stage types 2021-07-22 21:51:39 -04:00
varying_state.h shader: Rework varyings and implement passthrough geometry shaders 2021-07-22 21:51:39 -04:00