From: Rob Clark Date: Sat, 18 Jan 2020 21:44:26 +0000 (-0800) Subject: freedreno/ir3: don't precolor unused inputs X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b0293af7a5d821776e7e90e3892015581c497810;p=mesa.git 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: --- diff --git a/src/freedreno/ir3/ir3_ra.c b/src/freedreno/ir3/ir3_ra.c index 0d1028a76d7..ff357e91fb7 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];