The submit-fence adds a weak dependency to the requests, and for the purpose of our FQ_CODEL hinting we do not want to treat as a restriction. This is primarily because clients may treat submit-fences as a bidirectional bonding between a pair of co-ordinating requests. Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Cc: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> --- drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c index 966523a8503f..e8bf0cf02fd7 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c @@ -2565,6 +2565,17 @@ static void retire_requests(struct intel_timeline *tl, struct i915_request *end) break; } +static bool new_client(struct i915_request *rq) +{ + struct i915_dependency *p; + + list_for_each_entry(p, &rq->sched.signalers_list, signal_link) + if (!(p->flags & I915_DEPENDENCY_WEAK)) + return false; + + return true; +} + static void eb_request_add(struct i915_execbuffer *eb) { struct i915_request *rq = eb->request; @@ -2604,7 +2615,7 @@ static void eb_request_add(struct i915_execbuffer *eb) * Allow interactive/synchronous clients to jump ahead of * the bulk clients. (FQ_CODEL) */ - if (list_empty(&rq->sched.signalers_list)) + if (new_client(rq)) attr.priority |= I915_PRIORITY_WAIT; } else { /* Serialise with context_close via the add_to_timeline */ -- 2.20.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx