From: Caio Marcelo de Oliveira Filho Date: Fri, 21 Jun 2019 23:55:08 +0000 (-0700) Subject: glsl/nir: Fix copying vector constant values X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=390ff8ac54693262e7d56d8d467dbb6be8c858ae;p=mesa.git glsl/nir: Fix copying vector constant values For n_columns == 1, we have a vector which is handled by the else case. Fixes invalid memory access in upcoming ARB_gl_spirv tests. Failure bisected by Arcady Goldmints-Orlov. Fixes: 81e51b412e9 "nir: Make nir_constant a vector rather than a matrix" Reviewed-by: Jason Ekstrand --- diff --git a/src/compiler/glsl/gl_nir_link_uniform_initializers.c b/src/compiler/glsl/gl_nir_link_uniform_initializers.c index 546da68927f..1d2938dca01 100644 --- a/src/compiler/glsl/gl_nir_link_uniform_initializers.c +++ b/src/compiler/glsl/gl_nir_link_uniform_initializers.c @@ -121,7 +121,7 @@ copy_constant_to_storage(union gl_constant_value *storage, unsigned dmul = glsl_base_type_is_64bit(base_type) ? 2 : 1; int i = 0; - if (n_columns > 0) { + if (n_columns > 1) { const struct glsl_type *column_type = glsl_get_column_type(type); for (unsigned int column = 0; column < n_columns; column++) { copy_constant_to_storage(&storage[i], val->elements[column],