mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-10-02 16:23:57 +08:00
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
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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user