diff options
author | Pierre-Eric Pelloux-Prayer <[email protected]> | 2019-07-24 12:06:34 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2019-08-06 17:41:02 -0400 |
commit | a9ec7186525e4fc3616dcb95c1de059211425f3c (patch) | |
tree | 04d2b166844d3ebb28c6d1bb3351e3362ec48703 /src | |
parent | fc0a2e5d017dcb9e7f236d69745dff89e116b92e (diff) |
nir: add atomic_inc_wrap/atomic_dec_wrap image intrinsics
Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/glsl/glsl_to_nir.cpp | 10 | ||||
-rw-r--r-- | src/compiler/nir/nir_intrinsics.py | 2 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/compiler/glsl/glsl_to_nir.cpp b/src/compiler/glsl/glsl_to_nir.cpp index 3238c65cd9c..8cf571a29f9 100644 --- a/src/compiler/glsl/glsl_to_nir.cpp +++ b/src/compiler/glsl/glsl_to_nir.cpp @@ -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); diff --git a/src/compiler/nir/nir_intrinsics.py b/src/compiler/nir/nir_intrinsics.py index 50823a1532c..cbbf8fba89e 100644 --- a/src/compiler/nir/nir_intrinsics.py +++ b/src/compiler/nir/nir_intrinsics.py @@ -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 |