ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / arb_tessellation_shader / execution / tcs-output-unmatched.shader_test
blobdd3b5ce09886afd18ba9b17db2d3412c115d467d
1 # Test that TCS per-vertex outputs which are used only in
2 # TCS stage are not converted to local variables
3 # and indeed share data within the patch.
5 [require]
6 GLSL >= 1.50
7 GL_ARB_tessellation_shader
8 GL_ARB_separate_shader_objects
9 GL_ARB_shader_atomic_counters
11 [vertex shader passthrough]
14 [tessellation control shader]
15 #extension GL_ARB_tessellation_shader: require
16 #extension GL_ARB_separate_shader_objects: require
17 #extension GL_ARB_shader_atomic_counters: require
18 layout(vertices = 3) out;
20 layout(location = 0) out vec4 out_unused_in_tes[];
22 layout(binding = 0) uniform atomic_uint mismatches;
24 void main()
26         out_unused_in_tes[gl_InvocationID] = gl_in[gl_InvocationID].gl_Position;
28         barrier();
30         if (out_unused_in_tes[0] != gl_in[0].gl_Position ||
31                 out_unused_in_tes[1] != gl_in[1].gl_Position ||
32                 out_unused_in_tes[2] != gl_in[2].gl_Position) {
33                 atomicCounterIncrement(mismatches);
34         }
38 [tessellation evaluation shader]
39 #extension GL_ARB_tessellation_shader: require
40 layout(triangles) in;
42 void main()
44         gl_Position = vec4(0);
48 [fragment shader]
50 void main()
52         gl_FragColor = vec4(1.0);
55 [vertex data]
56 piglit_vertex/float/4
57 1 1 1 1
58 2 2 2 2
59 3 3 3 3
61 [test]
62 atomic counters 1
64 patch parameter vertices 3
65 draw arrays GL_PATCHES 0 3
67 probe atomic counter 0 == 0