diff options
author | Iago Toral Quiroga <[email protected]> | 2018-02-06 10:06:30 +0100 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2018-03-07 12:13:47 -0800 |
commit | b262f17b159141fb21c60971d21b884dcd226152 (patch) | |
tree | 92d18b3acaf3a6750b8ab4d02322f61eba575d04 /src/intel/vulkan/anv_device.c | |
parent | 9c8b40001dde93afe613777ab3d141b965fd47f9 (diff) |
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 <[email protected]>
Diffstat (limited to 'src/intel/vulkan/anv_device.c')
-rw-r--r-- | src/intel/vulkan/anv_device.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 7d63168b12d..bccb669e4f2 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -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 |