diff options
author | Rhys Perry <pendingchaos02@gmail.com> | 2020-12-17 16:52:24 +0000 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2020-12-17 19:22:55 +0000 |
commit | 661922f6ac9576fc2077c5d50b53ef7edf9e8a18 (patch) | |
tree | 5179982dcda57d68555df8733d75c5ba68ad9af5 /src/amd/compiler | |
parent | 6d7ea0f0202b47f1c2ab545bfa2c4a33e65997a4 (diff) |
aco: add block to worklist in mark_block_wqm()
Since we're requiring the branch condition to be in WQM, we have to ensure
that the block is in the worklist.
Fixes Trials Fusion hang at 4K and High settings.
fossil-db (Sienna):
Totals from 216 (0.15% of 139391) affected shaders:
SGPRs: 13392 -> 13360 (-0.24%)
CodeSize: 1321184 -> 1318592 (-0.20%)
Instrs: 255310 -> 254662 (-0.25%)
Cycles: 2178360 -> 2174652 (-0.17%)
Affected fossils in fossil-db are dirt4, nier and youngblood.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3863
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8145>
Diffstat (limited to 'src/amd/compiler')
-rw-r--r-- | src/amd/compiler/aco_insert_exec_mask.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/amd/compiler/aco_insert_exec_mask.cpp b/src/amd/compiler/aco_insert_exec_mask.cpp index 6bb5c831cf6..ff89fbfc02f 100644 --- a/src/amd/compiler/aco_insert_exec_mask.cpp +++ b/src/amd/compiler/aco_insert_exec_mask.cpp @@ -165,6 +165,8 @@ void mark_block_wqm(wqm_ctx &ctx, unsigned block_idx) return; ctx.branch_wqm[block_idx] = true; + ctx.worklist.insert(block_idx); + Block& block = ctx.program->blocks[block_idx]; /* TODO: this sets more branch conditions to WQM than it needs to |