From 0675f5a5543dbbede62ecb23bf501dc134ae7740 Mon Sep 17 00:00:00 2001 From: IndecisiveTurtle <47210458+raphaelthegreat@users.noreply.github.com> Date: Sun, 23 Feb 2025 18:13:05 +0200 Subject: [PATCH] ir_passes: Add barrier at end of block too --- .../ir/passes/shared_memory_barrier_pass.cpp | 4 ++++ 1 file changed, 4 insertions(+) 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