xserver: Branch 'master'

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Oct 6 07:28:38 UTC 2021


 hw/xwayland/xwayland-glamor-gbm.c |    6 ++++++
 1 file changed, 6 insertions(+)

New commits:
commit 5daf42b48924b1e93d4fe40e600c42ae9835712f
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Mon Oct 4 09:36:23 2021 +0200

    xwayland: Set GLVND driver based on GBM backend name
    
    With the GBM backend becoming usable with different drivers such as
    NVIDIA, set the GLVND vendor to the same value as the GBM backend name.
    
    Mesa implementation however returns "drm" so we need to special case
    this value - Basically, for anything other than "drm" we simply assume
    that the GBM backend name is the same as the vendor.
    
    Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
    Reviewed-by: Michel Dänzer <mdaenzer at redhat.com>
    Reviewed-by: James Jones <jajones at nvidia.com>
    Tested-by: James Jones <jajones at nvidia.com>

diff --git a/hw/xwayland/xwayland-glamor-gbm.c b/hw/xwayland/xwayland-glamor-gbm.c
index d64cbfb4d..7b5a9d6e5 100644
--- a/hw/xwayland/xwayland-glamor-gbm.c
+++ b/hw/xwayland/xwayland-glamor-gbm.c
@@ -939,6 +939,7 @@ xwl_glamor_gbm_init_egl(struct xwl_screen *xwl_screen)
     struct xwl_gbm_private *xwl_gbm = xwl_gbm_get(xwl_screen);
     EGLint major, minor;
     const GLubyte *renderer;
+    const char *gbm_backend_name;
 
     if (!xwl_gbm->fd_render_node && !xwl_gbm->drm_authenticated) {
         ErrorF("Failed to get wl_drm, disabling Glamor and DRI3\n");
@@ -990,6 +991,11 @@ xwl_glamor_gbm_init_egl(struct xwl_screen *xwl_screen)
                                 "EXT_image_dma_buf_import_modifiers"))
        xwl_gbm->dmabuf_capable = TRUE;
 
+    gbm_backend_name = gbm_device_get_backend_name(xwl_gbm->gbm);
+    /* Mesa uses "drm" as backend name, in that case, just do nothing */
+    if (gbm_backend_name && strcmp(gbm_backend_name, "drm") != 0)
+        xwl_screen->glvnd_vendor = gbm_backend_name;
+
     return TRUE;
 error:
     if (xwl_screen->egl_display != EGL_NO_DISPLAY) {


More information about the xorg-commit mailing list