Fix: add extensions checking
authorArkadiusz Sarwa <arkadiusz.sarwa@mobica.com>
Mon, 25 Jun 2018 07:52:17 +0000 (09:52 +0200)
committerArkadiusz Sarwa <arkadiusz.sarwa@mobica.com>
Mon, 25 Jun 2018 07:52:17 +0000 (09:52 +0200)
Affects:
dEQP-VK.spirv_assembly.instruction.compute.*

Components: Vulkan

VK-GL-CTS issue: 1235

Change-Id: I816d832f4834fe61570f49648a9f92ebaca31a94

external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmComputeShaderCase.cpp

index c6285ea..87f1bf4 100644 (file)
@@ -496,6 +496,13 @@ VkImageUsageFlags getMatchingComputeImageUsageFlags (VkDescriptorType dType)
 
 tcu::TestStatus SpvAsmComputeShaderInstance::iterate (void)
 {
+       // Check all required extensions are supported
+       for (std::vector<std::string>::const_iterator i = m_shaderSpec.extensions.begin(); i != m_shaderSpec.extensions.end(); ++i)
+       {
+               if (!de::contains(m_context.getDeviceExtensions().begin(), m_context.getDeviceExtensions().end(), *i))
+                       TCU_THROW(NotSupportedError, (std::string("Extension not supported: ") + *i).c_str());
+       }
+
        const VkPhysicalDeviceFeatures&         features                        = m_context.getDeviceFeatures();
 
        if ((m_features == COMPUTE_TEST_USES_INT16 || m_features == COMPUTE_TEST_USES_INT16_INT64) && !features.shaderInt16)