summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/vc4/vc4_draw.c
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2014-10-16 10:17:57 +0100
committerEric Anholt <[email protected]>2014-10-17 13:09:28 +0100
commitafc3aa373d45775d08babffa49b566f952689efc (patch)
treed527190ae2c01d0ee7308fc9ec2976ab9a98becb /src/gallium/drivers/vc4/vc4_draw.c
parent895c90410314103814ca4d2684f94463bd8f243f (diff)
vc4: Set the primitive list format at the start of rendering.
The other driver does this manually before calling into each tile, but we can just let it get binned into the tiles (saving repeated kernel validation on the packet). Fixes simulator assertion failures on polygon-mode and non-auto texwrap.
Diffstat (limited to 'src/gallium/drivers/vc4/vc4_draw.c')
-rw-r--r--src/gallium/drivers/vc4/vc4_draw.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/gallium/drivers/vc4/vc4_draw.c b/src/gallium/drivers/vc4/vc4_draw.c
index f3c225de399..f53caf79cfb 100644
--- a/src/gallium/drivers/vc4/vc4_draw.c
+++ b/src/gallium/drivers/vc4/vc4_draw.c
@@ -85,6 +85,15 @@ vc4_start_draw(struct vc4_context *vc4)
*/
cl_u8(&vc4->bcl, VC4_PACKET_START_TILE_BINNING);
+ /* Reset the current compressed primitives format. This gets modified
+ * by VC4_PACKET_GL_INDEXED_PRIMITIVE and
+ * VC4_PACKET_GL_ARRAY_PRIMITIVE, so it needs to be reset at the start
+ * of every tile.
+ */
+ cl_u8(&vc4->bcl, VC4_PACKET_PRIMITIVE_LIST_FORMAT);
+ cl_u8(&vc4->bcl, (VC4_PRIMITIVE_LIST_FORMAT_16_INDEX |
+ VC4_PRIMITIVE_LIST_FORMAT_TYPE_TRIANGLES));
+
vc4->needs_flush = true;
vc4->draw_call_queued = true;
}