[Mesa-dev] [PATCH 17/17] i965: Disentangle batch and state buffer flushing.

Chris Wilson chris at chris-wilson.co.uk
Wed Sep 6 11:23:37 UTC 2017


Quoting Chris Wilson (2017-09-06 11:13:54)
> Quoting Kenneth Graunke (2017-09-06 01:09:50)
> > We now flush the batch when either the batchbuffer or statebuffer
> > reaches the original intended batch size, instead of when the sum of
> > the two reaches a certain size (which makes no sense now that they're
> > separate buffers).
> > 
> > With this change, we also need to update our "are we near the end?"
> > estimate to require separate batch and state buffer space.  I obtained
> > these estimates by looking at the size of draw calls in the Unreal 4
> > Elemental Demo (using INTEL_DEBUG=flush and always_flush_batch=true).
> > 
> > This will increase the batch size by perhaps 2-4x, which will almost
> > certainly have a performance impact, and may impact overall system
> > responsiveness.
> > 
> > XXX: benchmark, may need a lot of tuning.
> 
> What were you thoughts to not flushing the batch on swapping the state,
> since that just needs to re-emit STATE_BASE?

Also given the restriction upon the surface state that only allows it to
grow once, why not just make it 64k and replace upon filling?
-Chris


More information about the mesa-dev mailing list