diff --git a/src/shader_recompiler/ir/passes/shared_memory_barrier_pass.cpp b/src/shader_recompiler/ir/passes/shared_memory_barrier_pass.cpp index 0ee52cf19..baf6ad0d1 100644 --- a/src/shader_recompiler/ir/passes/shared_memory_barrier_pass.cpp +++ b/src/shader_recompiler/ir/passes/shared_memory_barrier_pass.cpp @@ -43,6 +43,10 @@ static void EmitBarrierInBlock(IR::Block* block) { action = BarrierAction::BarrierOnRead; } } + if (action != BarrierAction::None) { + IR::IREmitter ir{*block, --block->end()}; + ir.Barrier(); + } } // Inserts a barrier after divergent conditional blocks to avoid undefined