Module: Mesa Branch: main Commit: 1e1c450659ac1b34f59b9914fc2ea23954fea49b URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1e1c450659ac1b34f59b9914fc2ea23954fea49b
Author: Faith Ekstrand <faith.ekstr...@collabora.com> Date: Thu Apr 27 14:51:49 2023 -0500 nir/lower_io_to_vector: Only call glsl_get_length() on arrays We assumed that calling it on vectors would return 0 and then did a MAX2(length, 1) to get 1 for vectors. Instead, use a ternary so we don't make assumptions about non-sensical values. Reviewed-by: Karol Herbst <kher...@redhat.com> Reviewed-by: Alyssa Rosenzweig <aly...@rosenzweig.io> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22580> --- src/compiler/nir/nir_lower_io_to_vector.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/compiler/nir/nir_lower_io_to_vector.c b/src/compiler/nir/nir_lower_io_to_vector.c index 79ac0123394..3a90989d60a 100644 --- a/src/compiler/nir/nir_lower_io_to_vector.c +++ b/src/compiler/nir/nir_lower_io_to_vector.c @@ -309,7 +309,8 @@ create_new_io_vars(nir_shader *shader, nir_variable_mode mode, var->type = flat_type; nir_shader_add_variable(shader, var); - unsigned num_slots = MAX2(glsl_get_length(flat_type), 1); + unsigned num_slots = + glsl_type_is_array(flat_type) ? glsl_get_length(flat_type) : 1; for (unsigned i = 0; i < num_slots; i++) { for (unsigned j = 0; j < 4; j++) new_vars[loc + i][j] = var;