vc4: Add some comments about state management.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user