nv50/ir/nir: add memory barriers
v5: add more barrier intrinsics Signed-off-by: Karol Herbst <kherbst@redhat.com>
This commit is contained in:
parent
753ae68ca0
commit
9c44f4e043
|
@ -585,6 +585,16 @@ Converter::getSubOp(nir_intrinsic_op op)
|
|||
case nir_intrinsic_shared_atomic_xor:
|
||||
case nir_intrinsic_ssbo_atomic_xor:
|
||||
return NV50_IR_SUBOP_ATOM_XOR;
|
||||
|
||||
case nir_intrinsic_group_memory_barrier:
|
||||
case nir_intrinsic_memory_barrier:
|
||||
case nir_intrinsic_memory_barrier_atomic_counter:
|
||||
case nir_intrinsic_memory_barrier_buffer:
|
||||
case nir_intrinsic_memory_barrier_image:
|
||||
return NV50_IR_SUBOP_MEMBAR(M, GL);
|
||||
case nir_intrinsic_memory_barrier_shared:
|
||||
return NV50_IR_SUBOP_MEMBAR(M, CTA);
|
||||
|
||||
case nir_intrinsic_vote_all:
|
||||
return NV50_IR_SUBOP_VOTE_ALL;
|
||||
case nir_intrinsic_vote_any:
|
||||
|
@ -2400,6 +2410,17 @@ Converter::visit(nir_intrinsic_instr *insn)
|
|||
bar->subOp = NV50_IR_SUBOP_BAR_SYNC;
|
||||
break;
|
||||
}
|
||||
case nir_intrinsic_group_memory_barrier:
|
||||
case nir_intrinsic_memory_barrier:
|
||||
case nir_intrinsic_memory_barrier_atomic_counter:
|
||||
case nir_intrinsic_memory_barrier_buffer:
|
||||
case nir_intrinsic_memory_barrier_image:
|
||||
case nir_intrinsic_memory_barrier_shared: {
|
||||
Instruction *bar = mkOp(OP_MEMBAR, TYPE_NONE, NULL);
|
||||
bar->fixed = 1;
|
||||
bar->subOp = getSubOp(op);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
ERROR("unknown nir_intrinsic_op %s\n", nir_intrinsic_infos[op].name);
|
||||
return false;
|
||||
|
|
Loading…
Reference in New Issue