ARB_ubo/referenced-by-shader: pass if shader compiler moves UBOs between shaders
[piglit.git] / tests / spec / glsl-1.50 / uniform_buffer / gs-struct-copy.shader_test
blob7a84a42629ca9265a7b44de632be3eaa70e6cddd
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         vec4 a, b, c, d;
25 uniform ubo1 {
26         S colors;
29 in vec4 vertex_to_gs[3];
30 out vec4 v;
32 void main()
34         for (int i = 0; i < 3; i++) {
35                 gl_Position = vertex_to_gs[i];
37                 S temp = colors;
38                 temp.c = vec4(0.0); /* try, but fail, to prevent copy prop */
39                 v = temp.a + temp.b + temp.c + temp.d;
41                 EmitVertex();
42         }
45 [fragment shader]
46 #version 150
48 in vec4 v;
50 void main()
52         gl_FragColor = v;
55 [vertex data]
56 vertex/float/2
57 -1.0 -1.0
58  1.0 -1.0
59  1.0  1.0
60 -1.0  1.0
62 [test]
63 uniform vec4 colors.a 0.0 0.0 0.0 0.0
64 uniform vec4 colors.b 0.0 1.0 0.0 0.0
65 uniform vec4 colors.c 1.0 0.0 0.0 0.0
66 uniform vec4 colors.d 0.0 0.0 0.0 0.0
67 draw arrays GL_TRIANGLE_FAN 0 4
68 probe all rgba 0.0 1.0 0.0 0.0