From: Matthew Netsch Date: Thu, 11 Jun 2020 05:04:56 +0000 (-0400) Subject: Fixes timeline semaphore test queues X-Git-Tag: upstream/1.3.5~1253^2^2~4^2^2~1^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a6304eeaf2ffe14abdab6595c789ad214fc14dfa;p=platform%2Fupstream%2FVK-GL-CTS.git Fixes timeline semaphore test queues Components: Vulkan VK-GL-CTS Issue: 2416 Affects: dEQP-VK.synchronization.timeline_semaphore Change-Id: I3c101c869267c7bb747c53193195108df5996e70 --- diff --git a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationTimelineSemaphoreTests.cpp b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationTimelineSemaphoreTests.cpp index cc2db0c..3b8f959 100644 --- a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationTimelineSemaphoreTests.cpp +++ b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationTimelineSemaphoreTests.cpp @@ -1597,8 +1597,12 @@ public: for (deUint32 instanceIdx = 0; instanceIdx < queueFamilyProperties[familyIdx].queueCount && !added; instanceIdx++) { VkQueueFlags readOpQueueFlags = readOp->getQueueFlags(m_opContext); - if ((readOpQueueFlags & queueFamilyProperties[familyIdx].queueFlags) != readOpQueueFlags) - continue; + // If the readOpQueueFlags contain the transfer bit set then check if the queue supports graphics or compute operations before skipping this iteration. + // Because reporting transfer functionality is optional if a queue supports graphics or compute operations. + if (((readOpQueueFlags & queueFamilyProperties[familyIdx].queueFlags) != readOpQueueFlags) && + (((readOpQueueFlags & VK_QUEUE_TRANSFER_BIT) == 0) || + ((queueFamilyProperties[familyIdx].queueFlags & (VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT)) == 0))) + continue; // Add the read operation on the universal queue, it should be // submitted in order with regard to the write operation.