ARB_ubo/referenced-by-shader: pass if shader compiler moves UBOs between shaders
[piglit.git] / tests / spec / arb_tessellation_shader / execution / vertex-partial-write.shader_test
blob079516c20ed7e60753485abe7ce276f78d8587bd
2 # Test that partial writes of per-vertex outputs work in the control shader
5 [require]
6 GLSL >= 1.50
7 GL_ARB_tessellation_shader
9 [vertex shader passthrough]
11 [tessellation control shader]
12 #version 150
13 #extension GL_ARB_tessellation_shader : require
15 layout(vertices = 2) out;
16 out vec4 c[];
17 uniform int x;
19 void main()
21         gl_TessLevelInner[0] = 1.0;
22         gl_TessLevelInner[1] = 1.0;
24         gl_TessLevelOuter[0] = 1.0;
25         gl_TessLevelOuter[1] = 1.0;
26         gl_TessLevelOuter[2] = 1.0;
27         gl_TessLevelOuter[3] = 1.0;
29         c[gl_InvocationID] = vec4(1.0);
30         if (x == 0) {   /* true, but the compiler cannot see it */
31                 c[gl_InvocationID].xz = vec2(0);
32         }
35 [tessellation evaluation shader]
36 #version 150
37 #extension GL_ARB_tessellation_shader : require
39 layout(quads, equal_spacing) in;
40 in vec4 c[];
41 out vec4 fs_c;
43 void main()
45         gl_Position = vec4(gl_TessCoord.xy * 2 - 1, 0, 1);
46         fs_c = 0.5 * (c[0] + c[1]);
49 [fragment shader]
50 #version 150
52 in vec4 fs_c;
54 void main()
56         gl_FragColor = fs_c;
59 [test]
60 clear color 0.1 0.1 0.1 0.1
61 clear
62 patch parameter vertices 1
63 draw arrays GL_PATCHES 0 1
64 probe all rgba 0.0 1.0 0.0 1.0