Fernando Sahmkow
a0c697124c
Video_core: Address feedback
2023-01-04 14:39:42 -05:00
Fernando Sahmkow
a045e860dd
ShaderCompiler: Inline driver specific constants.
2023-01-03 16:29:25 -05:00
Fernando Sahmkow
aad0cbf024
MacroHLE: Add HLE replacement for base vertex and base instance.
2023-01-01 16:43:57 -05:00
Morph
99ceb03a1c
general: Convert source file copyright comments over to SPDX
...
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
2022-04-23 05:55:32 -04:00
ameerj
574a2c4b77
shader_recompiler: Reduce unused includes
2022-03-20 02:25:08 -04:00
ameerj
14ac0c2923
shader: Add integer attribute get optimization pass
...
Works around an nvidia driver bug, where casting the integer attributes to float and back to an integer always returned 0.
2021-12-29 19:03:49 -05:00
Morph
db07ca6c7f
Merge pull request #6767 from ReinUsesLisp/fold-float-pack
...
shader: Fold UnpackFloat2x16 and PackFloat2x16
2021-07-30 02:07:52 -04:00
ReinUsesLisp
8c9febe8f7
shader: Fold UnpackFloat2x16 and PackFloat2x16
...
Simplifies the code a bit when possible. These instructions should be
no-ops codegen wise.
2021-07-29 21:22:52 -03:00
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
ReinUsesLisp
09fb41dc63
shader: Use TryInstRecursive on XMAD multiply folding
...
Simplify a bit the logic.
2021-07-26 04:15:27 -03:00
ReinUsesLisp
bf2956d77a
shader: Avoid usage of C++20 ranges to build in clang
2021-07-22 21:51:40 -04:00
ReinUsesLisp
97e80dda55
shader: Add constant propagation to integer vectors
2021-07-22 21:51:39 -04:00
ReinUsesLisp
fbf5cdcba0
shader: Fix FSwizzleAdd folding when going through phi nodes
2021-07-22 21:51:34 -04:00
ReinUsesLisp
d54d7de40e
glasm: Rework control flow introducing a syntax list
...
This commit regresses VertexA shaders, their transformation pass has to
be adapted to the new control flow.
2021-07-22 21:51:31 -04:00
ameerj
20e86fd615
shader: Fix BFE s32 undefined check
...
Our unit tests were hitting this exception.
2021-07-22 21:51:29 -04:00
ReinUsesLisp
50eb03382e
shader: Fix error checking in bitfieldExtract and implement bitfieldInsert folding
2021-07-22 21:51:29 -04:00
ReinUsesLisp
050e81500c
shader: Move microinstruction header to the value header
2021-07-22 21:51:28 -04:00
ReinUsesLisp
a8d46a5eae
shader: Add constant propagation for arithmetic right shifts
2021-07-22 21:51:28 -04:00
FernandoS27
080857b60e
shader: Add coarse derivatives
2021-07-22 21:51:28 -04:00
FernandoS27
04c459fc8d
shader: Implement fine derivates constant propagation
2021-07-22 21:51:28 -04:00
ReinUsesLisp
2597cee85b
shader: Add constant propagation for *&^| binary operations
2021-07-22 21:51:27 -04:00
lat9nq
0bb85f6a75
shader_recompiler,video_core: Cleanup some GCC and Clang errors
...
Mostly fixing unused *, implicit conversion, braced scalar init,
fpermissive, and some others.
Some Clang errors likely remain in video_core, and std::ranges is still
a pertinent issue in shader_recompiler
shader_recompiler: cmake: Force bracket depth to 1024 on Clang
Increases the maximum fold expression depth
thread_worker: Include condition_variable
Don't use list initializers in control flow
Co-authored-by: ReinUsesLisp <reinuseslisp@airmail.cc>
2021-07-22 21:51:26 -04:00
FernandoS27
baec84247f
shader: Address Feedback
2021-07-22 21:51:26 -04:00
FernandoS27
bee8188799
shader: Fold composite extract
2021-07-22 21:51:25 -04:00
FernandoS27
c3bace756f
shader: Fold comparisons and Pack/Unpack16
2021-07-22 21:51:25 -04:00
ReinUsesLisp
5f22cd89e2
shader: Fix constant propagation to use reverse post order
2021-07-22 21:51:25 -04:00
ReinUsesLisp
d9c5bd9509
shader: Refactor PTP and other minor changes
2021-07-22 21:51:24 -04:00
FernandoS27
742d11c2ad
shader: Implement TLD4.PTP
2021-07-22 21:51:24 -04:00
FernandoS27
c7c518e280
shader: Implement TLD4 and TLD4_B
2021-07-22 21:51:24 -04:00
ReinUsesLisp
2be5c7eff4
shader: Fold interpolation multiplications
2021-07-22 21:51:24 -04:00
ameerj
e4e1cc11b8
shader: Implement DMNMX, DSET, DSETP
2021-07-22 21:51:24 -04:00
ReinUsesLisp
71f96fa636
shader: Implement CAL inlining function calls
2021-07-22 21:51:23 -04:00
ReinUsesLisp
3a63fa0477
shader: Partial implementation of LDC
2021-07-22 21:51:23 -04:00
ReinUsesLisp
e44752ddc8
shader: FMUL, select, RRO, and MUFU fixes
2021-07-22 21:51:22 -04:00
ReinUsesLisp
6db69990da
spirv: Add lower fp16 to fp32 pass
2021-07-22 21:51:22 -04:00
ReinUsesLisp
58914796c0
shader: Add XMAD multiplication folding optimization
2021-07-22 21:51:22 -04:00
ReinUsesLisp
b5d7279d87
spirv: Initial bindings support
2021-07-22 21:51:22 -04:00
ReinUsesLisp
8af9297f09
shader: Misc fixes
2021-07-22 21:51:22 -04:00
ReinUsesLisp
9170200a11
shader: Initial implementation of an AST
2021-07-22 21:51:22 -04:00
ReinUsesLisp
6dafb08f52
shader: Better constant folding
2021-07-22 21:51:22 -04:00
ReinUsesLisp
be94ee88d2
shader: Make typed IR
2021-07-22 21:51:21 -04:00
ReinUsesLisp
e81739493a
shader: Constant propagation and global memory to storage buffer
2021-07-22 21:51:21 -04:00