Merge pull request #2976 from jeremy-lunarg/hayes-fix-2975
[platform/upstream/glslang.git] / Test / 420.geom
1 #version 420 core\r
2 \r
3 // testing input arrays without a gl_in[] block redeclaration, see 400.geom for with\r
4 \r
5 int i;\r
6 \r
7 void foo()\r
8 {\r
9     gl_in.length();  // ERROR\r
10     gl_in[1].gl_Position;\r
11     gl_in[i].gl_Position;  // ERROR\r
12 }\r
13 \r
14 layout(triangles) in;\r
15 \r
16 in vec4 color3[3];\r
17 \r
18 void foo3()\r
19 {\r
20     gl_in.length();\r
21     gl_in[i].gl_Position;\r
22     color3.length();\r
23 }\r
24 \r
25 uniform sampler2D s2D;\r
26 in vec2 coord[];\r
27 uniform vec4 v4;\r
28 \r
29 void foo4()\r
30 {\r
31     const ivec2 offsets[5] =\r
32     {\r
33         ivec2(0,1),\r
34         ivec2(1,-2),\r
35         ivec2(0,3),\r
36         ivec2(-3,0),\r
37         ivec2(2,1)\r
38     };\r
39 \r
40     vec4 v = textureGatherOffset(s2D, coord[0], offsets[i].xy);\r
41 \r
42     offsets[i].xy = ivec2(3);  // ERROR\r
43     v4.x = 3.2;                // ERROR\r
44     v4.xy;   // should have non-uniform type\r
45 }\r
46 \r
47 out gl_PerVertex {\r
48     float gl_PointSize[1];  // ERROR, adding array\r
49     float gl_ClipDistance;  // ERROR, removing array\r
50 };\r
51 \r
52 float foo5()\r
53 {\r
54     return i;  // implicit conversion of return type\r
55 }\r