[Intel-gfx] [PATCH 09/12] drm/i915: Disable VRR during seamless M/N changes
Ville Syrjälä
ville.syrjala at linux.intel.com
Fri Sep 8 05:53:50 UTC 2023
On Thu, Sep 07, 2023 at 11:49:10AM -0700, Manasi Navare wrote:
> 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?
No, it just means if you have VRR already enabled and want to do
a M/N change VRR gets temporarily disabled and re-enabled during
the commit.
>
> 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
> >
--
Ville Syrjälä
Intel
More information about the Intel-gfx
mailing list