nir: add atomic_inc_wrap/atomic_dec_wrap image intrinsics
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
fc0a2e5d01
commit
a9ec718652
|
@ -990,6 +990,12 @@ nir_visitor::visit(ir_call *ir)
|
|||
case ir_intrinsic_image_atomic_comp_swap:
|
||||
op = nir_intrinsic_image_deref_atomic_comp_swap;
|
||||
break;
|
||||
case ir_intrinsic_image_atomic_inc_wrap:
|
||||
op = nir_intrinsic_image_deref_atomic_inc_wrap;
|
||||
break;
|
||||
case ir_intrinsic_image_atomic_dec_wrap:
|
||||
op = nir_intrinsic_image_deref_atomic_dec_wrap;
|
||||
break;
|
||||
case ir_intrinsic_memory_barrier:
|
||||
op = nir_intrinsic_memory_barrier;
|
||||
break;
|
||||
|
@ -1258,7 +1264,9 @@ nir_visitor::visit(ir_call *ir)
|
|||
case nir_intrinsic_image_deref_atomic_comp_swap:
|
||||
case nir_intrinsic_image_deref_atomic_fadd:
|
||||
case nir_intrinsic_image_deref_samples:
|
||||
case nir_intrinsic_image_deref_size: {
|
||||
case nir_intrinsic_image_deref_size:
|
||||
case nir_intrinsic_image_deref_atomic_inc_wrap:
|
||||
case nir_intrinsic_image_deref_atomic_dec_wrap: {
|
||||
nir_ssa_undef_instr *instr_undef =
|
||||
nir_ssa_undef_instr_create(shader, 1, 32);
|
||||
nir_builder_instr_insert(&b, &instr_undef->instr);
|
||||
|
|
|
@ -378,6 +378,8 @@ image("atomic_comp_swap", src_comp=[4, 1, 1, 1], dest_comp=1)
|
|||
image("atomic_fadd", src_comp=[1, 4, 1, 1], dest_comp=1)
|
||||
image("size", dest_comp=0, flags=[CAN_ELIMINATE, CAN_REORDER])
|
||||
image("samples", dest_comp=1, flags=[CAN_ELIMINATE, CAN_REORDER])
|
||||
image("atomic_inc_wrap", src_comp=[4, 1, 1], dest_comp=1)
|
||||
image("atomic_dec_wrap", src_comp=[4, 1, 1], dest_comp=1)
|
||||
|
||||
# Intel-specific query for loading from the brw_image_param struct passed
|
||||
# into the shader as a uniform. The variable is a deref to the image
|
||||
|
|
Loading…
Reference in New Issue