xlib: more SP_NO_RAST support
authorKeith Whitwell <keith@tungstengraphics.com>
Thu, 8 May 2008 21:10:15 +0000 (22:10 +0100)
committerKeith Whitwell <keith@tungstengraphics.com>
Thu, 8 May 2008 21:14:59 +0000 (22:14 +0100)
For some resaon normal (non-display-buffer) buffers are being allocated
through Xshm...  Bypass at least for SP_NO_RAST

src/gallium/winsys/xlib/fakeglx.c
src/gallium/winsys/xlib/xm_api.c

index ec77e81fedb8268eb08d7bec54aee7bacda8e73f..2c0075e93454c14b1edbe2df27009fc54cde9f6e 100644 (file)
@@ -1689,6 +1689,15 @@ static void
 Fake_glXSwapBuffers( Display *dpy, GLXDrawable drawable )
 {
    XMesaBuffer buffer = XMesaFindBuffer( dpy, drawable );
+   static boolean firsttime = 1, no_rast = 0;
+
+   if (firsttime) {
+      no_rast = getenv("SP_NO_RAST") != NULL;
+      firsttime = 0;
+   }
+
+   if (no_rast)
+      return;
 
    if (buffer) {
       XMesaSwapBuffers(buffer);
index 0c248344b15560188f9f8fce74d31617de20599f..26b722f3439208c3c34351d4ef8fd1a5ecc843e3 100644 (file)
@@ -110,6 +110,9 @@ int xmesa_check_for_xshm( XMesaDisplay *display )
    int major, minor, ignore;
    Bool pixmaps;
 
+   if (getenv("SP_NO_RAST")) 
+      return 0;
+
    if (getenv("MESA_NOSHM")) {
       return 0;
    }