r600/sfn: allocate pinned registers as SSA

Don't allocate the helper_invocation register as pinned, because it is
not an SSA value.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20205>
This commit is contained in:
Gert Wollny 2022-12-08 11:44:56 +01:00 committed by Marge Bot
parent b623e1a0ef
commit 4d4411588b
2 changed files with 3 additions and 1 deletions

View file

@ -256,7 +256,7 @@ FragmentShader::do_allocate_reserved_registers()
}
if (m_sv_values.test(es_helper_invocation)) {
m_helper_invocation = value_factory().allocate_pinned_register(next_register++, 0);
m_helper_invocation = value_factory().temp_register(0, false);
}
return next_register;

View file

@ -149,6 +149,7 @@ ValueFactory::allocate_pinned_register(int sel, int chan)
auto reg = new Register(sel, chan, pin_fully);
reg->set_flag(Register::pin_start);
reg->set_flag(Register::ssa);
m_pinned_registers.push_back(reg);
return reg;
}
@ -162,6 +163,7 @@ ValueFactory::allocate_pinned_vec4(int sel, bool is_ssa)
RegisterVec4 retval(sel, is_ssa, {0, 1, 2, 3}, pin_fully);
for (int i = 0; i < 4; ++i) {
retval[i]->set_flag(Register::pin_start);
retval[i]->set_flag(Register::ssa);
m_pinned_registers.push_back(retval[i]);
}
return retval;