From f12eb5c2136d5bf9c76c441f2e75cd128df7be2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Fri, 11 Mar 2022 17:14:38 +0100 Subject: [PATCH] aco: avoid unnecessary copies in emit_wqm() No fossil-db changes. Reviewed-by: Rhys Perry Part-of: --- src/amd/compiler/aco_instruction_selection.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp index 6040ec78572..e3de4efb805 100644 --- a/src/amd/compiler/aco_instruction_selection.cpp +++ b/src/amd/compiler/aco_instruction_selection.cpp @@ -169,19 +169,16 @@ emit_mbcnt(isel_context* ctx, Temp dst, Operand mask = Operand(), Operand base = Temp emit_wqm(Builder& bld, Temp src, Temp dst = Temp(0, s1), bool program_needs_wqm = false) { - if (!dst.id()) - dst = bld.tmp(src.regClass()); - - assert(src.size() == dst.size()); - if (bld.program->stage != fragment_fs) { if (!dst.id()) return src; - - bld.copy(Definition(dst), src); - return dst; + else + return bld.copy(Definition(dst), src); + } else if (!dst.id()) { + dst = bld.tmp(src.regClass()); } + assert(src.size() == dst.size()); bld.pseudo(aco_opcode::p_wqm, Definition(dst), src); bld.program->needs_wqm |= program_needs_wqm; return dst;