diff --git a/src/vulkan/wsi/wsi_common_headless.c b/src/vulkan/wsi/wsi_common_headless.c index 46db5a49f09..236e092c522 100644 --- a/src/vulkan/wsi/wsi_common_headless.c +++ b/src/vulkan/wsi/wsi_common_headless.c @@ -406,8 +406,11 @@ wsi_headless_surface_create_swapchain(VkIcdSurfaceBase *icd_surface, for (uint32_t i = 0; i < chain->base.image_count; i++) { result = wsi_create_image(&chain->base, &chain->base.image_info, &chain->images[i].base); - if (result != VK_SUCCESS) + if (result != VK_SUCCESS) { + /* Record how many images need to be torn down */ + chain->base.image_count = i; goto fail; + } chain->images[i].busy_on_host = false; chain->images[i].busy_on_device = false;