[Mesa-dev] [PATCH] ac/nir: Only use the first component for SSBO atomics.

Bas Nieuwenhuizen bas at basnieuwenhuizen.nl
Wed Nov 30 23:34:40 UTC 2016


Signed-off-by: Bas Nieuwenhuizen <basni at google.com>
---
 src/amd/common/ac_nir_to_llvm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index df121d8..87bb19a 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -1952,9 +1952,9 @@ static LLVMValueRef visit_atomic_ssbo(struct nir_to_llvm_context *ctx,
 		ctx->shader_info->fs.writes_memory = true;
 
 	if (instr->intrinsic == nir_intrinsic_ssbo_atomic_comp_swap) {
-		params[arg_count++] = get_src(ctx, instr->src[3]);
+		params[arg_count++] = llvm_extract_elem(ctx, get_src(ctx, instr->src[3]), 0);
 	}
-	params[arg_count++] = get_src(ctx, instr->src[2]);
+	params[arg_count++] = llvm_extract_elem(ctx, get_src(ctx, instr->src[2]), 0);
 	params[arg_count++] = get_src(ctx, instr->src[0]);
 	params[arg_count++] = LLVMConstInt(ctx->i32, 0, false); /* vindex */
 	params[arg_count++] = get_src(ctx, instr->src[1]);      /* voffset */
-- 
2.10.2



More information about the mesa-dev mailing list