Check extension support before using its image extended usage bit
authorSamuel Iglesias Gonsálvez <siglesias@igalia.com>
Mon, 28 Mar 2022 08:33:55 +0000 (10:33 +0200)
committerMatthew Netsch <mnetsch@qti.qualcomm.com>
Fri, 8 Apr 2022 19:57:56 +0000 (19:57 +0000)
Components: Vulkan
VK-GL-CTS issue: 3523

Fix:

   dEQP-VK.image.extended_usage_bit_compatibility.*

Change-Id: I5339402896320eee4434cf80679aa986ba882100
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
external/vulkancts/modules/vulkan/image/vktImageExtendedUsageBitTests.cpp

index 97d97cb..2c7dedf 100644 (file)
@@ -218,6 +218,24 @@ void checkSupport (Context& context, TestParams params)
        if (params.tiling == vk::VK_IMAGE_TILING_LINEAR && formatProperties.linearTilingFeatures == 0)
                throw tcu::NotSupportedError("Format not supported");
 
+       if (params.usage & VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR ||
+               params.usage & VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR ||
+               params.usage & VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR)
+               context.requireDeviceFunctionality("VK_KHR_video_decode_queue");
+
+       if (params.usage & VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR ||
+               params.usage & VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR ||
+               params.usage & VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR)
+               context.requireDeviceFunctionality("VK_KHR_video_encode_queue");
+
+       if (params.usage & VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT)
+               context.requireDeviceFunctionality("VK_EXT_fragment_density_map");
+
+       if (params.usage & VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR)
+               context.requireDeviceFunctionality("VK_KHR_fragment_shading_rate");
+
+       if (params.usage & VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI)
+               context.requireDeviceFunctionality("VK_HUAWEI_invocation_mask");
 }
 
 } // anonymous ns