ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / glsl-1.50 / linker / unsized-in-unnamed-interface-block-gs.shader_test
blob366c085030b66cf8af45c73bfaca5937d2662aed
1 # Test that when an interface block contains members which are unsized
2 # arrays, the standard rules are applied in order to determine the
3 # array sizes (namely, the sizes should be inferred from the maximum
4 # array element accessed).
6 # In this test, there is a vertex shader output which uses an array
7 # size of 3, and a geometry shader input that uses an array size of 2,
8 # so link error should be produced.  The vertex shader uses an unnamed
9 # interface block.
11 [require]
12 GLSL >= 1.50
14 [vertex shader]
15 #version 150
16 in vec4 piglit_vertex;
17 out blk {
18   float foo[];
21 void main()
23   foo[0] = 0.0;
24   foo[1] = 0.0;
25   foo[2] = 0.0;
26   gl_Position = piglit_vertex;
29 [geometry shader]
30 #version 150
31 layout(triangles) in;
32 layout(triangle_strip, max_vertices = 3) out;
33 in blk {
34   float foo[];
35 } ifc_name[];
36 out vec2 bar;
38 void main()
40   for (int i = 0; i < 3; i++) {
41     gl_Position = gl_in[i].gl_Position;
42     bar = vec2(ifc_name[i].foo[0], ifc_name[i].foo[1]);
43     EmitVertex();
44   }
47 [fragment shader]
48 #version 150
49 in vec2 bar;
51 void main()
53   gl_FragColor = vec4(bar, 0.0, 1.0);
56 [test]
57 link error