From a9ec7186525e4fc3616dcb95c1de059211425f3c Mon Sep 17 00:00:00 2001 From: Pierre-Eric Pelloux-Prayer Date: Wed, 24 Jul 2019 12:06:34 +0200 Subject: [PATCH] nir: add atomic_inc_wrap/atomic_dec_wrap image intrinsics MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Reviewed-by: Marek Olšák --- src/compiler/glsl/glsl_to_nir.cpp | 10 +++++++++- src/compiler/nir/nir_intrinsics.py | 2 ++ 2 files changed, 11 insertions(+), 1 deletion(-) 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 -- 2.30.2