mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-22 14:00:37 +02: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> (cherry picked from commite12a9ce8d6)
This commit is contained in:
parent
68f0becf2b
commit
8c64dc4873
2 changed files with 15 additions and 1 deletions
|
|
@ -12838,7 +12838,7 @@
|
|||
"description": "pan/bi: Don't reorder image loads across stores",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "569e5dc7450620e7286aec036f34d02f02cdd2c4"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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