From c20d6a919710f61d016910e411f0067a6f935ef2 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 14 Aug 2024 10:24:00 -0400 Subject: [PATCH] egl: make dmabuf/modifier display bools a bit more precise/intelligible MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 'has_modifiers' was misleading and not actually useful Reviewed-by: Marek Olšák Part-of: --- src/egl/drivers/dri2/egl_dri2.c | 13 ++++++------- src/egl/drivers/dri2/egl_dri2.h | 2 +- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 9059edac6c4..a6e9ab28c6d 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -626,14 +626,12 @@ dri2_setup_screen(_EGLDisplay *disp) struct pipe_screen *pscreen = screen->base.screen; unsigned int api_mask = screen->api_mask; - bool has_modifiers = true; - if (disp->Platform == _EGL_PLATFORM_X11 || - disp->Platform == _EGL_PLATFORM_XCB) - has_modifiers = dri2_dpy->multibuffers_available; int caps = dri_get_screen_param(dri2_dpy->dri_screen_render_gpu, PIPE_CAP_DMABUF); /* set if both import and export are suported */ - dri2_dpy->has_modifiers = has_modifiers && util_bitcount(caps) == 2; - dri2_dpy->has_dmabuf_import = has_modifiers && caps & DRM_PRIME_CAP_IMPORT; + if (dri2_dpy->multibuffers_available) { + dri2_dpy->has_dmabuf_import = (caps & DRM_PRIME_CAP_IMPORT) > 0; + dri2_dpy->has_dmabuf_export = (caps & DRM_PRIME_CAP_EXPORT) > 0; + } #ifdef HAVE_ANDROID_PLATFORM dri2_dpy->has_native_fence_fd = dri_get_screen_param(dri2_dpy->dri_screen_render_gpu, PIPE_CAP_NATIVE_FENCE_FD); #endif @@ -1036,6 +1034,7 @@ dri2_display_create(void) dri2_dpy->fd_render_gpu = -1; dri2_dpy->fd_display_gpu = -1; + dri2_dpy->multibuffers_available = true; return dri2_dpy; } @@ -2901,7 +2900,7 @@ dri2_bind_wayland_display_wl(_EGLDisplay *disp, struct wl_display *wl_dpy) if (!device_name) goto fail; - if (dri2_dpy->has_modifiers) + if (dri2_dpy->has_dmabuf_import && dri2_dpy->has_dmabuf_export) flags |= WAYLAND_DRM_PRIME; dri2_dpy->wl_server_drm = diff --git a/src/egl/drivers/dri2/egl_dri2.h b/src/egl/drivers/dri2/egl_dri2.h index be4602a24d0..90b395734f1 100644 --- a/src/egl/drivers/dri2/egl_dri2.h +++ b/src/egl/drivers/dri2/egl_dri2.h @@ -272,7 +272,7 @@ struct dri2_egl_display { const __DRIextension **loader_extensions; bool has_dmabuf_import; - bool has_modifiers; + bool has_dmabuf_export; bool multibuffers_available; #ifdef HAVE_X11_PLATFORM xcb_connection_t *conn;