diff --git a/CMakeLists.txt b/CMakeLists.txt index 473c871..073bbcc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,7 +36,7 @@ add_subdirectory(projects/platform) # build gryphn platform add_subdirectory(projects/validation_layers/function_loader/) add_subdirectory(projects/validation_layers/allocators/) -target_link_libraries(Gryphn INTERFACE GryphnUtils GryphnCore GryphnLoader GryphnPlatform GryphnFunctionValidator GryphnAllocatorChecker GryphnExtensions) +target_link_libraries(Gryphn INTERFACE GryphnCore GryphnLoader GryphnPlatform GryphnFunctionValidator GryphnAllocatorChecker GryphnExtensions) if (VULKAN_BUILT) target_link_libraries(Gryphn INTERFACE GryphnVulkanImpl) diff --git a/projects/apis/vulkan/src/output_device/vulkan_physical_device.c b/projects/apis/vulkan/src/output_device/vulkan_physical_device.c index 386eef3..6336039 100644 --- a/projects/apis/vulkan/src/output_device/vulkan_physical_device.c +++ b/projects/apis/vulkan/src/output_device/vulkan_physical_device.c @@ -106,38 +106,47 @@ gnPhysicalDevice* getPhysicalDevices(gnInstanceHandle instance, uint32_t* device } gnBool deviceCanPresentToSurface(gnPhysicalDevice device, gnWindowSurface surface) { - gnBool foundQueue = GN_FALSE; - for (uint32_t i = 0; i < device->physicalDevice->neededQueueCount; i++) { - VkBool32 supportsPresent = VK_FALSE; - vkGetPhysicalDeviceSurfaceSupportKHR(device->physicalDevice->device, device->physicalDevice->neededQueues[i].queueIndex, surface->windowSurface->surface, &supportsPresent); - if (supportsPresent) { - device->physicalDevice->neededQueues[i].usedForPresent = GN_TRUE; - foundQueue = GN_TRUE; - break; - } - surface->windowSurface->presentQueueIndex = i; + uint32_t queueFamilyCount = 0; + vkGetPhysicalDeviceQueueFamilyProperties(device->physicalDevice->device, &queueFamilyCount, NULL); + for (uint32_t i = 0; i < queueFamilyCount; i++) { + VkBool32 supportsPresent; + vkGetPhysicalDeviceSurfaceSupportKHR(device->physicalDevice->device, i, surface->windowSurface->surface, &supportsPresent); + if (supportsPresent) return GN_TRUE; } - - if (!foundQueue) { - uint32_t queueFamilyCount = 0; - vkGetPhysicalDeviceQueueFamilyProperties(device->physicalDevice->device, &queueFamilyCount, NULL); - - for (uint32_t i = 0; i < queueFamilyCount; i++) { - VkBool32 supportsPresent = VK_FALSE; - vkGetPhysicalDeviceSurfaceSupportKHR(device->physicalDevice->device, i, surface->windowSurface->surface, &supportsPresent); - if (supportsPresent) { - device->physicalDevice->neededQueues[device->physicalDevice->neededQueueCount] = (vulkanNeededQueue){ - .queueIndex = i, - .createFlags = 0, - .usedForPresent = GN_TRUE - }; - foundQueue = GN_TRUE; - surface->windowSurface->presentQueueIndex = device->physicalDevice->neededQueueCount; - device->physicalDevice->neededQueueCount++; - break; - } - } - } - - return foundQueue; + return GN_FALSE; } + + // gnBool foundQueue = GN_FALSE; + // for (uint32_t i = 0; i < device->physicalDevice->neededQueueCount; i++) { + // VkBool32 supportsPresent = VK_FALSE; + // vkGetPhysicalDeviceSurfaceSupportKHR(device->physicalDevice->device, device->physicalDevice->neededQueues[i].queueIndex, surface->windowSurface->surface, &supportsPresent); + // if (supportsPresent) { + // device->physicalDevice->neededQueues[i].usedForPresent = GN_TRUE; + // foundQueue = GN_TRUE; + // break; + // } + // surface->windowSurface->presentQueueIndex = i; + // } + + // if (!foundQueue) { + // uint32_t queueFamilyCount = 0; + // vkGetPhysicalDeviceQueueFamilyProperties(device->physicalDevice->device, &queueFamilyCount, NULL); + + // for (uint32_t i = 0; i < queueFamilyCount; i++) { + // VkBool32 supportsPresent = VK_FALSE; + // vkGetPhysicalDeviceSurfaceSupportKHR(device->physicalDevice->device, i, surface->windowSurface->surface, &supportsPresent); + // if (supportsPresent) { + // device->physicalDevice->neededQueues[device->physicalDevice->neededQueueCount] = (vulkanNeededQueue){ + // .queueIndex = i, + // .createFlags = 0, + // .usedForPresent = GN_TRUE + // }; + // foundQueue = GN_TRUE; + // surface->windowSurface->presentQueueIndex = device->physicalDevice->neededQueueCount; + // device->physicalDevice->neededQueueCount++; + // break; + // } + // } + // } + + // return foundQueue;