ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / arb_tessellation_shader / execution / tcs-input-read-array-interface.shader_test
blob39c539923db6b5d789dcbdcb744f0b6978b00850
1 # Test a single per-vertex input read in a TCS.
3 [require]
4 GLSL >= 1.50
5 GL_ARB_tessellation_shader
7 [vertex shader]
8 #version 150
10 out block { vec4 v[2]; };
12 void main()
14         v[0].x = 24.0;
15         v[1].x = 42.0;
19 [tessellation control shader]
20 #version 150
21 #extension GL_ARB_tessellation_shader : require
23 uniform int k;
24 in block { vec4 v[2]; } per_vertex[];
25 layout(vertices = 1) out;
27 void main()
29         if (per_vertex[0].v[1].x == 42.0) {     /* constant index case */
30                 gl_TessLevelInner[0] = 1.0;
31                 gl_TessLevelInner[1] = 1.0;
33                 gl_TessLevelOuter[0] = 1.0;
34                 gl_TessLevelOuter[1] = 1.0;
35                 gl_TessLevelOuter[2] = 1.0;
36                 gl_TessLevelOuter[3] = 1.0;
37         } else {
38                 gl_TessLevelInner[0] = 0.0;
39                 gl_TessLevelInner[1] = 0.0;
41                 gl_TessLevelOuter[0] = 0.0;
42                 gl_TessLevelOuter[1] = 0.0;
43                 gl_TessLevelOuter[2] = 0.0;
44                 gl_TessLevelOuter[3] = 0.0;
45         }
48 [tessellation evaluation shader]
49 #version 150
50 #extension GL_ARB_tessellation_shader : require
52 layout(quads, equal_spacing) in;
54 void main()
56         gl_Position = vec4(gl_TessCoord.xy * 2 - 1, 0, 1);
59 [fragment shader]
60 #version 150
62 void main()
64         gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
67 [test]
68 patch parameter vertices 1
69 draw arrays GL_PATCHES 0 1
70 probe all rgba 0.0 1.0 0.0 1.0