ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / arb_tessellation_shader / execution / barrier-patch.shader_test
blobd34fdc527bd7297874b4282dfa6a193918594cad
1 [require]
2 GLSL >= 1.50
3 GL_ARB_tessellation_shader
5 [vertex shader passthrough]
7 [tessellation control shader]
8 #extension GL_ARB_tessellation_shader: require
9 layout(vertices = 6) out;
11 patch out int val[6];
12 patch out vec4 pcolor;
14 void main() {
15         gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;
16         if (gl_InvocationID < val.length())
17                 val[gl_InvocationID] = gl_InvocationID;
19         pcolor = vec4(0, 1, 0, 1);
21         barrier();
23         for (int i = 0; i < val.length(); i++) {
24                  // Switch things up so that each invocation checks
25                  // different locations
26                  int index = (i + gl_InvocationID) % val.length();
27                  if (val[index] != index)
28                          pcolor = vec4(1, 0, 0, 1);
29         }
31         gl_TessLevelOuter = float[4](1.0, 1.0, 1.0, 0.0);
32         gl_TessLevelInner = float[2](0.0, 0.0);
36 [tessellation evaluation shader]
37 #extension GL_ARB_tessellation_shader: require
38 layout(triangles) in;
40 patch in vec4 pcolor;
41 out vec4 color;
43 void main() {
44         gl_Position = gl_in[0].gl_Position * gl_TessCoord[0]
45                     + gl_in[1].gl_Position * gl_TessCoord[1]
46                     + gl_in[2].gl_Position * gl_TessCoord[2];
47         color = pcolor;
51 [fragment shader]
52 in vec4 color;
53 void main()
55         gl_FragColor = color;
58 [vertex data]
59 piglit_vertex/float/2
60 -1.0 -1.0
61  1.0 -1.0
62 -1.0  1.0
63 -1.0  1.0
64  1.0 -1.0
65  1.0  1.0
66 -1.0  1.0
67  1.0 -1.0
68  1.0  1.0
69 -1.0  1.0
70  1.0 -1.0
71  1.0  1.0
73 [test]
74 clear color 0.0 0.0 0.0 1.0
75 clear
77 patch parameter vertices 3
78 draw arrays GL_PATCHES 0 6
79 probe all rgba 0.0 1.0 0.0 1.0
81 clear color 0.0 0.0 0.0 1.0
82 clear
84 patch parameter vertices 6
85 draw arrays GL_PATCHES 0 12
86 probe all rgba 0.0 1.0 0.0 1.0