diff --git a/src/panfrost/bifrost/bi_schedule.c b/src/panfrost/bifrost/bi_schedule.c index fd3c750a872..d974d4a98f1 100644 --- a/src/panfrost/bifrost/bi_schedule.c +++ b/src/panfrost/bifrost/bi_schedule.c @@ -1629,21 +1629,25 @@ bi_schedule_clause(bi_context *ctx, bi_block *block, struct bi_worklist st, uint bi_message_type_for_instr(tuple->add); clause->message = tuple->add; - switch (tuple->add->op) { - case BI_OPCODE_ATEST: - clause->dependencies |= (1 << BIFROST_SLOT_ELDEST_DEPTH); - break; - case BI_OPCODE_LD_TILE: - case BI_OPCODE_ST_TILE: - if (!ctx->inputs->is_blend) + /* We don't need to set dependencies for blend shaders + * because the BLEND instruction in the fragment + * shader should have already done the wait */ + if (!ctx->inputs->is_blend) { + switch (tuple->add->op) { + case BI_OPCODE_ATEST: + clause->dependencies |= (1 << BIFROST_SLOT_ELDEST_DEPTH); + break; + case BI_OPCODE_LD_TILE: + case BI_OPCODE_ST_TILE: clause->dependencies |= (1 << BIFROST_SLOT_ELDEST_COLOUR); - break; - case BI_OPCODE_BLEND: - clause->dependencies |= (1 << BIFROST_SLOT_ELDEST_DEPTH); - clause->dependencies |= (1 << BIFROST_SLOT_ELDEST_COLOUR); - break; - default: - break; + break; + case BI_OPCODE_BLEND: + clause->dependencies |= (1 << BIFROST_SLOT_ELDEST_DEPTH); + clause->dependencies |= (1 << BIFROST_SLOT_ELDEST_COLOUR); + break; + default: + break; + } } }