From 40d3eeb0e34c0089b25495d114761310a5dc6e9f Mon Sep 17 00:00:00 2001 From: Rhys Perry Date: Mon, 13 Jan 2020 14:53:56 +0000 Subject: [PATCH] aco: run p_wqm instructions in WQM MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Fixes: 93c8ebfa780 ('aco: Initial commit of independent AMD compiler') Reviewed-by: Daniel Schürmann Tested-by: Marge Bot Part-of: (cherry picked from commit 404818dd288de1b374c3b5f3589450c382bad3c4) --- .pick_status.json | 2 +- src/amd/compiler/aco_insert_exec_mask.cpp | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 73cc770bde3..6461b759ba8 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -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" }, diff --git a/src/amd/compiler/aco_insert_exec_mask.cpp b/src/amd/compiler/aco_insert_exec_mask.cpp index 2dd35843410..031f15394a6 100644 --- a/src/amd/compiler/aco_insert_exec_mask.cpp +++ b/src/amd/compiler/aco_insert_exec_mask.cpp @@ -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; }