summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--video/out/vulkan/utils.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/video/out/vulkan/utils.c b/video/out/vulkan/utils.c
index cb73e7d8ac..3dfb825032 100644
--- a/video/out/vulkan/utils.c
+++ b/video/out/vulkan/utils.c
@@ -395,8 +395,13 @@ static int find_qf(VkQueueFamilyProperties *qfs, int qfnum, VkQueueFlags flags)
if (!(qfs[i].queueFlags & flags))
continue;
- // QF is more specialized
- if (idx < 0 || qfs[i].queueFlags < qfs[idx].queueFlags)
+ // QF is more specialized. Since we don't care about other bits like
+ // SPARSE_BIT, mask the ones we're interestew in
+ const VkQueueFlags mask = VK_QUEUE_GRAPHICS_BIT |
+ VK_QUEUE_TRANSFER_BIT |
+ VK_QUEUE_COMPUTE_BIT;
+
+ if (idx < 0 || (qfs[i].queueFlags & mask) < (qfs[idx].queueFlags & mask))
idx = i;
// QF has more queues (at the same specialization level)