ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / arb_tessellation_shader / execution / variable-indexing / vs-output-array-dvec4-index-wr-before-tcs.shader_test
blobbfd91b66c0d8f521ac7f03a0f8377c3b5bfe3620
1 [require]
2 GLSL >= 1.50
3 GL_ARB_tessellation_shader
4 GL_ARB_gpu_shader_fp64
6 [vertex shader]
7 #extension GL_ARB_gpu_shader_fp64: require
9 uniform int index;
11 in vec4 vertex;
13 out block {
14         dvec4 vs_var0[4];
15 } blk;
17 void main()
19         gl_Position = vertex;
20         blk.vs_var0[0] = dvec4(0.0LF);
21         blk.vs_var0[1] = dvec4(0.25LF);
22         blk.vs_var0[2] = dvec4(0.50LF);
23         blk.vs_var0[3] = dvec4(0.75LF);
24         blk.vs_var0[index] = dvec4(0.0LF, 1.0LF, 0.0LF, 1.0LF);
28 [tessellation control shader]
29 #extension GL_ARB_tessellation_shader: require
30 #extension GL_ARB_gpu_shader_fp64: require
31 layout(vertices = 3) out;
33 uniform int index;
34 in block {
35         dvec4 vs_var0[4];
36 } blk[];
38 out vec4 color[];
40 void main() {
41         gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;
42         gl_TessLevelOuter = float[4](1.0, 1.0, 1.0, 0.0);
43         gl_TessLevelInner = float[2](0.0, 0.0);
45         color[gl_InvocationID] = vec4(blk[gl_InvocationID].vs_var0[index]);
49 [tessellation evaluation shader]
50 #extension GL_ARB_tessellation_shader: require
51 #extension GL_ARB_gpu_shader_fp64: require
52 layout(triangles) in;
54 in vec4 color[];
55 out vec4 fs_color;
57 void main() {
58         gl_Position = gl_in[0].gl_Position * gl_TessCoord[0]
59                     + gl_in[1].gl_Position * gl_TessCoord[1]
60                     + gl_in[2].gl_Position * gl_TessCoord[2];
62         fs_color = vec4(color[0]);
66 [fragment shader]
67 #extension GL_ARB_gpu_shader_fp64: require
68 in vec4 fs_color;
70 void main()
72         gl_FragColor = fs_color;
75 [vertex data]
76 vertex/float/2
77 -1.0 -1.0
78  1.0 -1.0
79 -1.0  1.0
80 -1.0  1.0
81  1.0 -1.0
82  1.0  1.0
84 [test]
85 clear color 0.1 0.1 0.1 0.1
86 clear
87 patch parameter vertices 3
89 uniform int index 0
90 draw arrays GL_PATCHES 0 6
91 probe all rgba 0.0 1.0 0.0 1.0
93 uniform int index 1
94 draw arrays GL_PATCHES 0 6
95 probe all rgba 0.0 1.0 0.0 1.0
97 uniform int index 2
98 draw arrays GL_PATCHES 0 6
99 probe all rgba 0.0 1.0 0.0 1.0
101 uniform int index 3
102 draw arrays GL_PATCHES 0 6
103 probe all rgba 0.0 1.0 0.0 1.0