Fix enabling timelineSemaphore feature
authorziga-lunarg <ziga@lunarg.com>
Fri, 16 Sep 2022 23:08:45 +0000 (01:08 +0200)
committerMatthew Netsch <quic_mnetsch@quicinc.com>
Fri, 7 Oct 2022 22:15:30 +0000 (22:15 +0000)
The feature was only enabled if the extension was used and not when
vulkan version 1.2 was used

Components: Vulkan

VK-GL-CTS issue: 3955

Affected tests:
dEQP-VK.*.smoke.timeline_semaphores
dEQP-VKSC.*.smoke.timeline_semaphores

Change-Id: If1b6fb3a6b0f6ef6e54b3bc2f36f1a7a55fd5fab

external/vulkancts/modules/vulkan/synchronization/vktSynchronizationSmokeTests.cpp

index 43ed315..9405368 100644 (file)
@@ -146,19 +146,22 @@ Move<VkDevice> createTestDevice (Context& context, SemaphoreTestConfig& config,
        queueInfo.pQueuePriorities                              = queuePriority;
 
        vector<const char*> deviceExtensions;
+       bool useFeatures2 = false;
        if (config.semaphoreType == VK_SEMAPHORE_TYPE_TIMELINE)
        {
                if (!isCoreDeviceExtension(context.getUsedApiVersion(), "VK_KHR_timeline_semaphore"))
                        deviceExtensions.push_back("VK_KHR_timeline_semaphore");
                addToChainVulkanStructure(&nextPtr, timelineSemaphoreFeatures);
+               useFeatures2 = true;
        }
        if (config.synchronizationType == SynchronizationType::SYNCHRONIZATION2)
        {
                deviceExtensions.push_back("VK_KHR_synchronization2");
                addToChainVulkanStructure(&nextPtr, synchronization2Features);
+               useFeatures2 = true;
        }
 
-       void* pNext                                                                                             = deviceExtensions.empty() ? DE_NULL : &physicalDeviceFeatures2;
+       void* pNext                                                                                             = !useFeatures2 ? DE_NULL : &physicalDeviceFeatures2;
 #ifdef CTS_USES_VULKANSC
        VkDeviceObjectReservationCreateInfo memReservationInfo  = context.getTestContext().getCommandLine().isSubProcess() ? context.getResourceInterface()->getStatMax() : resetDeviceObjectReservationCreateInfo();
        memReservationInfo.pNext                                                                = pNext;
@@ -206,7 +209,7 @@ Move<VkDevice> createTestDevice (Context& context, SemaphoreTestConfig& config,
        deviceInfo.ppEnabledExtensionNames              = deviceExtensions.empty() ? DE_NULL : &deviceExtensions[0];
        deviceInfo.enabledLayerCount                    = 0u;
        deviceInfo.ppEnabledLayerNames                  = DE_NULL;
-       deviceInfo.pEnabledFeatures                             = deviceExtensions.empty() ? &physicalDeviceFeatures : DE_NULL;
+       deviceInfo.pEnabledFeatures                             = !useFeatures2 ? &physicalDeviceFeatures : DE_NULL;
 
        *outQueueFamilyIndex                                    = queueInfo.queueFamilyIndex;