On Tue, Feb 28, 2017 at 3:04 PM, Chris Wilson <ch...@chris-wilson.co.uk>
wrote:

> On Tue, Feb 28, 2017 at 08:56:45AM -0800, Jason Ekstrand wrote:
> > +   if (handleTypes == 0) {
> > +      /* The DRM execbuffer ioctl always execute in-oder, even between
> > +       * different rings. As such, a dummy no-op semaphore is a
> perfectly
> > +       * valid implementation.
>
> That's not quite true. Each engine is its own timeline within the context.
> Every execbuf on a particular ring is executed in submission order.
> Between rings, order is based on dependencies - batches that only share
> read access to the same buffers (or nothing shared) will be executed in
> parallel, but any writes impose a strong ordering between the engines.
> (That being the basis of TYPE_BO.)
>
> I don't think it affects anv since there is only a single render queue,
> but I think the explanation of TYPE_DUMMY needs a little more fleshing
> out to avoid leaving a trap behind.
>

You're correct.  Thanks for pointing that out.  I'll fix the comment to not
say stupid things about different rings.


> -Chris
>
> > +       */
> > +      semaphore->permanent.type = ANV_SEMAPHORE_TYPE_DUMMY;
>
> --
> 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