Am 12.05.2017 um 10:49 schrieb Chris Wilson:
On Fri, May 12, 2017 at 10:34:54AM +1000, Dave Airlie wrote:
+static int drm_syncobj_wait_all_fences(struct drm_device *dev,
+                                      struct drm_file *file_private,
+                                      struct drm_syncobj_wait *wait,
+                                      uint32_t *handles)
+{
+       uint32_t i;
+       int ret = 0;
+       unsigned long timeout = nsecs_to_jiffies(wait->timeout_ns);
+
+       for (i = 0; i < wait->count_handles; i++) {
+               struct dma_fence *fence;
+
+               ret = drm_syncobj_fence_get(file_private, handles[i],
+                                           &fence);
+               if (ret)
+                       return ret;
+
+               if (!fence)
+                       continue;
+
+               ret = dma_fence_wait_timeout(fence, true, timeout);
Doesn't handle -EINTR yet with timeout. If having a drmIoctl() that
can't be tricked into turning a short waiting into an indefinite one is a
goal.

Yeah, Daniel summarized that once nicely by noting that timeouts should be absolute not relative.

Christian.

-Chris


_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to