diff --git a/src/freedreno/ir3/ir3_legalize.c b/src/freedreno/ir3/ir3_legalize.c index b646123abc2..7cb20abcede 100644 --- a/src/freedreno/ir3/ir3_legalize.c +++ b/src/freedreno/ir3/ir3_legalize.c @@ -255,6 +255,10 @@ delay_update(struct ir3_legalize_ctx *ctx, continue; for (unsigned elem = 0; elem < elems; elem++, num++) { + /* Don't update delays for registers that aren't actually written. */ + if (!(dst->flags & IR3_REG_RELATIV) && !(dst->wrmask & (1 << elem))) + continue; + for (unsigned consumer_alu = 0; consumer_alu < 2; consumer_alu++) { for (unsigned matching_size = 0; matching_size < 2; matching_size++) { unsigned *ready_slot =