From: Chris Forbes Date: Wed, 1 May 2019 14:43:48 +0000 (-0700) Subject: Check for imageCubeArray support before using VK_IMAGE_VIEW_TYPE_CUBE_ARRAY X-Git-Tag: upstream/1.3.5~2002^2~18^2~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=12a9428b5d78c5bf9077378962b5f0f2f50feed7;p=platform%2Fupstream%2FVK-GL-CTS.git Check for imageCubeArray support before using VK_IMAGE_VIEW_TYPE_CUBE_ARRAY VK-GL-CTS Issue: 1761 Components: Vulkan Affects: dEQP-VK.binding_model.shader_access.*cube_array* Change-Id: I918227d1518c3d7f6cefd7931531aafb34fcf9f8 --- diff --git a/external/vulkancts/modules/vulkan/binding_model/vktBindingShaderAccessTests.cpp b/external/vulkancts/modules/vulkan/binding_model/vktBindingShaderAccessTests.cpp index 1634dfa..22129dd 100644 --- a/external/vulkancts/modules/vulkan/binding_model/vktBindingShaderAccessTests.cpp +++ b/external/vulkancts/modules/vulkan/binding_model/vktBindingShaderAccessTests.cpp @@ -168,7 +168,8 @@ void verifyDriverSupport(const deUint32 apiVersion, const std::vector& deviceExtensions, DescriptorUpdateMethod updateMethod, vk::VkDescriptorType descType, - vk::VkShaderStageFlags activeStages) + vk::VkShaderStageFlags activeStages, + vk::VkImageViewType viewType = vk::VK_IMAGE_VIEW_TYPE_2D) { std::vector extensionNames; size_t numExtensionsNeeded = 0; @@ -229,7 +230,7 @@ void verifyDriverSupport(const deUint32 apiVersion, case vk::VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER: case vk::VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC: // These are supported in all stages - return; + break; case vk::VK_DESCRIPTOR_TYPE_STORAGE_IMAGE: case vk::VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER: @@ -249,11 +250,14 @@ void verifyDriverSupport(const deUint32 apiVersion, if (!deviceFeatures.fragmentStoresAndAtomics) TCU_THROW(NotSupportedError, (de::toString(descType) + " is not supported in fragment shaders").c_str()); } - return; + break; default: DE_FATAL("Impossible"); } + + if (viewType == vk::VK_IMAGE_VIEW_TYPE_CUBE_ARRAY && !deviceFeatures.imageCubeArray) + TCU_THROW(NotSupportedError, "imageCubeArray feature not supported"); } vk::VkImageType viewTypeToImageType (vk::VkImageViewType type) @@ -7483,7 +7487,7 @@ std::string ImageDescriptorCase::genNoAccessSource (void) const vkt::TestInstance* ImageDescriptorCase::createInstance (vkt::Context& context) const { - verifyDriverSupport(context.getUsedApiVersion(), context.getDeviceFeatures(), context.getDeviceExtensions(), m_updateMethod, m_descriptorType, m_activeStages); + verifyDriverSupport(context.getUsedApiVersion(), context.getDeviceFeatures(), context.getDeviceExtensions(), m_updateMethod, m_descriptorType, m_activeStages, m_viewType); switch (m_descriptorType) {