diff --git a/src/compiler/nir/nir.c b/src/compiler/nir/nir.c index 4a37a5fc7b2..7ed93e1f409 100644 --- a/src/compiler/nir/nir.c +++ b/src/compiler/nir/nir.c @@ -2714,6 +2714,10 @@ nir_rewrite_image_intrinsic(nir_intrinsic_instr *intrin, nir_ssa_def *src, if (nir_intrinsic_has_dest_type(intrin)) data_type = nir_intrinsic_dest_type(intrin); + nir_atomic_op atomic_op = 0; + if (nir_intrinsic_has_atomic_op(intrin)) + atomic_op = nir_intrinsic_atomic_op(intrin); + switch (intrin->intrinsic) { #define CASE(op) \ case nir_intrinsic_image_deref_##op: \ @@ -2763,6 +2767,9 @@ nir_rewrite_image_intrinsic(nir_intrinsic_instr *intrin, nir_ssa_def *src, if (nir_intrinsic_has_dest_type(intrin)) nir_intrinsic_set_dest_type(intrin, data_type); + if (nir_intrinsic_has_atomic_op(intrin)) + nir_intrinsic_set_atomic_op(intrin, atomic_op); + nir_instr_rewrite_src(&intrin->instr, &intrin->src[0], nir_src_for_ssa(src)); }