summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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.patch49
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