Restore dual source blending tests
authorAlexander Galazin <alexander.galazin@arm.com>
Mon, 20 Jul 2020 15:00:35 +0000 (17:00 +0200)
committerAlexander Galazin <alexander.galazin@arm.com>
Tue, 4 Aug 2020 18:37:33 +0000 (20:37 +0200)
Components: Vulkan

Change-Id: Ic727ae43d7ddc5b296d20ad5762047e815299023

external/vulkancts/modules/vulkan/pipeline/vktPipelineBlendTests.cpp
external/vulkancts/mustpass/master/src/excluded-tests.txt
external/vulkancts/mustpass/master/vk-default.txt

index 1821ed1..644f41e 100644 (file)
@@ -1499,9 +1499,16 @@ tcu::TestStatus DualSourceBlendTestInstance::verifyImage (void)
                const deUint32                                          queueFamilyIndex                        = m_context.getUniversalQueueFamilyIndex();
                SimpleAllocator                                         allocator                                       (vk, vkDevice, getPhysicalDeviceMemoryProperties(m_context.getInstanceInterface(), m_context.getPhysicalDevice()));
                de::UniquePtr<tcu::TextureLevel>        result                                          (readColorAttachment(vk, vkDevice, queue, queueFamilyIndex, allocator, *m_colorImage, m_colorFormat, m_renderSize).release());
-               const tcu::Vec4                                         threshold                                       (getFormatThreshold(tcuColorFormat));
+               tcu::Vec4                                                       threshold                                       (getFormatThreshold(tcuColorFormat));
                tcu::TextureLevel                                       refLevel;
 
+               // For SRGB formats there is an extra precision loss due to doing
+               // the following conversions sRGB -> RGB -> blend -> RGB  -> sRGB with floats.
+               // Take that into account in the threshold. For example, VK_FORMAT_R8G8B8A8_SRGB
+               // threshold is 4/255f, but we changed it to be 10/255f.
+               if (tcu::isSRGB(tcuColorFormat))
+                       threshold = 2.5f * threshold;
+
                refLevel.setStorage(tcuColorFormat, m_renderSize.x(), m_renderSize.y(), 1);
 
                compareOk = tcu::floatThresholdCompare(m_context.getTestContext().getLog(),
index ee1ef38..6aa8a11 100644 (file)
@@ -14,11 +14,6 @@ dEQP-VK.pipeline.multisample.*.primitive_point_1px_sparse
 # Test shader length is excessive, excluding until such time as the test case can be re-visited.
 dEQP-VK.ssbo.layout.random.scalar.75
 
-# VK-GL-CTS 2157, CL 5278
-# Excluded them as Intel HW is failing these tests.
-dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
-dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
-
 # VK-GL-CTS 1682
 dEQP-VK.texture.filtering.2d.formats.r16g16b16a16_sfloat.cubic
 dEQP-VK.texture.filtering.2d.formats.b10g11r11_ufloat.cubic
@@ -109,4 +104,4 @@ dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirror_clamp_to_edge.repea
 dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirror_clamp_to_edge.mirrored_repeat
 dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirror_clamp_to_edge.clamp_to_edge
 dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirror_clamp_to_edge.clamp_to_border
-dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirror_clamp_to_edge.mirror_clamp_to_edge
\ No newline at end of file
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirror_clamp_to_edge.mirror_clamp_to_edge
index 36fc586..e38f2a6 100644 (file)
@@ -209742,6 +209742,7 @@ dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_sas_z_max_a
 dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
 dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
 dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
 dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
 dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
 dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
@@ -209768,6 +209769,7 @@ dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_o_1msc_max_
 dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
 dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
 dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
 dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
 dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
 dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add