ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / arb_tessellation_shader / execution / invocation-counting-even.shader_test
blob005257238f158b2346bcbbefd27f737f8455bb43
1 # Test that the correct set of invocations is dispatched
2 # for an even number of output vertices
4 [require]
5 GLSL >= 1.50
6 GL_ARB_tessellation_shader
7 GL_ARB_shader_atomic_counters
9 [vertex shader passthrough]
11 [tessellation control shader]
12 #version 150
13 #extension GL_ARB_tessellation_shader : require
14 #extension GL_ARB_shader_atomic_counters : require
16 layout(vertices = 4) out;
18 layout(binding=0) uniform atomic_uint x;
20 void main()
22         gl_TessLevelInner[0] = 1.0;
23         gl_TessLevelInner[1] = 1.0;
25         gl_TessLevelOuter[0] = 1.0;
26         gl_TessLevelOuter[1] = 1.0;
27         gl_TessLevelOuter[2] = 1.0;
28         gl_TessLevelOuter[3] = 1.0;
30         int i;
31         for (i=0; i<=gl_InvocationID; i++)
32                 atomicCounterIncrement(x);
35 [tessellation evaluation shader]
36 #version 150
37 #extension GL_ARB_tessellation_shader : require
39 layout(quads, equal_spacing) in;
41 void main()
43         gl_Position = vec4(gl_TessCoord.xy * 2 - 1, 0, 1);
46 [fragment shader]
47 #version 150
49 void main()
51         gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
54 [test]
55 atomic counters 1
56 patch parameter vertices 1
57 draw arrays GL_PATCHES 0 1
59 probe atomic counter 0 == 10
60 probe all rgba 0.0 1.0 0.0 1.0