vc4: Add some comments about state management.

This commit is contained in:
Eric Anholt 2014-10-17 09:40:12 +01:00
parent 135287db17
commit 000976ed99
2 changed files with 11 additions and 0 deletions

View file

@ -319,6 +319,12 @@ vc4_flush(struct pipe_context *pctx)
vc4->needs_flush = false;
vc4->draw_call_queued = false;
/* We have no hardware context saved between our draw calls, so we
* need to flag the next draw as needing all state emitted. Emitting
* all state at the start of our draws is also what ensures that we
* return to the state we need after a previous tile has finished.
*/
vc4->dirty = ~0;
vc4->resolve = 0;
vc4->cleared = 0;

View file

@ -78,6 +78,11 @@ vc4_start_draw(struct vc4_context *vc4)
VC4_BIN_CONFIG_ALLOC_BLOCK_SIZE_32 |
VC4_BIN_CONFIG_ALLOC_INIT_BLOCK_SIZE_32);
/* START_TILE_BINNING resets the statechange counters in the hardware,
* which are what is used when a primitive is binned to a tile to
* figure out what new state packets need to be written to that tile's
* command list.
*/
cl_u8(&vc4->bcl, VC4_PACKET_START_TILE_BINNING);
vc4->needs_flush = true;