Next version, with changes  for src/glsl/cl/sl_cl_parse.c
diff --git a/src/glsl/cl/sl_cl_parse.c b/src/glsl/cl/sl_cl_parse.c
index 09456f5..8bd448b 100644
--- a/src/glsl/cl/sl_cl_parse.c
+++ b/src/glsl/cl/sl_cl_parse.c
@@ -154,18 +154,21 @@
 #define TYPE_SPECIFIER_TYPENAME                    25
 
 /* OpenGL 2.1 */
-#define TYPE_SPECIFIER_MAT23                       26
-#define TYPE_SPECIFIER_MAT32                       27
-#define TYPE_SPECIFIER_MAT24                       28
-#define TYPE_SPECIFIER_MAT42                       29
-#define TYPE_SPECIFIER_MAT34                       30
-#define TYPE_SPECIFIER_MAT43                       31
+#define TYPE_SPECIFIER_MAT22                       26
+#define TYPE_SPECIFIER_MAT23                       27
+#define TYPE_SPECIFIER_MAT32                       28
+#define TYPE_SPECIFIER_MAT33                       29
+#define TYPE_SPECIFIER_MAT24                       30
+#define TYPE_SPECIFIER_MAT42                       31
+#define TYPE_SPECIFIER_MAT34                       32
+#define TYPE_SPECIFIER_MAT43                       33
+#define TYPE_SPECIFIER_MAT44                       34
 
 /* GL_EXT_texture_array */
-#define TYPE_SPECIFIER_SAMPLER_1D_ARRAY            32
-#define TYPE_SPECIFIER_SAMPLER_2D_ARRAY            33
-#define TYPE_SPECIFIER_SAMPLER_1D_ARRAY_SHADOW     34
-#define TYPE_SPECIFIER_SAMPLER_2D_ARRAY_SHADOW     35
+#define TYPE_SPECIFIER_SAMPLER_1D_ARRAY            35
+#define TYPE_SPECIFIER_SAMPLER_2D_ARRAY            36
+#define TYPE_SPECIFIER_SAMPLER_1D_ARRAY_SHADOW     37
+#define TYPE_SPECIFIER_SAMPLER_2D_ARRAY_SHADOW     38
 
 /* type specifier array */
 #define TYPE_SPECIFIER_NONARRAY                    0
@@ -274,12 +277,15 @@ struct parse_dict {
    int mat2;
    int mat3;
    int mat4;
+   int mat2x2;
    int mat2x3;
    int mat3x2;
    int mat2x4;
    int mat4x2;
+   int mat3x3;
    int mat3x4;
    int mat4x3;
+   int mat4x4;
    int sampler1D;
    int sampler2D;
    int sampler3D;
@@ -1012,10 +1018,14 @@ _parse_type_specifier_nonarray(struct parse_context *ctx,
       _update(ctx, e, TYPE_SPECIFIER_MAT3);
    } else if (id == ctx->dict.mat4) {
       _update(ctx, e, TYPE_SPECIFIER_MAT4);
+   } else if (id == ctx->dict.mat2x2) {
+      _update(ctx, e, TYPE_SPECIFIER_MAT22);
    } else if (id == ctx->dict.mat2x3) {
       _update(ctx, e, TYPE_SPECIFIER_MAT23);
    } else if (id == ctx->dict.mat3x2) {
       _update(ctx, e, TYPE_SPECIFIER_MAT32);
+   } else if (id == ctx->dict.mat3x3) {
+     _update(ctx, e, TYPE_SPECIFIER_MAT33);
    } else if (id == ctx->dict.mat2x4) {
       _update(ctx, e, TYPE_SPECIFIER_MAT24);
    } else if (id == ctx->dict.mat4x2) {
@@ -1024,6 +1034,8 @@ _parse_type_specifier_nonarray(struct parse_context *ctx,
       _update(ctx, e, TYPE_SPECIFIER_MAT34);
    } else if (id == ctx->dict.mat4x3) {
       _update(ctx, e, TYPE_SPECIFIER_MAT43);
+   } else if (id == ctx->dict.mat4x4) {
+      _update(ctx, e, TYPE_SPECIFIER_MAT44);
    } else if (id == ctx->dict.sampler1D) {
       _update(ctx, e, TYPE_SPECIFIER_SAMPLER1D);
    } else if (id == ctx->dict.sampler2D) {
@@ -2922,12 +2934,15 @@ sl_cl_compile(struct sl_pp_context *context,
    ADD_NAME(ctx, mat2);
    ADD_NAME(ctx, mat3);
    ADD_NAME(ctx, mat4);
+   ADD_NAME(ctx, mat2x2);
    ADD_NAME(ctx, mat2x3);
    ADD_NAME(ctx, mat3x2);
+   ADD_NAME(ctx, mat3x3);
    ADD_NAME(ctx, mat2x4);
    ADD_NAME(ctx, mat4x2);
    ADD_NAME(ctx, mat3x4);
    ADD_NAME(ctx, mat4x3);
+   ADD_NAME(ctx, mat4x4);
    ADD_NAME(ctx, sampler1D);
    ADD_NAME(ctx, sampler2D);
    ADD_NAME(ctx, sampler3D);
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,
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to