ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / arb_tessellation_shader / execution / gs-primitiveid-instanced.shader_test
blob74d9c163ac5ed99d8fc1c484219d12e382c5ebda
1 # Test that the gl_PrimitiveID input in the TES is correctly set up and starts
2 # at 0 for each instance in instanced draws.
4 [require]
5 GLSL >= 1.50
6 GL_ARB_tessellation_shader
8 [vertex shader]
9 #version 150
11 out int vs_tes_id;
12 out int vs_tes_instance;
14 void main()
16         vs_tes_id = gl_VertexID;
17         vs_tes_instance = gl_InstanceID;
20 [tessellation evaluation shader]
21 #version 150
22 #extension GL_ARB_tessellation_shader : require
24 layout(quads, equal_spacing) in;
26 in int vs_tes_id[];
27 in int vs_tes_instance[];
29 void main()
31         gl_Position = vec4(-1.0 + vs_tes_id[0] + gl_TessCoord.x,
32                            -1.0 + vs_tes_instance[0] + gl_TessCoord.y,
33                            0.0, 1.0);
36 [geometry shader]
37 #version 150
39 layout(triangles) in;
40 layout(triangle_strip, max_vertices = 3) out;
42 out vec4 color;
44 void main() {
45         vec4 tmp_color = vec4(0.0, 1.0, gl_PrimitiveIDIn * 0.1, 1.0);
47         color = tmp_color;
48         gl_Position = gl_in[0].gl_Position;
49         EmitVertex();
51         color = tmp_color;
52         gl_Position = gl_in[1].gl_Position;
53         EmitVertex();
55         color = tmp_color;
56         gl_Position = gl_in[2].gl_Position;
57         EmitVertex();
61 [fragment shader]
62 #version 150
64 in vec4 color;
66 void main()
68         gl_FragColor = color;
71 [test]
72 clear color 0.0 0.0 0.0 0.0
73 clear
75 patch parameter default level inner 1 1
76 patch parameter default level outer 1 1 1 1
78 patch parameter vertices 1
79 draw arrays instanced GL_PATCHES 0 2 2
81 # First instance
82 relative probe rect rgba (0.0, 0.0, 0.5, 0.5) (0.0, 1.0, 0.0, 1.0)
83 relative probe rect rgba (0.5, 0.0, 0.5, 0.5) (0.0, 1.0, 0.1, 1.0)
85 # Second instance
86 relative probe rect rgba (0.0, 0.5, 0.5, 0.5) (0.0, 1.0, 0.0, 1.0)
87 relative probe rect rgba (0.5, 0.5, 0.5, 0.5) (0.0, 1.0, 0.1, 1.0)