diff options
author | 2023-09-26 20:30:42 +0000 | |
---|---|---|
committer | 2023-09-26 20:54:22 +0000 | |
commit | e4d23b9ce68f221cb9750b49d62d8c1ac35a1a14 (patch) | |
tree | 93f843442f9c67011912f34b75c4818a415f2149 | |
parent | fd7fee05dbb3e63c537ae9b19fc5c674b48733c6 (diff) |
Clarified value of 2 for default buffers in vulkan swapchain
Bug: 296019634
Test: atest CtsDeqpTestCases -- --module-arg 'CtsDeqpTestCases:include-filter:dEQP-VK.wsi.*'
Change-Id: Ie690fdb87c42d1000550d3f92fb7d0527cba3ca9
-rw-r--r-- | vulkan/libvulkan/swapchain.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/vulkan/libvulkan/swapchain.cpp b/vulkan/libvulkan/swapchain.cpp index c5870d4de2..dcef54dc38 100644 --- a/vulkan/libvulkan/swapchain.cpp +++ b/vulkan/libvulkan/swapchain.cpp @@ -944,6 +944,11 @@ VkResult GetPhysicalDeviceSurfaceCapabilities2KHR( return VK_ERROR_SURFACE_LOST_KHR; } + // Additional buffer count over min_undequeued_buffers in vulkan came from 2 total + // being technically enough for fifo (although a poor experience) vs 3 being the + // absolute minimum for mailbox to be useful. So min_undequeued_buffers + 2 is sensible + static constexpr int default_additional_buffers = 2; + if(pPresentMode != nullptr) { switch (pPresentMode->presentMode) { case VK_PRESENT_MODE_IMMEDIATE_KHR: @@ -951,8 +956,8 @@ VkResult GetPhysicalDeviceSurfaceCapabilities2KHR( break; case VK_PRESENT_MODE_MAILBOX_KHR: case VK_PRESENT_MODE_FIFO_KHR: - capabilities->minImageCount = - std::min(max_buffer_count, min_undequeued_buffers + 2); + capabilities->minImageCount = std::min(max_buffer_count, + min_undequeued_buffers + default_additional_buffers); capabilities->maxImageCount = static_cast<uint32_t>(max_buffer_count); break; case VK_PRESENT_MODE_FIFO_RELAXED_KHR: @@ -971,7 +976,8 @@ VkResult GetPhysicalDeviceSurfaceCapabilities2KHR( break; } } else { - capabilities->minImageCount = std::min(max_buffer_count, min_undequeued_buffers + 2); + capabilities->minImageCount = std::min(max_buffer_count, + min_undequeued_buffers + default_additional_buffers); capabilities->maxImageCount = static_cast<uint32_t>(max_buffer_count); } } |