From f816dd1be751d445ec573df99e57e6510170d0fb Mon Sep 17 00:00:00 2001 From: =?utf8?q?Daniel=20Sch=C3=BCrmann?= Date: Tue, 25 Jan 2022 13:12:40 +0100 Subject: [PATCH] aco: don't propagate WQM for p_as_uniform This was needed, so that in case of active helper lanes, these contain the correct value. It is now handled implicitly. Totals from 1004 (0.74% of 134913) affected shaders: (GFX10.3) CodeSize: 7581020 -> 7580892 (-0.00%); split: -0.00%, +0.00% Instrs: 1454940 -> 1454908 (-0.00%); split: -0.00%, +0.00% Latency: 12984953 -> 12984894 (-0.00%); split: -0.00%, +0.00% InvThroughput: 3173037 -> 3173049 (+0.00%); split: -0.00%, +0.00% PreSGPRs: 47498 -> 47273 (-0.47%) Reviewed-by: Rhys Perry Part-of: --- src/amd/compiler/aco_insert_exec_mask.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/amd/compiler/aco_insert_exec_mask.cpp b/src/amd/compiler/aco_insert_exec_mask.cpp index 555d6e8..4a2798b 100644 --- a/src/amd/compiler/aco_insert_exec_mask.cpp +++ b/src/amd/compiler/aco_insert_exec_mask.cpp @@ -147,8 +147,7 @@ get_block_needs(wqm_ctx& ctx, exec_ctx& exec_ctx, Block* block) aco_ptr& instr = block->instructions[i]; WQMState needs = needs_exact(instr) ? Exact : Unspecified; - bool propagate_wqm = - instr->opcode == aco_opcode::p_wqm || instr->opcode == aco_opcode::p_as_uniform; + bool propagate_wqm = instr->opcode == aco_opcode::p_wqm; bool preserve_wqm = instr->opcode == aco_opcode::p_discard_if; bool pred_by_exec = needs_exec_mask(instr.get()); for (const Definition& definition : instr->definitions) { -- 2.7.4