STRUCT I915_ENGINE_CLASS_INSTANCE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct i915_engine_class_instance β€” Kernel API Manual ✨

okay bestie, so this whole page is literally about struct i915_engine_class_instance, the little glow-up struct that names an engine. yes, that's the whole vibe. it lives in the Kernel API Manual and it's giving "small but crucial" energy πŸŽ€


🌸 NAME 🌸

struct i915_engine_class_instance β€” Engine class/instance identifier. that's it, that's the name, and honestly? iconic.


✨ SYNOPSIS ✨

here's the struct in all its glory, copy it exactly, no editing bestie:

struct i915_engine_class_instance {
    __u16 engine_class;
  #define I915_ENGINE_CLASS_INVALID_NONE -1;
  #define I915_ENGINE_CLASS_INVALID_VIRTUAL -2;
    __u16 engine_instance;
 };

πŸ’– Members πŸ’–

  • engine_class β€” the Engine class, pulled straight from enum drm_i915_gem_engine_class. this is the category, the ~aesthetic~ of the engine πŸ¦‹
  • engine_instance β€” the Engine instance. like which specific one in that class, you know? the number that says "this one, not that one" πŸ’…

🌈 Description 🌈

okay so picture this: there can be more than one engine doing any given job in the system β€” not just one lonely little guy, no ma'am, multiple. 😭

each engine of a class gets its own unique instance number, and that means any engine out there can be fully spelled out by its class:instance tuplet. cute, right? that's the whole naming scheme πŸŽ€

so any APIs that let you reach any engine in the system use struct i915_engine_class_instance for that identification. it's the ID card. the main character energy of engine identity fr fr ✨


🫢 SEE ALSO 🫢

the whole friend group, no one left behind:

  • the Kernel file ./tools/perf/trace/beauty/include/uapi/drm/i915_drm.h πŸ‘‘
  • uevents generated by i915 on its device node(9)
  • struct i915_user_extension(9)
  • enum drm_i915_gem_engine_class(9)
  • perf_events exposed by i915 through /sys/bus/event_sources/drivers/i915(9)
  • struct drm_i915_getparam(9)
  • drm_i915_getparam_t(9)
  • struct drm_i915_gem_mmap_offset(9)
  • struct drm_i915_gem_set_domain(9)
  • struct drm_i915_gem_exec_fence(9)
  • struct drm_i915_gem_execbuffer_ext_timeline_fences(9)
  • struct drm_i915_gem_execbuffer2(9)
  • struct drm_i915_gem_caching(9)
  • struct drm_i915_gem_context_create_ext(9)
  • struct drm_i915_gem_context_param(9)
  • Virtual Engine uAPI(9)
  • struct i915_context_engines_parallel_submit(9)
  • Context Engine Map uAPI(9)
  • struct drm_i915_gem_context_create_ext_setparam(9)
  • struct drm_i915_gem_vm_control(9)
  • struct drm_i915_gem_userptr(9)
  • struct drm_i915_perf_oa_config(9)
  • struct drm_i915_query_item(9)
  • struct drm_i915_query(9)
  • struct drm_i915_query_topology_info(9)
  • Engine Discovery uAPI(9)
  • struct drm_i915_engine_info(9)
  • struct drm_i915_query_engine_info(9)
  • struct drm_i915_query_perf_config(9)
  • enum drm_i915_gem_memory_class(9)
  • struct drm_i915_gem_memory_class_instance(9)
  • struct drm_i915_memory_region_info(9)
  • struct drm_i915_query_memory_regions(9)
  • struct drm_i915_query_guc_submission_version(9)
  • GuC HWCONFIG blob uAPI(9)
  • struct drm_i915_gem_create_ext(9)
  • struct drm_i915_gem_create_ext_memory_regions(9)
  • struct drm_i915_gem_create_ext_protected_content(9)
  • struct drm_i915_gem_create_ext_set_pat(9)

that's the whole page, bestie, you ate that πŸ’…βœ¨ sourced from ./tools/perf/trace/beauty/incl..., dated October 2026, and it's still out here being struct i915...ass_instance(9) β€” slay πŸ‘‘πŸ’–

πŸ“¦ where this page comes from