From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
jani.nikula@linux.intel.com, navaremanasi@google.com
Subject: Re: [PATCH 0/6] drm/i915/intel_panel: Fix seamless VRR mode switching for DRRS panels
Date: Wed, 3 Jun 2026 17:38:36 +0300 [thread overview]
Message-ID: <aiA8bL4E1SCZQVsw@intel.com> (raw)
In-Reply-To: <20260522132511.321540-1-ankit.k.nautiyal@intel.com>
On Fri, May 22, 2026 at 06:55:05PM +0530, Ankit Nautiyal wrote:
> Currently intel_panel_fixed_mode() can return a lower refresh rate mode
> for VRR panels if the lower refresh rate mode is first in the list.
> This creates problems for seamless switch features like LRR and
> Seamless-DRRS, as it results in changes to vsync_start/end causing a
> full modeset instead of a seamless switch.
>
> This is particularly problematic for DRRS panels on platforms without
> double buffered M/N support for LNL+ (display version 20+), where
> seamless clock changes are not possible.
>
> This series attempts to fix this by:
> 1. Adding a helper to get the highest refresh rate mode from the list of
> fixed modes for a connector.
> 2. When a seamless switch to a lower mode is desired, making
> intel_panel_fixed_mode() return the highest refresh rate mode,
> provided the requested rate is in VRR range. The vblank is then
> extended to provide the desired refresh rate.
>
> To determine whether a full modeset or seamless switch is intended, the
> connector state is checked for the allow_modeset flag. A nullable
> conn_state parameter is added to intel_panel_fixed_mode() and
> intel_panel_compute_config() for this purpose.
>
> Rev2:
> - Address Ville's comments to preserve Vtotal-Vsync distance while
> adjusting VTOTAL.
> - Address Manasi's comments to always go with highest RR mode
> irrespective of allow_modeset flag for modes that have same clock but
> different votal.
>
> Rev3:
> - Drop patch to deprecate TRANS_VSYNC, instead add Vsync start/end in
> lrr codepaths. (Ville).
> - Fix the condition to avoid picking higher RR mode for DRRS panels
> when allow modeset flag is set.
>
> Ankit Nautiyal (6):
> drm/i915/display: Handle VSYNC timing in LRR path
> drm/i915/panel: Preserve Vtotal-Vsync distance while adjusting vtotal
> drm/i915/intel_panel: Add a helper to get the highest refresh rate
> mode
> drm/i915/intel_panel: Pass crtc_state to intel_panel_compute_config
> drm/i915/intel_panel: Use highest refresh rate mode for VRR panels
> drm/i915/intel_panel: Refine VRR fixed mode selection for DRRS panels
I didn't really go through the rest of the stuff in fine detail,
but my initial reaction was that it all feels complicated.
Here's a quick attempt at a simpler thing:
https://github.com/vsyrjala/linux.git vrr_no_allow_modeset
Ie. just try to make sure the fixed mode selected by a
!allow_modeset commit is "VRR compatible" with the old
adjusted_mode. This is completely untested though, so not
sure it actually works.
The guardband does still pose a bit of a problem in that
the optimized guardband might exceed the available vblank
for either the old or new mode, in case we can end up with
a change in guardband. If that turns out to be a serious issue
then I suppose we might also need to preserve the current
guardband value instead of recalculating it...
>
> drivers/gpu/drm/i915/display/icl_dsi.c | 2 +-
> drivers/gpu/drm/i915/display/intel_display.c | 9 +-
> drivers/gpu/drm/i915/display/intel_dp.c | 2 +-
> drivers/gpu/drm/i915/display/intel_dvo.c | 2 +-
> drivers/gpu/drm/i915/display/intel_lvds.c | 2 +-
> drivers/gpu/drm/i915/display/intel_panel.c | 102 +++++++++++++++----
> drivers/gpu/drm/i915/display/intel_panel.h | 9 +-
> drivers/gpu/drm/i915/display/intel_sdvo.c | 8 +-
> drivers/gpu/drm/i915/display/vlv_dsi.c | 2 +-
> 9 files changed, 108 insertions(+), 30 deletions(-)
>
> --
> 2.45.2
--
Ville Syrjälä
Intel
next prev parent reply other threads:[~2026-06-03 14:38 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-22 13:25 [PATCH 0/6] drm/i915/intel_panel: Fix seamless VRR mode switching for DRRS panels Ankit Nautiyal
2026-05-22 13:25 ` [PATCH 1/6] drm/i915/display: Handle VSYNC timing in LRR path Ankit Nautiyal
2026-06-03 12:13 ` Ville Syrjälä
2026-05-22 13:25 ` [PATCH 2/6] drm/i915/panel: Preserve Vtotal-Vsync distance while adjusting vtotal Ankit Nautiyal
2026-06-03 12:14 ` Ville Syrjälä
2026-05-22 13:25 ` [PATCH 3/6] drm/i915/intel_panel: Add a helper to get the highest refresh rate mode Ankit Nautiyal
2026-05-22 13:25 ` [PATCH 4/6] drm/i915/intel_panel: Pass crtc_state to intel_panel_compute_config Ankit Nautiyal
2026-05-22 13:25 ` [PATCH 5/6] drm/i915/intel_panel: Use highest refresh rate mode for VRR panels Ankit Nautiyal
2026-05-22 13:25 ` [PATCH 6/6] drm/i915/intel_panel: Refine VRR fixed mode selection for DRRS panels Ankit Nautiyal
2026-05-22 14:38 ` ✓ CI.KUnit: success for drm/i915/intel_panel: Fix seamless VRR mode switching for DRRS panels (rev3) Patchwork
2026-05-22 15:16 ` ✗ Xe.CI.BAT: failure " Patchwork
2026-05-22 17:48 ` ✓ i915.CI.BAT: success " Patchwork
2026-05-22 21:37 ` ✗ Xe.CI.FULL: failure " Patchwork
2026-05-24 0:07 ` ✗ i915.CI.Full: " Patchwork
2026-06-03 14:38 ` Ville Syrjälä [this message]
2026-06-09 3:03 ` [PATCH 0/6] drm/i915/intel_panel: Fix seamless VRR mode switching for DRRS panels Nautiyal, Ankit K
-- strict thread matches above, loose matches on Subject: below --
2026-05-12 13:32 Ankit Nautiyal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aiA8bL4E1SCZQVsw@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=ankit.k.nautiyal@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=jani.nikula@linux.intel.com \
--cc=navaremanasi@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.