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 <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5187>
This commit is contained in:
Gert Wollny 2020-05-23 18:28:05 +02:00 committed by Marge Bot
parent 12381a0410
commit cead23cb8a

View file

@ -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());