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

Author: Dmitry Baryshkov <dmitry.barysh...@linaro.org>
Date:   Sun Oct 22 18:05:23 2023 +0000

ir3/a6xx: fix ldg/stg of ulong2 and ulong4 data

Partially revert the commit f4c9e9329cf ("ir3/a6xx: Fix immediate
offset stg/ldg path").

There is no need to multiply the immediate offsets by 4. Doing so
results in loading and/or storing the data at wrong locations.

Signed-off-by: Dmitry Baryshkov <dmitry.barysh...@linaro.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26817>

---

 src/freedreno/ir3/ir3_a6xx.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/freedreno/ir3/ir3_a6xx.c b/src/freedreno/ir3/ir3_a6xx.c
index 1592a56a397..33b70323678 100644
--- a/src/freedreno/ir3/ir3_a6xx.c
+++ b/src/freedreno/ir3/ir3_a6xx.c
@@ -343,7 +343,7 @@ emit_intrinsic_load_global_ir3(struct ir3_context *ctx,
                                  nir_src_as_int(intr->src[1]) > -(1 << 10);
 
    if (const_offset_in_bounds) {
-      load = ir3_LDG(b, addr, 0, create_immed(b, nir_src_as_int(intr->src[1]) 
* 4),
+      load = ir3_LDG(b, addr, 0, create_immed(b, nir_src_as_int(intr->src[1])),
                      0, create_immed(b, dest_components), 0);
    } else {
       offset = ir3_get_src(ctx, &intr->src[1])[0];
@@ -386,7 +386,7 @@ emit_intrinsic_store_global_ir3(struct ir3_context *ctx,
 
    if (const_offset_in_bounds) {
       stg = ir3_STG(b, addr, 0,
-                    create_immed(b, nir_src_as_int(intr->src[2]) * 4), 0,
+                    create_immed(b, nir_src_as_int(intr->src[2])), 0,
                     value, 0,
                     create_immed(b, ncomp), 0);
    } else {

Reply via email to