Ignore VK_SUBOPTIMAL_KHR on the Android platform

This is returned whenever the device has been rotated, and can be safely ignored.

Fixes https://github.com/libsdl-org/SDL/issues/12950

(cherry picked from commit 00ffddece8)
This commit is contained in:
Sam Lantinga
2025-10-08 20:02:31 -07:00
parent 840d5c16d2
commit bca30aafed

View File

@@ -10664,7 +10664,13 @@ static bool VULKAN_Submit(
presentData->windowData->inFlightFences[presentData->windowData->frameCounter] = (SDL_GPUFence*)vulkanCommandBuffer->inFlightFence;
(void)SDL_AtomicIncRef(&vulkanCommandBuffer->inFlightFence->referenceCount);
if (presentResult == VK_SUBOPTIMAL_KHR || presentResult == VK_ERROR_OUT_OF_DATE_KHR) {
// On the Android platform, VK_SUBOPTIMAL_KHR is returned whenever the device is rotated. We'll just ignore this for now.
#ifndef SDL_PLATFORM_ANDROID
if (presentResult == VK_SUBOPTIMAL_KHR) {
presentData->windowData->needsSwapchainRecreate = true;
}
#endif
if (presentResult == VK_ERROR_OUT_OF_DATE_KHR) {
presentData->windowData->needsSwapchainRecreate = true;
}
} else {