Mesa (master): glsl/nir: Fix copying vector constant values

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Jun 24 18:40:16 UTC 2019


Module: Mesa
Branch: master
Commit: 390ff8ac54693262e7d56d8d467dbb6be8c858ae
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=390ff8ac54693262e7d56d8d467dbb6be8c858ae

Author: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>
Date:   Fri Jun 21 16:55:08 2019 -0700

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 <jason at jlekstrand.net>

---

 src/compiler/glsl/gl_nir_link_uniform_initializers.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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],




More information about the mesa-commit mailing list