Cleanup physical device.

This commit is contained in:
Anish Bhobe 2024-06-13 12:51:47 +02:00
parent 688b34c926
commit 131a55c868
1 changed files with 9 additions and 14 deletions

View File

@ -11,17 +11,12 @@ QueueFamilyIndices PhysicalDevice::get_queue_families(const Window *_window, con
auto queue_families_ = _device->getQueueFamilyProperties(); auto queue_families_ = _device->getQueueFamilyProperties();
u32 family_index = 0; u32 family_index = 0;
for (const auto &queueFamily : queue_families_) { for (const auto &queue_family : queue_families_) {
u32 this_family_count = 0; u32 this_family_count = 0;
VERBOSE(std::fmt("Queue(%i): %s", family_index, to_string(queueFamily.queueFlags).data())); VERBOSE(std::fmt("Queue(%i): %s", family_index, to_string(queue_family.queueFlags).data()));
if (queueFamily.queueCount <= 0) { if (!indices.has_graphics() && (queue_family.queueFlags & vk::QueueFlagBits::eGraphics)) {
++family_index; if (queue_family.queueCount > this_family_count) {
continue; // Skip families with no queues
}
if (!indices.has_graphics() && (queueFamily.queueFlags & vk::QueueFlagBits::eGraphics)) {
if (queueFamily.queueCount > this_family_count) {
indices.graphics_idx = family_index; indices.graphics_idx = family_index;
++this_family_count; ++this_family_count;
} else { } else {
@ -29,8 +24,8 @@ QueueFamilyIndices PhysicalDevice::get_queue_families(const Window *_window, con
} }
} }
if (!indices.has_compute() && (queueFamily.queueFlags & vk::QueueFlagBits::eCompute)) { if (!indices.has_compute() && (queue_family.queueFlags & vk::QueueFlagBits::eCompute)) {
if (queueFamily.queueCount > this_family_count) { if (queue_family.queueCount > this_family_count) {
indices.compute_idx = family_index; indices.compute_idx = family_index;
++this_family_count; ++this_family_count;
} else { } else {
@ -38,8 +33,8 @@ QueueFamilyIndices PhysicalDevice::get_queue_families(const Window *_window, con
} }
} }
if (!indices.has_transfer() && (queueFamily.queueFlags & vk::QueueFlagBits::eTransfer)) { if (!indices.has_transfer() && (queue_family.queueFlags & vk::QueueFlagBits::eTransfer)) {
if (queueFamily.queueCount > this_family_count) { if (queue_family.queueCount > this_family_count) {
indices.transfer_idx = family_index; indices.transfer_idx = family_index;
++this_family_count; ++this_family_count;
} else { } else {
@ -49,7 +44,7 @@ QueueFamilyIndices PhysicalDevice::get_queue_families(const Window *_window, con
try { try {
if (!indices.has_present() && _device->getSurfaceSupportKHR(family_index, *_window->surface)) { if (!indices.has_present() && _device->getSurfaceSupportKHR(family_index, *_window->surface)) {
if (queueFamily.queueCount > this_family_count) { if (queue_family.queueCount > this_family_count) {
indices.present_idx = family_index; indices.present_idx = family_index;
++this_family_count; ++this_family_count;
} else { } else {