Avoid triangle fans in reinterpolation consistency tests
[platform/upstream/VK-GL-CTS.git] / external / vulkancts / data / vulkan / amber / pipeline / reinterpolate_at_sample.amber
1 #!amber
2 DEVICE_FEATURE sampleRateShading
3 SHADER vertex vert_shader GLSL
4 #version 440
5 layout(location = 0) in vec4 vs_in_position_ndc;
6 layout(location = 1) in float vs_in_position_screen;
7 layout(location = 0) out float vs_out_pos_screen;
8 void main (void)
9 {
10     gl_Position = vs_in_position_ndc;
11     vs_out_pos_screen = vs_in_position_screen;
12 }
13 END
14 SHADER fragment frag_shader GLSL
15 #version 440
16 layout(location = 0) sample in float fs_in_pos_screen;
17 layout(location = 0) out vec4 fs_out_color;
18 void main (void)
19 {
20     const float threshold = 0.0005;
21     const float a = interpolateAtSample(fs_in_pos_screen, gl_SampleID);
22     const float b = fs_in_pos_screen;
23     const bool  valuesEqual = (abs(a - b) < threshold);
24     if (valuesEqual)
25         fs_out_color = vec4(0.0, 1.0, 0.0, 1.0);
26     else
27         fs_out_color = vec4(1.0, 0.0, 0.0, 1.0);
28 }
29 END
30 BUFFER position DATA_TYPE vec4<float> DATA
31  1.0 -1.0 0.0 1.0
32  1.0  1.0 0.0 1.0
33 -1.0 -1.0 0.0 1.0
34 -1.0  1.0 0.0 1.0
35 END
36 BUFFER position_screen DATA_TYPE float DATA
37 64.0
38 64.0
39  0.0
40  0.0
41 END
42 BUFFER framebuffer FORMAT B8G8R8A8_UNORM
43 PIPELINE graphics pipeline
44   ATTACH vert_shader
45   ATTACH frag_shader
46   VERTEX_DATA position LOCATION 0
47   VERTEX_DATA position_screen LOCATION 1
48   BIND BUFFER framebuffer AS color LOCATION 0
49   FRAMEBUFFER_SIZE 64 64
50 END
51 RUN pipeline DRAW_ARRAY AS TRIANGLE_STRIP START_IDX 0 COUNT 4
52 EXPECT framebuffer IDX 0 0 SIZE 64 64 EQ_RGBA 0 255 0 255