From: Gert Wollny Date: Thu, 8 Dec 2022 10:44:56 +0000 (+0100) Subject: r600/sfn: allocate pinned registers as SSA X-Git-Tag: upstream/23.3.3~15789 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4d4411588bf93d2e8fe990c1d9b9a2b8c2836ad6;p=platform%2Fupstream%2Fmesa.git 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 Part-of: --- diff --git a/src/gallium/drivers/r600/sfn/sfn_shader_fs.cpp b/src/gallium/drivers/r600/sfn/sfn_shader_fs.cpp index 6e71cf7..82dbfbf 100644 --- a/src/gallium/drivers/r600/sfn/sfn_shader_fs.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_shader_fs.cpp @@ -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; diff --git a/src/gallium/drivers/r600/sfn/sfn_valuefactory.cpp b/src/gallium/drivers/r600/sfn/sfn_valuefactory.cpp index de38efc..e19479e 100644 --- a/src/gallium/drivers/r600/sfn/sfn_valuefactory.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_valuefactory.cpp @@ -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;