diff --git a/src/gallium/auxiliary/nir/tgsi_to_nir.c b/src/gallium/auxiliary/nir/tgsi_to_nir.c index ff42c4536bb..34ececa17a3 100644 --- a/src/gallium/auxiliary/nir/tgsi_to_nir.c +++ b/src/gallium/auxiliary/nir/tgsi_to_nir.c @@ -1111,6 +1111,14 @@ ttn_ucmp(nir_builder *b, nir_op op, nir_alu_dest dest, nir_ssa_def **src) src[1], src[2])); } +static void +ttn_barrier(nir_builder *b) +{ + nir_intrinsic_instr *barrier = + nir_intrinsic_instr_create(b->shader, nir_intrinsic_control_barrier); + nir_builder_instr_insert(b, &barrier->instr); +} + static void ttn_kill(nir_builder *b, nir_op op, nir_alu_dest dest, nir_ssa_def **src) { @@ -2225,6 +2233,10 @@ ttn_emit_instruction(struct ttn_compile *c) ttn_endloop(c); break; + case TGSI_OPCODE_BARRIER: + ttn_barrier(b); + break; + default: if (op_trans[tgsi_op] != 0 || tgsi_op == TGSI_OPCODE_MOV) { ttn_alu(b, op_trans[tgsi_op], dest, dst_bitsize, src);