Re: [Mesa-dev] [PATCH 5/6] egl/x11: trust our loader over the xserver for the drivername

2015-08-08 Thread Timothy Arceri
This change is causing a bunch of issues during a piglit run on my system. I'm
getting error messages like this:

*** Error in `/home/timothy/data/piglit/bin/glslparsertest_gles2': free():
invalid pointer: 0x022d4be0 ***

Any ideas what might be wrong?
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 5/6] egl/x11: trust our loader over the xserver for the drivername

2015-08-08 Thread Boyan Ding
2015-08-08 16:05 GMT+08:00 Timothy Arceri t_arc...@yahoo.com.au:
 This change is causing a bunch of issues during a piglit run on my system. I'm
 getting error messages like this:

 *** Error in `/home/timothy/data/piglit/bin/glslparsertest_gles2': free():
 invalid pointer: 0x022d4be0 ***

 Any ideas what might be wrong?

The problem is probably here:
 +   if (loader_driver_name) {
 +  free(driver_name);
 +  driver_name = loader_driver_name;
 +   }
 +

I think the 'free' here might be wrong. The glx code frees driverName because
the helper function DRI2Connect there malloc'ed a buffer to hold driver name
but the driver_name here is directly got from xcb reply. As you can see in the
following code, it should be dup'ed to use.

Regards,
Boyan Ding

 ___
 mesa-dev mailing list
 mesa-dev@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/mesa-dev
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 5/6] egl/x11: trust our loader over the xserver for the drivername

2015-07-29 Thread Matt Turner
On Wed, Jul 29, 2015 at 9:19 AM, Emil Velikov emil.l.veli...@gmail.com wrote:
 This is a port of commit 7bd95ec437a(dri2: Trust our own driver name
 lookup over the server's.) from glx/dri2.

 Cc: Eric Anholt e...@anholt.net
 Cc: Julien Isorce julien.iso...@gmail.com
 Reported-by: Julien Isorce julien.iso...@gmail.com
 Signed-off-by: Emil Velikov emil.l.veli...@gmail.com
 ---
  src/egl/drivers/dri2/platform_x11.c | 11 ++-
  1 file changed, 10 insertions(+), 1 deletion(-)

 diff --git a/src/egl/drivers/dri2/platform_x11.c 
 b/src/egl/drivers/dri2/platform_x11.c
 index 745e16a..a8534c9 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,15 @@ dri2_x11_connect(struct dri2_egl_display *dri2_dpy)
 }

 driver_name = xcb_dri2_connect_driver_name (connect);

Put a newline here (before a multiline comment)

 +   /* 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));
 --
 2.4.5

 ___
 mesa-dev mailing list
 mesa-dev@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/mesa-dev
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH 5/6] egl/x11: trust our loader over the xserver for the drivername

2015-07-29 Thread Emil Velikov
This is a port of commit 7bd95ec437a(dri2: Trust our own driver name
lookup over the server's.) from glx/dri2.

Cc: Eric Anholt e...@anholt.net
Cc: Julien Isorce julien.iso...@gmail.com
Reported-by: Julien Isorce julien.iso...@gmail.com
Signed-off-by: Emil Velikov emil.l.veli...@gmail.com
---
 src/egl/drivers/dri2/platform_x11.c | 11 ++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/egl/drivers/dri2/platform_x11.c 
b/src/egl/drivers/dri2/platform_x11.c
index 745e16a..a8534c9 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,15 @@ 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));
-- 
2.4.5

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev