[PATCH] drm/amd/display: fix cursor-plane-only atomic commits not triggering pageflips

Harry Wentland harry.wentland at amd.com
Thu Dec 7 20:21:21 UTC 2023



On 2023-12-07 14:30, Xaver Hugl wrote:
> Sorry, it looks like I sent this too soon. I tested the patch on a
> second PC and it doesn't fix the issue there.
> 

Ah, too bad. Won't merge it then.

Harry

> 
> Am Do., 7. Dez. 2023 um 19:25 Uhr schrieb Xaver Hugl <xaver.hugl at gmail.com>:
>>
>> With VRR, every atomic commit affecting a given display must trigger
>> a new scanout cycle, so that userspace is able to control the refresh
>> rate of the display. Before this commit, this was not the case for
>> atomic commits that only contain cursor plane properties.
>>
>> Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3034
>> Cc: stable at vger.kernel.org
>>
>> Signed-off-by: Xaver Hugl <xaver.hugl at gmail.com>
>> ---
>>   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 10 ++++++++--
>>   1 file changed, 8 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> index b452796fc6d3..b379c859fbef 100644
>> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> @@ -8149,9 +8149,15 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
>>                  /* Cursor plane is handled after stream updates */
>>                  if (plane->type == DRM_PLANE_TYPE_CURSOR) {
>>                          if ((fb && crtc == pcrtc) ||
>> -                           (old_plane_state->fb && old_plane_state->crtc == pcrtc))
>> +                           (old_plane_state->fb && old_plane_state->crtc == pcrtc)) {
>>                                  cursor_update = true;
>> -
>> +                               /*
>> +                                * With atomic modesetting, cursor changes must
>> +                                * also trigger a new refresh period with vrr
>> +                                */
>> +                               if (!state->legacy_cursor_update)
>> +                                       pflip_present = true;
>> +                       }
>>                          continue;
>>                  }
>>
>> --
>> 2.43.0
>>


More information about the dri-devel mailing list