diff options
author | 2023-08-30 23:42:20 +0000 | |
---|---|---|
committer | 2023-08-30 23:52:11 +0000 | |
commit | a93e21f004a69cbb7705b0621cce0fbf27c3df58 (patch) | |
tree | fe4dc39c2ab24e4b1a1d549f1f7985a7c774a1b9 /vulkan/libvulkan/swapchain.cpp | |
parent | e1ecba3aea899ae52218e3d7246c61db9bdf7717 (diff) |
Move swapchain GetPhysicalDeviceSurfaceCapabilities2KHR to switch-case
Bug: 296019634
Test: atest CtsDeqpTestCases -- --module-arg 'CtsDeqpTestCases:include-filter:dEQP-VK.wsi.*'
Change-Id: I0e814068290c543ef3046a57d30d4ee070aa9d33
Diffstat (limited to 'vulkan/libvulkan/swapchain.cpp')
-rw-r--r-- | vulkan/libvulkan/swapchain.cpp | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/vulkan/libvulkan/swapchain.cpp b/vulkan/libvulkan/swapchain.cpp index bffbe9d8d5..7159d83e61 100644 --- a/vulkan/libvulkan/swapchain.cpp +++ b/vulkan/libvulkan/swapchain.cpp @@ -944,16 +944,34 @@ VkResult GetPhysicalDeviceSurfaceCapabilities2KHR( return VK_ERROR_SURFACE_LOST_KHR; } - if (pPresentMode && IsSharedPresentMode(pPresentMode->presentMode)) { - capabilities->minImageCount = 1; - capabilities->maxImageCount = 1; - } else if (pPresentMode && pPresentMode->presentMode == VK_PRESENT_MODE_MAILBOX_KHR) { - capabilities->minImageCount = - std::min(max_buffer_count, min_undequeued_buffers + 2); - capabilities->maxImageCount = static_cast<uint32_t>(max_buffer_count); + if(pPresentMode != nullptr) { + switch (pPresentMode->presentMode) { + case VK_PRESENT_MODE_IMMEDIATE_KHR: + ALOGE("Swapchain present mode VK_PRESENT_MODE_IMMEDIATE_KHR is not supported"); + 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->maxImageCount = static_cast<uint32_t>(max_buffer_count); + break; + case VK_PRESENT_MODE_FIFO_RELAXED_KHR: + ALOGE("Swapchain present mode VK_PRESENT_MODE_FIFO_RELEAXED_KHR " + "is not supported"); + break; + case VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR: + case VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR: + capabilities->minImageCount = 1; + capabilities->maxImageCount = 1; + break; + + default: + ALOGE("Unrecognized swapchain present mode %u is not supported", + pPresentMode->presentMode); + break; + } } else { - capabilities->minImageCount = - std::min(max_buffer_count, min_undequeued_buffers + 1); + capabilities->minImageCount = std::min(max_buffer_count, min_undequeued_buffers + 2); capabilities->maxImageCount = static_cast<uint32_t>(max_buffer_count); } } |