On Tue, Feb 28, 2017 at 3:04 PM, Chris Wilson <[email protected]>
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
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev