diff options
Diffstat (limited to 'media-libs/mesa/files/mesa-23.0.2-wayland-crash-warnings-2.patch')
-rw-r--r-- | media-libs/mesa/files/mesa-23.0.2-wayland-crash-warnings-2.patch | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/media-libs/mesa/files/mesa-23.0.2-wayland-crash-warnings-2.patch b/media-libs/mesa/files/mesa-23.0.2-wayland-crash-warnings-2.patch new file mode 100644 index 000000000000..5992583a1fa0 --- /dev/null +++ b/media-libs/mesa/files/mesa-23.0.2-wayland-crash-warnings-2.patch @@ -0,0 +1,49 @@ +https://bugs.gentoo.org/904072 +https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21647 + +From 689ce66a4332524b4eb98877de6f75d05dd05c60 Mon Sep 17 00:00:00 2001 +From: Alexandros Frantzis <alexandros.frantzis@collabora.com> +Date: Thu, 2 Mar 2023 10:10:42 +0200 +Subject: [PATCH] vulkan/wsi/wayland: Fix destruction of event queue with + proxies still attached. + +Destroy the surface dmabuf feedback proxy before destroying the event +queue that the proxy is attached to. + +This silences a warning that libwayland 1.22 emits for programs that use +Vulkan/Wayland: + +warning: queue 0x557a4efbcf70 destroyed while proxies still attached: + zwp_linux_dmabuf_feedback_v1@18 still attached + +Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21647> +--- a/src/vulkan/wsi/wsi_common_wayland.c ++++ b/src/vulkan/wsi/wsi_common_wayland.c +@@ -1157,18 +1157,18 @@ wsi_wl_surface_destroy(VkIcdSurfaceBase *icd_surface, VkInstance _instance, + struct wsi_wl_surface *wsi_wl_surface = + wl_container_of((VkIcdSurfaceWayland *)icd_surface, wsi_wl_surface, base); + +- if (wsi_wl_surface->surface) +- wl_proxy_wrapper_destroy(wsi_wl_surface->surface); +- +- if (wsi_wl_surface->display) +- wsi_wl_display_destroy(wsi_wl_surface->display); +- + if (wsi_wl_surface->wl_dmabuf_feedback) { + zwp_linux_dmabuf_feedback_v1_destroy(wsi_wl_surface->wl_dmabuf_feedback); + dmabuf_feedback_fini(&wsi_wl_surface->dmabuf_feedback); + dmabuf_feedback_fini(&wsi_wl_surface->pending_dmabuf_feedback); + } + ++ if (wsi_wl_surface->surface) ++ wl_proxy_wrapper_destroy(wsi_wl_surface->surface); ++ ++ if (wsi_wl_surface->display) ++ wsi_wl_display_destroy(wsi_wl_surface->display); ++ + vk_free2(&instance->alloc, pAllocator, wsi_wl_surface); + } + +-- +GitLab |