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)
// 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++)
{
}
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.