diff --git a/glamor/glamor.h b/glamor/glamor.h index 038d4d80d..76ad84ed9 100644 --- a/glamor/glamor.h +++ b/glamor/glamor.h @@ -399,6 +399,8 @@ extern _X_EXPORT Bool struct gbm_bo *bo, Bool used_modifiers); +extern _X_EXPORT const char *glamor_egl_get_driver_name(ScreenPtr screen); + #endif extern _X_EXPORT void glamor_egl_screen_init(ScreenPtr screen, diff --git a/glamor/glamor_egl.c b/glamor/glamor_egl.c index 693bee6cf..ea3450152 100644 --- a/glamor/glamor_egl.c +++ b/glamor/glamor_egl.c @@ -700,6 +700,22 @@ glamor_get_modifiers(ScreenPtr screen, uint32_t format, #endif } +_X_EXPORT const char * +glamor_egl_get_driver_name(ScreenPtr screen) +{ +#ifdef GLAMOR_HAS_EGL_QUERY_DRIVER + struct glamor_egl_screen_private *glamor_egl; + + glamor_egl = glamor_egl_get_screen_private(xf86ScreenToScrn(screen)); + + if (epoxy_has_egl_extension(glamor_egl->display, "EGL_MESA_query_driver")) + return eglGetDisplayDriverName(glamor_egl->display); +#endif + + return NULL; +} + + static Bool glamor_egl_destroy_pixmap(PixmapPtr pixmap) { diff --git a/include/meson.build b/include/meson.build index 070178473..a01cb1709 100644 --- a/include/meson.build +++ b/include/meson.build @@ -97,6 +97,8 @@ conf_data.set('HAVE_XSHMFENCE', xshmfence_dep.found()) conf_data.set('WITH_LIBDRM', libdrm_required) conf_data.set('GLAMOR_HAS_EGL_QUERY_DMABUF', epoxy_dep.found() and epoxy_dep.version().version_compare('>= 1.4.4')) +conf_data.set('GLAMOR_HAS_EGL_QUERY_DRIVER', + epoxy_dep.found() and epoxy_dep.version().version_compare('>= 1.5.4')) conf_data.set('GLXEXT', build_glx) conf_data.set('GLAMOR', build_glamor) conf_data.set('GLAMOR_HAS_GBM', gbm_dep.found())