Fix queue family validation error
This commit is contained in:
1 parent
940bc7e512
commit
7ca73f3c60
1 file changed
+8
-1
@@ -387,6 +387,7 @@ uint8_t pick_physical_device()
|
||||
*/
|
||||
uint8_t create_device()
|
||||
{
|
||||
size_t device_queues_count = 0;
|
||||
uint32_t queue_families_property_count = 0U;
|
||||
ssize_t graphics_family_idx = -1;
|
||||
ssize_t presentation_familiy_idx = -1;
|
||||
@@ -413,6 +414,7 @@ uint8_t create_device()
|
||||
graphics_family_idx = familyIdx;
|
||||
LOGI("Setting graphics family idx to %d", familyIdx);
|
||||
numberOfQueues = queue_family_properties[familyIdx].queueCount;
|
||||
device_queues_count++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -421,6 +423,11 @@ uint8_t create_device()
|
||||
vkGetPhysicalDeviceSurfaceSupportKHR(g_vulkan_state.physical_device, familyIdx, g_vulkan_state.surface, &presentSupport);
|
||||
if (presentSupport) {
|
||||
presentation_familiy_idx = familyIdx;
|
||||
/* If this is the same queue family as in graphics family, don't increase queue count */
|
||||
//TODO: This is still ugly, but fixes an error. Change later.
|
||||
if (presentation_familiy_idx != graphics_family_idx) {
|
||||
device_queues_count++;
|
||||
}
|
||||
LOGI("Setting present family idx to %d", familyIdx);
|
||||
}
|
||||
|
||||
@@ -466,7 +473,7 @@ uint8_t create_device()
|
||||
device_create_info.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
|
||||
device_create_info.pNext = NULL;
|
||||
device_create_info.flags = 0U;
|
||||
device_create_info.queueCreateInfoCount = 2u; /* For now one is enough. TODO: Change when needed. */
|
||||
device_create_info.queueCreateInfoCount = device_queues_count;
|
||||
device_create_info.pQueueCreateInfos = device_queue_createinfos;
|
||||
device_create_info.enabledLayerCount = 0;
|
||||
device_create_info.ppEnabledLayerNames = NULL;
|
||||
|
||||
Reference in new issue
Block a user