ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / glsl-1.50 / linker / interface-vs-array-to-gs-array-sized.shader_test
blob080235c8b853aed1fdd7c3073fac279de2b4e05f
1 # From the GLSL 1.50 spec, section 4.3.7 (Interface Blocks):
3 #     Matched block names within an interface (as defined above) must
4 #     match in terms of having the same number of declarations with
5 #     the same sequence of types and the same sequence of member
6 #     names, as well as having the same member-wise layout
7 #     qualification (see next section). Furthermore, if a matching
8 #     block is declared as an array, then the array sizes must also
9 #     match (or follow array matching rules for the interface between
10 #     a vertex and a geometry shader).
12 # This test verifies that trying to link a VS output interface array
13 # to a sized GS input interface array fails, even if the size of the
14 # GS input interface array matches the size of the VS output interface
15 # array.
17 [require]
18 GLSL >= 1.50
20 [vertex shader]
21 out block {
22     vec4 a;
23     vec4 b;
24 } vs_block[3];
26 void main()
28         for(int i = 0; i < 3; i++) {
29                 vs_block[i].a = vec4(1., 0., 0., 1.);
30         }
33 [geometry shader]
34 layout(triangles) in;
35 layout(triangle_strip, max_vertices=3) out;
37 in block {
38     vec4 a;
39     vec4 b;
40 } vs_block[3];
42 out vec4 color;
44 void main()
46         for(int i = 0; i < 2; i++) {
47                 color = vs_block[i].a;
48         }
51 [test]
52 link error