summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/ir_opt/constant_propagation_pass.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-01-04Video_core: Address feedbackFernando Sahmkow1-0/+3
2023-01-03ShaderCompiler: Inline driver specific constants.Fernando Sahmkow1-1/+29
2023-01-01MacroHLE: Add HLE replacement for base vertex and base instance.Fernando Sahmkow1-3/+42
2022-04-23general: Convert source file copyright comments over to SPDXMorph1-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.
2022-03-20shader_recompiler: Reduce unused includesameerj1-1/+0
2021-12-30shader: Add integer attribute get optimization passameerj1-0/+23
Works around an nvidia driver bug, where casting the integer attributes to float and back to an integer always returned 0.
2021-07-30shader: Fold UnpackFloat2x16 and PackFloat2x16ReinUsesLisp1-0/+4
Simplifies the code a bit when possible. These instructions should be no-ops codegen wise.
2021-07-26shader: Fold integer FMA from Nvidia's patternReinUsesLisp1-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 ```
2021-07-26shader: Use TryInstRecursive on XMAD multiply foldingReinUsesLisp1-14/+12
Simplify a bit the logic.
2021-07-23shader: Avoid usage of C++20 ranges to build in clangReinUsesLisp1-2/+3
2021-07-23shader: Add constant propagation to integer vectorsReinUsesLisp1-0/+9
2021-07-23shader: Fix FSwizzleAdd folding when going through phi nodesReinUsesLisp1-2/+2
2021-07-23glasm: Rework control flow introducing a syntax listReinUsesLisp1-20/+0
This commit regresses VertexA shaders, their transformation pass has to be adapted to the new control flow.
2021-07-23shader: Fix BFE s32 undefined checkameerj1-1/+1
Our unit tests were hitting this exception.
2021-07-23shader: Fix error checking in bitfieldExtract and implement bitfieldInsert foldingReinUsesLisp1-5/+14
2021-07-23shader: Move microinstruction header to the value headerReinUsesLisp1-1/+1
2021-07-23shader: Add constant propagation for arithmetic right shiftsReinUsesLisp1-0/+3
2021-07-23shader: Add coarse derivativesFernandoS271-8/+0
2021-07-23shader: Implement fine derivates constant propagationFernandoS271-0/+67
2021-07-23shader: Add constant propagation for *&^| binary operationsReinUsesLisp1-0/+12
2021-07-23shader_recompiler,video_core: Cleanup some GCC and Clang errorslat9nq1-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>
2021-07-23shader: Address FeedbackFernandoS271-6/+3
2021-07-23shader: Fold composite extractFernandoS271-0/+62
2021-07-23shader: Fold comparisons and Pack/Unpack16FernandoS271-1/+41
2021-07-23shader: Fix constant propagation to use reverse post orderReinUsesLisp1-1/+2
2021-07-23shader: Refactor PTP and other minor changesReinUsesLisp1-20/+2
2021-07-23shader: Implement TLD4.PTPFernandoS271-0/+18
2021-07-23shader: Implement TLD4 and TLD4_BFernandoS271-0/+12
2021-07-23shader: Fold interpolation multiplicationsReinUsesLisp1-0/+34
2021-07-23shader: Implement DMNMX, DSET, DSETPameerj1-2/+8
2021-07-23shader: Implement CAL inlining function callsReinUsesLisp1-3/+5
2021-07-23shader: Partial implementation of LDCReinUsesLisp1-6/+16
2021-07-23shader: FMUL, select, RRO, and MUFU fixesReinUsesLisp1-1/+1
2021-07-23spirv: Add lower fp16 to fp32 passReinUsesLisp1-6/+6
2021-07-23shader: Add XMAD multiplication folding optimizationReinUsesLisp1-5/+77
2021-07-23spirv: Initial bindings supportReinUsesLisp1-12/+64
2021-07-23shader: Misc fixesReinUsesLisp1-16/+11
2021-07-23shader: Initial implementation of an ASTReinUsesLisp1-0/+50
2021-07-23shader: Better constant foldingReinUsesLisp1-12/+47
2021-07-23shader: Make typed IRReinUsesLisp1-0/+20
2021-07-23shader: Constant propagation and global memory to storage bufferReinUsesLisp1-0/+146