Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge pull request #6767 from ReinUsesLisp/fold-float-pack | Morph | 2021-07-30 | 1 | -0/+4 |
|\ | | | | | shader: Fold UnpackFloat2x16 and PackFloat2x16 | ||||
| * | shader: Fold UnpackFloat2x16 and PackFloat2x16 | ReinUsesLisp | 2021-07-30 | 1 | -0/+4 |
| | | | | | | | | | | Simplifies the code a bit when possible. These instructions should be no-ops codegen wise. | ||||
* | | shader: Fold integer FMA from Nvidia's pattern | ReinUsesLisp | 2021-07-26 | 1 | -0/+175 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 ``` | ||||
* | | shader: Use TryInstRecursive on XMAD multiply folding | ReinUsesLisp | 2021-07-26 | 1 | -14/+12 |
|/ | | | | Simplify a bit the logic. | ||||
* | shader: Avoid usage of C++20 ranges to build in clang | ReinUsesLisp | 2021-07-23 | 1 | -2/+3 |
| | |||||
* | shader: Add constant propagation to integer vectors | ReinUsesLisp | 2021-07-23 | 1 | -0/+9 |
| | |||||
* | shader: Fix FSwizzleAdd folding when going through phi nodes | ReinUsesLisp | 2021-07-23 | 1 | -2/+2 |
| | |||||
* | glasm: Rework control flow introducing a syntax list | ReinUsesLisp | 2021-07-23 | 1 | -20/+0 |
| | | | | | This commit regresses VertexA shaders, their transformation pass has to be adapted to the new control flow. | ||||
* | shader: Fix BFE s32 undefined check | ameerj | 2021-07-23 | 1 | -1/+1 |
| | | | | Our unit tests were hitting this exception. | ||||
* | shader: Fix error checking in bitfieldExtract and implement bitfieldInsert folding | ReinUsesLisp | 2021-07-23 | 1 | -5/+14 |
| | |||||
* | shader: Move microinstruction header to the value header | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Add constant propagation for arithmetic right shifts | ReinUsesLisp | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | shader: Add coarse derivatives | FernandoS27 | 2021-07-23 | 1 | -8/+0 |
| | |||||
* | shader: Implement fine derivates constant propagation | FernandoS27 | 2021-07-23 | 1 | -0/+67 |
| | |||||
* | shader: Add constant propagation for *&^| binary operations | ReinUsesLisp | 2021-07-23 | 1 | -0/+12 |
| | |||||
* | shader_recompiler,video_core: Cleanup some GCC and Clang errors | lat9nq | 2021-07-23 | 1 | -23/+26 |
| | | | | | | | | | | | | | | | | | 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> | ||||
* | shader: Address Feedback | FernandoS27 | 2021-07-23 | 1 | -6/+3 |
| | |||||
* | shader: Fold composite extract | FernandoS27 | 2021-07-23 | 1 | -0/+62 |
| | |||||
* | shader: Fold comparisons and Pack/Unpack16 | FernandoS27 | 2021-07-23 | 1 | -1/+41 |
| | |||||
* | shader: Fix constant propagation to use reverse post order | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | shader: Refactor PTP and other minor changes | ReinUsesLisp | 2021-07-23 | 1 | -20/+2 |
| | |||||
* | shader: Implement TLD4.PTP | FernandoS27 | 2021-07-23 | 1 | -0/+18 |
| | |||||
* | shader: Implement TLD4 and TLD4_B | FernandoS27 | 2021-07-23 | 1 | -0/+12 |
| | |||||
* | shader: Fold interpolation multiplications | ReinUsesLisp | 2021-07-23 | 1 | -0/+34 |
| | |||||
* | shader: Implement DMNMX, DSET, DSETP | ameerj | 2021-07-23 | 1 | -2/+8 |
| | |||||
* | shader: Implement CAL inlining function calls | ReinUsesLisp | 2021-07-23 | 1 | -3/+5 |
| | |||||
* | shader: Partial implementation of LDC | ReinUsesLisp | 2021-07-23 | 1 | -6/+16 |
| | |||||
* | shader: FMUL, select, RRO, and MUFU fixes | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | spirv: Add lower fp16 to fp32 pass | ReinUsesLisp | 2021-07-23 | 1 | -6/+6 |
| | |||||
* | shader: Add XMAD multiplication folding optimization | ReinUsesLisp | 2021-07-23 | 1 | -5/+77 |
| | |||||
* | spirv: Initial bindings support | ReinUsesLisp | 2021-07-23 | 1 | -12/+64 |
| | |||||
* | shader: Misc fixes | ReinUsesLisp | 2021-07-23 | 1 | -16/+11 |
| | |||||
* | shader: Initial implementation of an AST | ReinUsesLisp | 2021-07-23 | 1 | -0/+50 |
| | |||||
* | shader: Better constant folding | ReinUsesLisp | 2021-07-23 | 1 | -12/+47 |
| | |||||
* | shader: Make typed IR | ReinUsesLisp | 2021-07-23 | 1 | -0/+20 |
| | |||||
* | shader: Constant propagation and global memory to storage buffer | ReinUsesLisp | 2021-07-23 | 1 | -0/+146 |