Fix for Vulkan 1.3 implementations that don't expose VK_EXT_ycbcr_2plane_444_formats
authorPiers Daniell <pdaniell@nvidia.com>
Thu, 28 Oct 2021 17:35:54 +0000 (11:35 -0600)
committerMatthew Netsch <quic_mnetsch@quicinc.com>
Fri, 29 Oct 2021 22:05:43 +0000 (22:05 +0000)
The VK_EXT_ycbcr_2plane_444_formats extension was only partially promoted
to Vulkan 1.3. In this case the features structure was not promoted
and is not required for Vulkan 1.3 implementations to support it.

This CL modifies the generated framework so that the
VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT is not required to
be supported.

Affects:

dEQP-VK.api.info.get_physical_device_properties2.features
dEQP-VK.*2plane_444*

Components: Vulkan

VK-GL-CTS issue: 3252

Change-Id: I22d95869febd5f8a8c9900e8a659f1609f4c2264

external/vulkancts/framework/vulkan/vkDeviceFeatures2.inl
external/vulkancts/framework/vulkan/vkSupportedExtensions.inl
external/vulkancts/modules/vulkan/api/vktApiMemoryRequirementInvarianceTests.cpp
external/vulkancts/modules/vulkan/memory/vktMemoryRequirementsTests.cpp
external/vulkancts/scripts/src/extensions_data.txt

index 59af72e..63d0a5a 100644 (file)
@@ -146,7 +146,7 @@ const bool isVertexAttributeDivisorFeaturesEXT                      = checkExtension(properties, "V
 const bool isVertexInputDynamicStateFeaturesEXT                        = checkExtension(properties, "VK_EXT_vertex_input_dynamic_state");
 const bool isVulkanMemoryModelFeaturesKHR                              =                                                                                                                                                          context.contextSupports(vk::ApiVersion(1, 2, 0));
 const bool isYcbcrImageArraysFeaturesEXT                               = checkExtension(properties, "VK_EXT_ycbcr_image_arrays");
-const bool isYcbcr2Plane444FormatsFeaturesEXT                  = checkExtension(properties, "VK_EXT_ycbcr_2plane_444_formats")                         || context.contextSupports(vk::ApiVersion(1, 3, 0));
+const bool isYcbcr2Plane444FormatsFeaturesEXT                  = checkExtension(properties, "VK_EXT_ycbcr_2plane_444_formats");
 const bool isZeroInitializeWorkgroupMemoryFeatures             = checkExtension(properties, "VK_KHR_zero_initialize_workgroup_memory")         || context.contextSupports(vk::ApiVersion(1, 3, 0));
 
 for (int ndx = 0; ndx < count; ++ndx)
index f6f31dc..22f34a9 100644 (file)
@@ -52,7 +52,6 @@ void getCoreDeviceExtensionsImpl (uint32_t coreVersion, ::std::vector<const char
                dst.push_back("VK_EXT_texel_buffer_alignment");
                dst.push_back("VK_EXT_private_data");
                dst.push_back("VK_EXT_pipeline_creation_cache_control");
-               dst.push_back("VK_EXT_ycbcr_2plane_444_formats");
                dst.push_back("VK_EXT_image_robustness");
                dst.push_back("VK_EXT_4444_formats");
        }
index 63b3b15..42ebe2e 100644 (file)
@@ -258,7 +258,6 @@ tcu::TestStatus InvarianceInstance::iterate (void)
        bool                                                                    success                                                 = true;
        const deBool                                                    isDedicatedAllocationSupported  = m_context.isDeviceFunctionalitySupported("VK_KHR_dedicated_allocation");
        const deBool                                                    isYcbcrSupported                                = m_context.isDeviceFunctionalitySupported("VK_KHR_sampler_ycbcr_conversion");
-       const deBool                                                    isYcbcrExtensionSupported               = m_context.isDeviceFunctionalitySupported("VK_EXT_ycbcr_2plane_444_formats");
        std::vector<int>                                                optimalFormats;
        std::vector<int>                                                linearFormats;
        std::vector<int>                                                memoryTypes;
@@ -508,9 +507,6 @@ tcu::TestStatus InvarianceInstance::iterate (void)
                if (isYCbCrFormat((VkFormat)formatlist[i]) && !isYcbcrSupported)
                        continue;
 
-               if (isYCbCrExtensionFormat((VkFormat)formatlist[i]) && !isYcbcrExtensionSupported)
-                       continue;
-
                vk::VkImageFormatProperties imageformatprops;
 
                // Check for support in linear tiling mode
index 19f5a66..98e5f53 100644 (file)
@@ -1024,12 +1024,6 @@ bool ImageMemoryRequirementsOriginal::isImageSupported (const Context& context,
                return false;
        }
 
-       if (isYCbCrExtensionFormat(info.format)
-               && !context.isDeviceFunctionalitySupported("VK_EXT_ycbcr_2plane_444_formats"))
-       {
-               return false;
-       }
-
        if (info.imageType == VK_IMAGE_TYPE_1D)
        {
                DE_ASSERT(info.extent.height == 1u && info.extent.depth == 1u);
index c75cd54..e8cc056 100644 (file)
@@ -115,4 +115,4 @@ VK_EXT_subgroup_size_control                                DEVICE 1_3_0
 VK_EXT_texel_buffer_alignment                          DEVICE 1_3_0
 VK_EXT_texture_compression_astc_hdr                    DEVICE 1_3_0
 VK_EXT_tooling_info                                                    DEVICE 1_3_0
-VK_EXT_ycbcr_2plane_444_formats                                DEVICE 1_3_0
+VK_EXT_ycbcr_2plane_444_formats                                DEVICE