Find queue families on the given physical device.
539{
541 auto queue_families =
device.getQueueFamilyProperties();
542
543 int i = 0;
544 for (const auto& queue_family : queue_families) {
545 if (queue_family.queueCount > 0 && queue_family.queueFlags & vk::QueueFlagBits::eGraphics) {
547 }
548
549 if (queue_family.queueCount > 0 && queue_family.queueFlags & vk::QueueFlagBits::eCompute && !(queue_family.queueFlags & vk::QueueFlagBits::eGraphics)) {
551 }
552
553 if (queue_family.queueCount > 0 && queue_family.queueFlags & vk::QueueFlagBits::eTransfer && !(queue_family.queueFlags & vk::QueueFlagBits::eGraphics) && !(queue_family.queueFlags & vk::QueueFlagBits::eCompute)) {
555 }
556
557 i++;
558 }
559
560 if (
indices.graphics_family.has_value()) {
561 if (!
indices.compute_family.has_value()) {
563 }
564 if (!
indices.transfer_family.has_value()) {
566 }
567 }
568
570}
std::vector< uint32_t > indices
vk::PhysicalDevice device