freedreno/ir3: fix mismatched flags on split

We have to fixup the meta:split half flag, because `ir3_split_dest()` is
called before we fixup the dest type.  But we should fixup both the
split src and dest, as well as the thing it is splitting.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
This commit is contained in:
Rob Clark
2020-05-15 16:44:29 -07:00
committed by Marge Bot
parent b24b6a8365
commit 3db5d146e9
+3 -1
View File
@@ -257,8 +257,10 @@ ir3_put_dst(struct ir3_context *ctx, nir_dest *dst)
for (unsigned i = 0; i < ctx->last_dst_n; i++) {
struct ir3_instruction *dst = ctx->last_dst[i];
dst->regs[0]->flags |= IR3_REG_HALF;
if (ctx->last_dst[i]->opc == OPC_META_SPLIT)
if (dst->opc == OPC_META_SPLIT) {
dst->regs[1]->instr->regs[0]->flags |= IR3_REG_HALF;
dst->regs[1]->flags |= IR3_REG_HALF;
}
}
}