Fix descriptor indexing test dependency
authorGraeme Leese <gleese@broadcom.com>
Thu, 7 Oct 2021 17:15:51 +0000 (18:15 +0100)
committerMatthew Netsch <quic_mnetsch@quicinc.com>
Fri, 15 Oct 2021 17:55:44 +0000 (17:55 +0000)
The UBO and SSBO non-uniform indexing tests use runtimeDescriptorArray,
so this needs to be included in the checkSupport condition.

Components: Vulkan
Affects: dEQP-VK.ubo.*
         dEQP-VK.ssbo.*

Change-Id: I54edb2d06135a8d1d549a42ac97014dabc80c9dd

external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp
external/vulkancts/modules/vulkan/ubo/vktUniformBlockCase.cpp

index ff67861..574f48a 100644 (file)
@@ -2608,7 +2608,8 @@ void SSBOLayoutCase::checkSupport(Context& context) const
                TCU_THROW(NotSupportedError, "scalarBlockLayout not supported");
        if (m_usePhysStorageBuffer && !context.isBufferDeviceAddressSupported())
                TCU_THROW(NotSupportedError, "Physical storage buffer pointers not supported");
-       if (!context.getDescriptorIndexingFeatures().shaderStorageBufferArrayNonUniformIndexing && usesDescriptorIndexing(m_interface))
+       if (usesDescriptorIndexing(m_interface) && (    !context.getDescriptorIndexingFeatures().shaderStorageBufferArrayNonUniformIndexing ||
+                                                                                                       !context.getDescriptorIndexingFeatures().runtimeDescriptorArray ) )
                TCU_THROW(NotSupportedError, "Descriptor indexing over storage buffer not supported");
 
        const vk::VkPhysicalDeviceProperties &properties = context.getDeviceProperties();
index 943f54c..35bb5ed 100644 (file)
@@ -2232,7 +2232,8 @@ TestInstance* UniformBlockCase::createInstance (Context& context) const
                TCU_THROW(NotSupportedError, "std430 not supported");
        if (!context.getScalarBlockLayoutFeatures().scalarBlockLayout && usesBlockLayout(LAYOUT_SCALAR))
                TCU_THROW(NotSupportedError, "scalarBlockLayout not supported");
-       if (!context.getDescriptorIndexingFeatures().shaderUniformBufferArrayNonUniformIndexing && usesBlockLayout(LAYOUT_DESCRIPTOR_INDEXING))
+       if (usesBlockLayout(LAYOUT_DESCRIPTOR_INDEXING) && (    !context.getDescriptorIndexingFeatures().shaderUniformBufferArrayNonUniformIndexing ||
+                                                                                                                       !context.getDescriptorIndexingFeatures().runtimeDescriptorArray ) )
                TCU_THROW(NotSupportedError, "Descriptor indexing over uniform buffer not supported");
 
        return new UniformBlockCaseInstance(context, m_bufferMode, m_uniformLayout, m_blockPointers);