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
Subject: Re: [PATCH 00/15] Optimize vrr.guardband and fix LRR
Date: Fri, 12 Sep 2025 17:03:30 +0300 [thread overview]
Message-ID: <aMQoMoQnj6eD1KL2@intel.com> (raw)
In-Reply-To: <20250911024554.692469-1-ankit.k.nautiyal@intel.com>
On Thu, Sep 11, 2025 at 08:15:39AM +0530, Ankit Nautiyal wrote:
> Instead of setting vrr.guardband to vblank, use optimal guardband that
> works for most of the cases. This will help in avoiding need of change
> in guardband and fix the LRR feature that needs seamless switching to
> a lower refresh rate.
I think the _only_ thing we need for that is intel_crtc_vblank_delay()
to return a different number. But this series is doing all kinds of
stuff to other VRR logic that I don't understand at all.
>
> First few patches fix/refactor and extract common functions required for
> dsc/scaler prefill time computation. Later patches use these helpers to
> compute an optimized guardband.
>
> Also, for seamless_mn where vtotal is same but mode clock is changed to
> seamlessly switch to lower rate, re-compute the vrr timings.
As Art pointed out that stuff is defeatured on LNL+ (just sent
a patch for that) so we don't need to worry about it too much.
>
> Few things that still need work:
> -The timestamps corresponding with next start of vactive still need to be
> fixed with the new scheme.
> -Re-enabling CMRR
>
> Rev2:
> -Address comments from Mitul.
> -Extract helpers for dsc/scaler prefill latencies.
> -Fix downscaling factor for chroma subsampling.
> -Use missing pkg C max latency.
> -Fix guardband computation for seamless mn, always use vblank for
> higher resolution.
>
> Rev3:
> -Drop patches for computing and storing PSR/Panel Replay wake times
> latencies and use existing helpers to compute these in intel_alpm.c.
> -Drop patch to change the Vmin as it was not required.
>
> Rev4:
> -Rebase
> -Drop patch for checking bounds for scaler array access.
> -Use a new flag for setting vrr timings for seamless drrs.
>
> Rev5:
> -Address comments from Mitul, Jani:
> -Refactor few helpers for computing latencies.
> -Rename the helper to check the guardband to intel_crtc_guardband_atomic_check()
> -Refactor the helper intel_panel_highest_mode().
>
> Rev6:
> -Rebase
> -Address review comments from Mitul.
> -Improve documentation for and other minor fixes in Patch#12
>
> Rev7:
> -Address comments from Jani.
> -Move the latency helpers from intel_display.c to intel_vrr.c and rename
> the helpers appropriately.
> -Drop redundant check for HAS_VRR with intel_vrr_possible().
>
> Rev8:
> -Fix CI issues.
> -For fixed RR wait for delayed vblank before dsb interrupt.
>
> Rev9:
> -Fix vrr.vsync_start/end timings for 3D modes (patch#1)
> -Rewrite the patch to wait for delayed vblank before dsb interrupt
> (patch #11)
> -Fix the flipline and vmin timings with optimized guardband (patch#12)
>
> Rev10:
> -Address comments from Ville: Use min guardband computation for setting
> the vblank delay and set the crtc_vblank_start to delayed vblank.
> (Patch#13)
> -Modify the TRANS_SET_CONTEXT_LATENCY as per new guardband and use
> vrr.guardband to readback vblank_start. (Patch#11)
>
> -From previous revision:
> ->Drop patch#11 "drm/i915/dsb: Align flipdone with delayed vblank using
> guardband wait", as this is no longer required.
> ->Modify Patch#12 "drm/i915/vrr: Use static guardband to support seamless
> LRR switching" to only introduce a helper to compute the fix guardband.
> Modify the commit message and the subject.
>
> Ankit Nautiyal (15):
> drm/i915/vrr: Use crtc_vsync_start/end for computing
> vrr.vsync_start/end
> drm/i915/skl_watermark: Fix the scaling factor for chroma subsampling
> drm/i915/skl_watermark: Pass linetime as argument to latency helpers
> drm/i915/skl_scaler: Introduce helper for chroma downscale factor
> drm/i915/display: Extract helpers to set dsc/scaler prefill latencies
> drm/i915/dp: Add SDP latency computation helper
> drm/i915/alpm: Add function to compute max link-wake latency
> drm/i915/vrr: Use vrr.sync_start for getting vtotal
> drm/i915/display: Add guardband check for feature latencies
> drm/i915/skl_watermark: Remove redundant latency checks from vblank
> validation
> drm/i915/display: Use vrr.guardband to derive vblank_start
> drm/i915/vrr: Introduce helper to compute min static guardband
> drm/i915/display: Use optimized guardband to set vblank start
> drm/i915/panel: Refactor helper to get highest fixed mode
> drm/i915/vrr: Fix seamless_mn drrs for PTL
>
> drivers/gpu/drm/i915/display/intel_alpm.c | 15 +
> drivers/gpu/drm/i915/display/intel_alpm.h | 2 +
> drivers/gpu/drm/i915/display/intel_display.c | 236 ++++++++++++++-
> .../drm/i915/display/intel_display_types.h | 2 +
> drivers/gpu/drm/i915/display/intel_dp.c | 63 +++-
> drivers/gpu/drm/i915/display/intel_dp.h | 3 +
> drivers/gpu/drm/i915/display/intel_panel.c | 11 +-
> drivers/gpu/drm/i915/display/intel_panel.h | 3 +-
> drivers/gpu/drm/i915/display/intel_vrr.c | 272 ++++++++++++++++--
> drivers/gpu/drm/i915/display/intel_vrr.h | 10 +
> drivers/gpu/drm/i915/display/skl_scaler.c | 5 +
> drivers/gpu/drm/i915/display/skl_scaler.h | 3 +
> drivers/gpu/drm/i915/display/skl_watermark.c | 89 +-----
> drivers/gpu/drm/i915/display/skl_watermark.h | 1 +
> 14 files changed, 586 insertions(+), 129 deletions(-)
>
> --
> 2.45.2
--
Ville Syrjälä
Intel
next prev parent reply other threads:[~2025-09-12 14:03 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-11 2:45 [PATCH 00/15] Optimize vrr.guardband and fix LRR Ankit Nautiyal
2025-09-11 2:45 ` [PATCH 01/15] drm/i915/vrr: Use crtc_vsync_start/end for computing vrr.vsync_start/end Ankit Nautiyal
2025-09-11 2:45 ` [PATCH 02/15] drm/i915/skl_watermark: Fix the scaling factor for chroma subsampling Ankit Nautiyal
2025-09-11 2:45 ` [PATCH 03/15] drm/i915/skl_watermark: Pass linetime as argument to latency helpers Ankit Nautiyal
2025-09-11 13:58 ` Ville Syrjälä
2025-09-14 6:00 ` Nautiyal, Ankit K
2025-09-11 2:45 ` [PATCH 04/15] drm/i915/skl_scaler: Introduce helper for chroma downscale factor Ankit Nautiyal
2025-09-11 2:45 ` [PATCH 05/15] drm/i915/display: Extract helpers to set dsc/scaler prefill latencies Ankit Nautiyal
2025-09-11 14:01 ` Ville Syrjälä
2025-09-14 6:02 ` Nautiyal, Ankit K
2025-09-11 2:45 ` [PATCH 06/15] drm/i915/dp: Add SDP latency computation helper Ankit Nautiyal
2025-09-11 14:14 ` Ville Syrjälä
2025-09-14 6:03 ` Nautiyal, Ankit K
2025-09-11 2:45 ` [PATCH 07/15] drm/i915/alpm: Add function to compute max link-wake latency Ankit Nautiyal
2025-09-11 2:45 ` [PATCH 08/15] drm/i915/vrr: Use vrr.sync_start for getting vtotal Ankit Nautiyal
2025-09-11 2:45 ` [PATCH 09/15] drm/i915/display: Add guardband check for feature latencies Ankit Nautiyal
2025-09-11 2:45 ` [PATCH 10/15] drm/i915/skl_watermark: Remove redundant latency checks from vblank validation Ankit Nautiyal
2025-09-11 14:22 ` Ville Syrjälä
2025-09-14 6:04 ` Nautiyal, Ankit K
2025-09-11 2:45 ` [PATCH 11/15] drm/i915/display: Use vrr.guardband to derive vblank_start Ankit Nautiyal
2025-09-11 14:25 ` Ville Syrjälä
2025-09-14 5:59 ` Nautiyal, Ankit K
2025-09-15 12:32 ` Ville Syrjälä
2025-09-16 14:30 ` Nautiyal, Ankit K
2025-09-16 14:38 ` Nautiyal, Ankit K
2025-09-16 18:56 ` Ville Syrjälä
2025-09-17 10:38 ` Nautiyal, Ankit K
2025-09-17 12:36 ` Ville Syrjälä
2025-09-17 10:51 ` Ville Syrjälä
2025-09-17 12:07 ` Shankar, Uma
2025-09-17 20:51 ` Ville Syrjälä
2025-09-17 21:12 ` Ville Syrjälä
2025-09-11 2:45 ` [PATCH 12/15] drm/i915/vrr: Introduce helper to compute min static guardband Ankit Nautiyal
2025-09-11 2:45 ` [PATCH 13/15] drm/i915/display: Use optimized guardband to set vblank start Ankit Nautiyal
2025-09-11 2:45 ` [PATCH 14/15] drm/i915/panel: Refactor helper to get highest fixed mode Ankit Nautiyal
2025-09-11 14:37 ` Ville Syrjälä
2025-09-14 6:08 ` Nautiyal, Ankit K
2025-09-11 2:45 ` [PATCH 15/15] drm/i915/vrr: Fix seamless_mn drrs for PTL Ankit Nautiyal
2025-09-11 14:41 ` Ville Syrjälä
2025-09-14 6:07 ` Nautiyal, Ankit K
2025-09-15 13:25 ` Ville Syrjälä
2025-09-11 3:11 ` ✓ CI.KUnit: success for Optimize vrr.guardband and fix LRR (rev11) Patchwork
2025-09-11 3:47 ` ✓ Xe.CI.BAT: " Patchwork
2025-09-11 9:27 ` ✓ Xe.CI.Full: " Patchwork
2025-09-12 14:03 ` Ville Syrjälä [this message]
2025-09-14 6:24 ` [PATCH 00/15] Optimize vrr.guardband and fix LRR Nautiyal, Ankit K
-- strict thread matches above, loose matches on Subject: below --
2025-09-28 7:05 Ankit Nautiyal
2025-08-04 13:24 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=aMQoMoQnj6eD1KL2@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 \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).