diff options
author | Rhys Perry <[email protected]> | 2020-01-13 14:53:56 +0000 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-01-29 13:23:03 +0000 |
commit | 404818dd288de1b374c3b5f3589450c382bad3c4 (patch) | |
tree | 4e3fe458a491342e59524d60cc6cbcd37ca588fd /src | |
parent | 2d7386a2d037497656aa9c601091fc4dd6d3ced2 (diff) |
aco: run p_wqm instructions in WQM
If the p_wqm ends up creating copies, these need to be in WQM. Helps (but
doesn't completely fix) artifacts in Strange Brigade. The actual issue
still exists and is harder to fix.
Signed-off-by: Rhys Perry <[email protected]>
Fixes: 93c8ebfa780 ('aco: Initial commit of independent AMD compiler')
Reviewed-by: Daniel Schürmann <[email protected]>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3273>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3273>
Diffstat (limited to 'src')
-rw-r--r-- | src/amd/compiler/aco_insert_exec_mask.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/amd/compiler/aco_insert_exec_mask.cpp b/src/amd/compiler/aco_insert_exec_mask.cpp index 9981828bad3..bf7ccf8b570 100644 --- a/src/amd/compiler/aco_insert_exec_mask.cpp +++ b/src/amd/compiler/aco_insert_exec_mask.cpp @@ -246,8 +246,9 @@ void get_block_needs(wqm_ctx &ctx, exec_ctx &exec_ctx, Block* block) } } - if (instr->opcode == aco_opcode::p_logical_end && info.logical_end_wqm) { - assert(needs == Unspecified); + if ((instr->opcode == aco_opcode::p_logical_end && info.logical_end_wqm) || + instr->opcode == aco_opcode::p_wqm) { + assert(needs != Exact); needs = WQM; } |