Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge pull request #8595 from stenzek/android-10-vulkan-suboptimal
Vulkan: Treat VK_SUBOPTIMAL_KHR as VK_SUCCESS on Android
  • Loading branch information
JosJuice committed Jan 31, 2020
2 parents 996ab90 + 08cc731 commit 534547e
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
11 changes: 10 additions & 1 deletion Source/Core/VideoBackends/Vulkan/CommandBufferManager.cpp
Expand Up @@ -375,12 +375,21 @@ void CommandBufferManager::SubmitCommandBuffer(u32 command_buffer_index,
if (m_last_present_result != VK_SUCCESS)
{
// VK_ERROR_OUT_OF_DATE_KHR is not fatal, just means we need to recreate our swap chain.
if (m_last_present_result != VK_ERROR_OUT_OF_DATE_KHR && res != VK_SUBOPTIMAL_KHR &&
if (m_last_present_result != VK_ERROR_OUT_OF_DATE_KHR &&
m_last_present_result != VK_SUBOPTIMAL_KHR &&
m_last_present_result != VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT)
{
LOG_VULKAN_ERROR(m_last_present_result, "vkQueuePresentKHR failed: ");
}

// Don't treat VK_SUBOPTIMAL_KHR as fatal on Android. Android 10+ requires prerotation.
// See https://twitter.com/Themaister/status/1207062674011574273
#ifdef VK_USE_PLATFORM_ANDROID_KHR
if (m_last_present_result != VK_SUBOPTIMAL_KHR)
m_last_present_failed.Set();
#else
m_last_present_failed.Set();
#endif
}
}

Expand Down
1 change: 1 addition & 0 deletions Source/Core/VideoBackends/Vulkan/Renderer.cpp
Expand Up @@ -305,6 +305,7 @@ void Renderer::BindBackbuffer(const ClearColor& clear_color)
}
else if (res == VK_SUBOPTIMAL_KHR || res == VK_ERROR_OUT_OF_DATE_KHR)
{
INFO_LOG(VIDEO, "Resizing swap chain due to suboptimal/out-of-date");
m_swap_chain->ResizeSwapChain();
}
else
Expand Down

0 comments on commit 534547e

Please sign in to comment.