Mesa (master): freedreno/ir3/ra: only assign array base in first pass

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Apr 28 20:31:19 UTC 2020


Module: Mesa
Branch: master
Commit: 656051d735c949021e7eb206b6c4a633cc76936f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=656051d735c949021e7eb206b6c4a633cc76936f

Author: Rob Clark <robdclark at chromium.org>
Date:   Mon Apr 27 17:00:17 2020 -0700

freedreno/ir3/ra: only assign array base in first pass

In particular, we specifically don't want to let the base change between
passes, as it could end up conflicting with registers assigned in the
first pass.

Mostly-closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2838
Signed-off-by: Rob Clark <robdclark at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4780>

---

 src/freedreno/ir3/ir3_ra.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/freedreno/ir3/ir3_ra.c b/src/freedreno/ir3/ir3_ra.c
index 656fa01193e..927f91e98ec 100644
--- a/src/freedreno/ir3/ir3_ra.c
+++ b/src/freedreno/ir3/ir3_ra.c
@@ -1383,7 +1383,8 @@ ra_precolor(struct ir3_ra_ctx *ctx, struct ir3_instruction **precolor, unsigned
 		if (arr->end_ip == 0)
 			continue;
 
-		assign_arr_base(ctx, arr, precolor, nprecolor);
+		if (!ctx->scalar_pass)
+			assign_arr_base(ctx, arr, precolor, nprecolor);
 
 		unsigned base = arr->reg;
 



More information about the mesa-commit mailing list