Henri Verbeet : winex11: Print the GL renderer and version when complaining about software / indirect rendering.

Alexandre Julliard julliard at winehq.org
Mon Oct 10 10:25:36 CDT 2011


Module: wine
Branch: master
Commit: dbe058249f7bcfce26cf6bfcaeb849064c9b9ae4
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=dbe058249f7bcfce26cf6bfcaeb849064c9b9ae4

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Sun Oct  9 19:01:20 2011 +0200

winex11: Print the GL renderer and version when complaining about software / indirect rendering.

---

 dlls/winex11.drv/opengl.c |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c
index a4ed5eb..78a717d 100644
--- a/dlls/winex11.drv/opengl.c
+++ b/dlls/winex11.drv/opengl.c
@@ -299,6 +299,7 @@ static BOOL X11DRV_WineGL_InitOpenglInfo(void)
 {
     int screen = DefaultScreen(gdi_display);
     Window win = 0, root = 0;
+    const char *gl_renderer;
     const char* str;
     XVisualInfo *vis;
     GLXContext ctx = NULL;
@@ -349,6 +350,7 @@ static BOOL X11DRV_WineGL_InitOpenglInfo(void)
         ERR_(winediag)( "Unable to activate OpenGL context, most likely your OpenGL drivers haven't been installed correctly\n" );
         goto done;
     }
+    gl_renderer = (const char *)pglGetString(GL_RENDERER);
     WineGLInfo.glVersion = (const char *) pglGetString(GL_VERSION);
     str = (const char *) pglGetString(GL_EXTENSIONS);
     WineGLInfo.glExtensions = HeapAlloc(GetProcessHeap(), 0, strlen(str)+1);
@@ -369,7 +371,7 @@ static BOOL X11DRV_WineGL_InitOpenglInfo(void)
     WineGLInfo.glxDirect = pglXIsDirect(gdi_display, ctx);
 
     TRACE("GL version             : %s.\n", WineGLInfo.glVersion);
-    TRACE("GL renderer            : %s.\n", pglGetString(GL_RENDERER));
+    TRACE("GL renderer            : %s.\n", gl_renderer);
     TRACE("GLX version            : %d.%d.\n", WineGLInfo.glxVersion[0], WineGLInfo.glxVersion[1]);
     TRACE("Server GLX version     : %s.\n", WineGLInfo.glxServerVersion);
     TRACE("Server GLX vendor:     : %s.\n", WineGLInfo.glxServerVendor);
@@ -387,7 +389,9 @@ static BOOL X11DRV_WineGL_InitOpenglInfo(void)
          * Detect a local X11 server by checking whether the X11 socket is a Unix socket.
          */
         if(!getsockname(fd, (struct sockaddr *)&uaddr, &uaddrlen) && uaddr.sun_family == AF_UNIX)
-            ERR_(winediag)("Direct rendering is disabled, most likely your OpenGL drivers haven't been installed correctly\n");
+            ERR_(winediag)("Direct rendering is disabled, most likely your OpenGL drivers "
+                           "haven't been installed correctly (using GL renderer %s, version %s).\n",
+                           debugstr_a(gl_renderer), debugstr_a(WineGLInfo.glVersion));
     }
     else
     {
@@ -400,9 +404,10 @@ static BOOL X11DRV_WineGL_InitOpenglInfo(void)
          * to load a DRI module 'Software Rasterizer' is returned. When Mesa is compiled as a OpenGL reference driver
          * it shows 'Mesa X11'.
          */
-        const char *gl_renderer = (const char *)pglGetString(GL_RENDERER);
         if(!strcmp(gl_renderer, "Software Rasterizer") || !strcmp(gl_renderer, "Mesa X11"))
-            ERR_(winediag)("The Mesa OpenGL driver is using software rendering, most likely your OpenGL drivers haven't been installed correctly\n");
+            ERR_(winediag)("The Mesa OpenGL driver is using software rendering, most likely your OpenGL "
+                           "drivers haven't been installed correctly (using GL renderer %s, version %s).\n",
+                           debugstr_a(gl_renderer), debugstr_a(WineGLInfo.glVersion));
     }
     ret = TRUE;
 




More information about the wine-cvs mailing list