nak: Add a condition to bar_break_nv

Reviewed-by: M Henning <drawoc@darkrefraction.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28300>
This commit is contained in:
Faith Ekstrand
2024-03-18 12:15:12 -05:00
committed by Marge Bot
parent 18c4c36ae2
commit 879c5c1dda
3 changed files with 4 additions and 3 deletions
+1 -1
View File
@@ -2154,7 +2154,7 @@ intrinsic("final_primitive_nv", src_comp=[1])
barrier("copy_fs_outputs_nv")
intrinsic("bar_set_nv", dest_comp=1, bit_sizes=[32], flags=[CAN_ELIMINATE])
intrinsic("bar_break_nv", dest_comp=1, bit_sizes=[32], src_comp=[1])
intrinsic("bar_break_nv", dest_comp=1, bit_sizes=[32], src_comp=[1, 1])
# src[] = { bar, bar_set }
intrinsic("bar_sync_nv", src_comp=[1, 1])
+2 -1
View File
@@ -1919,12 +1919,13 @@ impl<'a> ShaderFromNir<'a> {
nir_intrinsic_bar_break_nv => {
let src = self.get_src(&srcs[0]);
let bar_in = b.bmov_to_bar(src);
let cond = self.get_src(&srcs[1]);
let bar_out = b.alloc_ssa(RegFile::Bar, 1);
b.push_op(OpBreak {
bar_out: bar_out.into(),
bar_in: bar_in.into(),
cond: SrcRef::True.into(),
cond: cond.into(),
});
self.set_dst(&intrin.def, b.bmov_to_gpr(bar_out.into()));
+1 -1
View File
@@ -77,7 +77,7 @@ break_loop_bars(nir_block *block, struct add_barriers_state *state)
util_dynarray_element(&state->barriers, struct barrier, idx);
if (bar->node == p) {
nir_def *bar_val = nir_load_reg(b, bar->bar_reg);
bar_val = nir_bar_break_nv(b, bar_val);
bar_val = nir_bar_break_nv(b, bar_val, nir_imm_true(b));
nir_store_reg(b, bar_val, bar->bar_reg);
idx--;
}