summaryrefslogtreecommitdiff
path: root/vulkan/libvulkan/swapchain.cpp
diff options
context:
space:
mode:
author Trevor David Black <vantablack@google.com> 2023-08-30 23:42:20 +0000
committer Trevor David Black <vantablack@google.com> 2023-08-30 23:52:11 +0000
commita93e21f004a69cbb7705b0621cce0fbf27c3df58 (patch)
treefe4dc39c2ab24e4b1a1d549f1f7985a7c774a1b9 /vulkan/libvulkan/swapchain.cpp
parente1ecba3aea899ae52218e3d7246c61db9bdf7717 (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.cpp36
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);
}
}