From e5646382ba94cad3877e792556e8f49e98e7bc7b Mon Sep 17 00:00:00 2001 From: Gert Wollny Date: Mon, 14 Nov 2022 15:29:57 +0100 Subject: [PATCH] r600/sfn: use only one undef in tex lowering Signed-off-by: Gert Wollny Part-of: --- src/gallium/drivers/r600/sfn/sfn_instr_tex.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/r600/sfn/sfn_instr_tex.cpp b/src/gallium/drivers/r600/sfn/sfn_instr_tex.cpp index 5ddd9539205..c95acaf4680 100644 --- a/src/gallium/drivers/r600/sfn/sfn_instr_tex.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_instr_tex.cpp @@ -960,7 +960,10 @@ private: nir_ssa_def * finalize(nir_tex_instr *tex, nir_ssa_def *backend1, nir_ssa_def *backend2); + nir_ssa_def *get_undef(); + amd_gfx_level m_chip_class; + nir_ssa_def *m_undef {nullptr}; }; bool @@ -999,6 +1002,13 @@ LowerTexToBackend::filter(const nir_instr *instr) const return nir_tex_instr_src_index(tex, nir_tex_src_backend1) == -1; } +nir_ssa_def *LowerTexToBackend::get_undef() +{ + if (!m_undef) + m_undef = nir_ssa_undef(b, 1, 32); + return m_undef; +} + nir_ssa_def * LowerTexToBackend::lower(nir_instr *instr) { @@ -1160,7 +1170,7 @@ LowerTexToBackend::prep_src(std::array& coord, int& used_coord if (coord[i]) used_coord_mask |= 1 << i; else - coord[i] = nir_ssa_undef(b, 1, 32); + coord[i] = get_undef(); } return nir_vec(b, coord.data(), 4);