[Intel-gfx] [PATCH 2/2] drm/i915: add syncobj timeline support
Chris Wilson
chris at chris-wilson.co.uk
Thu May 23 13:59:42 UTC 2019
Quoting Lionel Landwerlin (2019-05-23 14:46:42)
> On 23/05/2019 12:52, Chris Wilson wrote:
> > Quoting Lionel Landwerlin (2019-05-23 12:46:20)
> >> - syncobj = drm_syncobj_find(file, fence.handle);
> >> - if (!syncobj) {
> >> - DRM_DEBUG("Invalid syncobj handle provided\n");
> >> - err = -ENOENT;
> >> - goto err;
> >> + if (user_fence.flags & __I915_EXEC_FENCE_UNKNOWN_FLAGS) {
> >> + err = -EINVAL;
> >> + goto err;
> >> + }
> >> +
> >> + if (user_fence.flags & I915_EXEC_FENCE_WAIT) {
> >> + err = drm_syncobj_find_fence(
> >> + file, user_fence.handle, user_fence.value,
> >> + DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT,
> >> + &syncobj, &fence);
> > Is this still a synchronous wait? That would be an unfortunate change in
> > behaviour and antithesis to having a scheduler.
> > -Chris
> >
> Not sure what you mean by synchronous wait.
drm_syncobj_find_fence() has an open-coded wait_event loop. That is
synchronous and inconsistent with using a scheduler; where one only need
to return a proxy fence that will be populated when the syncpt is known,
and be signaled as a result of that syncpt.
-Chris
More information about the Intel-gfx
mailing list