ARB_ubo/referenced-by-shader: pass if shader compiler moves UBOs between shaders
[piglit.git] / tests / spec / glsl-1.50 / linker / gs-input-sizing-layout-conflicts-with-static-usage.shader_test
blob4225ef47e1ccee04028f6c2c6b4cea464b3bf10f
1 # Section 4.3.8.1 (Input Layout Qualifiers) of the GLSL 1.50 spec says:
3 # It is a link-time error if not all provided sizes (sized input
4 # arrays and layout size) match across all geometry shaders in the
5 # program.
7 # This test exercises the case where one compilation unit provides a
8 # size via a layout declaration, and another provides a size
9 # implicitly by accessing a member of an input array using a constant.
11 [require]
12 GLSL >= 1.50
14 [vertex shader]
15 #version 150
17 in vec4 vertex;
18 out vec4 vertex_to_gs;
20 void main()
22   vertex_to_gs = vertex;
25 [geometry shader]
26 #version 150
28 layout(lines) in;
29 layout(triangle_strip, max_vertices = 3) out;
31 void do_vertex();
33 void main()
35   for (int i = 0; i < 2; i++)
36     do_vertex();
39 [geometry shader]
40 #version 150
42 in vec4 vertex_to_gs[];
44 void do_vertex()
46   gl_Position = vertex_to_gs[2];
47   EmitVertex();
50 [fragment shader]
51 #version 150
53 out vec4 color;
55 void main()
57   color = vec4(0.0, 1.0, 0.0, 1.0);
60 [test]
61 link error