Lines Matching defs:batch
88 * Add a sync-point to the batch, with the given flags.
93 crocus_batch_add_syncobj(struct crocus_batch *batch,
97 util_dynarray_grow(&batch->exec_fences, struct drm_i915_gem_exec_fence, 1);
105 util_dynarray_grow(&batch->syncobjs, struct crocus_syncobj *, 1);
108 crocus_syncobj_reference(batch->screen, store, syncobj);
112 * Walk through a batch's dependencies (any I915_EXEC_FENCE_WAIT syncobjs)
115 * Sometimes the compute batch is seldom used, and accumulates references
120 clear_stale_syncobjs(struct crocus_batch *batch)
122 struct crocus_screen *screen = batch->screen;
124 int n = util_dynarray_num_elements(&batch->syncobjs, struct crocus_syncobj *);
126 assert(n == util_dynarray_num_elements(&batch->exec_fences,
132 util_dynarray_element(&batch->syncobjs, struct crocus_syncobj *, i);
134 util_dynarray_element(&batch->exec_fences,
148 util_dynarray_pop_ptr(&batch->syncobjs, struct crocus_syncobj *);
150 util_dynarray_pop_ptr(&batch->exec_fences,
236 struct crocus_batch *batch = &ice->batches[b];
238 if (deferred && crocus_batch_bytes_used(batch) > 0) {
240 crocus_fine_fence_new(batch, CROCUS_FENCE_BOTTOM_OF_PIPE);
244 /* This batch has no commands queued up (perhaps we just flushed,
245 * or all the commands are on the other batch). Wait for the last
248 if (crocus_fine_fence_signaled(batch->last_fence))
252 batch->last_fence);
276 struct crocus_batch *batch = &ice->batches[b];
278 /* We're going to make any future work in this batch wait for our
280 * need to wait. Flush the batch now, so it can happen sooner.
282 crocus_batch_flush(batch);
285 clear_stale_syncobjs(batch);
287 crocus_batch_add_syncobj(batch, fine->syncobj, I915_EXEC_FENCE_WAIT);
327 * flushed yet. Check if our syncobj is the current batch's signalling