From ce4058dafd2dd283addaa99e8d5b51e53f634f9b Mon Sep 17 00:00:00 2001 From: Alex Smith Date: Thu, 16 Mar 2017 16:40:07 +0000 Subject: radv/ac: Fix shared memory offset calculation The index passed to get_shared_memory_ptr is an attribute slot index, i.e. the index of a vec4 within LDS. Therefore this must be scaled by sizeof(vec4) to give the LDS byte offset. Fixes: f4e499ec791 ("radv: add initial non-conformant radv vulkan driver") Signed-off-by: Alex Smith Reviewed-by: Bas Nieuwenhuizen CC: --- 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 01346c35f7..6e36c192c3 100644 --- a/src/amd/common/ac_nir_to_llvm.c +++ b/src/amd/common/ac_nir_to_llvm.c @@ -297,7 +297,7 @@ static LLVMValueRef get_shared_memory_ptr(struct nir_to_llvm_context *ctx, LLVMValueRef ptr; int addr_space; - offset = LLVMConstInt(ctx->i32, idx, false); + offset = LLVMConstInt(ctx->i32, idx * 16, false); ptr = ctx->shared_memory; ptr = LLVMBuildGEP(ctx->builder, ptr, &offset, 1, ""); -- cgit v1.2.3