diff --git a/src/gallium/drivers/r600/sfn/sfn_instr_tex.cpp b/src/gallium/drivers/r600/sfn/sfn_instr_tex.cpp index 84caf6e5ceb..1a47740058f 100644 --- a/src/gallium/drivers/r600/sfn/sfn_instr_tex.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_instr_tex.cpp @@ -1162,14 +1162,16 @@ LowerTexToBackend::finalize(nir_tex_instr *tex, nir_ssa_def * LowerTexToBackend::prep_src(std::array& coord, int& used_coord_mask) { + int max_coord = 0; for (int i = 0; i < 4; ++i) { - if (coord[i]) + if (coord[i]) { used_coord_mask |= 1 << i; - else + max_coord = i; + } else coord[i] = get_undef(); } - return nir_vec(b, coord.data(), 4); + return nir_vec(b, coord.data(), max_coord + 1); } nir_ssa_def *