From: Alexander Galazin Date: Tue, 3 Oct 2017 20:11:30 +0000 (+0200) Subject: Fix device creation in sync multi queue tests X-Git-Tag: upstream/1.3.5~2565^2~6^2~109 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=dfec1106cba6d5e927ef7e8785e791b9479c910c;p=platform%2Fupstream%2FVK-GL-CTS.git Fix device creation in sync multi queue tests context.getDeviceExtensions() now returns all extension promoted to core. This may not be true for some implementations. While creating a new device need to enumerate exactly the extensions supported by an implementation. VK-GL-CTS issue: 734 Components: Vulkan Affects: dEQP-VK.synchronization.op.multi_queue.* Change-Id: If943692748d7813a88f8f4eb1bc4739fd43370d4 --- diff --git a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationMultiQueueTests.cpp b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationMultiQueueTests.cpp index 2810100..d9a5b5e 100644 --- a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationMultiQueueTests.cpp +++ b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationMultiQueueTests.cpp @@ -118,24 +118,24 @@ public: } { - const std::vector& deviceExtensions = context.getDeviceExtensions(); - std::vector charDevExtensions; + const std::vector deviceExtensions = enumerateDeviceExtensionProperties(context.getInstanceInterface(), context.getPhysicalDevice(), DE_NULL); + std::vector charDevExtensions; - for (size_t ndx = 0; ndx < deviceExtensions.size(); ++ndx) - charDevExtensions.push_back(deviceExtensions[ndx].c_str()); + for (size_t ndx = 0; ndx < deviceExtensions.size(); ndx++) + charDevExtensions.push_back(deviceExtensions[ndx].extensionName); const VkDeviceCreateInfo deviceInfo = { - VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, //VkStructureType sType; - DE_NULL, //const void* pNext; - 0u, //VkDeviceCreateFlags flags; - static_cast(queueInfos.size()), //deUint32 queueCreateInfoCount; - &queueInfos[0], //const VkDeviceQueueCreateInfo* pQueueCreateInfos; - 0u, //deUint32 enabledLayerCount; - DE_NULL, //const char* const* ppEnabledLayerNames; - static_cast(deviceExtensions.size()), //deUint32 enabledExtensionCount; - &charDevExtensions[0], //const char* const* ppEnabledExtensionNames; - &context.getDeviceFeatures() //const VkPhysicalDeviceFeatures* pEnabledFeatures; + VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, //VkStructureType sType; + DE_NULL, //const void* pNext; + 0u, //VkDeviceCreateFlags flags; + static_cast(queueInfos.size()), //deUint32 queueCreateInfoCount; + &queueInfos[0], //const VkDeviceQueueCreateInfo* pQueueCreateInfos; + 0u, //deUint32 enabledLayerCount; + DE_NULL, //const char* const* ppEnabledLayerNames; + static_cast(deviceExtensions.size()), //deUint32 enabledExtensionCount; + charDevExtensions.empty() ? DE_NULL : &charDevExtensions[0], //const char* const* ppEnabledExtensionNames; + &context.getDeviceFeatures() //const VkPhysicalDeviceFeatures* pEnabledFeatures; }; m_logicalDevice = createDevice(instance, physicalDevice, &deviceInfo);