DRM_MODE_AT...LLOW_MODESET(9)
π¦ DRM_MODE_AT...LLOW_MODESET(9) π¦
okay so bestie, this is a page straight out of the Kernel API Manual β we're in kernel-docs territory now, and honestly? this one's a baddie. it's a flag constant from ./include/uapi/drm, dated October 2026 if you can believe it. let's get into it π
β¨ NAME β¨
DRM_MODE_ATOMIC_ALLOW_MODESET β that's it, that's the whole name section. no cute little one-liner description, the kernel left that part blank like a text message that just says "k." iconic of it actually π
πΈ SYNOPSIS πΈ
DRM_MODE_ATOMIC_ALLOW_MODESET
just the flag itself, standing there looking pretty. no arguments, no parameters, she's self-sufficient β¨
π DESCRIPTION π
okay so here's the tea π΅ β this flag lets an update result in temporary or transient visible artifacts while the update is being applied. yes, VISIBLE ones. on your actual screen. lowkey scary, but hear me out:
- applying the update may also take significantly more time than a page flip (so like, don't hold your breath, bestie π«Ά)
- but all visual artifacts will disappear by the time the update is completed β and that completion moment is signalled through the vblank event's timestamp (see
struct drm_event_vblank). so she cleans up after herself, we love a responsible queen π
this flag must be set when the KMS update might cause visible artifacts. periodt. without this flag, such a KMS update will return an EINVAL error π like, it just won't even try.
so what kind of update may cause visible artifacts, you ask? honestly bestie, that depends on the driver and the hardware β it's giving "it depends," the most frustrating answer ever, i know π
here's the hack though: user-space that needs to know beforehand if an update might cause visible artifacts can use DRM_MODE_ATOMIC_TEST_ONLY without DRM_MODE_ATOMIC_ALLOW_MODESET to see if it fails. it's basically a vibe check for your modeset π₯ test it first, then commit. iykyk.
π caveat time: to the best of the driver's knowledge, visual artifacts are guaranteed to not appear when this flag is not set. but β and this is the important but β some sinks might display visual artifacts outside of the driver's control. so like, your monitor could be doing its own thing and the driver can't do anything about it. not her fault, no cap π
π SEE ALSO π
the whole extended friend group π β kernel file ./include/uapi/drm/drm_mode.h and the whole crew:
- overview(9)
struct drm_mode_modeinfo(9)struct drm_mode_get_plane(9)struct drm_mode_get_connector(9)struct drm_mode_property_enum(9)struct drm_mode_get_property(9)struct drm_mode_fb_cmd2(9)enum drm_colorop_type(9)enum drm_colorop_lut3d_interpolation_type(9)enum drm_colorop_lut1d_interpolation_type(9)struct drm_plane_size_hint(9)struct hdr_metadata_infoframe(9)struct hdr_output_metadata(9)DRM_MODE_PAGE_FLIP_EVENT(9)DRM_MODE_PAGE_FLIP_ASYNC(9)DRM_MODE_PAGE_FLIP_FLAGS(9)struct drm_mode_create_dumb(9)DRM_MODE_ATOMIC_TEST_ONLY(9)DRM_MODE_ATOMIC_NONBLOCK(9)DRM_MODE_ATOMIC_FLAGS(9)struct drm_mode_create_blob(9)struct drm_mode_destroy_blob(9)struct drm_mode_create_lease(9)struct drm_mode_list_lessees(9)struct drm_mode_get_lease(9)struct drm_mode_revoke_lease(9)struct drm_mode_rect(9)struct drm_mode_closefb(9)
and that's the whole page, bestie π«Ά go forth and set your flags responsibly!
sign-off vibes: this lil masterpiece lives in ./include/uapi/drm and it's stamped October 2026 π may your artifacts be transient and your vblank timestamps be accurate β¨
π¦ 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