I can confirm that this works. Thank you! - Xaver
Am Mi., 30. Juli 2025 um 10:09 Uhr schrieb Michel Dänzer <mic...@daenzer.net>: > > From: Michel Dänzer <mdaen...@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.h...@kde.org> > Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3034 > Signed-off-by: Michel Dänzer <mdaen...@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 >