diff options
author | Juston Li <justonli@google.com> | 2023-04-20 14:36:53 -0700 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2023-05-09 04:35:16 +0000 |
commit | 6ec54465d489b7b5fe5da27188e73154617332c2 (patch) | |
tree | 4caa2016056f2fb826d83b8b0f5a51649638080f /src/virtio | |
parent | 1ba2460e615b4f11e96366fe00d92fe0ab18f332 (diff) | |
download | mesa-6ec54465d489b7b5fe5da27188e73154617332c2.tar.gz |
venus: filter out queue familes with exclusive sparse binding support
We require the queue to have additional support to be able to send
feedback commands.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22616>
Diffstat (limited to 'src/virtio')
-rw-r--r-- | src/virtio/vulkan/vn_physical_device.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/virtio/vulkan/vn_physical_device.c b/src/virtio/vulkan/vn_physical_device.c index 1f6f6fd5ac7..fe32cbcf2cb 100644 --- a/src/virtio/vulkan/vn_physical_device.c +++ b/src/virtio/vulkan/vn_physical_device.c @@ -766,8 +766,20 @@ vn_physical_device_init_queue_family_properties( vn_call_vkGetPhysicalDeviceQueueFamilyProperties2( instance, vn_physical_device_to_handle(physical_dev), &count, props); + /* Filter out queue families that exclusively support sparse binding as + * we need additional support for submitting feedback commands + */ + uint32_t non_sparse_only_count = 0; + for (uint32_t i = 0; i < count; i++) { + if (props[i].queueFamilyProperties.queueFlags & + ~VK_QUEUE_SPARSE_BINDING_BIT) { + props[non_sparse_only_count++].queueFamilyProperties = + props[i].queueFamilyProperties; + } + } + physical_dev->queue_family_properties = props; - physical_dev->queue_family_count = count; + physical_dev->queue_family_count = non_sparse_only_count; return VK_SUCCESS; } |