From ab0ecfcb88c3150cc063a0fff14bca7cf5f33853 Mon Sep 17 00:00:00 2001 From: Arkadiusz Sarwa Date: Fri, 4 Nov 2016 13:22:30 +0100 Subject: [PATCH] Use all KHR and EXT extensions by default Change-Id: If6111170be15db7a90692a730bffdfb7c5382be8 --- external/vulkancts/modules/vulkan/vktTestCase.cpp | 43 ++++++++++++++--------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/external/vulkancts/modules/vulkan/vktTestCase.cpp b/external/vulkancts/modules/vulkan/vktTestCase.cpp index 6971b11..cc4268f 100644 --- a/external/vulkancts/modules/vulkan/vktTestCase.cpp +++ b/external/vulkancts/modules/vulkan/vktTestCase.cpp @@ -85,17 +85,37 @@ vector getValidationLayers (const InstanceInterface& vki, VkPhysicalDevi return getValidationLayers(enumerateDeviceLayerProperties(vki, physicalDevice)); } -Move createInstance (const PlatformInterface& vkp, const tcu::CommandLine& cmdLine) +vector filterExtensions(const vector& deviceExtensions) { - const bool isValidationEnabled = cmdLine.isValidationEnabled(); vector enabledExtensions; - vector enabledLayers; + const char* extensionGroups[] = + { + "VK_KHR_", + "VK_EXT_" + }; + + for (size_t deviceExtNdx = 0; deviceExtNdx < deviceExtensions.size(); deviceExtNdx++) + { + for (int extGroupNdx = 0; extGroupNdx < DE_LENGTH_OF_ARRAY(extensionGroups); extGroupNdx++) + { + if (deStringBeginsWith(deviceExtensions[deviceExtNdx].extensionName, extensionGroups[extGroupNdx])) + enabledExtensions.push_back(deviceExtensions[deviceExtNdx].extensionName); + } + } + + return enabledExtensions; +} + +Move createInstance (const PlatformInterface& vkp, const tcu::CommandLine& cmdLine) +{ + const bool isValidationEnabled = cmdLine.isValidationEnabled(); + vector enabledLayers; + const vector extensionProperties = enumerateInstanceExtensionProperties(vkp, DE_NULL); + const vector enabledExtensions = filterExtensions(extensionProperties); if (isValidationEnabled) { - if (isDebugReportSupported(vkp)) - enabledExtensions.push_back("VK_EXT_debug_report"); - else + if (!isDebugReportSupported(vkp)) TCU_THROW(NotSupportedError, "VK_EXT_debug_report is not supported"); enabledLayers = getValidationLayers(vkp); @@ -246,16 +266,7 @@ VkPhysicalDeviceFeatures DefaultDevice::filterDefaultDeviceFeatures (const VkPhy vector DefaultDevice::filterDefaultDeviceExtensions (const vector& deviceExtensions) { - vector enabledExtensions; - - // The only extension we enable always (when supported) is - // VK_KHR_sampler_mirror_clamp_to_edge that is defined in - // the core spec and supported widely. - const char* const mirrorClampToEdgeExt = "VK_KHR_sampler_mirror_clamp_to_edge"; - if (vk::isExtensionSupported(deviceExtensions, vk::RequiredExtension(mirrorClampToEdgeExt))) - enabledExtensions.push_back(mirrorClampToEdgeExt); - - return enabledExtensions; + return filterExtensions(deviceExtensions); } // Allocator utilities -- 2.7.4