ENUM DRM_XE_MEMORY_CLASS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

enum drm_xe_memory_class β€” the memory classes that are supported, bestie πŸ’… (this is from the Kernel API Manual, so you know it's official ✨)


πŸ¦‹ SYNOPSIS πŸ¦‹

enum drm_xe_memory_class {
    DRM_XE_MEM_REGION_CLASS_SYSMEM ,
    DRM_XE_MEM_REGION_CLASS_VRAM

};

Like, that's the whole shape of it β€” two constants and a dream 🌸


πŸŽ€ Constants πŸŽ€

Okay so these are the two vibes a memory region can have, and honestly? Both iconic πŸ‘‘

  • DRM_XE_MEM_REGION_CLASS_SYSMEM β€” this one represents system memory. The classic. The OG. It's giving "the memory your whole system shares" πŸ’«
  • DRM_XE_MEM_REGION_CLASS_VRAM β€” on discrete platforms, this represents the memory that is local to the device, which we call VRAM. So like, the GPU's own private stash 🫢
⚠️ Real talk though: DRM_XE_MEM_REGION_CLASS_VRAM is not valid on integrated platforms. Not valid, bestie β€” don't come for her on an iGPU, she will not be there 😭

🌈 SEE ALSO 🌈

So many cross-refs, and every single one of them matters, no skips πŸ’œ

  • Kernel file ./include/uapi/drm/xe_drm.h
  • 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_class_instance(9)
  • struct drm_xe_engine(9)
  • struct drm_xe_query_engines(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 β€” go read the source, ily πŸ’–

This lil masterpiece lives in ./include/uapi/drm, dated October 2026 β€” catch you in the next release, mwah πŸŽ€βœ¨πŸ¦‹

πŸ“¦ where this page comes from