diff options
author | Eric Anholt <[email protected]> | 2014-10-16 10:17:57 +0100 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2014-10-17 13:09:28 +0100 |
commit | afc3aa373d45775d08babffa49b566f952689efc (patch) | |
tree | d527190ae2c01d0ee7308fc9ec2976ab9a98becb /src/gallium/drivers/vc4/vc4_draw.c | |
parent | 895c90410314103814ca4d2684f94463bd8f243f (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.c | 9 |
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; } |