Makes Vulkan device selection stop searching after a first suitable queue family.

This was SVN commit r27516.
This commit is contained in:
Vladislav Belov 2023-01-31 17:01:47 +00:00
parent ce875e675e
commit 2339067737

View File

@ -228,19 +228,20 @@ SAvailablePhysicalDevice MakeAvailablePhysicalDevice(
availablePhysicalDevice.graphicsQueueFamilyIndex = availablePhysicalDevice.queueFamilies.size();
availablePhysicalDevice.presentQueueFamilyIndex = availablePhysicalDevice.queueFamilies.size();
for (size_t familyIdx = 0; familyIdx < availablePhysicalDevice.queueFamilies.size(); ++familyIdx)
if (surface != VK_NULL_HANDLE)
{
const VkQueueFamilyProperties& queueFamily = availablePhysicalDevice.queueFamilies[familyIdx];
if (surface != VK_NULL_HANDLE)
for (size_t familyIdx = 0; familyIdx < availablePhysicalDevice.queueFamilies.size(); ++familyIdx)
{
const VkQueueFamilyProperties& queueFamily = availablePhysicalDevice.queueFamilies[familyIdx];
VkBool32 hasOutputToSurfaceSupport = false;
ENSURE_VK_SUCCESS(vkGetPhysicalDeviceSurfaceSupportKHR(
availablePhysicalDevice.device, familyIdx, surface, &hasOutputToSurfaceSupport));
availablePhysicalDevice.hasOutputToSurfaceSupport = hasOutputToSurfaceSupport;
if ((queueFamily.queueFlags & VK_QUEUE_GRAPHICS_BIT) && hasOutputToSurfaceSupport)
{
availablePhysicalDevice.hasOutputToSurfaceSupport = hasOutputToSurfaceSupport;
availablePhysicalDevice.graphicsQueueFamilyIndex = familyIdx;
availablePhysicalDevice.presentQueueFamilyIndex = familyIdx;
break;
}
}
}