DRM_MODE_PAGE_FLIP_ASYNC(9)
π DRM_MODE_PAGE_FLIP_ASYNC(9) π
okay so this is a page from the Kernel API Manual bestie, and it's about one very specific little flag. it's a whole vibe. let's get into it β¨
πΈ NAME πΈ
DRM_MODE_PAGE_FLIP_ASYNC β that's it, that's the name, the original literally leaves the description blank so we're just gonna say hi to it π«Ά
π SYNOPSIS π
DRM_MODE_PAGE_FLIP_ASYNC
π DESCRIPTION π
okay so the entire point of this flag: you're asking that the page-flip gets done as soon as possible, like, no delay from waiting around for vblank. she does not wait. she does not queue politely. she goes.
the tradeoff? this may cause tearing to be visible on the screen. yes literally visible tearing, that's the cost of doing business π that's the whole deal, you get speed and you get a screen that looks like it got snagged on something. iconic but at what cost.
when you use it with the atomic uAPI, the driver will return an error if the hardware doesn't support performing an asynchronous page-flip for this update. so like, hardware said no π. user-space should handle this, e.g. by falling back to a regular page-flip. it's giving "have a backup plan bestie."
β¨ heads up: some hardware might need to perform one last synchronous page-flip before being able to switch to asynchronous page-flips. as an exception, the driver will return success even though that first page-flip is not asynchronous. so don't be confused when it says it worked and it wasn't async yet β that's the warm-up lap, she's getting ready π₯
π¦ SEE ALSO π¦
the whole friend group, no cap:
./include/uapi/drm/drm_mode.h 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_FLAGS(9)struct drm_mode_create_dumb(9)DRM_MODE_ATOMIC_TEST_ONLY(9)DRM_MODE_ATOMIC_NONBLOCK(9)DRM_MODE_ATOMIC_ALLOW_MODESET(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)
mwah π that's the page. she lives in ./include/uapi/drm, she's dated October 2026, and honestly? she ate. go flip some pages async, bestie, and don't come crying to me about the tearing ππ
π¦ 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