Mesa (main): ac/llvm: use soffset correctly in ac_build_buffer_load

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Apr 23 02:09:39 UTC 2022


Module: Mesa
Branch: main
Commit: e3421ae8ff0f5377fe46cfbe244cd571148c24df
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e3421ae8ff0f5377fe46cfbe244cd571148c24df

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Fri Apr 15 01:18:44 2022 -0400

ac/llvm: use soffset correctly in ac_build_buffer_load

Reviewed-by: Mihai Preda <mhpreda at gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15966>

---

 src/amd/llvm/ac_llvm_build.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/amd/llvm/ac_llvm_build.c b/src/amd/llvm/ac_llvm_build.c
index e892193b2c4..d214fa582c3 100644
--- a/src/amd/llvm/ac_llvm_build.c
+++ b/src/amd/llvm/ac_llvm_build.c
@@ -1239,8 +1239,6 @@ LLVMValueRef ac_build_buffer_load(struct ac_llvm_context *ctx, LLVMValueRef rsrc
    LLVMValueRef offset = LLVMConstInt(ctx->i32, inst_offset, 0);
    if (voffset)
       offset = LLVMBuildAdd(ctx->builder, offset, voffset, "");
-   if (soffset)
-      offset = LLVMBuildAdd(ctx->builder, offset, soffset, "");
 
    if (allow_smem && !(cache_policy & ac_slc) &&
        (!(cache_policy & ac_glc) || ctx->chip_class >= GFX8)) {
@@ -1248,6 +1246,9 @@ LLVMValueRef ac_build_buffer_load(struct ac_llvm_context *ctx, LLVMValueRef rsrc
 
       LLVMValueRef result[8];
 
+      if (soffset)
+         offset = LLVMBuildAdd(ctx->builder, offset, soffset, "");
+
       for (int i = 0; i < num_channels; i++) {
          if (i) {
             offset = LLVMBuildAdd(ctx->builder, offset, LLVMConstInt(ctx->i32, 4, 0), "");
@@ -1268,7 +1269,7 @@ LLVMValueRef ac_build_buffer_load(struct ac_llvm_context *ctx, LLVMValueRef rsrc
       return ac_build_gather_values(ctx, result, num_channels);
    }
 
-   return ac_build_buffer_load_common(ctx, rsrc, vindex, offset, ctx->i32_0, num_channels,
+   return ac_build_buffer_load_common(ctx, rsrc, vindex, offset, soffset, num_channels,
                                       channel_type, cache_policy, can_speculate, false, false);
 }
 



More information about the mesa-commit mailing list