Fixed crash in the vulkan renderer when the window is minimized
Build (All) / Create test plan (push) Has been cancelled
Build (All) / level1 (push) Has been cancelled
Build (All) / level2 (push) Has been cancelled

There's more work to do here in other cases where we can't recreate the swap chain, but this fixes the common minimize case.

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

(cherry picked from commit 0ae3d7b0b0)
This commit is contained in:
Sam Lantinga
2025-11-14 12:35:42 -08:00
parent daf76f1ff6
commit ad5681c45b
+5 -3
View File
@@ -907,7 +907,7 @@ static void VULKAN_RecordPipelineImageBarrier(VULKAN_RenderData *rendererData, V
static VkResult VULKAN_AcquireNextSwapchainImage(SDL_Renderer *renderer)
{
VULKAN_RenderData *rendererData = ( VULKAN_RenderData * )renderer->internal;
VULKAN_RenderData *rendererData = (VULKAN_RenderData *)renderer->internal;
VkResult result;
@@ -915,10 +915,12 @@ static VkResult VULKAN_AcquireNextSwapchainImage(SDL_Renderer *renderer)
result = vkAcquireNextImageKHR(rendererData->device, rendererData->swapchain, UINT64_MAX,
rendererData->imageAvailableSemaphores[rendererData->currentCommandBufferIndex], VK_NULL_HANDLE, &rendererData->currentSwapchainImageIndex);
if (result == VK_ERROR_OUT_OF_DATE_KHR || result == VK_ERROR_SURFACE_LOST_KHR) {
result = VULKAN_CreateWindowSizeDependentResources(renderer);
if (!(renderer->window->flags & SDL_WINDOW_MINIMIZED)) {
result = VULKAN_CreateWindowSizeDependentResources(renderer);
}
return result;
} else if(result == VK_SUBOPTIMAL_KHR) {
// Suboptimal, but we can contiue
// Suboptimal, but we can continue
} else if (result != VK_SUCCESS) {
SET_ERROR_CODE("vkAcquireNextImageKHR()", result);
return result;