From ff8ec59c97053b3fadaed635120665577fd7a43b Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 15 Aug 2024 13:23:10 -0400 Subject: [PATCH] xwayland: connect to the wl display before calling into EGL using EGL (e.g., eglQueryString, epoxy_has_egl_extension) before establishing this connection enables the GBM/EGL implementation to potentially consume the WAYLAND_SOCKET fd, which, if closed, will cause the compositor to kill this xserver Part-of: --- hw/xwayland/xwayland-screen.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/hw/xwayland/xwayland-screen.c b/hw/xwayland/xwayland-screen.c index f79d9ebc0..764176df5 100644 --- a/hw/xwayland/xwayland-screen.c +++ b/hw/xwayland/xwayland-screen.c @@ -984,6 +984,12 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv) return FALSE; } + xwl_screen->display = wl_display_connect(NULL); + if (xwl_screen->display == NULL) { + ErrorF("could not connect to wayland server\n"); + return FALSE; + } + #ifdef XWL_HAS_GLAMOR if (xwl_screen->glamor && !xwl_glamor_init_gbm(xwl_screen)) { ErrorF("xwayland glamor: failed to setup GBM backend, falling back to sw accel\n"); @@ -1012,12 +1018,6 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv) if (!monitorResolution) monitorResolution = DEFAULT_DPI; - xwl_screen->display = wl_display_connect(NULL); - if (xwl_screen->display == NULL) { - ErrorF("could not connect to wayland server\n"); - return FALSE; - } - if (use_fixed_size) { if (!xwl_screen_init_randr_fixed(xwl_screen)) return FALSE;