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