diff --git a/liblava/frame/swapchain.cpp b/liblava/frame/swapchain.cpp index 53887bf82c02932a250a05b55d0437fde1adc001..48bcbd0de0f869d05c6fb43f93c9cb16d4c24c38 100644 --- a/liblava/frame/swapchain.cpp +++ b/liblava/frame/swapchain.cpp @@ -116,9 +116,13 @@ VkPresentModeKHR swapchain::choose_present_mode(VkPresentModeKHRs const& present if (v_sync()) return VK_PRESENT_MODE_FIFO_KHR; - for (auto const& present_mode : present_modes) - if (present_mode == VK_PRESENT_MODE_MAILBOX_KHR) - return present_mode; + if(std::find(present_modes.begin(), present_modes.end(), VK_PRESENT_MODE_MAILBOX_KHR) != present_modes.end()){ + return VK_PRESENT_MODE_MAILBOX_KHR; + } + + if(std::find(present_modes.begin(), present_modes.end(), VK_PRESENT_MODE_IMMEDIATE_KHR) != present_modes.end()){ + return VK_PRESENT_MODE_IMMEDIATE_KHR; + } return VK_PRESENT_MODE_FIFO_KHR; }