On Thu, Oct 27, 2016 at 01:03:46AM +0100, Chris Wilson wrote:
>       spin_lock(&engine->execlist_lock);
> -     list_for_each_entry(cursor, &engine->execlist_queue, execlist_link) {
> +     rb = engine->execlist_first;
> +     while (rb) {
> +             struct drm_i915_gem_request *cursor =
> +                     rb_entry(rb, typeof(*cursor), priotree.node);
> +
>               /* Can we combine this request with the current port? It has to
>                * be the same context/ringbuffer and not have any exceptions
>                * (e.g. GVT saying never to combine contexts).
> @@ -501,15 +506,17 @@ static void execlists_dequeue(struct intel_engine_cs 
> *engine)
>                       i915_gem_request_assign(&port->request, last);
>                       port++;
>               }
> +
> +             rb = rb_next(rb);
> +             rb_erase(&cursor->priotree.node, &engine->execlist_queue);
> +             RB_CLEAR_NODE(&cursor->priotree.node);

Whoopsie, forgot to maintain the retirement order of the timeline...
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to