Lines Matching defs:fence

21  * "fence registers" but pipeline synchronisation objects ala GL_ARB_sync.
30 * In order to use a fence, the object must track the fence it needs to
34 * complete, or waiting for the last GPU user of a "fence register". The
38 * track the most recent fence request, typically this is done as part of
48 void i915_active_noop(struct dma_fence *fence, struct dma_fence_cb *cb);
53 * @fence: initial fence to track, can be NULL
58 * an activity tracker, that is for tracking the last known active fence
59 * associated with it. When the last fence becomes idle, when it is retired
64 void *fence,
67 RCU_INIT_POINTER(active->fence, fence);
76 struct dma_fence *fence);
79 * i915_active_fence_set - updates the tracker to watch the current fence
91 * i915_active_fence_get - return a reference to the active fence
94 * i915_active_fence_get() returns a reference to the active fence,
103 struct dma_fence *fence;
106 fence = dma_fence_get_rcu_safe(&active->fence);
109 return fence;
117 * assigned to a fence. Due to the lazy retiring, that fence may be idle
123 return rcu_access_pointer(active->fence);
130 * signals a fence upon completion. struct i915_request combines the
131 * command submission, scheduling and fence signaling roles. If we want to see
132 * if a particular task is complete, we need to grab the fence (struct
144 * composite shared-fence, and is updated as new work is submitted to the task,
178 int i915_sw_fence_await_active(struct i915_sw_fence *fence,
223 struct dma_fence *fence;
226 fence = i915_active_fence_get(&active->excl);
227 if (fence) {
228 err = i915_request_await_dma_fence(rq, fence);
229 dma_fence_put(fence);