glsl: fix check for matrices in blocks when using nir uniform linker

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 <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3468>
This commit is contained in:
Timothy Arceri
2020-01-13 11:36:10 +11:00
committed by Marge Bot
parent 55e4410b34
commit e5b3cf433e
+3 -4
View File
@@ -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;
}