summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/vc4/vc4_context.h
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2014-07-23 11:21:04 -0700
committerEric Anholt <[email protected]>2014-08-11 14:45:30 -0700
commit165ca6b5ad4fbd20798b6bd8120504761865436c (patch)
tree4473f9391c5de44fea28835d624f34ce24704ec7 /src/gallium/drivers/vc4/vc4_context.h
parent9c631f30c9703b7c49acca5a2b3c75eb538015a1 (diff)
vc4: Track clears veresus uncleared draws, and the clear color.
This is a step toward queueing more than one draw per frame. Fixes piglit attribute0 test, since we get a working clear color now.
Diffstat (limited to 'src/gallium/drivers/vc4/vc4_context.h')
-rw-r--r--src/gallium/drivers/vc4/vc4_context.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/gallium/drivers/vc4/vc4_context.h b/src/gallium/drivers/vc4/vc4_context.h
index 010727ff4de..55746ea3b71 100644
--- a/src/gallium/drivers/vc4/vc4_context.h
+++ b/src/gallium/drivers/vc4/vc4_context.h
@@ -136,6 +136,15 @@ struct vc4_context {
/** bitfield of VC4_DIRTY_* */
uint32_t dirty;
+ /* Bitmask of PIPE_CLEAR_* of buffers that were cleared before the
+ * first rendering.
+ */
+ uint32_t cleared;
+ /* Bitmask of PIPE_CLEAR_* of buffers that have been rendered to
+ * (either clears or draws).
+ */
+ uint32_t resolve;
+ uint32_t clear_color[2];
/**
* Set if some drawing (triangles, blits, or just a glClear()) has
@@ -144,6 +153,12 @@ struct vc4_context {
*/
bool needs_flush;
+ /**
+ * Set when needs_flush, and the queued rendering is not just composed
+ * of full-buffer clears.
+ */
+ bool draw_call_queued;
+
struct primconvert_context *primconvert;
struct util_hash_table *fs_cache, *vs_cache;