From d07ed9216cc7033fecb5bce661bbaf79189bb391 Mon Sep 17 00:00:00 2001
From: Keith Whitwell <keith@tungstengraphics.com>
Date: Tue, 22 Apr 2008 11:01:56 +0100
Subject: xlib: implement SP_NO_RAST env var

---
 src/gallium/winsys/xlib/xm_winsys.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

(limited to 'src')

diff --git a/src/gallium/winsys/xlib/xm_winsys.c b/src/gallium/winsys/xlib/xm_winsys.c
index 9a20bdfb69..5a424d0ac7 100644
--- a/src/gallium/winsys/xlib/xm_winsys.c
+++ b/src/gallium/winsys/xlib/xm_winsys.c
@@ -84,6 +84,7 @@ struct xmesa_surface
    struct pipe_surface surface;
 
    int tileSize;
+   boolean no_swap;
 };
 
 
@@ -252,6 +253,9 @@ xmesa_display_surface(XMesaBuffer b, const struct pipe_surface *surf)
    const struct xmesa_surface *xm_surf
       = xmesa_surface((struct pipe_surface *) surf);
 
+   if (xm_surf->no_swap)
+      return;
+
    if (xm_surf->tileSize) {
       xmesa_display_surface_tiled(b, surf);
       return;
@@ -529,6 +533,13 @@ static struct pipe_surface *
 xm_surface_alloc(struct pipe_winsys *ws)
 {
    struct xmesa_surface *xms = CALLOC_STRUCT(xmesa_surface);
+   static boolean no_swap = 0;
+   static boolean firsttime = 1;
+
+   if (firsttime) {
+      no_swap = getenv("SP_NO_RAST") != NULL;
+      firsttime = 0;
+   }
 
    assert(ws);
 
@@ -540,7 +551,9 @@ xm_surface_alloc(struct pipe_winsys *ws)
       xms->tileSize = 32; /** probably temporary */
    }
 #endif
-
+   
+   xms->no_swap = no_swap;
+   
    return &xms->surface;
 }
 
-- 
cgit v1.2.3