Commit b262f17b authored by Iago Toral's avatar Iago Toral Committed by Jason Ekstrand

anv/device: GetDeviceQueue2 should only return queues with matching flags

From the Vulkan 1.1 spec, VkDeviceQueueInfo2 structure:

   "The queue returned by vkGetDeviceQueue2 must have the same flags value
    from this structure as that used at device creation time in a
    VkDeviceQueueCreateInfo instance. If no matching flags were specified
    at device creation time then pQueue will return VK_NULL_HANDLE."

For us this means no flags at all since we don't support any.
Reviewed-by: Jason Ekstrand's avatarJason Ekstrand <jason@jlekstrand.net>
parent 9c8b4000
......@@ -1273,6 +1273,7 @@ anv_queue_init(struct anv_device *device, struct anv_queue *queue)
queue->_loader_data.loaderMagic = ICD_LOADER_MAGIC;
queue->device = device;
queue->pool = &device->surface_state_pool;
queue->flags = 0;
}
static void
......@@ -1755,7 +1756,10 @@ void anv_GetDeviceQueue2(
assert(pQueueInfo->queueIndex == 0);
*pQueue = anv_queue_to_handle(&device->queue);
if (pQueueInfo->flags == device->queue.flags)
*pQueue = anv_queue_to_handle(&device->queue);
else
*pQueue = NULL;
}
VkResult
......
......@@ -839,6 +839,8 @@ struct anv_queue {
struct anv_device * device;
struct anv_state_pool * pool;
VkDeviceQueueCreateFlags flags;
};
struct anv_pipeline_cache {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment