ARB_ubo/referenced-by-shader: pass if shader compiler moves UBOs between shaders
[piglit.git] / tests / spec / glsl-1.50 / uniform_buffer / gs-struct.shader_test
blob9721d267510bee93d052c8a2a2b528fb842107a2
1 [require]
2 GLSL >= 1.50
4 [vertex shader]
5 #version 150
7 in vec4 vertex;
8 out vec4 vertex_to_gs;
10 void main()
12         vertex_to_gs = vertex;
15 [geometry shader]
16 #version 150
18 layout(triangles) in;
19 layout(triangle_strip, max_vertices = 3) out;
21 struct S {
22         float r;
23         float g;
24         float b;
25         float a;
28 uniform ubo1 {
29         S s;
32 in vec4 vertex_to_gs[3];
33 out vec4 v;
35 void main()
37         for (int i = 0; i < 3; i++) {
38                 gl_Position = vertex_to_gs[i];
39                 v = vec4(s.r, s.g, s.b, s.a);
40                 EmitVertex();
41         }
44 [fragment shader]
45 #version 150
47 in vec4 v;
49 void main()
51         gl_FragColor = v;
54 [vertex data]
55 vertex/float/2
56 -1.0 -1.0
57  1.0 -1.0
58  1.0  1.0
59 -1.0  1.0
61 [test]
62 uniform float s.r 0.0
63 uniform float s.g 1.0
64 uniform float s.b 0.0
65 uniform float s.a 0.0
66 draw arrays GL_TRIANGLE_FAN 0 4
67 probe all rgba 0.0 1.0 0.0 0.0