drm_atomic_..._fake_vblank(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ drm_atomic_..._fake_vblank(9) ✨

okay bestie so you've wandered into the Kernel API Manual πŸ’– β€” this is the page for drm_atomic_..._fake_vblank(9) and honestly it's a little niche but it's giving "unsung hero of the display pipeline" energy, so let's get into it 🫢


🌸 NAME 🌸

drm_atomic_helper_fake_vblank β€” fake VBLANK events if needed πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

void drm_atomic_helper_fake_vblank (struct drm_atomic_commit *state );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • state β€” the atomic state object being committed ✨ like, this is the thing you're pushing through, bestie.

πŸ‘‘ DESCRIPTION πŸ‘‘

so here's the tea β˜•: this function walks all the CRTCs and fakes VBLANK events on the ones where drm_crtc_state.no_vblank is set to true and drm_crtc_state.event != NULL. Both conditions, no shortcuts, periodt πŸ’…

The primary use of this function is writeback connectors working in oneshot mode and faking VBLANK events. In that case, they only fake the VBLANK event when a job is queued πŸ”₯ and β€” this is the important bit β€” any change to the pipeline that does not touch the connector is leading to timeouts when calling drm_atomic_helper_wait_for_vblanks or drm_atomic_helper_wait_for_flip_done 😭 like, the wait just sits there, main character waiting forever, nobody's coming.

In addition to writeback connectors, this function can also fake VBLANK events for CRTCs without VBLANK interrupt ✨ (yes, those exist, and yes, they also deserve love).

ngl this whole thing is part of the atomic helper support for nonblocking commits β€” go peek at drm_atomic_helper_setup_commit for the overview, iykyk 🧚

πŸ’œ SEE ALSO πŸ’œ

okay this list is long but every single one is here, don't come for me πŸ’€


and that's the whole page bestie, you ate that reading it 🌈✨

sign-off vibes: this one lives in ./drivers/gpu/drm, dated October 2026, and its whole identity is drm_atomic_..._fake_vblank(9) β€” slay πŸ’…πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from