glsl: test loop unroll with uint overflow
[piglit.git] / tests / spec / arb_tessellation_shader / execution / double-vs-tcs-tes.shader_test
blob68d73dc83535eb43ffa056c6f5db54f519600e5f
1 # simple double through vs->tcs->tes->fs.
2 [require]
3 GLSL >= 1.50
4 GL_ARB_tessellation_shader
5 GL_ARB_gpu_shader_fp64
7 [vertex shader]
8 #extension GL_ARB_gpu_shader_fp64: require
9 in vec4 vertex;
11 out double vs_var0;
13 void main()
15         gl_Position = vertex;
16         vs_var0 = 1.0LF;
20 [tessellation control shader]
21 #extension GL_ARB_tessellation_shader: require
22 #extension GL_ARB_gpu_shader_fp64: require
23 layout(vertices = 3) out;
25 in double vs_var0[];
26 out double tcs_var0[];
28 void main() {
29         gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;
30         gl_TessLevelOuter = float[4](1.0, 1.0, 1.0, 0.0);
31         gl_TessLevelInner = float[2](0.0, 0.0);
32         tcs_var0[gl_InvocationID] = vs_var0[gl_InvocationID] + 2.0LF;
36 [tessellation evaluation shader]
37 #extension GL_ARB_tessellation_shader: require
38 #extension GL_ARB_gpu_shader_fp64: require
39 layout(triangles) in;
41 in double tcs_var0[];
42 flat out double tes_var0;
44 void main() {
45         dvec2 temp;
46         gl_Position = gl_in[0].gl_Position * gl_TessCoord[0]
47                     + gl_in[1].gl_Position * gl_TessCoord[1]
48                     + gl_in[2].gl_Position * gl_TessCoord[2];
50         tes_var0 = tcs_var0[0] + 3.0LF;
54 [fragment shader]
55 #extension GL_ARB_gpu_shader_fp64: require
56 flat in double tes_var0;
58 void main()
60         if (tes_var0 == 6.0LF)
61                 gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
62         else
63                 gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
66 [vertex data]
67 vertex/float/2
68 -1.0 -1.0
69  1.0 -1.0
70 -1.0  1.0
71 -1.0  1.0
72  1.0 -1.0
73  1.0  1.0
75 [test]
76 clear color 0.1 0.1 0.1 0.1
77 clear
78 patch parameter vertices 3
79 draw arrays GL_PATCHES 0 6
80 probe all rgba 0.0 1.0 0.0 1.0