From: Gert Wollny Date: Sat, 23 May 2020 16:28:05 +0000 (+0200) Subject: r600/sfn: Correctly update the number of literals when forcing a new X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cead23cb8ac3fbfdcbc69df024d7ef0c4d9cd1b9;p=mesa.git r600/sfn: Correctly update the number of literals when forcing a new group When forcing a new instruction group by adding a ALU_OP_NOP, the literals for the instruction that triggered this must be taken into account for the next group, so update the number of literals accordingly. Signed-off-by: Gert Wollny Part-of: --- diff --git a/src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.cpp b/src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.cpp index dd6e9f63c07..415e17a903a 100644 --- a/src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.cpp @@ -247,6 +247,7 @@ bool AssemblyFromShaderLegacyImpl::emit_alu(const AluInstruction& ai, ECFAluOpCo return false; } + unsigned old_nliterals_in_group = m_nliterals_in_group; for (unsigned i = 0; i < ai.n_sources(); ++i) { auto& s = ai.src(i); if (s.type() == Value::literal) @@ -266,7 +267,7 @@ bool AssemblyFromShaderLegacyImpl::emit_alu(const AluInstruction& ai, ECFAluOpCo if (retval) return false; memset(&alu, 0, sizeof(alu)); - m_nliterals_in_group = 0; + m_nliterals_in_group -= old_nliterals_in_group; } alu.op = opcode_map.at(ai.opcode());