summaryrefslogtreecommitdiff
path: root/src/virtio
diff options
context:
space:
mode:
authorJuston Li <justonli@google.com>2023-04-20 14:36:53 -0700
committerMarge Bot <emma+marge@anholt.net>2023-05-09 04:35:16 +0000
commit6ec54465d489b7b5fe5da27188e73154617332c2 (patch)
tree4caa2016056f2fb826d83b8b0f5a51649638080f /src/virtio
parent1ba2460e615b4f11e96366fe00d92fe0ab18f332 (diff)
downloadmesa-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.c14
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;
}