drm_atomic_...ommit_planes(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ drm_atomic_helper_commit_planes β€” commit plane state ✨

okay bestie, so you're in the Kernel API Manual and the page is drm_atomic_...ommit_planes(9) β€” yes the title got truncated in the header, it's giving "my name is too long for this terminal" energy πŸ’…. Buckle up, this one's about pushing plane state for real.


🌸 SYNOPSIS 🌸

void drm_atomic_helper_commit_planes (struct drm_device *dev , struct
       drm_atomic_commit *state , uint32_t flags );

πŸŽ€ ARGUMENTS πŸŽ€

  • dev β€” the DRM device, your main character ✨
  • state β€” the atomic state object that's being committed rn
  • flags β€” the flags that control how plane state gets committed

πŸ’– DESCRIPTION πŸ’–

So what this function actually does: it commits the new plane state, using the plane and atomic helper functions for planes and CRTCs. And here's the vibe check β€” it assumes the atomic state has already been pushed into the relevant object state pointers, because at this point this step can no longer fail. No takesies backsies 🫢.

It does still need the global state object state though, to figure out which planes and crtcs actually need updating. iykyk.

Heads up bestie: this function does all plane updates across all CRTCs in one single step. If your hardware can't support that approach, go look at drm_atomic_helper_commit_planes_on_crtc instead πŸ‘€.

Plane parameters can be updated by applications while the associated CRTC is disabled. The DRM/KMS core stores those parameters in the plane state, and they'll be available to the driver when the CRTC gets turned on. So as a result, most drivers don't need to be immediately notified of plane updates for a disabled CRTC β€” lowkey convenient tbh 🌈.

Unless you otherwise need it, drivers are advised to set the ACTIVE_ONLY flag in flags, so they don't receive plane update notifications related to a disabled CRTC. Why? Because this avoids having to manually ignore plane updates in driver code when the driver and/or hardware can't β€” or just plain don't need to β€” deal with updates on disabled CRTCs. Example: when supporting runtime PM. Saves you so much pain, fr fr 😭.

Drivers may set the NO_DISABLE_AFTER_MODESET flag in flags if the relevant display controllers require a CRTC's planes to be disabled when the CRTC is disabled. This function would then skip the drm_plane_helper_funcs.atomic_disable call for a plane if the CRTC of the old plane state needs a modesetting operation. And of course β€” of course β€” the drivers need to disable the planes in their CRTC disable callbacks, because no one else would do that πŸ’€. That's on you, babe.

⭐ One more: the drm_atomic_helper_commit default implementation does not set the ACTIVE_ONLY flag, so it most closely matches the behaviour of the legacy helpers. Do not copy that blindly by drivers. Not everything is a slay worth imitating, ok? πŸ™ˆ

πŸ¦‹ SEE ALSO πŸ¦‹

The whole friend group πŸ’œ β€” start with the overview of the kernel file ./drivers/gpu/drm/drm_atomic_helper.c:


okay that's the whole page, mwah πŸ’‹ this one comes from ./drivers/gpu/drm, dated October 2026, and the page answers to drm_atomic_...ommit_planes(9) (yes, still truncated, she refuses to be perceived in full ✨). go commit some planes bestie, you've got this πŸ‘‘πŸ’–

πŸ“¦ where this page comes from