STRUCT DRM_I915_GEM_CONTEXT_CREATE_EXT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct drm_i915_gem_context_create_ext β€” NAME πŸ’…

okay so bestie, welcome to the Kernel API Manual, section 9 β€” this is the page for struct drm_i915_gem_context_create_ext, which is, like, the structure for creating contexts. that's it, that's the name section, she's short and she knows it πŸŽ€


✨ SYNOPSIS ✨

here's the whole struct, bestie β€” do not let me catch you retyping this by hand, copy it verbatim or the vibes will be off:

struct drm_i915_gem_context_create_ext {
    __u32 ctx_id;
    __u32 flags;
  #define I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS        (1u << 0);
  #define I915_CONTEXT_CREATE_FLAGS_SINGLE_TIMELINE       (1u << 1);
  #define I915_CONTEXT_CREATE_FLAGS_UNKNOWN
(-(I915_CONTEXT_CREATE_FLAGS_SINGLE_TIMELINE << 1));
    __u64 extensions;
  #define I915_CONTEXT_CREATE_EXT_SETPARAM 0;
  #define I915_CONTEXT_CREATE_EXT_CLONE 1;
 };

the way those #defines are just vibing in the middle of a struct definition? iconic. slightly unhinged. we love her πŸ’œ


🌸 Members 🌸

πŸ¦‹ ctx_id

the id of the created context β€” and heads up, this one's an output, so it's the function handing you the answer, not you telling it what to do 🫢

πŸ¦‹ flags

the supported flags, bestie, and there are exactly these:

⭐ I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS:

this is the "yes please, I want extras" flag. extensions may be appended to this structure, and the driver must check for those. see extensions below, iykyk πŸ‘‘

⭐ I915_CONTEXT_CREATE_FLAGS_SINGLE_TIMELINE

short and sweet: a created context that gets this flag will have a single timeline. that's the whole thing. periodt ✨

πŸ¦‹ extensions

a zero-terminated chain of extensions β€” zero-terminated is doing so much heavy lifting here, ngl, don't forget the terminator or she will keep walking 😭

πŸ’€ I915_CONTEXT_CREATE_EXT_SETPARAM:

a context parameter you get to set or query during context creation. go look at struct drm_i915_gem_context_create_ext_setparam for the details, she's got the full tea πŸ“

πŸ’€ I915_CONTEXT_CREATE_EXT_CLONE:

⚠️ bestie. this extension has been REMOVED. but on the off chance someone somewhere has attempted to use it β€” never re-use this extension number. no cap. that number is retired, it's a museum piece, leave it alone πŸ™ˆ

🧚 SEE ALSO 🧚

okay this list is long and honestly? it ate. here's every single one, all accounted for, none skipped, we don't do that here πŸ’–

  • 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)
  • struct i915_engine_class_instance(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_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)

like I said. every single one 🌈


okay that's the whole page, you're officially context-create-ext literate, I'm so proud πŸ₯Ή this came from the source/version line ./tools/perf/trace/beauty/incl..., dated October 2026 β€” and the header/footer both say struct drm_i...t_create_ext(9) but you already knew that πŸ’… mwah, go write some contexts bestie πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from