pan/bi: Add interference between destinations
Trying to write to overlapping register ranges from a single
instruction is undefined behaviour, so add interference between the
nodes to avoid this.
Hit in a dual-texture instruction in LIMBO.
Fixes: 9146bafbb4
("pan/bi: Add dual texture fusing pass")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15250>
This commit is contained in:
parent
198cb4a77a
commit
9e714f7455
|
@ -246,6 +246,12 @@ bi_mark_interference(bi_block *block, struct lcra_state *l, uint8_t *live, uint6
|
|||
bi_writemask(ins, d), i, live[i]);
|
||||
}
|
||||
}
|
||||
|
||||
unsigned node_first = bi_get_node(ins->dest[0]);
|
||||
if (d == 1 && node_first < node_count) {
|
||||
lcra_add_node_interference(l, node, bi_writemask(ins, 1),
|
||||
node_first, bi_writemask(ins, 0));
|
||||
}
|
||||
}
|
||||
|
||||
/* Valhall needs >= 64-bit staging reads to be pair-aligned */
|
||||
|
|
Loading…
Reference in New Issue