[PATCH] drm/amd/display: Add primary plane to commits for correct VRR handling
Xaver Hugl
xaver.hugl at kde.org
Wed Jul 30 22:20:02 UTC 2025
I can confirm that this works. Thank you!
- Xaver
Am Mi., 30. Juli 2025 um 10:09 Uhr schrieb Michel Dänzer <michel at daenzer.net>:
>
> From: Michel Dänzer <mdaenzer at redhat.com>
>
> amdgpu_dm_commit_planes calls update_freesync_state_on_stream only for
> the primary plane. If a commit affects a CRTC but not its primary plane,
> it would previously not trigger a refresh cycle or affect LFC, violating
> current UAPI semantics.
>
> Fixes e.g. atomic commits affecting only the cursor plane being limited
> to the minimum refresh rate.
>
> Don't do this for the legacy cursor ioctls though, it would break the
> UAPI semantics for those.
>
> Suggested-by: Xaver Hugl <xaver.hugl at kde.org>
> Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3034
> Signed-off-by: Michel Dänzer <mdaenzer at redhat.com>
> ---
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
> index 2551823382f8..010172f930ae 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
> @@ -661,6 +661,15 @@ static int amdgpu_dm_crtc_helper_atomic_check(struct drm_crtc *crtc,
> return -EINVAL;
> }
>
> + if (!state->legacy_cursor_update && amdgpu_dm_crtc_vrr_active(dm_crtc_state)) {
> + struct drm_plane_state *primary_state;
> +
> + /* Pull in primary plane for correct VRR handling */
> + primary_state = drm_atomic_get_plane_state(state, crtc->primary);
> + if (IS_ERR(primary_state))
> + return PTR_ERR(primary_state);
> + }
> +
> /* In some use cases, like reset, no stream is attached */
> if (!dm_crtc_state->stream)
> return 0;
> --
> 2.50.0
>
More information about the amd-gfx
mailing list