From: Alex Smith Date: Fri, 30 Jun 2017 10:15:42 +0000 (+0100) Subject: ac/nir: Fix ordering of parameters for image atomic cmpswap intrinsics X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c2a5cb64272da3cd8d97b0a58da6c6992b0417d3;p=mesa.git 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 Reviewed-by: Bas Nieuwenhuizen Fixes: f4e499ec791 "radv: add initial non-conformant radv vulkan driver" --- diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c index beafd5685f3..922331090cb 100644 --- a/src/amd/common/ac_nir_to_llvm.c +++ b/src/amd/common/ac_nir_to_llvm.c @@ -3473,9 +3473,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);