The NIR parameters are ordered "compare, data", matching GLSL, but both
the image and buffer LLVM intrinsics take them the other way around.
This is already handled correctly for SSBO atomics.

Signed-off-by: Alex Smith <[email protected]>
---
 src/amd/common/ac_nir_to_llvm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index 6845df8..89b7103 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -3442,9 +3442,9 @@ static LLVMValueRef visit_image_atomic(struct 
nir_to_llvm_context *ctx,
                abort();
        }
 
-       params[param_count++] = get_src(ctx, instr->src[2]);
        if (instr->intrinsic == nir_intrinsic_image_atomic_comp_swap)
                params[param_count++] = get_src(ctx, instr->src[3]);
+       params[param_count++] = get_src(ctx, instr->src[2]);
 
        if (glsl_get_sampler_dim(type) == GLSL_SAMPLER_DIM_BUF) {
                params[param_count++] = get_sampler_desc(ctx, 
instr->variables[0], DESC_BUFFER);
-- 
2.9.4

_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to