diff options
Diffstat (limited to 'src/gui/vulkan/qvulkanwindow.cpp')
-rw-r--r-- | src/gui/vulkan/qvulkanwindow.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/gui/vulkan/qvulkanwindow.cpp b/src/gui/vulkan/qvulkanwindow.cpp index 8f6d32b89e..c4316d453b 100644 --- a/src/gui/vulkan/qvulkanwindow.cpp +++ b/src/gui/vulkan/qvulkanwindow.cpp @@ -1043,9 +1043,11 @@ void QVulkanWindowPrivate::recreateSwapChain() VkPhysicalDevice physDev = physDevs.at(physDevIndex); VkSurfaceCapabilitiesKHR surfaceCaps; vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physDev, surface, &surfaceCaps); - uint32_t reqBufferCount = swapChainBufferCount; - if (surfaceCaps.maxImageCount) - reqBufferCount = qBound(surfaceCaps.minImageCount, reqBufferCount, surfaceCaps.maxImageCount); + uint32_t reqBufferCount; + if (surfaceCaps.maxImageCount == 0) + reqBufferCount = qMax<uint32_t>(2, surfaceCaps.minImageCount); + else + reqBufferCount = qMax(qMin<uint32_t>(surfaceCaps.maxImageCount, 3), surfaceCaps.minImageCount); VkExtent2D bufferSize = surfaceCaps.currentExtent; if (bufferSize.width == uint32_t(-1)) { |