diff --git a/lib/graphics_engine/src/ge_vulkan_driver.cpp b/lib/graphics_engine/src/ge_vulkan_driver.cpp index a6f4ab2ec..22808c07c 100644 --- a/lib/graphics_engine/src/ge_vulkan_driver.cpp +++ b/lib/graphics_engine/src/ge_vulkan_driver.cpp @@ -788,27 +788,33 @@ void GEVulkanDriver::createSwapChain() VkPresentModeKHR present_mode = VK_PRESENT_MODE_FIFO_KHR; if (m_params.SwapInterval == 0) - { - for (VkPresentModeKHR& available_mode : m_present_modes) - { - if (available_mode == VK_PRESENT_MODE_IMMEDIATE_KHR) - { - present_mode = available_mode; - break; - } - } - } - else { for (VkPresentModeKHR& available_mode : m_present_modes) { if (available_mode == VK_PRESENT_MODE_MAILBOX_KHR) { present_mode = available_mode; - break; + goto found_mode; + } + } + for (VkPresentModeKHR& available_mode : m_present_modes) + { + if (available_mode == VK_PRESENT_MODE_IMMEDIATE_KHR) + { + present_mode = available_mode; + goto found_mode; + } + } + for (VkPresentModeKHR& available_mode : m_present_modes) + { + if (available_mode == VK_PRESENT_MODE_FIFO_RELAXED_KHR) + { + present_mode = available_mode; + goto found_mode; } } } +found_mode: VkExtent2D image_extent = m_surface_capabilities.currentExtent; if (m_surface_capabilities.currentExtent.width == std::numeric_limits::max())