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:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user