From 60452e016ecd9f84ca9336d81a8f549b7a27f27a Mon Sep 17 00:00:00 2001 From: Mel Henning Date: Mon, 21 Apr 2025 20:50:43 -0400 Subject: [PATCH] wsi/headless: Override finish_create Since headless overrides create_mem, it needs to override finish_create too. Fixes a segfault in nvk that was caused by us mixing wsi_create_null_image_mem with wsi_finish_create_blit_context, which would then call CmdCopyImageToBuffer with image->blit.buffer == NULL Fixes a cts failure on nvk in: dEQP-VK.image.swapchain_mutable.headless.2d.r8g8b8a8_unorm_b8g8r8a8_unorm_clear_copy_format_list and several others Fixes: 579578f10a ("vulkan/wsi/drm: Break create_prime_image in pieces") Reviewed-by: Lionel Landwerlin Part-of: --- src/vulkan/wsi/wsi_common_headless.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vulkan/wsi/wsi_common_headless.c b/src/vulkan/wsi/wsi_common_headless.c index bb647816f64..7fff55b21ed 100644 --- a/src/vulkan/wsi/wsi_common_headless.c +++ b/src/vulkan/wsi/wsi_common_headless.c @@ -472,6 +472,7 @@ wsi_headless_surface_create_swapchain(VkIcdSurfaceBase *icd_surface, chain->extent = pCreateInfo->imageExtent; chain->vk_format = pCreateInfo->imageFormat; chain->base.image_info.create_mem = wsi_create_null_image_mem; + chain->base.image_info.finish_create = NULL; for (uint32_t i = 0; i < chain->base.image_count; i++) {