From 536ed0427aed4565bb9119f2aae90c4454f0fdef Mon Sep 17 00:00:00 2001 From: Joshua Ashton Date: Mon, 9 Nov 2020 00:27:37 +0000 Subject: [PATCH] vkd3d: Create user buffers for degenerate surfaces Previously this would make the user buffer count == 0, which obviously makes apps and assertions not happy. Fixes a crash in Horizon Zero Dawn when minimized (therefore having a degenerate surface region) Signed-off-by: Joshua Ashton --- libs/vkd3d/swapchain.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libs/vkd3d/swapchain.c b/libs/vkd3d/swapchain.c index cc7daa0f..276288de 100644 --- a/libs/vkd3d/swapchain.c +++ b/libs/vkd3d/swapchain.c @@ -1468,6 +1468,9 @@ static HRESULT d3d12_swapchain_create_vulkan_swapchain(struct d3d12_swapchain *s else { /* Fallback path for when surface size is 0. We'll try to create a proper swapchain in a future Present call. */ + if (FAILED(hr = d3d12_swapchain_create_user_buffers(swapchain, vk_format))) + return hr; + d3d12_swapchain_destroy_buffers(swapchain, FALSE); d3d12_swapchain_destroy_framebuffers(swapchain); swapchain->buffer_count = 0;