drm_atomic_print_new_state(9)
π drm_atomic_print_new_state(9) β like, the Kernel API Manual bestie β¨
okay so picture this: you're deep in the DRM atomic guts at 2am, and you just want to see what the state actually looks like. enter this little icon, straight out of the Kernel API Manual. no cap, it's giving debugging main character energy π
πΈ NAME πΈ
drm_atomic_print_new_state β prints drm atomic state π (yes, that's literally the whole job, and she does it beautifully)
β¨ SYNOPSIS β¨
void drm_atomic_print_new_state (const struct drm_atomic_commit *state ,
struct drm_printer *p );
π«Ά ARGUMENTS π«Ά
stateβ the atomic configuration to check π like, the whole snapshot of atomic vibes you're inspectingpβ the drm printer π this is the thing that actually does the printing, she's the messenger
π DESCRIPTION π
so this function prints the drm atomic state snapshot using the drm printer that gets passed into it. that's it, that's the vibe. the snapshot is genuinely useful for debugging purposes β think of it as a little screenshot of your atomic state, but for nerds π¦
β οΈ ok important heads-up bestie: this function looks into the new state objects. which means it is not safe to be used after the call to drm_atomic_helper_commit_hw_done. like, do not do that. the state objects have moved on and you'll be poking at ghosts π seriously, respect the lifetime.
π SEE ALSO π
the kernel file ./drivers/gpu/drm/drm_atomic.c is where the magic lives, and here's the whole crew she runs with β go say hi to all of them, fr fr:
state lifetime(9)drm_crtc_commit_wait(9)drm_atomic_commit_default_release(9)drm_atomic_commit_init(9)drm_atomic_commit_alloc(9)drm_atomic_commit_default_clear(9)drm_atomic_commit_clear(9)__drm_atomic_commit_free(9)drm_atomic_get_crtc_state(9)drm_atomic_get_plane_state(9)drm_atomic_get_colorop_state(9)drm_atomic_get_old_colorop_state(9)drm_atomic_get_new_colorop_state(9)drm_atomic_plane_check(9)handling driver private state(9)drm_atomic_private_obj_init(9)drm_atomic_private_obj_fini(9)drm_atomic_get_private_obj_state(9)drm_atomic_get_old_private_obj_state(9)drm_atomic_get_new_private_obj_state(9)drm_atomic_get_old_connector_for_encoder(9)drm_atomic_get_new_connector_for_encoder(9)drm_atomic_get_connector_for_encoder(9)drm_atomic_get_old_crtc_for_encoder(9)drm_atomic_get_new_crtc_for_encoder(9)drm_atomic_get_connector_state(9)drm_atomic_get_bridge_state(9)drm_atomic_get_old_bridge_state(9)drm_atomic_get_new_bridge_state(9)drm_atomic_add_encoder_bridges(9)drm_atomic_add_affected_connectors(9)drm_atomic_add_affected_planes(9)drm_atomic_add_affected_colorops(9)drm_atomic_check_only(9)drm_atomic_commit(9)drm_atomic_nonblocking_commit(9)drm_state_dump(9)
okay that's the whole page, hope you slayed your debugging session π
source: ./drivers/gpu/drm πΈ dated October 2026 πΈ from the Kernel API Manual, mwah π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms