Use tolerance for comparison in linear interpolation tests.
authorAmber <amber@igalia.com>
Tue, 3 Jan 2023 10:17:24 +0000 (11:17 +0100)
committerPiotr Byszewski <piotr.byszewski@mobica.com>
Mon, 16 Jan 2023 08:10:40 +0000 (08:10 +0000)
Components: Vulkan
VK-GL-CTS issue: 4159

Affected tests:
dEQP-VK.draw.*.linear_interpolation.*

Change-Id: I026bb0128dc78ddab75cbfdcaabab00a8d05386a

external/vulkancts/modules/vulkan/draw/vktDrawMultisampleLinearInterpolationTests.cpp

index 63d1b2f..f877676 100644 (file)
@@ -539,7 +539,9 @@ void MultisampleLinearInterpolationTestCase::initPrograms (SourceCollections& pr
                        << "    out_color /= " << m_interpolationRange << ";\n";
 
                // Run additional sample comparison test. If it fails, we write 1.0 to blue color channel.
-               frg << "    if (out_color_sample != interpolateAtOffset(in_color, gl_SamplePosition - vec2(0.5)))\n"
+               frg << "    vec4 diff = out_color_sample - interpolateAtOffset(in_color, gl_SamplePosition - vec2(0.5));"
+                       << "    float min_precision = 0.000001;\n"
+                       << "    if (diff.x > min_precision && diff.y > min_precision && diff.z > min_precision && diff.w > min_precision)\n"
                        << "    {\n"
                        << "        out_color.z = 1.0;\n"
                        << "    }\n";