ENUM DRM_DRIVER_FEATURE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… enum drm_driver_feature(9) πŸ’…

Kernel API Manual, bestie β€” welcome to the enum drm_driver_feature page. This is literally the feature-flags zone, and it's giving small enum, huge main character energy. πŸŽ€

✨ NAME ✨

enum drm_driver_feature β€” feature flags. Like, the flags that tell the DRM core what a driver can do. periodt. πŸ’–

🧚 SYNOPSIS 🧚

Okay so here's the whole enum, exactly as it sits, no edits, no cuts, iykyk:

enum drm_driver_feature {
    DRIVER_GEM ,
    DRIVER_MODESET ,
    DRIVER_RENDER ,
    DRIVER_ATOMIC ,
    DRIVER_SYNCOBJ ,
    DRIVER_SYNCOBJ_TIMELINE ,
    DRIVER_COMPUTE_ACCEL ,
    DRIVER_CURSOR_HOTSPOT ,
    DRIVER_USE_AGP ,
    DRIVER_LEGACY ,
    DRIVER_PCI_DMA ,
    DRIVER_SG ,
    DRIVER_HAVE_DMA ,
    DRIVER_HAVE_IRQ

};

πŸ’– Constants πŸ’–

Vibe check passed β€” here's every constant, with all the deets: πŸ‘‘

  • DRIVER_GEM β€” Driver uses the GEM memory manager. This should be set for all modern drivers. So yeah, all modern drivers, no cap. πŸ’…
  • DRIVER_MODESET β€” Driver supports mode setting interfaces (KMS). Iconic KMS behavior. ✨
  • DRIVER_RENDER β€” Driver supports dedicated render nodes. See also the :ref:`section on render nodes <drm_render_node>` for details. πŸ¦‹
  • DRIVER_ATOMIC β€” Driver supports the full atomic modesetting userspace API. Drivers which only use atomic internally, but do not support the full userspace API (e.g. not all properties converted to atomic, or multi-plane updates are not guaranteed to be tear-free) should not set this flag. Hard pass if you're not fully in. 🚩
  • DRIVER_SYNCOBJ β€” Driver supports drm_syncobj for explicit synchronization of command submission. Slay that sync. πŸ”₯
  • DRIVER_SYNCOBJ_TIMELINE β€” Driver supports the timeline flavor of drm_syncobj for explicit synchronization of command submission. Timeline flavor = extra iconic. ⭐
  • DRIVER_COMPUTE_ACCEL β€” Driver supports compute acceleration devices. This flag is mutually exclusive with DRIVER_RENDER and DRIVER_MODESET. Devices that support both graphics and compute acceleration should be handled by two drivers that are connected using auxiliary bus. Mutually exclusive means pick a lane, bestie. πŸ’€
  • DRIVER_CURSOR_HOTSPOT β€” Driver supports and requires cursor hotspot information in the cursor plane (e.g. cursor plane has to actually track the mouse cursor and the clients are required to set hotspot in order for the cursor planes to work correctly). Cursor plane has to actually track the mouse cursor, fr fr. πŸ–±οΈ
  • DRIVER_USE_AGP β€” Set up DRM AGP support, see drm_agp_init; the DRM core will manage AGP resources. New drivers don't need this. 🫢
  • DRIVER_LEGACY β€” Denote a legacy driver using shadow attach. Do not use. 🚩
  • DRIVER_PCI_DMA β€” Driver is capable of PCI DMA; mapping of PCI DMA buffers to userspace will be enabled. Only for legacy drivers. Do not use. πŸ’€
  • DRIVER_SG β€” Driver can perform scatter/gather DMA; allocation and mapping of scatter/gather buffers will be enabled. Only for legacy drivers. Do not use. πŸ’€
  • DRIVER_HAVE_DMA β€” Driver supports DMA; the userspace DMA API will be supported. Only for legacy drivers. Do not use. πŸ’€
  • DRIVER_HAVE_IRQ β€” Legacy irq support. Only for legacy drivers. Do not use. πŸ’€

🌸 Description 🌸

See drm_driver.driver_features, drm_device.driver_features and drm_core_check_feature. That's the whole description, bestie β€” short, sweet, and to the point. 🫢

πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./include/drm/drm_drv.h struct drm_driver(9), devm_drm_dev_alloc(9), drm_dev_is_unplugged(9), drm_core_check_all_features(9), drm_core_check_feature(9), drm_drv_uses_atomic_modeset(9). Go read these if you want the full lore. πŸ“š


mwah πŸ’‹ β€” this page's source/version is ./include/drm, dated October 2026, and it's the enum drm_driver_feature(9) manual page. Slay your feature flags, bestie! 🌈✨

πŸ“¦ where this page comes from