STRUCT DRM_I915_GEM_CREATE_EXT_SET_PAT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

hiii bestie 🫢 welcome to the struct drm_i..._ext_set_pat(9) entry in the Kernel API Manual. okay so this page is all about the struct drm_i915_gem_create_ext_set_pat extension, and it's genuinely giving useful kernel details. let's go πŸ’…

πŸ’– NAME πŸ’–

struct drm_i915_gem_create_ext_set_pat β€” the I915_GEM_CREATE_EXT_SET_PAT extension. that's the name, periodt ✨

🌸 SYNOPSIS 🌸

here's the struct shape, exactly:

       struct drm_i915_gem_create_ext_set_pat {
           struct i915_user_extension base;
           __u32 pat_index;
           __u32 rsvd;
        };

🧚 Members 🧚

  • base β€” extension link. see struct i915_user_extension.
  • pat_index β€” PAT index to be set. PAT index is a bit field in Page Table Entry to control caching behaviors for GPU accesses. the definition of PAT index is platform dependent and can be found in hardware specifications,
  • rsvd β€” reserved for future use. don't touch, bestie πŸ™ˆ

πŸ¦‹ Description πŸ¦‹

if this extension is provided, the specified caching policy (PAT index) is applied to the buffer object. no cap πŸ’…

below is an example on how to create an object with specific caching policy:

            struct drm_i915_gem_create_ext_set_pat set_pat_ext = {
                    .base = { .name = I915_GEM_CREATE_EXT_SET_PAT },
                    .pat_index = 0,
            };
            struct drm_i915_gem_create_ext create_ext = {
                    .size = PAGE_SIZE,
                    .extensions = (uintptr_t)set_pat_ext,
            };

            int err = ioctl(fd, DRM_IOCTL_I915_GEM_CREATE_EXT, create_ext);
            if (err) ...

πŸ‘‘ SEE ALSO πŸ‘‘

okay bestie, here's the whole friend group β€” every single SEE ALSO reference, no skips:

  • 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_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)

mwah πŸ’‹ β€” source/version ./tools/perf/trace/beauty/incl..., dated October 2026, from the struct drm_i..._ext_set_pat(9) manual. byeeee 🫢

πŸ“¦ where this page comes from