[Intel-gfx] [PATCH 09/12] drm/i915: Disable VRR during seamless M/N changes

Manasi Navare navaremanasi at chromium.org
Thu Sep 7 18:49:10 UTC 2023


Hi Ville,

Since we are always disabling when update_m_n, that means if in gaming
mode if VRR enable is requested by userspace, it cannot
be enabled if update_m_n or dual refresh mode is enabled and say we
have downclocked from 120Hz - 60Hz?

Doesnt this contradict the purpose of this series to try and do VRR
update params in fastset because we want VRR range to be
correctly reflected when in dual refresh mode when we downclock from
120-60hz in gaming use case with VRR?

Am I missing something here?

Regards
Manasi

On Fri, Sep 1, 2023 at 6:05 AM Ville Syrjala
<ville.syrjala at linux.intel.com> wrote:
>
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> Make life less confusing by making sure VRR is disabled whenever
> we do any drastic changes to the display timings, such as seamless
> M/N changes.
>
> Cc: Manasi Navare <navaremanasi at chromium.org>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index c20eaf0e7a91..cbbee303cd00 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -916,13 +916,15 @@ static bool planes_disabling(const struct intel_crtc_state *old_crtc_state,
>  static bool vrr_enabling(const struct intel_crtc_state *old_crtc_state,
>                          const struct intel_crtc_state *new_crtc_state)
>  {
> -       return is_enabling(vrr.enable, old_crtc_state, new_crtc_state);
> +       return is_enabling(vrr.enable, old_crtc_state, new_crtc_state) ||
> +               (new_crtc_state->vrr.enable && new_crtc_state->update_m_n);
>  }
>
>  static bool vrr_disabling(const struct intel_crtc_state *old_crtc_state,
>                           const struct intel_crtc_state *new_crtc_state)
>  {
> -       return is_disabling(vrr.enable, old_crtc_state, new_crtc_state);
> +       return is_disabling(vrr.enable, old_crtc_state, new_crtc_state) ||
> +               (old_crtc_state->vrr.enable && new_crtc_state->update_m_n);
>  }
>
>  #undef is_disabling
> --
> 2.41.0
>


More information about the Intel-gfx mailing list