Mesa (staging/19.0): freedreno/ir3: dynamic UBO indexing vs 64b pointers

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jun 4 16:15:28 UTC 2019


Module: Mesa
Branch: staging/19.0
Commit: 8a616376ab83e71481cb87999d85bf54273bc92a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8a616376ab83e71481cb87999d85bf54273bc92a

Author: Rob Clark <robdclark at gmail.com>
Date:   Wed Mar 20 10:38:01 2019 -0400

freedreno/ir3: dynamic UBO indexing vs 64b pointers

Fixes dEQP-GLES31.functional.shaders.opaque_type_indexing.ubo.uniform_fragment
and similar things with multiple UBOs

Signed-off-by: Rob Clark <robdclark at gmail.com>
(cherry picked from commit 6e781a01b97639057d44ca13c5d4276220745b3d)

---

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

diff --git a/src/freedreno/ir3/ir3_compiler_nir.c b/src/freedreno/ir3/ir3_compiler_nir.c
index fd641735620..01b4ac02b6d 100644
--- a/src/freedreno/ir3/ir3_compiler_nir.c
+++ b/src/freedreno/ir3/ir3_compiler_nir.c
@@ -686,8 +686,8 @@ emit_intrinsic_load_ubo(struct ir3_context *ctx, nir_intrinsic_instr *intr,
 		base_lo = create_uniform(b, ubo + (src0->regs[1]->iim_val * ptrsz));
 		base_hi = create_uniform(b, ubo + (src0->regs[1]->iim_val * ptrsz) + 1);
 	} else {
-		base_lo = create_uniform_indirect(b, ubo, ir3_get_addr(ctx, src0, 4));
-		base_hi = create_uniform_indirect(b, ubo + 1, ir3_get_addr(ctx, src0, 4));
+		base_lo = create_uniform_indirect(b, ubo, ir3_get_addr(ctx, src0, ptrsz));
+		base_hi = create_uniform_indirect(b, ubo + 1, ir3_get_addr(ctx, src0, ptrsz));
 	}
 
 	/* note: on 32bit gpu's base_hi is ignored and DCE'd */




More information about the mesa-commit mailing list