[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