Fixed flags used to select queue in dEQP-VK.synchronization.op.multi_queue
authorPeter Quayle <peter.quayle@imgtec.com>
Wed, 9 Oct 2019 16:43:32 +0000 (17:43 +0100)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Fri, 11 Oct 2019 07:37:25 +0000 (03:37 -0400)
getDefaultQueue takes a VkQueueFlags argument and returns an appropriate VkQueue.
This function was being called with inappropriate arguments
causing the wrong queue to be returned. This could ultimately lead to work
being submitted to a queue which lacked support for it (e.g. graphics work
on a sparse queue).

Affects:

dEQP-VK.synchronization.op.multi_queue*

Components: Vulkan

VK-GL-CTS issue: 2043

Change-Id: I7887d1b4da8c916aed032433c6634c99b723f285
(cherry picked from commit 1bd32d3221dd65087de14ae061f798b78ac7ce0d)

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

index 102c46f..642d0bf 100644 (file)
@@ -512,7 +512,7 @@ public:
                // at least once. Each of the operation will be executing with
                // a dependency on the previous using timeline points.
                m_opSupports.push_back(writeOp);
-               m_opQueues.push_back(m_queues->getDefaultQueue(writeOp->getOutResourceUsageFlags()));
+               m_opQueues.push_back(m_queues->getDefaultQueue(writeOp->getQueueFlags(*m_opContext)));
 
                for (deUint32 queueIdx = 0; queueIdx < maxQueues; queueIdx++)
                {
@@ -536,7 +536,7 @@ public:
                }
 
                m_opSupports.push_back(readOp);
-               m_opQueues.push_back(m_queues->getDefaultQueue(readOp->getInResourceUsageFlags()));
+               m_opQueues.push_back(m_queues->getDefaultQueue(readOp->getQueueFlags(*m_opContext)));
 
                // Now create the resources with the usage associated to the
                // operation performed on the resource.