DRM_CLIENT_...LANE_HOTSPOT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT πŸ’…

okay so this is a page straight out of the Kernel API Manual (that's the Kernel API Manual bit from the header, bestie) and it's about exactly one thing: a client cap called DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT. short name, big feelings. let's get into it 🫢


✨ NAME ✨

DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT β€” that's it. that's the whole name. no subtitle, no little tagline, she's mysterious like that πŸ™ˆ


🌸 SYNOPSIS 🌸

DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT

literally just the cap itself. no args, no return type, no drama. iconic behavior honestly πŸ‘‘


πŸŽ€ DESCRIPTION πŸŽ€

okay so picture this: the drivers for para-virtualized hardware β€” and yes that means vmwgfx, qxl, virtio and virtualbox specifically β€” have extra restrictions when it comes to cursor planes. which means cursor planes on those drivers are not truly universal, periodt. πŸ’€

like, what kind of extra restrictions? they need their cursor planes to act exactly like a mouse cursor and have their hotspot properties set correctly. that's the vibe check they have to pass.

so here's the tea: if this client cap is not set, the DRM core will straight up hide the cursor plane on those virtualized drivers. why? because not setting it implies the client can't deal with those extra restrictions. it's giving "you're not ready for this level of responsibility" 😭

clients that do set the cursor hotspot and treat the cursor plane like a mouse cursor should set this property.

πŸ’… tiny but crucial detail: the client must enable DRM_CLIENT_CAP_ATOMIC first. like, first first. no skipping ahead.

then there's this gem: setting this property on drivers that don't special case cursor planes (i.e. the non-virtualized ones) will return EOPNOTSUPP. which is lowkey useful actually, because userspace can use that to gauge the requirements of the hardware/drivers it's running on. free diagnostics, we love to see it πŸ”₯

and the slayiest part? this capability is always supported for atomic-capable virtualized drivers starting from kernel version 6.6. noted, screenshotted, saved. ⭐


πŸ¦‹ SEE ALSO πŸ¦‹

seriously, she brought the whole friend group. every single one:


and that's the whole page bestie 🧚 go forth, set your hotspot, enable DRM_CLIENT_CAP_ATOMIC first, and don't come crying to me when you get EOPNOTSUPP on a non-virtualized driver because I literally warned you πŸ’–

πŸŽ€ sign-off corner: this gem came from ./tools/perf/trace/beauty/incl... and it's dated October 2026 β€” future-flavored documentation, we stan. also yes the title up top is DRM_CLIENT_...LANE_HOTSPOT(9) because even the header got truncated mid-slay. iykyk πŸ¦‹
πŸ“¦ where this page comes from