DRM_IOCTL_MODE_CREATE_DUMB(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ NAME πŸŽ€

okay so bestie, welcome to the Kernel API Manual ✨ β€” this page is all about DRM_IOCTL_MODE_CREATE_DUMB, and what it does is literally create a new dumb buffer object. that's the whole thing. that's the assignment. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

DRM_IOCTL_MODE_CREATE_DUMB

πŸ’– DESCRIPTION πŸ’–

so. KMS dumb buffers are a very primitive way to allocate a buffer object that's suitable for scanout, and then map it for software rendering. that's the vibe β€” primitive, but it works 🫢

the big caveats, no cap: KMS dumb buffers are not suitable for hardware-accelerated rendering, and they are not suitable for video decoding. also they are not suitable to be displayed on any other device than the KMS device where they were allocated from. so like. stay in your lane, buffer 😭

also see :ref:kms_dumb_buffer_objects`` if you want the reference-y version of this ✨

the IOCTL argument is a struct drm_mode_create_dumb. that's the thing you hand over. πŸ‘‘

user-space is expected to create a KMS dumb buffer via this IOCTL, then add it as a KMS framebuffer via DRM_IOCTL_MODE_ADDFB, and map it via DRM_IOCTL_MODE_MAP_DUMB. three steps, in that exact order, bestie β€” don't skip around 🌸

DRM_CAP_DUMB_BUFFER is the little flag that indicates whether this IOCTL is supported at all. and DRM_CAP_DUMB_PREFERRED_DEPTH and DRM_CAP_DUMB_PREFER_SHADOW indicate driver preferences for dumb buffers. so check those before you commit, iykyk πŸ’…


🌈 SEE ALSO 🌈

the full squad, in order, zero skips:


and that's the page, bestie 🧚✨ source/version is ./tools/perf/trace/beauty/incl... and it's dated October 2026 β€” go off, documentation, you absolute icon πŸ‘‘πŸ’œπŸ“

πŸ“¦ where this page comes from