STRUCT DRM_XE_ENGINE_CLASS_INSTANCE(9)
π struct drm_xe_engine_class_instance(9) β Kernel API Manual, bestie edition β¨
okay so picture this: it's a page from the Kernel API Manual and it's literally just describing one engine class instance. tiny struct, big main character energy. let's get into it π«Ά
πΈ NAME πΈ
struct drm_xe_engine_class_instance β an instance of an engine class. that's it, that's the whole vibe β¨
π SYNOPSIS π
no cap, here's the whole thing verbatim, do not come for me about the semicolons:
struct drm_xe_engine_class_instance {
#define DRM_XE_ENGINE_CLASS_RENDER 0;
#define DRM_XE_ENGINE_CLASS_COPY 1;
#define DRM_XE_ENGINE_CLASS_VIDEO_DECODE 2;
#define DRM_XE_ENGINE_CLASS_VIDEO_ENHANCE 3;
#define DRM_XE_ENGINE_CLASS_COMPUTE 4;
#define DRM_XE_ENGINE_CLASS_VM_BIND 5;
__u16 engine_class;
__u16 engine_instance;
__u16 gt_id;
__u16 pad;
};
π Members π
engine_classβ the engine class id π― like, which kind of engine we're talking about.engine_instanceβ the engine instance id. which specific baby of that class πgt_idβ the unique ID of this GT within the PCI Device. iykyk π§padβ MBZ. and yes bestie, MBZ means "must be zero" β don't be quirky with it π
π₯ Description π₯
so the way this struct works: it gets returned as part of struct drm_xe_engine, but it's also used as the input of engine selection for both struct drm_xe_exec_queue_create and struct drm_xe_query_engine_cycles. dual purpose icon behavior, honestly π
the engine_class can be:
DRM_XE_ENGINE_CLASS_RENDERDRM_XE_ENGINE_CLASS_COPYDRM_XE_ENGINE_CLASS_VIDEO_DECODEDRM_XE_ENGINE_CLASS_VIDEO_ENHANCEDRM_XE_ENGINE_CLASS_COMPUTEDRM_XE_ENGINE_CLASS_VM_BINDβ β οΈ these are kernel only classes (not an actual hardware engine class, so don't go looking for it in the silicon π). it's used for creating ordered queues of VM bind operations. periodt.
π SEE ALSO π
gorgeous gorgeous girls read the whole cross-reference list, so here it is in full β the kernel file ./include/uapi/drm/xe_drm.h, then: Xe Device Block Diagram(9), Xe uAPI Overview(9), Xe IOCTL Extensions(9), struct drm_xe_user_extension(9), struct drm_xe_ext_set_property(9), struct drm_xe_engine(9), struct drm_xe_query_engines(9), enum drm_xe_memory_class(9), struct drm_xe_mem_region(9), struct drm_xe_query_mem_regions(9), struct drm_xe_query_config(9), struct drm_xe_gt(9), struct drm_xe_query_gt_list(9), struct drm_xe_query_topology_mask(9), struct drm_xe_query_engine_cycles(9), struct drm_xe_query_uc_fw_version(9), struct drm_xe_query_pxp_status(9), struct drm_xe_device_query(9), struct drm_xe_gem_create(9), struct drm_xe_gem_mmap_offset(9), struct drm_xe_vm_create(9), struct drm_xe_vm_destroy(9), struct drm_xe_vm_bind_op(9), struct drm_xe_vm_bind(9), struct drm_xe_vm_get_property(9), struct drm_xe_exec_queue_create(9), struct drm_xe_exec_queue_destroy(9), struct drm_xe_exec_queue_get_property(9), struct drm_xe_sync(9), struct drm_xe_exec(9), struct drm_xe_wait_user_fence(9), enum drm_xe_observation_type(9), enum drm_xe_observation_op(9), struct drm_xe_observation_param(9), enum drm_xe_observation_ioctls(9), enum drm_xe_oa_unit_type(9), struct drm_xe_oa_unit(9), struct drm_xe_query_oa_units(9), enum drm_xe_oa_format_type(9), enum drm_xe_oa_property_id(9), struct drm_xe_oa_config(9), struct drm_xe_oa_stream_status(9), struct drm_xe_oa_stream_info(9), enum drm_xe_pxp_session_type(9), enum drm_xe_eu_stall_property_id(9), struct drm_xe_query_eu_stall(9), struct drm_xe_madvise(9), struct drm_xe_mem_range_attr(9), struct drm_xe_vm_query_mem_range_attr(9), struct drm_xe_exec_queue_set_property(9), Xe DRM RAS(9), enum drm_xe_ras_error_severity(9), enum drm_xe_ras_error_component(9).
π¦ and that's the whole page, bestie! this one came from ./include/uapi/drm, dated October 2026 β so like, future manpage, very ahead of its time π go read it again if you need to, i'll wait. 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