From b907eb475043a25d7d80f81a5d81ddebfa335399 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 20 Feb 2024 13:09:36 +1000 Subject: [PATCH] egl: don't bind zink under dri2/3 If we are in dri2/3 paths and the loader picks zink for this fd don't bind it here, let the fallbacks work. Reviewed-by: Adam Jackson Part-of: --- src/egl/drivers/dri2/platform_x11.c | 5 +++++ src/egl/drivers/dri2/platform_x11_dri3.c | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c index af6f49d764c..8b55c017a15 100644 --- a/src/egl/drivers/dri2/platform_x11.c +++ b/src/egl/drivers/dri2/platform_x11.c @@ -744,6 +744,11 @@ dri2_x11_connect(struct dri2_egl_display *dri2_dpy) strndup(driver_name, xcb_dri2_connect_driver_name_length(connect)); } + if (!strcmp(dri2_dpy->driver_name, "zink")) { + close(dri2_dpy->fd_render_gpu); + return EGL_FALSE; + } + if (dri2_dpy->driver_name == NULL) { close(dri2_dpy->fd_render_gpu); free(connect); diff --git a/src/egl/drivers/dri2/platform_x11_dri3.c b/src/egl/drivers/dri2/platform_x11_dri3.c index f301ae35d8b..b83445b1bc4 100644 --- a/src/egl/drivers/dri2/platform_x11_dri3.c +++ b/src/egl/drivers/dri2/platform_x11_dri3.c @@ -634,6 +634,12 @@ dri3_x11_connect(struct dri2_egl_display *dri2_dpy) if (!dri2_dpy->driver_name) dri2_dpy->driver_name = loader_get_driver_for_fd(dri2_dpy->fd_render_gpu); + + if (!strcmp(dri2_dpy->driver_name, "zink")) { + close(dri2_dpy->fd_render_gpu); + return EGL_FALSE; + } + if (!dri2_dpy->driver_name) { _eglLog(_EGL_WARNING, "DRI3: No driver found"); close(dri2_dpy->fd_render_gpu);