mesa/src/vulkan/wsi
Icenowy Zheng 2f540283b3 vulkan/wsi/headless: properly cleanup swapchain init failure
Currently the wsi_headless_surface_create_swapchain() function abuses
the corresponding destroy function to perform cleanup operations when
any failure happens during images creation. This practice sounds
fragile and prevents further changes to the swapchain creation
procedure.

Implement a proper cleanup sequence to reverse all operations.

As another cleanup codepath above already contains call of vk_free(),
the call is changed to a goto targetting the corresponding label.

Regression tested with `dEQP-VK.wsi.headless.swapchain.simulate_oom.*`
on RADV.

Signed-off-by: Icenowy Zheng <zhengxingda@iscas.ac.cn>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40347>
2026-03-27 19:55:11 +00:00
..
meson.build x11: Add an x11_xlib_display_is_thread_safe() helper 2025-07-16 01:32:56 +00:00
wsi_common.c vulkan/wsi/wayland: Correctly map 24bpp format types 2026-02-17 19:25:19 +00:00
wsi_common.h vulkan/wsi/wayland: Correctly map 24bpp format types 2026-02-17 19:25:19 +00:00
wsi_common_display.c wsi/display: retrieve monitor size from EDID 2026-03-17 21:40:12 +00:00
wsi_common_display.h
wsi_common_drm.c vulkan/wsi/drm: force prime buffer blit for WSI_DEBUG_BUFFER 2026-02-20 05:26:57 +00:00
wsi_common_drm.h vk/wsi: C++-proof wsi_common_drm.h 2023-03-24 15:49:25 +00:00
wsi_common_headless.c vulkan/wsi/headless: properly cleanup swapchain init failure 2026-03-27 19:55:11 +00:00
wsi_common_metal.c wsi/metal: Expose additional color spaces if instance extension enabled 2026-02-12 19:24:45 +00:00
wsi_common_metal_layer.h wsi/metal: Disable reference counting 2025-10-13 20:17:16 +00:00
wsi_common_metal_layer.m docs: update/fix vk spec urls 2025-10-22 09:23:34 +02:00
wsi_common_private.h wsi/common: Allow timestampValidBits < 64 for present timing. 2026-01-27 11:09:53 +00:00
wsi_common_queue.h vulkan/wsi/x11: Make sure error is returned if create_swapchain fails 2026-02-05 19:15:19 +00:00
wsi_common_wayland.c wsi/wayland: Use wl_fixes to destroy wl_registry 2026-03-12 16:24:33 +00:00
wsi_common_win32.cpp vulkan/wsi: Add no-op present timing support to most backends. 2026-01-27 11:09:50 +00:00
wsi_common_x11.c vulkan/wsi: Check that xshm can be attached 2026-03-06 01:18:53 +00:00