ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / arb_tessellation_shader / execution / tcs-input-read-nonconst-interface.shader_test
blobf44c52843111d546cb9c72d5364b9d77f5ff4815
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 {
11         float v;
14 void main()
16         v = 42.0;
20 [tessellation control shader]
21 #version 150
22 #extension GL_ARB_tessellation_shader : require
24 in block {
25         float v;
26 } verts[];
27 layout(vertices = 1) out;
29 void main()
31         if (verts[gl_InvocationID].v == 42.0) {
32                 gl_TessLevelInner[0] = 1.0;
33                 gl_TessLevelInner[1] = 1.0;
35                 gl_TessLevelOuter[0] = 1.0;
36                 gl_TessLevelOuter[1] = 1.0;
37                 gl_TessLevelOuter[2] = 1.0;
38                 gl_TessLevelOuter[3] = 1.0;
39         } else {
40                 gl_TessLevelInner[0] = 0.0;
41                 gl_TessLevelInner[1] = 0.0;
43                 gl_TessLevelOuter[0] = 0.0;
44                 gl_TessLevelOuter[1] = 0.0;
45                 gl_TessLevelOuter[2] = 0.0;
46                 gl_TessLevelOuter[3] = 0.0;
47         }
50 [tessellation evaluation shader]
51 #version 150
52 #extension GL_ARB_tessellation_shader : require
54 layout(quads, equal_spacing) in;
56 void main()
58         gl_Position = vec4(gl_TessCoord.xy * 2 - 1, 0, 1);
61 [fragment shader]
62 #version 150
64 void main()
66         gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
69 [test]
70 patch parameter vertices 1
71 draw arrays GL_PATCHES 0 1
72 probe all rgba 0.0 1.0 0.0 1.0