[PATCH v2] drm/amd/display: Fix artifacting on eDP panels when engaging freesync video mode
Rodrigo Siqueira Jordao
Rodrigo.Siqueira at amd.com
Thu May 18 15:53:51 UTC 2023
On 5/18/23 09:45, Aurabindo Pillai wrote:
> [Why]
> When freesync video mode is enabled, switching resolution from native
> mode to one of the freesync video compatible modes can trigger continous
> artifacts on some eDP panels when running under KDE. The articating can be seen in the
> attached bug report.
>
> [How]
> Fix this by restricting updates that does not require full commit by using the
> same checks for stream and scaling changes in the the enable pass of dm_update_crtc_state()
> along with the check for compatible timings for freesync vide mode.
>
> Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/2162
> Fixes: 541d54055b75 ("drm/amd/display: Fix hang when skipping modeset")
> Signed-off-by: Aurabindo Pillai <aurabindo.pillai at amd.com>
> ---
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> 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 14b296e1d0f6..7f322b18eda6 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -9285,6 +9285,8 @@ static int dm_update_crtc_state(struct amdgpu_display_manager *dm,
>
> /* Now check if we should set freesync video mode */
> if (amdgpu_freesync_vid_mode && dm_new_crtc_state->stream &&
> + dc_is_stream_unchanged(new_stream, dm_old_crtc_state->stream) &&
> + dc_is_stream_scaling_unchanged(new_stream, dm_old_crtc_state->stream) &&
> is_timing_unchanged_for_freesync(new_crtc_state,
> old_crtc_state)) {
> new_crtc_state->mode_changed = false;
Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira at amd.com>
More information about the amd-gfx
mailing list