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,