From e5b3cf433e8b0e31e257a8e1216b6f8c08f7e780 Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Mon, 13 Jan 2020 11:36:10 +1100 Subject: [PATCH] glsl: fix check for matrices in blocks when using nir uniform linker MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit We need to stripe any arrays before checking the type. Here we just use the uniform type which has already be stripped. Reviewed-by: Alejandro Piñeiro Part-of: --- src/compiler/glsl/gl_nir_link_uniforms.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/compiler/glsl/gl_nir_link_uniforms.c b/src/compiler/glsl/gl_nir_link_uniforms.c index efb26caf7ff..97bd57fc2b8 100644 --- a/src/compiler/glsl/gl_nir_link_uniforms.c +++ b/src/compiler/glsl/gl_nir_link_uniforms.c @@ -554,10 +554,9 @@ nir_link_uniform(struct gl_context *ctx, uniform->array_stride = glsl_type_is_array(type) ? glsl_get_explicit_stride(type) : 0; - if (glsl_type_is_matrix(type)) { - uniform->matrix_stride = glsl_get_explicit_stride(type); - - uniform->row_major = glsl_matrix_type_is_row_major(type); + if (glsl_type_is_matrix(uniform->type)) { + uniform->matrix_stride = glsl_get_explicit_stride(uniform->type); + uniform->row_major = glsl_matrix_type_is_row_major(uniform->type); } else { uniform->matrix_stride = 0; } -- 2.30.2