/* * Only the parent gets the creation ref put in the uAPI, the parent * itself is responsible for creation ref put on the children.
*/
intel_context_put(ce);
}
staticstruct i915_request *
multi_lrc_nop_request(struct intel_context *ce)
{ struct intel_context *child; struct i915_request *rq, *child_rq; int i = 0;
GEM_BUG_ON(!intel_context_is_parent(ce));
rq = intel_context_create_request(ce); if (IS_ERR(rq)) return rq;
i915_request_get(rq);
i915_request_add(rq);
for_each_child(ce, child) {
child_rq = intel_context_create_request(child); if (IS_ERR(child_rq)) goto child_error;
if (++i == ce->parallel.number_children)
set_bit(I915_FENCE_FLAG_SUBMIT_PARALLEL,
&child_rq->fence.flags);
i915_request_add(child_rq);
}
for (class = 0; class < MAX_ENGINE_CLASS + 1; ++class) { /* We don't support breadcrumb handshake on these classes */ if (class == COMPUTE_CLASS || class == RENDER_CLASS) continue;
ret = __intel_guc_multi_lrc_basic(gt, class); if (ret) return ret;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.