[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