Check sparse image format support before creation
authorRicardo Garcia <rgarcia@igalia.com>
Wed, 13 Jan 2021 11:10:16 +0000 (12:10 +0100)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Thu, 28 Jan 2021 08:17:50 +0000 (08:17 +0000)
Check the implementation supports sparse images before creating them
using any of the sparse image flags.

Affected tests:
dEQP-VK.renderpass*.sparserendertarget.*

Components: Vulkan
VK-GL-CTS issue: 2721

Change-Id: Ifadad2c2d490d5685a4fa0a40776926d541a0c49

external/vulkancts/modules/vulkan/renderpass/vktRenderPassSparseRenderTargetTests.cpp

index 85e40e2..840525d 100644 (file)
@@ -117,8 +117,10 @@ Move<VkImage> createSparseImageAndMemory (const DeviceInterface&                           vk,
                VK_IMAGE_LAYOUT_UNDEFINED
        };
 
-       Move<VkImage>                   destImage                       = createImage(vk, device, &imageCreateInfo);
+       if (!checkSparseImageFormatSupport(physicalDevice, instance, imageCreateInfo))
+               TCU_THROW(NotSupportedError, "The image format does not support sparse operations");
 
+       Move<VkImage> destImage = createImage(vk, device, &imageCreateInfo);
        allocateAndBindSparseImage(vk, device, physicalDevice, instance, imageCreateInfo, bindSemaphore, sparseQueue, allocator, allocations, mapVkFormat(format), *destImage);
 
        return destImage;