summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/draw/draw_private.h
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2008-04-23 18:08:20 -0600
committerBrian Paul <brian.paul@tungstengraphics.com>2008-04-23 18:08:20 -0600
commit14d1ca8d867d6e44c756cb759f92421107118b2e (patch)
treed68f30e4928d571e7d7b833885949715f57cc743 /src/gallium/auxiliary/draw/draw_private.h
parent8437f5c763c1a1ac364d71426109c2b095bbcc72 (diff)
gallium: fix issues in recursive flushing
When flushing/rendering, some stages (like AA line/point) need to set pipe/driver state. Those driver functions often call draw_flush(). That leads to recursion. Use new draw->suspend_flush flag to explicitly prevent that in the key places. Remove the draw->vcache_flushing field. Reuse draw->flushing as a debug/assertion var.
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_private.h')
-rw-r--r--src/gallium/auxiliary/draw/draw_private.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/gallium/auxiliary/draw/draw_private.h b/src/gallium/auxiliary/draw/draw_private.h
index 39aa81b43c..ca5021c5c6 100644
--- a/src/gallium/auxiliary/draw/draw_private.h
+++ b/src/gallium/auxiliary/draw/draw_private.h
@@ -178,9 +178,9 @@ struct draw_context
boolean bypass_clipping;
} driver;
- boolean flushing;
- boolean vcache_flushing;
- boolean bypass_clipping; /* set if either api or driver bypass_clipping true */
+ boolean flushing; /**< debugging/sanity */
+ boolean suspend_flushing; /**< internally set */
+ boolean bypass_clipping; /**< set if either api or driver bypass_clipping true */
/* pipe state that we need: */
const struct pipe_rasterizer_state *rasterizer;