From dfec1106cba6d5e927ef7e8785e791b9479c910c Mon Sep 17 00:00:00 2001 From: Alexander Galazin Date: Tue, 3 Oct 2017 22:11:30 +0200 Subject: [PATCH] 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 --- .../vktSynchronizationOperationMultiQueueTests.cpp | 28 +++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) 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); -- 2.7.4