blob: 5992583a1fa0e5c6c6ccc6ba0f4499ba0d8ed54d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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
|