Half-float texture interpolation tolerance is too small.
authorYanjun Zhang <yanjun.zhang@verisilicon.com>
Fri, 20 Mar 2020 22:30:37 +0000 (15:30 -0700)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Thu, 9 Apr 2020 07:15:31 +0000 (03:15 -0400)
Need to increase the precision tolerance for VSI mobile GPUs.

Components: Vulkan

Affects: dEQP-VK.texture.explicit_lod.2d.*

VK-GL-CTS issue: 2273

Change-Id: I957f8af87dd7413d6a4e50f2141cc777f5e292d6

external/vulkancts/modules/vulkan/texture/vktTextureFilteringExplicitLodTests.cpp

index cf35765..979103e 100644 (file)
@@ -614,7 +614,7 @@ TestStatus TextureFilteringTestInstance::verify (void)
        int                                                                                             warningCount            = 0;
        const tcu::TextureFormat                                                tcuFormat                       = mapVkFormat(m_imParams.format);
        std::vector<de::SharedPtr<tcu::FloatFormat>>    strictPrecision         = getPrecision(m_imParams.format, 0);
-       std::vector<de::SharedPtr<tcu::FloatFormat>>    relaxedPrecision        = tcuFormat.type == tcu::TextureFormat::HALF_FLOAT ? getPrecision(m_imParams.format, -3) : getPrecision(m_imParams.format, -2);
+       std::vector<de::SharedPtr<tcu::FloatFormat>>    relaxedPrecision        = tcuFormat.type == tcu::TextureFormat::HALF_FLOAT ? getPrecision(m_imParams.format, -6) : getPrecision(m_imParams.format, -2);
        const bool                                                                              allowRelaxedPrecision   = (tcuFormat.type == tcu::TextureFormat::HALF_FLOAT || tcuFormat.type == tcu::TextureFormat::SNORM_INT8) &&
                (m_samplerParams.minFilter == VK_FILTER_LINEAR || m_samplerParams.magFilter == VK_FILTER_LINEAR);