Merge pull request #2913 from greg-lunarg/i2905
[platform/upstream/glslang.git] / Test / 310.tese
1 #version 310 es\r
2 \r
3 #extension GL_EXT_tessellation_shader : enable\r
4 #extension GL_OES_tessellation_shader : enable\r
5 #extension GL_EXT_tessellation_shader : disable\r
6 \r
7 layout(vertices = 4) out; // ERROR\r
8 layout(quads, cw) in;\r
9 layout(triangles) in;     // ERROR\r
10 layout(isolines) in;      // ERROR\r
11 \r
12 layout(ccw) in;           // ERROR\r
13 layout(cw) in;\r
14 \r
15 layout(fractional_odd_spacing) in;    \r
16 layout(equal_spacing) in;              // ERROR\r
17 layout(fractional_even_spacing) in;    // ERROR\r
18 \r
19 layout(point_mode) in;\r
20 \r
21 patch in vec4 patchIn;\r
22 patch out vec4 patchOut;  // ERROR\r
23 \r
24 void main()\r
25 {\r
26     barrier(); // ERROR\r
27 \r
28     int a = gl_MaxTessEvaluationInputComponents +\r
29             gl_MaxTessEvaluationOutputComponents +\r
30             gl_MaxTessEvaluationTextureImageUnits +\r
31             gl_MaxTessEvaluationUniformComponents +\r
32             gl_MaxTessPatchComponents +\r
33             gl_MaxPatchVertices +\r
34             gl_MaxTessGenLevel;\r
35 \r
36     vec4 p = gl_in[1].gl_Position;\r
37     float ps = gl_in[1].gl_PointSize;        // ERROR, need point_size extension\r
38     float cd = gl_in[1].gl_ClipDistance[2];  // ERROR, not in ES\r
39 \r
40     int pvi = gl_PatchVerticesIn;\r
41     int pid = gl_PrimitiveID;\r
42     vec3 tc = gl_TessCoord;\r
43     float tlo = gl_TessLevelOuter[3];\r
44     float tli = gl_TessLevelInner[1];\r
45 \r
46     gl_Position = p;\r
47     gl_PointSize = ps;             // ERROR, need point_size extension\r
48     gl_ClipDistance[2] = cd;       // ERROR, not in ES\r
49 }\r
50 \r
51 smooth patch in vec4 badp1;         // ERROR\r
52 flat patch in vec4 badp2;           // ERROR\r
53 noperspective patch in vec4 badp3;  // ERROR\r
54 patch sample in vec3 badp4;         // ERROR\r
55 \r
56 #extension GL_ARB_separate_shader_objects : enable\r
57 \r
58 in gl_PerVertex\r
59 {\r
60     vec4 gl_Position;\r
61 } gl_in[];\r
62 \r
63 in gl_PerVertex           // ERROR, second redeclaration of gl_in\r
64 {\r
65     vec4 gl_Position;\r
66 } gl_in[];\r
67 \r
68 layout(quads, cw) out;     // ERROR\r
69 layout(triangles) out;     // ERROR\r
70 layout(isolines) out;      // ERROR\r
71 layout(cw) out;            // ERROR\r
72 layout(fractional_odd_spacing) out;    // ERROR\r
73 layout(equal_spacing) out;             // ERROR\r
74 layout(fractional_even_spacing) out;   // ERROR\r
75 layout(point_mode) out;                // ERROR\r
76 \r
77 in vec2 ina;      // ERROR, not array\r
78 in vec2 inb[];\r
79 in vec2 inc[18];  // ERROR, wrong size\r
80 in vec2 ind[gl_MaxPatchVertices];\r
81 \r
82 in testbla {      // ERROR, not array\r
83     int f;\r
84 } bla;\r
85 \r
86 in testblb {\r
87     int f;\r
88 } blb[];\r
89 \r
90 in testblc { // ERROR wrong size\r
91     int f;\r
92 } blc[18];\r
93 \r
94 in testbld {\r
95     int f;\r
96 } bld[gl_MaxPatchVertices];\r
97 \r
98 layout(location = 23) in vec4 ivla[];\r
99 layout(location = 24) in vec4 ivlb[];\r
100 layout(location = 24) in vec4 ivlc[];  // ERROR, overlap\r
101 \r
102 layout(location = 23) out vec4 ovla[2];\r
103 layout(location = 24) out vec4 ovlb[2];  // ERROR, overlap\r
104 \r
105 in float gl_TessLevelOuter[4];           // ERROR, can't redeclare\r
106 \r
107 patch in pinbn {\r
108     int a;\r
109 } pinbi;\r
110 \r
111 centroid out vec3 myColor2;\r
112 centroid in vec3 centr[];\r
113 sample out vec4 perSampleColor;  // ERROR without sample extensions\r
114 \r
115 #extension GL_OES_tessellation_point_size : enable\r
116 \r
117 void pointSize2()\r
118 {\r
119     float ps = gl_in[1].gl_PointSize;  // ERROR, not in the redeclaration, but no error on use of gl_PointSize\r
120     gl_PointSize = ps;\r
121 }\r
122 \r
123 #extension GL_EXT_primitive_bounding_box : enable\r
124 \r
125 void bbbad()\r
126 {\r
127     gl_BoundingBoxOES; // ERROR, wrong stage\r
128 }\r