Vulkan: Handle maxImageCount of zero when creating swap chain

anv seems to set this to zero, which is fine according to the spec, but
we were using it as a maximum, which was resulting in a swap chain
without any buffers being created.
This commit is contained in:
Stenzek 2016-11-11 23:30:05 +10:00
parent e8af48adfc
commit 160fee6791
1 changed files with 5 additions and 2 deletions

View File

@ -302,8 +302,11 @@ bool SwapChain::CreateSwapChain()
return false;
// Select number of images in swap chain, we prefer one buffer in the background to work on
uint32_t image_count =
std::min(surface_capabilities.minImageCount + 1, surface_capabilities.maxImageCount);
uint32_t image_count = surface_capabilities.minImageCount + 1;
// maxImageCount can be zero, in which case there isn't an upper limit on the number of buffers.
if (surface_capabilities.maxImageCount > 0)
image_count = std::min(image_count, surface_capabilities.maxImageCount);
// Determine the dimensions of the swap chain. Values of -1 indicate the size we specify here
// determines window size?