diff --git a/src/compiler/nir/nir_lower_io_to_vector.c b/src/compiler/nir/nir_lower_io_to_vector.c index e17f6ddb158..27913b507e9 100644 --- a/src/compiler/nir/nir_lower_io_to_vector.c +++ b/src/compiler/nir/nir_lower_io_to_vector.c @@ -304,7 +304,8 @@ create_new_io_vars(nir_shader *shader, nir_variable_mode mode, var->type = flat_type; nir_shader_add_variable(shader, var); - for (unsigned i = 0; i < glsl_get_length(flat_type); i++) { + unsigned num_slots = MAX2(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; flat_vars[loc + i] = true;