mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 04:50:11 +01:00
pan/bi: Don't reorder image loads across stores
Fixes flaking in
dEQP-GLES31.functional.image_load_store.cube.qualifiers.volatile_r32i due to
image reads being moved past a BARRIER.
To make this more robust/optimal, we probably need scheduling information
(coherent/volatile/etc) added to instructions like ACO does. That's left for a
future extension, for now I just want the test to stop flaking.
Fixes: 569e5dc745 ("pan/bi: Schedule for pressure pre-RA")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17841>
This commit is contained in:
parent
15e15422ba
commit
e12a9ce8d6
1 changed files with 14 additions and 0 deletions
|
|
@ -144,6 +144,20 @@ create_dag(bi_context *ctx, bi_block *block, void *memctx)
|
|||
|
||||
break;
|
||||
|
||||
case BIFROST_MESSAGE_ATTRIBUTE:
|
||||
/* Regular attribute loads can be reordered, but
|
||||
* writeable attributes can't be. Our one use of
|
||||
* writeable attributes are images.
|
||||
*/
|
||||
if ((I->op == BI_OPCODE_LD_TEX) ||
|
||||
(I->op == BI_OPCODE_LD_TEX_IMM) ||
|
||||
(I->op == BI_OPCODE_LD_ATTR_TEX)) {
|
||||
add_dep(node, memory_store);
|
||||
memory_load = node;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case BIFROST_MESSAGE_STORE:
|
||||
assert(I->seg != BI_SEG_UBO);
|
||||
add_dep(node, memory_load);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue