STRUCT I915_GEM_PROTO_ENGINE(9)
π NAME π
struct i915_gem_proto_engine β the prototype engine bestie, aka the blueprint era of an engine β¨
Oh and hey, you found yourself in the struct i915_...proto_engine(9) page of the Kernel API Manual β welcome, pull up a chair π«Ά
πΈ SYNOPSIS πΈ
struct i915_gem_proto_engine {
enum i915_gem_engine_type type;
struct intel_engine_cs *engine;
unsigned int num_siblings;
unsigned int width;
struct intel_engine_cs **siblings;
struct intel_sseu sseu;
};
Look at her. Six fields, zero notes, all main character energy π
π Members π
typeβ literally just the type of this engine, like a little name tag at a party π·οΈengineβ the actual engine field, but only for the physical ones (physical girlies only, iykyk)num_siblingsβ how many balanced or parallel siblings we're talking about π―widthβ the width of each sibling, yes every single one πsiblingsβ the balanced siblings, ornum_siblings * widthwhen you're in parallel mode (math era fr fr)sseuβ the client-set SSEU parameters π«
β¨ Description β¨
Okay so this struct is out here describing an engine that a context may contain. And engines come in four types, no cap:
I915_GEM_ENGINE_TYPE_INVALIDβ invalid engines can absolutely be created, but plot twist: they show up as aNULLini915_gem_engines::engines[i], and the moment a user tries to actually use one, you get-EINVALthrown at you π They're also super useful during proto-context construction, because the client may create invalid engines and then set them up later as virtual engines. Glow-up arc π¦I915_GEM_ENGINE_TYPE_PHYSICALβ a single physical engine, described byi915_gem_proto_engine::engineπI915_GEM_ENGINE_TYPE_BALANCEDβ a load-balanced engine set, described byi915_gem_proto_engine::num_siblingsandi915_gem_proto_engine::siblingsβοΈI915_GEM_ENGINE_TYPE_PARALLELβ a parallel submission engine set, described byi915_gem_proto_engine::width,i915_gem_proto_engine::num_siblings, andi915_gem_proto_engine::siblingsπββοΈπββοΈ
π SEE ALSO π
Go read these next, bestie, they're all in the kernel file ./drivers/gpu/drm/i915/gem/i915_gem_context_types.h:
struct i915_gem_engines(9)struct i915_gem_engines_iter(9)enum i915_gem_engine_type(9)struct i915_gem_proto_context(9)struct i915_gem_context(9)
Sending you off with the receipts π§Ύ β this one lives in./drivers/gpu/drm/i915/gem, dated October 2026, and she's officiallystruct i915_...proto_engine(9). That's the whole vibe check, mwah ππ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms