[Mesa-dev] [PATCH 09/13] i965: Always create the batch with the batch object in the first execobject slot

Chris Wilson chris at chris-wilson.co.uk
Thu Jul 20 21:06:01 UTC 2017


Quoting Kenneth Graunke (2017-07-19 23:43:04)
> On Wednesday, July 19, 2017 3:09:17 AM PDT Chris Wilson wrote:
> > Even if we are using older kernels that do not accept the batch in the
> > first slot, we can simplify our code by creating the batch with itself
> > in the first slot and moving it to the end on execbuf submission.
> > ---
> >  src/mesa/drivers/dri/i965/intel_batchbuffer.c | 70 ++++++++++++---------------
> >  1 file changed, 31 insertions(+), 39 deletions(-)
> 
> Alternatively, instead of swapping them out, we could simply add_exec_bo the
> batch at the end, and in execbuffer() do:
> 
> if (!use_batch_first) {
>    execbuf.buffers_ptr++;
>    execbuf.buffers_count--;
> }
> 
> to skip over the batchbuffer entry at the beginning.  That seems easier...

Ran into trouble with this because of the deduplication we do for
batch->exec_bos[]. It kept insisting that I had added the batch first...

Doing a swap of first/last validation entry looks more pleasant than the
various hacks I have to skip the deduplication, or add a special case
add_batch_bo().
-Chris


More information about the mesa-dev mailing list