diff --git a/src/mesa/slang/slang_typeinfo.c b/src/mesa/slang/slang_typeinfo.c
index d039a12..eccd29f 100644
--- a/src/mesa/slang/slang_typeinfo.c
+++ b/src/mesa/slang/slang_typeinfo.c
@@ -187,8 +187,11 @@ static const type_specifier_type_name type_specifier_type_names[] = {
{"vec3", SLANG_SPEC_VEC3},
{"vec4", SLANG_SPEC_VEC4},
{"mat2", SLANG_SPEC_MAT2},
+ {"mat2x2", SLANG_SPEC_MAT22},
{"mat3", SLANG_SPEC_MAT3},
+ {"mat3x3", SLANG_SPEC_MAT33},
{"mat4", SLANG_SPEC_MAT4},
+ {"mat4x4", SLANG_SPEC_MAT44},
{"mat2x3", SLANG_SPEC_MAT23},
{"mat3x2", SLANG_SPEC_MAT32},
{"mat2x4", SLANG_SPEC_MAT24},
@@ -934,12 +937,15 @@ _slang_type_is_matrix(slang_type_specifier_type ty)
case SLANG_SPEC_MAT2:
case SLANG_SPEC_MAT3:
case SLANG_SPEC_MAT4:
+ case SLANG_SPEC_MAT22:
case SLANG_SPEC_MAT23:
case SLANG_SPEC_MAT32:
+ case SLANG_SPEC_MAT33:
case SLANG_SPEC_MAT24:
case SLANG_SPEC_MAT42:
case SLANG_SPEC_MAT34:
case SLANG_SPEC_MAT43:
+ case SLANG_SPEC_MAT44:
return GL_TRUE;
default:
return GL_FALSE;
@@ -986,12 +992,15 @@ _slang_type_is_float_vec_mat(slang_type_specifier_type ty)
case SLANG_SPEC_MAT2:
case SLANG_SPEC_MAT3:
case SLANG_SPEC_MAT4:
+ case SLANG_SPEC_MAT22:
case SLANG_SPEC_MAT23:
case SLANG_SPEC_MAT32:
+ case SLANG_SPEC_MAT33:
case SLANG_SPEC_MAT24:
case SLANG_SPEC_MAT42:
case SLANG_SPEC_MAT34:
case SLANG_SPEC_MAT43:
+ case SLANG_SPEC_MAT44:
return GL_TRUE;
default:
return GL_FALSE;
@@ -1023,10 +1032,13 @@ _slang_type_base(slang_type_specifier_type ty)
case SLANG_SPEC_BVEC4:
return SLANG_SPEC_BOOL;
case SLANG_SPEC_MAT2:
+ case SLANG_SPEC_MAT22:
return SLANG_SPEC_VEC2;
case SLANG_SPEC_MAT3:
+ case SLANG_SPEC_MAT33:
return SLANG_SPEC_VEC3;
case SLANG_SPEC_MAT4:
+ case SLANG_SPEC_MAT44:
return SLANG_SPEC_VEC4;
case SLANG_SPEC_MAT23:
return SLANG_SPEC_VEC3;
@@ -1062,16 +1074,19 @@ _slang_type_dim(slang_type_specifier_type ty)
case SLANG_SPEC_IVEC2:
case SLANG_SPEC_BVEC2:
case SLANG_SPEC_MAT2:
+ case SLANG_SPEC_MAT22:
return 2;
case SLANG_SPEC_VEC3:
case SLANG_SPEC_IVEC3:
case SLANG_SPEC_BVEC3:
case SLANG_SPEC_MAT3:
+ case SLANG_SPEC_MAT33:
return 3;
case SLANG_SPEC_VEC4:
case SLANG_SPEC_IVEC4:
case SLANG_SPEC_BVEC4:
case SLANG_SPEC_MAT4:
+ case SLANG_SPEC_MAT44:
return 4;
case SLANG_SPEC_MAT23:
@@ -1125,10 +1140,13 @@ _slang_gltype_from_specifier(const slang_type_specifier *type)
case SLANG_SPEC_VEC4:
return GL_FLOAT_VEC4;
case SLANG_SPEC_MAT2:
+ case SLANG_SPEC_MAT22:
return GL_FLOAT_MAT2;
case SLANG_SPEC_MAT3:
+ case SLANG_SPEC_MAT33:
return GL_FLOAT_MAT3;
case SLANG_SPEC_MAT4:
+ case SLANG_SPEC_MAT44:
return GL_FLOAT_MAT4;
case SLANG_SPEC_MAT23:
return GL_FLOAT_MAT2x3;
diff --git a/src/mesa/slang/slang_typeinfo.h b/src/mesa/slang/slang_typeinfo.h
index 2251b06..a156bbd 100644
--- a/src/mesa/slang/slang_typeinfo.h
+++ b/src/mesa/slang/slang_typeinfo.h
@@ -130,11 +130,14 @@ typedef enum slang_type_specifier_type_
SLANG_SPEC_MAT3,
SLANG_SPEC_MAT4,
SLANG_SPEC_MAT23,
+ SLANG_SPEC_MAT22,
SLANG_SPEC_MAT32,
+ SLANG_SPEC_MAT33,
SLANG_SPEC_MAT24,
SLANG_SPEC_MAT42,
SLANG_SPEC_MAT34,
SLANG_SPEC_MAT43,
+ SLANG_SPEC_MAT44,
SLANG_SPEC_SAMPLER_1D,
SLANG_SPEC_SAMPLER_2D,
SLANG_SPEC_SAMPLER_3D,