summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-06-10 11:05:41 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2011-06-10 11:05:41 +0100
commitb6192ce95af8aa8be6d9a68a500393f2a73c2f4c (patch)
tree1365b770db4aca3cd65a8dce2e231a1658a4865a
parentc9b89fc87f1d43a715cd9c5915bfed957175986d (diff)
sna/gen4: Tweak calculation of required batch space for CA
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/sna/gen4_render.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/sna/gen4_render.c b/src/sna/gen4_render.c
index 13d95330..c7bc751f 100644
--- a/src/sna/gen4_render.c
+++ b/src/sna/gen4_render.c
@@ -1046,13 +1046,18 @@ static bool gen4_rectangle_begin(struct sna *sna,
int ndwords;
ndwords = 0;
+ if (FLUSH_EVERY_VERTEX)
+ ndwords = 1;
if ((sna->render_state.gen4.vb_id & (1 << id)) == 0)
ndwords += 5;
if (sna->render_state.gen4.vertex_offset == 0)
- ndwords += op->need_magic_ca_pass ? 20 : 6;
+ ndwords += 6;
if (ndwords == 0)
return true;
+ if (op->need_magic_ca_pass)
+ ndwords += 12; /* pipelined pointers + primitive + flush */
+
if (!kgem_check_batch(&sna->kgem, ndwords))
return false;