ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / arb_tessellation_shader / execution / tcs-input-read-simple-interface.shader_test
blob95696e23118a421a9790bb269cdfd3a0ba842fa8
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 { float v; };
12 void main()
14         v = 42.0;
18 [tessellation control shader]
19 #version 150
20 #extension GL_ARB_tessellation_shader : require
22 in block { float v; } per_vertex[];
23 layout(vertices = 1) out;
25 void main()
27         if (per_vertex[0].v == 42.0) {  /* constant index case */
28                 gl_TessLevelInner[0] = 1.0;
29                 gl_TessLevelInner[1] = 1.0;
31                 gl_TessLevelOuter[0] = 1.0;
32                 gl_TessLevelOuter[1] = 1.0;
33                 gl_TessLevelOuter[2] = 1.0;
34                 gl_TessLevelOuter[3] = 1.0;
35         } else {
36                 gl_TessLevelInner[0] = 0.0;
37                 gl_TessLevelInner[1] = 0.0;
39                 gl_TessLevelOuter[0] = 0.0;
40                 gl_TessLevelOuter[1] = 0.0;
41                 gl_TessLevelOuter[2] = 0.0;
42                 gl_TessLevelOuter[3] = 0.0;
43         }
46 [tessellation evaluation shader]
47 #version 150
48 #extension GL_ARB_tessellation_shader : require
50 layout(quads, equal_spacing) in;
52 void main()
54         gl_Position = vec4(gl_TessCoord.xy * 2 - 1, 0, 1);
57 [fragment shader]
58 #version 150
60 void main()
62         gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
65 [test]
66 patch parameter vertices 1
67 draw arrays GL_PATCHES 0 1
68 probe all rgba 0.0 1.0 0.0 1.0