ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / arb_tessellation_shader / execution / variable-indexing / tcs-output-array-dvec4-index-wr.shader_test
blobc4a52f833f963aa3ca9ec8e55ea8a3f299dd02dd
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
8 in vec4 vertex;
10 void main()
12         gl_Position = vertex;
16 [tessellation control shader]
17 #extension GL_ARB_tessellation_shader: require
18 #extension GL_ARB_gpu_shader_fp64: require
19 layout(vertices = 3) out;
21 uniform int index;
22 out block {
23         dvec4 tcs_var0[4];
24 } blk[];
26 void main() {
27         gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;
28         gl_TessLevelOuter = float[4](1.0, 1.0, 1.0, 0.0);
29         gl_TessLevelInner = float[2](0.0, 0.0);
31         blk[gl_InvocationID].tcs_var0[0] = dvec4(0.0LF, 0.0LF, 0.0LF, 0.0LF);
32         blk[gl_InvocationID].tcs_var0[1] = dvec4(0.0LF, 0.0LF, 0.0LF, 0.0LF);
33         blk[gl_InvocationID].tcs_var0[2] = dvec4(0.0LF, 0.0LF, 0.0LF, 0.0LF);
34         blk[gl_InvocationID].tcs_var0[3] = dvec4(0.0LF, 0.0LF, 0.0LF, 0.0LF);
35         blk[gl_InvocationID].tcs_var0[index] = dvec4(0.0LF, 1.0LF, 0.0LF, 1.0LF);
39 [tessellation evaluation shader]
40 #extension GL_ARB_tessellation_shader: require
41 #extension GL_ARB_gpu_shader_fp64: require
42 layout(triangles) in;
44 uniform int index;
45 in block {
46         dvec4 tcs_var0[4];
47 } blk[];
49 out vec4 color;
51 void main() {
52         gl_Position = gl_in[0].gl_Position * gl_TessCoord[0]
53                     + gl_in[1].gl_Position * gl_TessCoord[1]
54                     + gl_in[2].gl_Position * gl_TessCoord[2];
56         color = vec4(blk[0].tcs_var0[index]);
60 [fragment shader]
61 #extension GL_ARB_gpu_shader_fp64: require
62 in vec4 color;
64 void main()
66         gl_FragColor = color;
69 [vertex data]
70 vertex/float/2
71 -1.0 -1.0
72  1.0 -1.0
73 -1.0  1.0
74 -1.0  1.0
75  1.0 -1.0
76  1.0  1.0
78 [test]
79 clear color 0.1 0.1 0.1 0.1
80 clear
81 patch parameter vertices 3
83 uniform int index 0
84 draw arrays GL_PATCHES 0 6
85 probe all rgba 0.0 1.0 0.0 1.0
87 uniform int index 1
88 draw arrays GL_PATCHES 0 6
89 probe all rgba 0.0 1.0 0.0 1.0
91 uniform int index 2
92 draw arrays GL_PATCHES 0 6
93 probe all rgba 0.0 1.0 0.0 1.0
95 uniform int index 3
96 draw arrays GL_PATCHES 0 6
97 probe all rgba 0.0 1.0 0.0 1.0