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:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user