summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/glslang/src/Test/420.tese
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/glslang/src/Test/420.tese')
-rw-r--r--chromium/third_party/glslang/src/Test/420.tese78
1 files changed, 78 insertions, 0 deletions
diff --git a/chromium/third_party/glslang/src/Test/420.tese b/chromium/third_party/glslang/src/Test/420.tese
new file mode 100644
index 00000000000..99c086ae8e9
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/420.tese
@@ -0,0 +1,78 @@
+#version 420 core
+
+const mat2x2 a = mat2( vec2( 1.0, 0.0 ), vec2( 0.0, 1.0 ) );
+mat2x2 b = { vec2( 1.0, 0.0 ), vec2( 0.0, 1.0 ) };
+const mat2x2 c = { { 1.0, 0.0, }, { 0.0, 1.0 } };
+
+float a2[2] = { 3.4, 4.2, 5.0 }; // illegal
+vec2 b2 = { 1.0, 2.0, 3.0 }; // illegal
+mat3x3 c2 = { vec3(0.0), vec3(1.0), vec3(2.0), vec3(3.0) }; // illegal
+mat2x2 d = { 1.0, 0.0, 0.0, 1.0 }; // illegal, can't flatten nesting
+
+struct {
+ float a;
+ int b;
+} e = { 1.2, 2, };
+
+struct {
+ float a;
+ int b;
+} e2 = { 1, 3 }; // legal, first initializer is converted
+
+struct {
+ float a;
+ int b;
+} e3 = { 1.2, 2, 3 }; // illegal
+
+int a3 = true; // illegal
+vec4 b3[2] = { vec4(0.0), 1.0 }; // illegal
+vec4 b4[2] = vec4[2](vec4(0.0), mat2x2(1.0)); // illegal
+mat4x2 c3 = { vec3(0.0), vec3(1.0) }; // illegal
+
+struct S1 {
+ vec4 a;
+ vec4 b;
+};
+
+struct {
+ float s;
+ float t;
+} d2[] = { S1(vec4(0.0), vec4(1.1)) }; // illegal
+
+float b5[] = { 3.4, 4.2, 5.0, 5.2, 1.1 };
+
+struct S3 {
+ float f;
+ mat2x3 m23;
+};
+
+struct S4 {
+ uvec2 uv2;
+ S3 s[2];
+};
+
+const S4 constructed = S4(uvec2(1, 2),
+ S3[2](S3(3.0, mat2x3(4.0)),
+ S3(5.0, mat2x3(6.0))));
+
+const S4 curlybad1 = { {1, 2},
+ { {3, {4.0, 0, 0.0}, {0.0, 4.0, 0.0 } }, // ERROR, the mat2x3 isn't isolated
+ {5.0, {6, 0.0, 0.0}, {0.0, 6.0, 0.0 } } } };
+
+const S4 curlyInit = { {1, 2},
+ { {3, { {4.0, 0, 0.0}, {0.0, 4.0, 0.0 } } },
+ {5.0, { {6, 0.0, 0.0}, {0.0, 6.0, 0.0 } } } } };
+
+float vc1, vc2, vc3;
+vec3 av3 = vec3(vc1, vc2, vc3);
+vec3 bv3 = { vc1, vc2, vc3 };
+
+void main()
+{
+ memoryBarrier();
+
+ if (constructed == curlybad1)
+ ;
+ if (constructed == curlyInit)
+ ;
+}