1# Test a single per-vertex input read in a TCS.
2
3[require]
4GLSL >= 1.50
5GL_ARB_tessellation_shader
6
7[vertex shader]
8#version 150
9
10out block {
11	float v;
12};
13
14void main()
15{
16	v = 42.0;
17}
18
19
20[tessellation control shader]
21#version 150
22#extension GL_ARB_tessellation_shader : require
23
24in block {
25	float v;
26} verts[];
27layout(vertices = 1) out;
28
29void main()
30{
31	if (verts[gl_InvocationID].v == 42.0) {
32		gl_TessLevelInner[0] = 1.0;
33		gl_TessLevelInner[1] = 1.0;
34
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;
42
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	}
48}
49
50[tessellation evaluation shader]
51#version 150
52#extension GL_ARB_tessellation_shader : require
53
54layout(quads, equal_spacing) in;
55
56void main()
57{
58	gl_Position = vec4(gl_TessCoord.xy * 2 - 1, 0, 1);
59}
60
61[fragment shader]
62#version 150
63
64void main()
65{
66	gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
67}
68
69[test]
70patch parameter vertices 1
71draw arrays GL_PATCHES 0 1
72probe all rgba 0.0 1.0 0.0 1.0
73