On Fri, May 26, 2017 at 10:47:18AM -0700, Kenneth Graunke wrote:
> On Friday, May 26, 2017 4:25:20 AM PDT Chris Wilson wrote:
> > Passing the index of the target buffer via the reloc.target_handle is
> > marginally more efficient for the kernel (it can avoid some allocations,
> > and can use a direct lookup rather than a hash or search). It is also
> > useful for ourselves as we can use the index into our exec_bos for other
> > tasks.
> > 
> > Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
> > Cc: Kenneth Graunke <kenn...@whitecape.org>
> > Cc: Jason Ekstrand <jason.ekstr...@intel.com>
> > ---
> >  src/mesa/drivers/dri/i965/intel_batchbuffer.c | 30 
> > ++++++++++++++++++---------
> >  1 file changed, 20 insertions(+), 10 deletions(-)
> 
> I wrote this patch as well, and it turned out to hurt performance by a
> small amount in every CPU-limited benchmark I tried.

If you are end up looking at many relocs, yeah. I've used yet another
array just to store the batch relocs that needed fixing up, but with
BATCH_FIRST it's not required.
 
> I think the extra loop to rewrite -1 to the batch index was enough to
> make it hurt.  That would go away with I915_EXEC_BATCH_FIRST...

With a very small change, it looks like we can apply patch 3 first and
then only apply HANDLE_LUT when we have BATCH_FIRST. I'll play a bit
more, but I was surprised at how close the code was for NO_RELOC and
wanted to share!
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to