Lines Matching defs:timeline
128 struct anv_timeline *timeline,
131 timeline->highest_past =
132 timeline->highest_pending = initial_value;
133 list_inithead(&timeline->points);
134 list_inithead(&timeline->free_points);
141 struct anv_timeline *timeline)
144 &timeline->free_points, link) {
150 &timeline->points, link) {
159 struct anv_timeline *timeline,
165 if (list_is_empty(&timeline->free_points)) {
172 result = anv_device_alloc_bo(device, "timeline-semaphore", 4096,
181 *point = list_first_entry(&timeline->free_points,
188 list_addtail(&(*point)->link, &timeline->points);
196 struct anv_timeline *timeline)
199 &timeline->points, link) {
200 /* timeline->higest_pending is only incremented once submission has
204 if (point->serial > timeline->highest_pending)
230 assert(timeline->highest_past < point->serial);
231 timeline->highest_past = point->serial;
234 list_add(&point->link, &timeline->free_points);
252 struct anv_timeline *timeline = submit->wait_timelines[i];
255 if (timeline->highest_past >= wait_value)
258 list_for_each_entry(struct anv_timeline_point, point, &timeline->points, link) {
268 struct anv_timeline *timeline = submit->signal_timelines[i];
272 result = anv_timeline_add_point_locked(queue->device, timeline,
285 /* Update the pending values in the timeline objects. */
287 struct anv_timeline *timeline = submit->signal_timelines[i];
290 assert(signal_value > timeline->highest_pending);
291 timeline->highest_pending = signal_value;
298 struct anv_timeline *timeline = submit->signal_timelines[i];
301 assert(signal_value > timeline->highest_pending);
302 timeline->highest_past = timeline->highest_pending = signal_value;
384 /* Wait for timeline points to materialize before submitting. We need
400 result = anv_queue_set_lost(queue, "timeline timeout: %s",
649 struct anv_timeline *timeline,
675 submit->wait_timelines[submit->wait_timeline_count] = timeline;
686 struct anv_timeline *timeline,
689 assert(timeline->highest_pending < value);
714 submit->signal_timelines[submit->signal_timeline_count] = timeline;
847 * wait-before-submit behavior required for timeline semaphores, we need to
967 /* BO backed timeline semaphores cannot be temporary. */
1043 &impl->timeline,
1112 &impl->timeline,
2213 anv_timeline_init(device, &impl->timeline, initial_value);
2300 anv_timeline_finish(device, &impl->timeline);
2408 * binary & timeline semaphores and we have no way to differenciate
2548 anv_timeline_gc_locked(device, &impl->timeline);
2549 *pValue = impl->timeline.highest_past;
2558 return anv_device_set_lost(device, "unable to query timeline syncobj");
2570 struct anv_timeline *timeline,
2573 /* Wait on the queue_submit condition variable until the timeline has a
2576 while (timeline->highest_pending < serial) {
2586 timeline->highest_pending < serial)
2591 VkResult result = anv_timeline_gc_locked(device, timeline);
2595 if (timeline->highest_past >= serial)
2600 list_first_entry(&timeline->points,
2714 timelines[handle_count] = &impl->timeline;
2731 anv_device_set_lost(device, "unable to wait on timeline syncobj");
2760 VkResult result = anv_timeline_gc_locked(device, &impl->timeline);
2762 assert(pSignalInfo->value > impl->timeline.highest_pending);
2764 impl->timeline.highest_pending = impl->timeline.highest_past = pSignalInfo->value;
2785 anv_device_set_lost(device, "unable to signal timeline syncobj");