ENUM DRM_I915_GEM_ENGINE_CLASS(9)
π
enum drm_i915_gem_engine_class (9) β Kernel API Manual
okay so bestie, welcome to the literal glow-up guide for enum drm_i915_gem_engine_class π this is the official uapi engine type enumeration, and yes it's giving "who's who of GPU engines" energy. Every engine in here has a role, and this enum is basically the group chat roster πΈ
β¨ SYNOPSIS β¨
enum drm_i915_gem_engine_class {
I915_ENGINE_CLASS_RENDER ,
I915_ENGINE_CLASS_COPY ,
I915_ENGINE_CLASS_VIDEO ,
I915_ENGINE_CLASS_VIDEO_ENHANCE ,
I915_ENGINE_CLASS_COMPUTE ,
I915_ENGINE_CLASS_INVALID
};
π Constants π
I915_ENGINE_CLASS_RENDERβ the main character π Render engines support instructions used for 3D, Compute (GPGPU), and programmable media workloads. These instructions fetch data and dispatch individual work items to threads that operate in parallel. The threads run small programs (called "kernels" or "shaders") on the GPU's execution units (EUs). literally the multitasking icon of the whole lineup, no cap.I915_ENGINE_CLASS_COPYβ Copy engines (also referred to as "blitters") support instructions that move blocks of data from one location in memory to another, or that fill a specified location of memory with fixed data. Copy engines can perform pre-defined logical or bitwise operations on the source, destination, or pattern data. π¦ they just move stuff and do bit math, and honestly? they ate.I915_ENGINE_CLASS_VIDEOβ Video engines (also referred to as "bit stream decode" (BSD) or "vdbox") support instructions that perform fixed-function media decode and encode. π the vdbox besties, decoding and encoding all day.I915_ENGINE_CLASS_VIDEO_ENHANCEβ Video enhancement engines (also referred to as "vebox") support instructions related to image enhancement. β¨ glow-up engines fr fr, that's the whole vibe.I915_ENGINE_CLASS_COMPUTEβ Compute engines support a subset of the instructions available on render engines: compute engines support Compute (GPGPU) and programmable media workloads, but do not support the 3D pipeline. π§ so like, render's cool younger sibling β all the GPGPU and programmable media, none of the 3D drama.I915_ENGINE_CLASS_INVALIDβ Placeholder value to represent an invalid engine class assignment. π the "nobody's home" option, we don't use this one on purpose, bestie.
π Description π
Different engines serve different roles, and there may be more than one engine serving each role. π«Ά This enum provides a classification of the role of the engine, which may be used when requesting operations to be performed on a certain subset of engines, or for providing information about that group.
So yeah β it's a vibe check for engines. You say "do this on that kind of engine," and the enum is how you name the kind. iconic behaviour honestly.
π₯ SEE ALSO π₯
read these too, iykyk β they're all linked up and they all matter, don't skip a single one π
- 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) - 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) - struct
drm_i915_gem_create_ext_set_pat(9)
that's the whole page bestie, go forth and classify your engines π π
π sign-off π β this came out of ./tools/perf/trace/beauty/incl... and it's dated October 2026, filed under the name enum drm_i91...engine_class(9) (yes the header truncated it, that's just how it renders, don't come for me π). mwah, study hard, slay gently π«Άβ¨
π¦ 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