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 <pendingchaos02@gmail.com>
Fixes: 93c8ebfa78 ('aco: Initial commit of independent AMD compiler')
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3273>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3273>
(cherry picked from commit 404818dd28)
This commit is contained in:
Rhys Perry 2020-01-13 14:53:56 +00:00 committed by Dylan Baker
parent f7e405bf7c
commit 40d3eeb0e3
2 changed files with 4 additions and 3 deletions

View file

@ -85,7 +85,7 @@
"description": "aco: run p_wqm instructions in WQM",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"master_sha": null,
"because_sha": "93c8ebfa780ebd1495095e794731881aef29e7d3"
},

View file

@ -239,8 +239,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;
}