Mesa (master): egl/x11: trust our loader over the xserver for the drivername

Emil Velikov evelikov at kemper.freedesktop.org
Fri Aug 7 18:19:41 UTC 2015


Module: Mesa
Branch: master
Commit: 45e110bad9d5d31eb67d7d32937aa5a752108df8
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=45e110bad9d5d31eb67d7d32937aa5a752108df8

Author: Emil Velikov <emil.l.velikov at gmail.com>
Date:   Wed Jul 29 17:19:06 2015 +0100

egl/x11: trust our loader over the xserver for the drivername

This is a port of commit 7bd95ec437a(dri2: Trust our own driver name
lookup over the server's.) from glx/dri2.

v2: Add newline between code and multiline comment. (Matt)

Cc: Julien Isorce <julien.isorce at gmail.com>
Reported-by: Julien Isorce <julien.isorce at gmail.com>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
Acked-by: Alex Deucher <alexander.deucher at amd.com>
Reviewed-by: Eric Anholt <eric at anholt.net>

---

 src/egl/drivers/dri2/platform_x11.c |   12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c
index 745e16a..a251694 100644
--- a/src/egl/drivers/dri2/platform_x11.c
+++ b/src/egl/drivers/dri2/platform_x11.c
@@ -519,7 +519,7 @@ dri2_x11_connect(struct dri2_egl_display *dri2_dpy)
    xcb_generic_error_t *error;
    xcb_screen_iterator_t s;
    xcb_screen_t *screen;
-   char *driver_name, *device_name;
+   char *driver_name, *loader_driver_name, *device_name;
    const xcb_query_extension_reply_t *extension;
 
    xcb_prefetch_extension_data (dri2_dpy->conn, &xcb_xfixes_id);
@@ -596,6 +596,16 @@ dri2_x11_connect(struct dri2_egl_display *dri2_dpy)
    }
 
    driver_name = xcb_dri2_connect_driver_name (connect);
+
+   /* If Mesa knows about the appropriate driver for this fd, then trust it.
+    * Otherwise, default to the server's value.
+    */
+   loader_driver_name = loader_get_driver_for_fd(dri2_dpy->fd, 0);
+   if (loader_driver_name) {
+      free(driver_name);
+      driver_name = loader_driver_name;
+   }
+
    dri2_dpy->driver_name =
       strndup(driver_name,
               xcb_dri2_connect_driver_name_length(connect));




More information about the mesa-commit mailing list