dm_test_crtc..._cursor_only(9)
π dm_test_crtc_handle_vblank_completes_cursor_only β bestie's guide to the vblank test β¨
okay so this is a page from the Kernel API Manual, section 9, and it's literally about one KUnit test. the whole thing is called dm_test_crtc_handle_vblank_completes_cursor_only and honestly? she's a small test with a big job π
β¨ NAME β¨
dm_test_crtc_handle_vblank_completes_cursor_only β the test that checks an event actually gets sent on vblank π¦
π§ SYNOPSIS π§
void dm_test_crtc_handle_vblank_completes_cursor_only (struct kunit *test );
periodt. that's the whole signature π
πΈ ARGUMENTS πΈ
testβ the KUnit test context, aka the little backpack this test carries its stuff in π
π DESCRIPTION π
here's the vibe: you've got a pending event whose flip is not AMDGPU_FLIP_SUBMITTED β think of it as a cursor-only commit π±οΈβ¨ β and this test is checking that it must be signalled on vblank. no cap.
and what does "signalled on vblank" actually mean here? all three of these things, bestie, and they all gotta happen:
- the vblank event gets sent π¨
- the vblank reference gets dropped π«³
acrtc->eventgets cleared π§Ή
that's it. that's the whole test. she's thorough, she's specific, she ate π₯
π¦ SEE ALSO π¦
π the kernel file
./drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_crtc_test.c β go read it, it's right there π«Ά
π the whole friend group (aka every sibling test, in order)
dm_test_crtc_modeset_required_active_mode_changed(9)dm_test_crtc_modeset_required_active_active_changed(9)dm_test_crtc_modeset_required_active_connectors_changed(9)dm_test_crtc_modeset_required_inactive(9)dm_test_crtc_modeset_required_no_changes(9)dm_test_crtc_vrr_active_irq_variable(9)dm_test_crtc_vrr_active_irq_fixed(9)dm_test_crtc_vrr_active_irq_inactive(9)dm_test_crtc_vrr_active_irq_disabled(9)dm_test_crtc_vrr_active_irq_unsupported(9)dm_test_crtc_vrr_active_variable(9)dm_test_crtc_vrr_active_fixed(9)dm_test_crtc_vrr_active_inactive(9)dm_test_crtc_vrr_active_disabled(9)dm_test_crtc_vrr_active_unsupported(9)dm_test_crtc_is_headless_null_adev(9)dm_test_crtc_is_headless_no_connectors(9)dm_test_crtc_is_headless_writeback_only(9)dm_test_crtc_is_headless_disconnected_display(9)dm_test_crtc_is_headless_connected_display(9)dm_test_crtc_is_headless_mixed_connectors(9)dm_test_crtc_helper_mode_fixup_returns_true(9)dm_test_crtc_set_vupdate_irq_no_otg(9)dm_test_crtc_set_vupdate_irq_dc_busy(9)dm_test_crtc_set_vupdate_irq_enable(9)dm_test_idle_create_workqueue(9)dm_test_idle_worker_disabled_clears_running(9)dm_test_idle_worker_enabled_breaks_when_idle_disallowed(9)dm_test_idle_worker_enabled_breaks_when_not_headless(9)dm_test_idle_worker_enabled_runs_body(9)dm_test_crtc_set_static_screen_optimze_no_sr_entry(9)dm_test_crtc_set_static_screen_optimze_sr_entry_psr(9)dm_test_crtc_set_static_screen_optimze_psr_su_skips(9)dm_test_crtc_enable_vblank_rejects_unconfigured(9)dm_test_crtc_enable_vblank_full_path(9)dm_test_crtc_enable_vblank_vupdate_busy(9)dm_test_crtc_enable_vblank_crtc_irq_error(9)dm_test_crtc_enable_vblank_in_reset(9)dm_test_crtc_enable_vblank_queues_work(9)dm_test_crtc_enable_vblank_ips_restore(9)dm_test_crtc_enable_vblank_ips_restore_replay(9)dm_test_crtc_update_active_planes_no_stream(9)dm_test_count_crtc_active_planes_none(9)dm_test_count_crtc_active_planes_mixed(9)dm_test_crtc_duplicate_state_copies_fields(9)dm_test_crtc_reset_state_allocates_state(9)dm_test_crtc_destroy_state_no_stream(9)dm_test_crtc_destroy_state_releases_stream(9)dm_test_crtc_handle_vblank_no_event(9)dm_test_crtc_handle_vblank_skips_when_flip_submitted(9)dm_test_vblank_control_worker_setup(9)dm_test_vblank_control_worker_enable_increments(9)dm_test_vblank_control_worker_disable_decrements(9)dm_test_vblank_control_worker_disable_clamps_zero(9)dm_test_crtc_disable_vblank_no_irq_installed(9)dm_test_crtc_disable_vblank_vrr(9)dm_test_crtc_disable_vblank_queues_work(9)
iykyk, that's a lot of friends π but they're all listed, every single one, nothing skipped π
ngl, the two closest cousins to this one aredm_test_crtc_handle_vblank_no_event(9)anddm_test_crtc_handle_vblank_skips_when_flip_submitted(9)β like, the "no event" case and the "flip actually submitted, so skip" case. this page is the third one in that little trio: flip not submitted, event must fire π
π sign-off π
that's the whole page, bestie!! source for all this good stuff is ./drivers/gpu/drm/amd/display/... and it's dated October 2026, standing proudly under the manual name dm_test_crtc..._cursor_only(9) β Kernel API Manual forever π go forth and vblank responsibly πβ¨
π¦ 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