diff options
| author | Stenzek <stenzek@gmail.com> | 2016-11-11 23:30:05 +1000 |
|---|---|---|
| committer | Stenzek <stenzek@gmail.com> | 2016-11-11 23:33:40 +1000 |
| commit | 160fee67916c9cb7f6c4ceef04874c8efb051f76 (patch) | |
| tree | edf7f5513a2bf5b1cfefe87e399aab388b0069ce /Source/Core | |
| parent | e8af48adfca6e6fb291c5c715af1562569dc1bd3 (diff) | |
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.
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/VideoBackends/Vulkan/SwapChain.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Source/Core/VideoBackends/Vulkan/SwapChain.cpp b/Source/Core/VideoBackends/Vulkan/SwapChain.cpp index 899f931c6d..e9d7e9cc5b 100644 --- a/Source/Core/VideoBackends/Vulkan/SwapChain.cpp +++ b/Source/Core/VideoBackends/Vulkan/SwapChain.cpp @@ -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? |
