Mesa (main): aco: fix SMEM load_global with VGPR address and non-zero offset

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Jun 6 18:09:16 UTC 2022


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

Author: Rhys Perry <pendingchaos02 at gmail.com>
Date:   Mon May 30 12:46:20 2022 +0100

aco: fix SMEM load_global with VGPR address and non-zero offset

Signed-off-by: Rhys Perry <pendingchaos02 at gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof at gmail.com>
Fixes: 3e9517c7577 ("aco: implement _amd global access intrinsics")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16775>

---

 src/amd/compiler/aco_instruction_selection.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp
index 7bca54754a8..59c87a262cc 100644
--- a/src/amd/compiler/aco_instruction_selection.cpp
+++ b/src/amd/compiler/aco_instruction_selection.cpp
@@ -6798,6 +6798,8 @@ visit_load_global(isel_context* ctx, nir_intrinsic_instr* instr)
       params.byte_align_loads = ctx->options->gfx_level > GFX6 || byte_align_for_smem_mubuf;
       emit_load(ctx, bld, info, params);
    } else {
+      if (info.resource.id())
+         info.resource = bld.as_uniform(info.resource);
       info.offset = Operand(bld.as_uniform(info.offset));
       emit_load(ctx, bld, info, smem_load_params);
    }



More information about the mesa-commit mailing list