From b0293af7a5d821776e7e90e3892015581c497810 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Sat, 18 Jan 2020 13:44:26 -0800 Subject: [PATCH] freedreno/ir3: don't precolor unused inputs This apparently can happen with gs/tess. And will cause problems with two-pass-ra, so lets just skip them. Signed-off-by: Rob Clark Part-of: --- 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 0d1028a..ff357e9 100644 --- a/src/freedreno/ir3/ir3_ra.c +++ b/src/freedreno/ir3/ir3_ra.c @@ -1111,6 +1111,7 @@ ra_precolor(struct ir3_ra_ctx *ctx, struct ir3_instruction **precolor, unsigned for (unsigned i = 0; i < nprecolor; i++) { if (precolor[i] && !(precolor[i]->flags & IR3_INSTR_UNUSED)) { struct ir3_instruction *instr = precolor[i]; + struct ir3_ra_instr_data *id = &ctx->instrd[instr->ip]; debug_assert(!(instr->regs[0]->flags & (IR3_REG_HALF | IR3_REG_HIGH))); @@ -1175,7 +1176,7 @@ retry: for (unsigned i = 0; i < nprecolor; i++) { struct ir3_instruction *instr = precolor[i]; - if (!instr) + if (!instr || (instr->flags & IR3_INSTR_UNUSED)) continue; struct ir3_ra_instr_data *id = &ctx->instrd[instr->ip]; -- 2.7.4