glxinfo: When direct rendering is not enabled, print some hints.
authorMichel Dänzer <michel@tungstengraphics.com>
Wed, 6 Dec 2006 13:54:43 +0000 (14:54 +0100)
committerMichel Dänzer <michel@tungstengraphics.com>
Wed, 6 Dec 2006 13:54:43 +0000 (14:54 +0100)
If indirect rendering is forced, say how. Otherwise, suggest setting
LIBGL_DEBUG=verbose.

Inspired by http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=379323 .

progs/xdemos/glxinfo.c

index fdd1c0523f67faed120007ec1032e98d829b5572..a1aca5ad31e800399b664552bca11323273a329d 100644 (file)
@@ -456,7 +456,19 @@ print_screen_info(Display *dpy, int scrnum, Bool allowDirect, GLboolean limits)
       }
       printf("display: %s  screen: %d\n", displayName, scrnum);
       free(displayName);
-      printf("direct rendering: %s\n", glXIsDirect(dpy, ctx) ? "Yes" : "No");
+      printf("direct rendering: ");
+      if (glXIsDirect(dpy, ctx)) {
+         printf("Yes\n");
+      } else {
+         if (!allowDirect) {
+            printf("No (-i specified)\n");
+         } else if (getenv("LIBGL_ALWAYS_INDIRECT")) {
+            printf("No (LIBGL_ALWAYS_INDIRECT set)\n");
+         } else {
+            printf("No (If you want to find out why, try setting "
+                   "LIBGL_DEBUG=verbose)\n");
+         }
+      }
       printf("server glx vendor string: %s\n", serverVendor);
       printf("server glx version string: %s\n", serverVersion);
       printf("server glx extensions:\n");