1
0
forked from 0ad/0ad

Increases minImageCount for Vulkan swapchain only when there is a room for that.

This was SVN commit r27537.
This commit is contained in:
Vladislav Belov 2023-02-12 23:12:28 +00:00
parent afd0f181e1
commit f8520e0275

View File

@ -128,12 +128,15 @@ std::unique_ptr<CSwapChain> CSwapChain::Create(
swapChainCreateInfo.surface = surface;
// minImageCount + 1 is to have a less chance for a presenter to wait.
// maxImageCount might be zero, it means it's unlimited.
const uint32_t maxImageCount = surfaceCapabilities.maxImageCount > 0
? surfaceCapabilities.maxImageCount
: std::numeric_limits<uint32_t>::max();
const uint32_t minImageCount = surfaceCapabilities.minImageCount < maxImageCount
? surfaceCapabilities.minImageCount + 1
: surfaceCapabilities.minImageCount;
swapChainCreateInfo.minImageCount =
Clamp<uint32_t>(NUMBER_OF_FRAMES_IN_FLIGHT,
surfaceCapabilities.minImageCount + 1,
surfaceCapabilities.maxImageCount > 0
? surfaceCapabilities.maxImageCount
: std::numeric_limits<uint32_t>::max());
minImageCount, maxImageCount);
swapChainCreateInfo.imageFormat = surfaceFormat.format;
swapChainCreateInfo.imageColorSpace = surfaceFormat.colorSpace;
swapChainCreateInfo.imageExtent.width = swapChainWidth;