On 2019-03-21 11:53 a.m., Nicholas Kazlauskas wrote:
> [Why]
> Black screens or artifacting can occur when enabling FreeSync outside
> of the supported range of the monitor. This can happen since the
> supported range isn't always the min/max vrefresh range available for
> the monitor.
> 
> [How]
> There was previously a fix that prevented this from happening in the
> low range but it didn't cover the upper range. Expand the condition
> to include both.
> 
> Cc: Sun peng Li <sunpeng...@amd.com>
> Cc: Harry Wentland <harry.wentl...@amd.com>
> Signed-off-by: Nicholas Kazlauskas <nicholas.kazlaus...@amd.com>

Reviewed-by: Harry Wentland <harry.wentl...@amd.com>

Harry

> ---
>  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> 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 01a46119512b..5b7a85e28fab 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -5551,9 +5551,11 @@ static void get_freesync_config_for_crtc(
>       struct amdgpu_dm_connector *aconnector =
>                       to_amdgpu_dm_connector(new_con_state->base.connector);
>       struct drm_display_mode *mode = &new_crtc_state->base.mode;
> +     int vrefresh = drm_mode_vrefresh(mode);
>  
>       new_crtc_state->vrr_supported = new_con_state->freesync_capable &&
> -             aconnector->min_vfreq <= drm_mode_vrefresh(mode);
> +                                     vrefresh >= aconnector->min_vfreq &&
> +                                     vrefresh <= aconnector->max_vfreq;
>  
>       if (new_crtc_state->vrr_supported) {
>               new_crtc_state->stream->ignore_msa_timing_param = true;
> 
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to