summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/ir_opt/constant_propagation_pass.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* general: Convert source file copyright comments over to SPDXMorph2022-04-231-3/+2
| | | | | 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.
* shader_recompiler: Reduce unused includesameerj2022-03-201-1/+0
|
* shader: Add integer attribute get optimization passameerj2021-12-301-0/+23
| | | | Works around an nvidia driver bug, where casting the integer attributes to float and back to an integer always returned 0.
* Merge pull request #6767 from ReinUsesLisp/fold-float-packMorph2021-07-301-0/+4
|\ | | | | shader: Fold UnpackFloat2x16 and PackFloat2x16
| * shader: Fold UnpackFloat2x16 and PackFloat2x16ReinUsesLisp2021-07-301-0/+4
| | | | | | | | | | Simplifies the code a bit when possible. These instructions should be no-ops codegen wise.
* | shader: Fold integer FMA from Nvidia's patternReinUsesLisp2021-07-261-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 foldingReinUsesLisp2021-07-261-14/+12
|/ | | | Simplify a bit the logic.
* shader: Avoid usage of C++20 ranges to build in clangReinUsesLisp2021-07-231-2/+3
|
* shader: Add constant propagation to integer vectorsReinUsesLisp2021-07-231-0/+9
|
* shader: Fix FSwizzleAdd folding when going through phi nodesReinUsesLisp2021-07-231-2/+2
|
* glasm: Rework control flow introducing a syntax listReinUsesLisp2021-07-231-20/+0
| | | | | This commit regresses VertexA shaders, their transformation pass has to be adapted to the new control flow.
* shader: Fix BFE s32 undefined checkameerj2021-07-231-1/+1
| | | | Our unit tests were hitting this exception.
* shader: Fix error checking in bitfieldExtract and implement bitfieldInsert foldingReinUsesLisp2021-07-231-5/+14
|
* shader: Move microinstruction header to the value headerReinUsesLisp2021-07-231-1/+1
|
* shader: Add constant propagation for arithmetic right shiftsReinUsesLisp2021-07-231-0/+3
|
* shader: Add coarse derivativesFernandoS272021-07-231-8/+0
|
* shader: Implement fine derivates constant propagationFernandoS272021-07-231-0/+67
|
* shader: Add constant propagation for *&^| binary operationsReinUsesLisp2021-07-231-0/+12
|
* shader_recompiler,video_core: Cleanup some GCC and Clang errorslat9nq2021-07-231-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 FeedbackFernandoS272021-07-231-6/+3
|
* shader: Fold composite extractFernandoS272021-07-231-0/+62
|
* shader: Fold comparisons and Pack/Unpack16FernandoS272021-07-231-1/+41
|
* shader: Fix constant propagation to use reverse post orderReinUsesLisp2021-07-231-1/+2
|
* shader: Refactor PTP and other minor changesReinUsesLisp2021-07-231-20/+2
|
* shader: Implement TLD4.PTPFernandoS272021-07-231-0/+18
|
* shader: Implement TLD4 and TLD4_BFernandoS272021-07-231-0/+12
|
* shader: Fold interpolation multiplicationsReinUsesLisp2021-07-231-0/+34
|
* shader: Implement DMNMX, DSET, DSETPameerj2021-07-231-2/+8
|
* shader: Implement CAL inlining function callsReinUsesLisp2021-07-231-3/+5
|
* shader: Partial implementation of LDCReinUsesLisp2021-07-231-6/+16
|
* shader: FMUL, select, RRO, and MUFU fixesReinUsesLisp2021-07-231-1/+1
|
* spirv: Add lower fp16 to fp32 passReinUsesLisp2021-07-231-6/+6
|
* shader: Add XMAD multiplication folding optimizationReinUsesLisp2021-07-231-5/+77
|
* spirv: Initial bindings supportReinUsesLisp2021-07-231-12/+64
|
* shader: Misc fixesReinUsesLisp2021-07-231-16/+11
|
* shader: Initial implementation of an ASTReinUsesLisp2021-07-231-0/+50
|
* shader: Better constant foldingReinUsesLisp2021-07-231-12/+47
|
* shader: Make typed IRReinUsesLisp2021-07-231-0/+20
|
* shader: Constant propagation and global memory to storage bufferReinUsesLisp2021-07-231-0/+146