summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Smith <asmith@feralinteractive.com>2017-06-30 11:15:42 +0100
committerAndres Gomez <agomez@igalia.com>2017-07-12 19:32:09 +0300
commit49b5da785f52a092bebef32dde6536c9d898a7d5 (patch)
treead579357e526a07e828acbea200cc78967408e8a
parent401c37f500f351272dede9e7464d836183dafac4 (diff)
ac/nir: Fix ordering of parameters for image atomic cmpswap intrinsics
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 <asmith@feralinteractive.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Fixes: f4e499ec791 "radv: add initial non-conformant radv vulkan driver" (cherry picked from commit c2a5cb64272da3cd8d97b0a58da6c6992b0417d3)
-rw-r--r--src/amd/common/ac_nir_to_llvm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index 10081454a8e..62b75982565 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -3370,9 +3370,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);