mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 17:38:09 +02:00
aco: do not flag all blocks WQM to ensure we enter all nested loops in WQM
This should no longer be necessary since the mark_block_wqm() we use to flag break conditions as WQM now adds block to the worklist. With them added to the worklist, get_block_needs() will add WQM to block_needs. Adding WQM to block_needs here without adding the block to the worklist (like we do here) can cause issues because it does not ensure that the predecessors' branches are in WQM (needed for it to be possible to transition to WQM in the block). This happened in an Overwatch shader. No fossil-db changes. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Fixes:661922f6ac("aco: add block to worklist in mark_block_wqm()") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4066 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8446> (cherry picked from commitf0074a6f05)
This commit is contained in:
parent
0bb75ccf28
commit
a6dd1fda4e
2 changed files with 1 additions and 3 deletions
|
|
@ -922,7 +922,7 @@
|
|||
"description": "aco: do not flag all blocks WQM to ensure we enter all nested loops in WQM",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"master_sha": null,
|
||||
"because_sha": "661922f6ac9576fc2077c5d50b53ef7edf9e8a18"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -156,8 +156,6 @@ void get_block_needs(wqm_ctx &ctx, exec_ctx &exec_ctx, Block* block)
|
|||
* the conditions might be computed outside the nested CF */
|
||||
if (ctx.program->blocks[block_idx].kind & block_kind_break)
|
||||
mark_block_wqm(ctx, block_idx);
|
||||
/* flag all blocks as WQM to ensure we enter all (nested) loops in WQM */
|
||||
exec_ctx.info[block_idx].block_needs |= WQM;
|
||||
block_idx++;
|
||||
}
|
||||
} else if (ctx.loop && !ctx.wqm) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue