From 2d0d57892d045cdd4092b3880e235551887a5cea Mon Sep 17 00:00:00 2001 From: wildcard Date: Sun, 21 Sep 2025 10:51:43 +0200 Subject: [PATCH] Update src/shader_recompiler/ir_opt/ssa_rewrite_pass.cpp test-1 fix rendering bugs --- src/shader_recompiler/ir_opt/ssa_rewrite_pass.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/shader_recompiler/ir_opt/ssa_rewrite_pass.cpp b/src/shader_recompiler/ir_opt/ssa_rewrite_pass.cpp index d068e3b484..63a2a7c871 100644 --- a/src/shader_recompiler/ir_opt/ssa_rewrite_pass.cpp +++ b/src/shader_recompiler/ir_opt/ssa_rewrite_pass.cpp @@ -77,7 +77,7 @@ inline VariableKey KeyOf(IR::Reg r){ } inline VariableKey KeyOf(IR::Pred p){ - return {PackKey(VarTag::Pred, static_cast(IR::PredIndex(p)))}; + return {PackKey(VarTag::Pred, static_cast(p))}; } inline VariableKey KeyOf(ZeroFlagTag){ @@ -251,10 +251,9 @@ public: WriteVariable(variable, block, IR::Value{phi}); stack.back().result = IR::Value{&*phi}; } else if (const std::span imm_preds = block->ImmPredecessors(); - imm_preds.size() == 1) { - // Tail-advance: reuse this frame - stack.back().block = imm_preds.front(); - stack.back().pc = Status::Start; + imm_preds.size() == 1) { + stack.back().pc = Status::SetValue; + stack.emplace_back(imm_preds.front()); break; } else { // Break potential cycles with operandless phi