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