All of lore.kernel.org
 help / color / mirror / Atom feed
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

  parent reply	other threads:[~2025-09-12 14:03 UTC|newest]

Thread overview: 50+ 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  6:06 ` ✓ i915.CI.BAT: success for Optimize vrr.guardband and fix LRR (rev10) Patchwork
2025-09-11  9:27 ` ✓ Xe.CI.Full: success for Optimize vrr.guardband and fix LRR (rev11) Patchwork
2025-09-11 19:16 ` ✗ i915.CI.Full: failure for Optimize vrr.guardband and fix LRR (rev10) 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 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.