summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRhys Perry <[email protected]>2020-01-13 14:53:56 +0000
committerMarge Bot <[email protected]>2020-01-29 13:23:03 +0000
commit404818dd288de1b374c3b5f3589450c382bad3c4 (patch)
tree4e3fe458a491342e59524d60cc6cbcd37ca588fd /src
parent2d7386a2d037497656aa9c601091fc4dd6d3ced2 (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.cpp5
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;
}