draw: add more switches to turn FSE on/off
authorKeith Whitwell <keith@tungstengraphics.com>
Thu, 29 May 2008 13:35:30 +0000 (14:35 +0100)
committerKeith Whitwell <keith@tungstengraphics.com>
Thu, 29 May 2008 13:35:47 +0000 (14:35 +0100)
src/gallium/auxiliary/draw/draw_private.h
src/gallium/auxiliary/draw/draw_pt.c

index 88a7224b6230955009a940f3167b846ab392c39a..4f8cceee1e893e3b69d3b8357d800bad3360aae8 100644 (file)
@@ -157,7 +157,8 @@ struct draw_context
          const void *constants;
       } user;
 
-      boolean test_fse;
+      boolean test_fse;         /* enable FSE even though its not correct (eg for softpipe) */
+      boolean no_fse;           /* disable FSE even when it is correct */
    } pt;
 
    struct {
index d48c6c220d03388bb5dca087c0a5a66a8eea41f7..723077159b501319d4188fbbb6990d8d634a6e90 100644 (file)
@@ -75,7 +75,7 @@ draw_pt_arrays(struct draw_context *draw,
 
    if (opt == 0) 
       middle = draw->pt.middle.fetch_emit;
-   else if (opt == PT_SHADE)
+   else if (opt == PT_SHADE && !draw->pt.no_fse)
       middle = draw->pt.middle.fetch_shade_emit;
    else
       middle = draw->pt.middle.general;
@@ -105,6 +105,7 @@ draw_pt_arrays(struct draw_context *draw,
 boolean draw_pt_init( struct draw_context *draw )
 {
    draw->pt.test_fse = GETENV("DRAW_FSE") != NULL;
+   draw->pt.no_fse = GETENV("DRAW_NO_FSE") != NULL;
 
    draw->pt.front.vcache = draw_pt_vcache( draw );
    if (!draw->pt.front.vcache)