DRM_IOCTL_MODE_CLOSEFB(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME πŸ’…

okay so this is DRM_IOCTL_MODE_CLOSEFB(9), straight from the Kernel API Manual, and the name is literally DRM_IOCTL_MODE_CLOSEFB β€” Close a framebuffer. πŸŽ€ that's the whole assignment, bestie.


✨ SYNOPSIS ✨

DRM_IOCTL_MODE_CLOSEFB

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so DRM_IOCTL_MODE_CLOSEFB closes a framebuffer that was previously added via ADDFB/ADDFB2. The IOCTL argument is a framebuffer object ID. πŸ’…

This IOCTL is similar to DRM_IOCTL_MODE_RMFB, except β€” and this is the key β€” it doesn't disable planes and CRTCs. As long as the framebuffer is used by a plane, it's kept alive. When the plane no longer uses the framebuffer (because the framebuffer is replaced with another one, or the plane is disabled), the framebuffer is cleaned up. no cap. ✨

This is useful to implement flicker-free transitions between two processes. slay for smooth handoffs. πŸ¦‹

⚠️ Depending on the threat model, user-space may want to ensure that the framebuffer doesn't expose any sensitive user information: closed framebuffers attached to a plane can be read back by the next DRM master. so yeah, security vibe check required πŸ’€

🌈 SEE ALSO 🌈

okay the whole reference group chat is here, and yes every single one is invited:

Kernel file ./tools/perf/trace/beauty/include/uapi/drm/drm.h Β· struct drm_gem_close(9), struct drm_gem_flink(9), struct drm_gem_open(9), struct drm_gem_change_handle(9), DRM_CAP_DUMB_BUFFER(9), DRM_CAP_VBLANK_HIGH_CRTC(9), DRM_CAP_DUMB_PREFERRED_DEPTH(9), DRM_CAP_DUMB_PREFER_SHADOW(9), DRM_CAP_PRIME(9), DRM_PRIME_CAP_IMPORT(9), DRM_PRIME_CAP_EXPORT(9), DRM_CAP_TIMESTAMP_MONOTONIC(9), DRM_CAP_ASYNC_PAGE_FLIP(9), DRM_CAP_CURSOR_WIDTH(9), DRM_CAP_CURSOR_HEIGHT(9), DRM_CAP_ADDFB2_MODIFIERS(9), DRM_CAP_PAGE_FLIP_TARGET(9), DRM_CAP_CRTC_IN_VBLANK_EVENT(9), DRM_CAP_SYNCOBJ(9), DRM_CAP_SYNCOBJ_TIMELINE(9), DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP(9), DRM_CLIENT_CAP_STEREO_3D(9), DRM_CLIENT_CAP_UNIVERSAL_PLANES(9), DRM_CLIENT_CAP_ATOMIC(9), DRM_CLIENT_CAP_ASPECT_RATIO(9), DRM_CLIENT_CAP_WRITEBACK_CONNECTORS(9), DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT(9), DRM_CLIENT_CAP_PLANE_COLOR_PIPELINE(9), struct drm_syncobj_eventfd(9), DRM_IOCTL_GEM_CLOSE(9), DRM_IOCTL_PRIME_HANDLE_TO_FD(9), DRM_IOCTL_PRIME_FD_TO_HANDLE(9), DRM_IOCTL_MODE_RMFB(9), DRM_IOCTL_MODE_CREATE_DUMB(9), DRM_IOCTL_MODE_GETFB2(9), DRM_IOCTL_SYNCOBJ_EVENTFD(9), DRM_IOCTL_SET_CLIENT_NAME(9), DRM_IOCTL_GEM_CHANGE_HANDLE(9), struct drm_event(9), DRM_EVENT_VBLANK(9), DRM_EVENT_FLIP_COMPLETE(9), DRM_EVENT_CRTC_SEQUENCE(9)


okay bye bestie 🫢 this page's source/version is ./tools/perf/trace/beauty/incl..., it's dated October 2026, and the manual title is DRM_IOCTL_MODE_CLOSEFB(9). mwah πŸ’‹

πŸ“¦ where this page comes from