ENUM DRM_DRIVER_FEATURE(9)
π 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 supportsdrm_syncobjfor explicit synchronization of command submission. Slay that sync. π₯DRIVER_SYNCOBJ_TIMELINEβ Driver supports the timeline flavor ofdrm_syncobjfor explicit synchronization of command submission. Timeline flavor = extra iconic. βDRIVER_COMPUTE_ACCELβ Driver supports compute acceleration devices. This flag is mutually exclusive withDRIVER_RENDERandDRIVER_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, seedrm_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
- 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