zink: generically handle matrix types
[mesa.git] / src / gallium / drivers / zink / nir_to_spirv / nir_to_spirv.c
index bcbb208de1177203c088a6511e582597a0c40662..97ea028c939f14d00980b4b8b2ebeba31fdd0ae2 100644 (file)
@@ -285,6 +285,12 @@ get_glsl_type(struct ntv_context *ctx, const struct glsl_type *type)
       return ret;
    }
 
+   if (glsl_type_is_matrix(type))
+      return spirv_builder_type_matrix(&ctx->builder,
+                                       spirv_builder_type_vector(&ctx->builder,
+                                                                 get_glsl_basetype(ctx, glsl_get_base_type(type)),
+                                                                 glsl_get_vector_elements(type)),
+                                       glsl_get_matrix_columns(type));
 
    unreachable("we shouldn't get here, I think...");
 }