mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-07-12 20:55:56 +00:00
shader_recompiler: Lower non-compute shared memory into spare VGPRs. (#2403)
This commit is contained in:
parent
ebe2aadb4c
commit
6e12642151
12 changed files with 85 additions and 94 deletions
|
@ -65,6 +65,10 @@ IR::Program TranslateProgram(std::span<const u32> code, Pools& pools, Info& info
|
|||
// Run optimization passes
|
||||
const auto stage = program.info.stage;
|
||||
|
||||
if (stage == Stage::Fragment) {
|
||||
// Before SSA pass, as it will rewrite to VGPR load/store.
|
||||
Shader::Optimization::LowerSharedMemToRegisters(program, runtime_info);
|
||||
}
|
||||
Shader::Optimization::SsaRewritePass(program.post_order_blocks);
|
||||
Shader::Optimization::IdentityRemovalPass(program.blocks);
|
||||
if (info.l_stage == LogicalStage::TessellationControl) {
|
||||
|
@ -82,9 +86,6 @@ IR::Program TranslateProgram(std::span<const u32> code, Pools& pools, Info& info
|
|||
}
|
||||
Shader::Optimization::ConstantPropagationPass(program.post_order_blocks);
|
||||
Shader::Optimization::RingAccessElimination(program, runtime_info, stage);
|
||||
if (stage != Stage::Compute) {
|
||||
Shader::Optimization::LowerSharedMemToRegisters(program);
|
||||
}
|
||||
Shader::Optimization::ConstantPropagationPass(program.post_order_blocks);
|
||||
Shader::Optimization::FlattenExtendedUserdataPass(program);
|
||||
Shader::Optimization::ResourceTrackingPass(program);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue