* [PATCH 01/16] drm/i915/vrr: Use crtc_vsync_start/end for computing vrr.vsync_start/end
2025-10-06 4:28 [PATCH 00/16] Optimize vrr.guardband and fix LRR Ankit Nautiyal
@ 2025-10-06 4:28 ` Ankit Nautiyal
2025-10-06 4:28 ` [PATCH 02/16] drm/i915/skl_watermark: Fix the scaling factor for chroma subsampling Ankit Nautiyal
` (17 subsequent siblings)
18 siblings, 0 replies; 30+ messages in thread
From: Ankit Nautiyal @ 2025-10-06 4:28 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: ville.syrjala
Use adjusted_mode->crtc_vsync_start/end instead of
adjusted_mode->vsync_start while computing vrr.vsync_start/end.
For most modes, these are same but for 3D/stereo modes the
crtc_vsync_start is different than vsync_start.
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
---
drivers/gpu/drm/i915/display/intel_vrr.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c b/drivers/gpu/drm/i915/display/intel_vrr.c
index 190c51be5cbc..4bc14b5e685f 100644
--- a/drivers/gpu/drm/i915/display/intel_vrr.c
+++ b/drivers/gpu/drm/i915/display/intel_vrr.c
@@ -394,10 +394,10 @@ intel_vrr_compute_config(struct intel_crtc_state *crtc_state,
if (HAS_AS_SDP(display)) {
crtc_state->vrr.vsync_start =
(crtc_state->hw.adjusted_mode.crtc_vtotal -
- crtc_state->hw.adjusted_mode.vsync_start);
+ crtc_state->hw.adjusted_mode.crtc_vsync_start);
crtc_state->vrr.vsync_end =
(crtc_state->hw.adjusted_mode.crtc_vtotal -
- crtc_state->hw.adjusted_mode.vsync_end);
+ crtc_state->hw.adjusted_mode.crtc_vsync_end);
}
}
--
2.45.2
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH 02/16] drm/i915/skl_watermark: Fix the scaling factor for chroma subsampling
2025-10-06 4:28 [PATCH 00/16] Optimize vrr.guardband and fix LRR Ankit Nautiyal
2025-10-06 4:28 ` [PATCH 01/16] drm/i915/vrr: Use crtc_vsync_start/end for computing vrr.vsync_start/end Ankit Nautiyal
@ 2025-10-06 4:28 ` Ankit Nautiyal
2025-10-06 4:28 ` [PATCH 03/16] drm/i915/skl_watermark: Pass linetime as argument to latency helpers Ankit Nautiyal
` (16 subsequent siblings)
18 siblings, 0 replies; 30+ messages in thread
From: Ankit Nautiyal @ 2025-10-06 4:28 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: ville.syrjala
The Bspec:70151, mentions Chroma subsampling is a 2x downscale
operation. This means that the downscale factor is 2 in each direction.
So correct the downscaling factor to 4.
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
---
drivers/gpu/drm/i915/display/skl_watermark.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c
index 9eb28d935757..4b1ef4fa8ed2 100644
--- a/drivers/gpu/drm/i915/display/skl_watermark.c
+++ b/drivers/gpu/drm/i915/display/skl_watermark.c
@@ -2188,7 +2188,7 @@ dsc_prefill_latency(const struct intel_crtc_state *crtc_state)
crtc_state->hw.adjusted_mode.clock);
int num_scaler_users = hweight32(scaler_state->scaler_users);
int chroma_downscaling_factor =
- crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 ? 2 : 1;
+ crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 ? 4 : 1;
u32 dsc_prefill_latency = 0;
if (!crtc_state->dsc.compression_enable ||
@@ -2231,7 +2231,7 @@ scaler_prefill_latency(const struct intel_crtc_state *crtc_state)
u64 hscale_k = max(1000, mul_u32_u32(scaler_state->scalers[0].hscale, 1000) >> 16);
u64 vscale_k = max(1000, mul_u32_u32(scaler_state->scalers[0].vscale, 1000) >> 16);
int chroma_downscaling_factor =
- crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 ? 2 : 1;
+ crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 ? 4 : 1;
int latency;
latency = DIV_ROUND_UP_ULL((4 * linetime * hscale_k * vscale_k *
--
2.45.2
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH 03/16] drm/i915/skl_watermark: Pass linetime as argument to latency helpers
2025-10-06 4:28 [PATCH 00/16] Optimize vrr.guardband and fix LRR Ankit Nautiyal
2025-10-06 4:28 ` [PATCH 01/16] drm/i915/vrr: Use crtc_vsync_start/end for computing vrr.vsync_start/end Ankit Nautiyal
2025-10-06 4:28 ` [PATCH 02/16] drm/i915/skl_watermark: Fix the scaling factor for chroma subsampling Ankit Nautiyal
@ 2025-10-06 4:28 ` Ankit Nautiyal
2025-10-06 4:28 ` [PATCH 04/16] drm/i915/skl_scaler: Introduce helper for chroma downscale factor Ankit Nautiyal
` (15 subsequent siblings)
18 siblings, 0 replies; 30+ messages in thread
From: Ankit Nautiyal @ 2025-10-06 4:28 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: ville.syrjala
Refactor dsc_prefill_latency and scaler_prefill_latency to take
linetime as an explicit parameter instead of computing it internally.
This avoids redundant calculations and simplifies scanline conversion
logic in skl_is_vblank_too_short().
This change also facilitates future extraction of these helpers for use
cases where latencies are computed for an optimized guardband, based on the
highest resolution mode, rather than the current mode.
v2: Sum all latency numbers and use intel_usecs_to_scanlines() to
convert to scanlines. (Ville).
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
---
drivers/gpu/drm/i915/display/skl_watermark.c | 19 +++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c
index 4b1ef4fa8ed2..be87a861eb70 100644
--- a/drivers/gpu/drm/i915/display/skl_watermark.c
+++ b/drivers/gpu/drm/i915/display/skl_watermark.c
@@ -2179,13 +2179,11 @@ cdclk_prefill_adjustment(const struct intel_crtc_state *crtc_state)
}
static int
-dsc_prefill_latency(const struct intel_crtc_state *crtc_state)
+dsc_prefill_latency(const struct intel_crtc_state *crtc_state, int linetime)
{
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
const struct intel_crtc_scaler_state *scaler_state =
&crtc_state->scaler_state;
- int linetime = DIV_ROUND_UP(1000 * crtc_state->hw.adjusted_mode.htotal,
- crtc_state->hw.adjusted_mode.clock);
int num_scaler_users = hweight32(scaler_state->scaler_users);
int chroma_downscaling_factor =
crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 ? 4 : 1;
@@ -2209,18 +2207,16 @@ dsc_prefill_latency(const struct intel_crtc_state *crtc_state)
dsc_prefill_latency *= cdclk_prefill_adjustment(crtc_state);
- return intel_usecs_to_scanlines(&crtc_state->hw.adjusted_mode, dsc_prefill_latency);
+ return dsc_prefill_latency;
}
static int
-scaler_prefill_latency(const struct intel_crtc_state *crtc_state)
+scaler_prefill_latency(const struct intel_crtc_state *crtc_state, int linetime)
{
const struct intel_crtc_scaler_state *scaler_state =
&crtc_state->scaler_state;
int num_scaler_users = hweight32(scaler_state->scaler_users);
int scaler_prefill_latency = 0;
- int linetime = DIV_ROUND_UP(1000 * crtc_state->hw.adjusted_mode.htotal,
- crtc_state->hw.adjusted_mode.clock);
if (!num_scaler_users)
return scaler_prefill_latency;
@@ -2241,7 +2237,7 @@ scaler_prefill_latency(const struct intel_crtc_state *crtc_state)
scaler_prefill_latency *= cdclk_prefill_adjustment(crtc_state);
- return intel_usecs_to_scanlines(&crtc_state->hw.adjusted_mode, scaler_prefill_latency);
+ return scaler_prefill_latency;
}
static bool
@@ -2250,11 +2246,14 @@ skl_is_vblank_too_short(const struct intel_crtc_state *crtc_state,
{
const struct drm_display_mode *adjusted_mode =
&crtc_state->hw.adjusted_mode;
+ int linetime = DIV_ROUND_UP(1000 * adjusted_mode->htotal,
+ adjusted_mode->clock);
+
+ latency += scaler_prefill_latency(crtc_state, linetime) +
+ dsc_prefill_latency(crtc_state, linetime);
return crtc_state->framestart_delay +
intel_usecs_to_scanlines(adjusted_mode, latency) +
- scaler_prefill_latency(crtc_state) +
- dsc_prefill_latency(crtc_state) +
wm0_lines >
adjusted_mode->crtc_vtotal - adjusted_mode->crtc_vblank_start;
}
--
2.45.2
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH 04/16] drm/i915/skl_scaler: Introduce helper for chroma downscale factor
2025-10-06 4:28 [PATCH 00/16] Optimize vrr.guardband and fix LRR Ankit Nautiyal
` (2 preceding siblings ...)
2025-10-06 4:28 ` [PATCH 03/16] drm/i915/skl_watermark: Pass linetime as argument to latency helpers Ankit Nautiyal
@ 2025-10-06 4:28 ` Ankit Nautiyal
2025-10-06 4:28 ` [PATCH 05/16] drm/i915/display: Extract helpers to set dsc/scaler prefill latencies Ankit Nautiyal
` (14 subsequent siblings)
18 siblings, 0 replies; 30+ messages in thread
From: Ankit Nautiyal @ 2025-10-06 4:28 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: ville.syrjala
For 444 to 420 output format conversion, scaler uses 2x downscaling in
each direction. Introduce skl_scaler_chroma_downscale_factor() to
encapsulate the chroma subsampling adjustment used in scaler/dsc
pre-fill latency calculations.
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
---
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 | 7 +++----
3 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/skl_scaler.c b/drivers/gpu/drm/i915/display/skl_scaler.c
index c6cccf170ff1..af2cbd54c32e 100644
--- a/drivers/gpu/drm/i915/display/skl_scaler.c
+++ b/drivers/gpu/drm/i915/display/skl_scaler.c
@@ -968,3 +968,8 @@ void adl_scaler_ecc_unmask(const struct intel_crtc_state *crtc_state)
1);
intel_de_write(display, XELPD_DISPLAY_ERR_FATAL_MASK, 0);
}
+
+int skl_scaler_chroma_downscale_factor(const struct intel_crtc_state *crtc_state)
+{
+ return crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 ? 4 : 1;
+}
diff --git a/drivers/gpu/drm/i915/display/skl_scaler.h b/drivers/gpu/drm/i915/display/skl_scaler.h
index 12a19016c5f6..257330d4c329 100644
--- a/drivers/gpu/drm/i915/display/skl_scaler.h
+++ b/drivers/gpu/drm/i915/display/skl_scaler.h
@@ -45,4 +45,7 @@ skl_scaler_mode_valid(struct intel_display *display,
void adl_scaler_ecc_mask(const struct intel_crtc_state *crtc_state);
void adl_scaler_ecc_unmask(const struct intel_crtc_state *crtc_state);
+
+int skl_scaler_chroma_downscale_factor(const struct intel_crtc_state *crtc_state);
+
#endif
diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c
index be87a861eb70..2da54569f06a 100644
--- a/drivers/gpu/drm/i915/display/skl_watermark.c
+++ b/drivers/gpu/drm/i915/display/skl_watermark.c
@@ -30,6 +30,7 @@
#include "intel_plane.h"
#include "intel_wm.h"
#include "skl_universal_plane_regs.h"
+#include "skl_scaler.h"
#include "skl_watermark.h"
#include "skl_watermark_regs.h"
@@ -2185,8 +2186,7 @@ dsc_prefill_latency(const struct intel_crtc_state *crtc_state, int linetime)
const struct intel_crtc_scaler_state *scaler_state =
&crtc_state->scaler_state;
int num_scaler_users = hweight32(scaler_state->scaler_users);
- int chroma_downscaling_factor =
- crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 ? 4 : 1;
+ int chroma_downscaling_factor = skl_scaler_chroma_downscale_factor(crtc_state);
u32 dsc_prefill_latency = 0;
if (!crtc_state->dsc.compression_enable ||
@@ -2226,8 +2226,7 @@ scaler_prefill_latency(const struct intel_crtc_state *crtc_state, int linetime)
if (num_scaler_users > 1) {
u64 hscale_k = max(1000, mul_u32_u32(scaler_state->scalers[0].hscale, 1000) >> 16);
u64 vscale_k = max(1000, mul_u32_u32(scaler_state->scalers[0].vscale, 1000) >> 16);
- int chroma_downscaling_factor =
- crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 ? 4 : 1;
+ int chroma_downscaling_factor = skl_scaler_chroma_downscale_factor(crtc_state);
int latency;
latency = DIV_ROUND_UP_ULL((4 * linetime * hscale_k * vscale_k *
--
2.45.2
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH 05/16] drm/i915/display: Extract helpers to set dsc/scaler prefill latencies
2025-10-06 4:28 [PATCH 00/16] Optimize vrr.guardband and fix LRR Ankit Nautiyal
` (3 preceding siblings ...)
2025-10-06 4:28 ` [PATCH 04/16] drm/i915/skl_scaler: Introduce helper for chroma downscale factor Ankit Nautiyal
@ 2025-10-06 4:28 ` Ankit Nautiyal
2025-10-06 4:28 ` [PATCH 06/16] drm/i915/dp: Add SDP latency computation helper Ankit Nautiyal
` (13 subsequent siblings)
18 siblings, 0 replies; 30+ messages in thread
From: Ankit Nautiyal @ 2025-10-06 4:28 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: ville.syrjala
Currently dsc/scaler prefill latencies are handled during watermark
calculations. With the optimized guardband, we need to compute the
latencies to find the minimum guardband that works for most cases.
Extract the helpers to compute these latencies, so that they can be used
while computing vrr guardband.
While at it, put declarations in reverse xmas tree order for better
redability.
v2: Initialize {h,v}scale_k to 0, and simplify the check in
intel_display_scaler_prefill_latency(). (Mitul)
v3: Move helpers from intel_display.c to intel_vrr.c as they are specific
to account for latencies to program vrr guardband. (Jani)
v4: Move helpers to dsc/scaler files. (Ville)
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
---
drivers/gpu/drm/i915/display/intel_vdsc.c | 17 +++++++
drivers/gpu/drm/i915/display/intel_vdsc.h | 4 ++
drivers/gpu/drm/i915/display/skl_scaler.c | 16 +++++++
drivers/gpu/drm/i915/display/skl_scaler.h | 7 +++
drivers/gpu/drm/i915/display/skl_watermark.c | 47 +++++++++-----------
5 files changed, 66 insertions(+), 25 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
index 8e799e225af1..e59d62994798 100644
--- a/drivers/gpu/drm/i915/display/intel_vdsc.c
+++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
@@ -1077,3 +1077,20 @@ int intel_vdsc_min_cdclk(const struct intel_crtc_state *crtc_state)
return min_cdclk;
}
+
+int intel_dsc_guardband_latency(int num_scaler_users, u64 *hscale, u64 *vscale,
+ int chroma_downscaling_factor,
+ int cdclk_prefill_adjustment,
+ int linetime)
+{
+ int dsc_prefill_latency;
+
+ dsc_prefill_latency = DIV_ROUND_UP(15 * linetime * chroma_downscaling_factor, 10);
+
+ for (int i = 0; i < num_scaler_users; i++)
+ dsc_prefill_latency = DIV_ROUND_UP_ULL(dsc_prefill_latency * hscale[i] * vscale[i],
+ 1000000);
+ dsc_prefill_latency *= cdclk_prefill_adjustment;
+
+ return dsc_prefill_latency;
+}
diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.h b/drivers/gpu/drm/i915/display/intel_vdsc.h
index 9e2812f99dd7..60aecadf95bf 100644
--- a/drivers/gpu/drm/i915/display/intel_vdsc.h
+++ b/drivers/gpu/drm/i915/display/intel_vdsc.h
@@ -32,5 +32,9 @@ void intel_dsc_dp_pps_write(struct intel_encoder *encoder,
void intel_vdsc_state_dump(struct drm_printer *p, int indent,
const struct intel_crtc_state *crtc_state);
int intel_vdsc_min_cdclk(const struct intel_crtc_state *crtc_state);
+int intel_dsc_guardband_latency(int num_scaler_users, u64 *hscale, u64 *vscale,
+ int chroma_downscaling_factor,
+ int cdclk_prefill_adjustment,
+ int linetime);
#endif /* __INTEL_VDSC_H__ */
diff --git a/drivers/gpu/drm/i915/display/skl_scaler.c b/drivers/gpu/drm/i915/display/skl_scaler.c
index af2cbd54c32e..69130744c09e 100644
--- a/drivers/gpu/drm/i915/display/skl_scaler.c
+++ b/drivers/gpu/drm/i915/display/skl_scaler.c
@@ -973,3 +973,19 @@ int skl_scaler_chroma_downscale_factor(const struct intel_crtc_state *crtc_state
{
return crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 ? 4 : 1;
}
+
+int skl_scaler_guardband_latency(int num_scaler_users, u64 hscale, u64 vscale,
+ int chroma_downscaling_factor,
+ int cdclk_prefill_adjustment,
+ int linetime)
+{
+ int scaler_prefill_latency;
+
+ scaler_prefill_latency = 4 * linetime +
+ DIV_ROUND_UP_ULL((4 * linetime * hscale * vscale *
+ chroma_downscaling_factor), 1000000);
+
+ scaler_prefill_latency *= cdclk_prefill_adjustment;
+
+ return scaler_prefill_latency;
+}
diff --git a/drivers/gpu/drm/i915/display/skl_scaler.h b/drivers/gpu/drm/i915/display/skl_scaler.h
index 257330d4c329..5aa53d576aba 100644
--- a/drivers/gpu/drm/i915/display/skl_scaler.h
+++ b/drivers/gpu/drm/i915/display/skl_scaler.h
@@ -5,6 +5,8 @@
#ifndef INTEL_SCALER_H
#define INTEL_SCALER_H
+#include <linux/types.h>
+
enum drm_mode_status;
struct drm_display_mode;
struct intel_atomic_state;
@@ -48,4 +50,9 @@ void adl_scaler_ecc_unmask(const struct intel_crtc_state *crtc_state);
int skl_scaler_chroma_downscale_factor(const struct intel_crtc_state *crtc_state);
+int skl_scaler_guardband_latency(int num_scaler_users, u64 hscale, u64 vscale,
+ int chroma_downscaling_factor,
+ int cdclk_prefill_adjustment,
+ int linetime);
+
#endif
diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c
index 2da54569f06a..deb43f0c348a 100644
--- a/drivers/gpu/drm/i915/display/skl_watermark.c
+++ b/drivers/gpu/drm/i915/display/skl_watermark.c
@@ -28,6 +28,7 @@
#include "intel_flipq.h"
#include "intel_pcode.h"
#include "intel_plane.h"
+#include "intel_vdsc.h"
#include "intel_wm.h"
#include "skl_universal_plane_regs.h"
#include "skl_scaler.h"
@@ -2182,11 +2183,12 @@ cdclk_prefill_adjustment(const struct intel_crtc_state *crtc_state)
static int
dsc_prefill_latency(const struct intel_crtc_state *crtc_state, int linetime)
{
+ const struct intel_crtc_scaler_state *scaler_state = &crtc_state->scaler_state;
+ int chroma_downscaling_factor = skl_scaler_chroma_downscale_factor(crtc_state);
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
- const struct intel_crtc_scaler_state *scaler_state =
- &crtc_state->scaler_state;
int num_scaler_users = hweight32(scaler_state->scaler_users);
- int chroma_downscaling_factor = skl_scaler_chroma_downscale_factor(crtc_state);
+ u64 hscale_k[ARRAY_SIZE(scaler_state->scalers)];
+ u64 vscale_k[ARRAY_SIZE(scaler_state->scalers)];
u32 dsc_prefill_latency = 0;
if (!crtc_state->dsc.compression_enable ||
@@ -2194,18 +2196,16 @@ dsc_prefill_latency(const struct intel_crtc_state *crtc_state, int linetime)
num_scaler_users > crtc->num_scalers)
return dsc_prefill_latency;
- dsc_prefill_latency = DIV_ROUND_UP(15 * linetime * chroma_downscaling_factor, 10);
-
for (int i = 0; i < num_scaler_users; i++) {
- u64 hscale_k, vscale_k;
-
- hscale_k = max(1000, mul_u32_u32(scaler_state->scalers[i].hscale, 1000) >> 16);
- vscale_k = max(1000, mul_u32_u32(scaler_state->scalers[i].vscale, 1000) >> 16);
- dsc_prefill_latency = DIV_ROUND_UP_ULL(dsc_prefill_latency * hscale_k * vscale_k,
- 1000000);
+ hscale_k[i] = max(1000, mul_u32_u32(scaler_state->scalers[i].hscale, 1000) >> 16);
+ vscale_k[i] = max(1000, mul_u32_u32(scaler_state->scalers[i].vscale, 1000) >> 16);
}
- dsc_prefill_latency *= cdclk_prefill_adjustment(crtc_state);
+ dsc_prefill_latency =
+ intel_dsc_guardband_latency(num_scaler_users, hscale_k, vscale_k,
+ chroma_downscaling_factor,
+ cdclk_prefill_adjustment(crtc_state),
+ linetime);
return dsc_prefill_latency;
}
@@ -2213,28 +2213,25 @@ dsc_prefill_latency(const struct intel_crtc_state *crtc_state, int linetime)
static int
scaler_prefill_latency(const struct intel_crtc_state *crtc_state, int linetime)
{
- const struct intel_crtc_scaler_state *scaler_state =
- &crtc_state->scaler_state;
+ const struct intel_crtc_scaler_state *scaler_state = &crtc_state->scaler_state;
+ int chroma_downscaling_factor = skl_scaler_chroma_downscale_factor(crtc_state);
int num_scaler_users = hweight32(scaler_state->scaler_users);
+ u64 hscale_k = 0, vscale_k = 0;
int scaler_prefill_latency = 0;
if (!num_scaler_users)
return scaler_prefill_latency;
- scaler_prefill_latency = 4 * linetime;
-
if (num_scaler_users > 1) {
- u64 hscale_k = max(1000, mul_u32_u32(scaler_state->scalers[0].hscale, 1000) >> 16);
- u64 vscale_k = max(1000, mul_u32_u32(scaler_state->scalers[0].vscale, 1000) >> 16);
- int chroma_downscaling_factor = skl_scaler_chroma_downscale_factor(crtc_state);
- int latency;
-
- latency = DIV_ROUND_UP_ULL((4 * linetime * hscale_k * vscale_k *
- chroma_downscaling_factor), 1000000);
- scaler_prefill_latency += latency;
+ hscale_k = max(1000, mul_u32_u32(scaler_state->scalers[0].hscale, 1000) >> 16);
+ vscale_k = max(1000, mul_u32_u32(scaler_state->scalers[0].vscale, 1000) >> 16);
}
- scaler_prefill_latency *= cdclk_prefill_adjustment(crtc_state);
+ scaler_prefill_latency =
+ skl_scaler_guardband_latency(num_scaler_users, hscale_k, vscale_k,
+ chroma_downscaling_factor,
+ cdclk_prefill_adjustment(crtc_state),
+ linetime);
return scaler_prefill_latency;
}
--
2.45.2
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH 06/16] drm/i915/dp: Add SDP latency computation helper
2025-10-06 4:28 [PATCH 00/16] Optimize vrr.guardband and fix LRR Ankit Nautiyal
` (4 preceding siblings ...)
2025-10-06 4:28 ` [PATCH 05/16] drm/i915/display: Extract helpers to set dsc/scaler prefill latencies Ankit Nautiyal
@ 2025-10-06 4:28 ` Ankit Nautiyal
2025-10-06 4:28 ` [PATCH 07/16] drm/i915/alpm: Add function to compute max link-wake latency Ankit Nautiyal
` (12 subsequent siblings)
18 siblings, 0 replies; 30+ messages in thread
From: Ankit Nautiyal @ 2025-10-06 4:28 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: ville.syrjala
Add a helper to compute vblank time needed for transmitting specific
DisplayPort SDPs like PPS, GAMUT_METADATA, and VSC_EXT. Latency is
based on line count per packet type and current line time.
Used to ensure adequate vblank when features like DSC/HDR are enabled.
Bspec: 70151
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
---
drivers/gpu/drm/i915/display/intel_dp.c | 47 +++++++++++++++++++++++++
drivers/gpu/drm/i915/display/intel_dp.h | 2 ++
2 files changed, 49 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 2eab591a8ef5..83c46e4680b3 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -6857,3 +6857,50 @@ void intel_dp_mst_resume(struct intel_display *display)
}
}
}
+
+static
+int intel_dp_get_sdp_latency(u32 type, int linetime_us)
+{
+ int lines;
+
+ switch (type) {
+ case DP_SDP_VSC_EXT_VESA:
+ case DP_SDP_VSC_EXT_CEA:
+ lines = 10;
+ break;
+ case HDMI_PACKET_TYPE_GAMUT_METADATA:
+ lines = 8;
+ break;
+ case DP_SDP_PPS:
+ lines = 6;
+ break;
+ default:
+ lines = 0;
+ break;
+ }
+
+ return lines * linetime_us;
+}
+
+int intel_dp_compute_sdp_latency(const struct intel_crtc_state *crtc_state,
+ bool assume_all_enabled)
+{
+ const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
+ int sdp_latency = 0;
+ int linetime_us;
+
+ linetime_us = DIV_ROUND_UP(adjusted_mode->crtc_htotal * 1000,
+ adjusted_mode->crtc_clock);
+ if (assume_all_enabled ||
+ crtc_state->infoframes.enable &
+ intel_hdmi_infoframe_enable(HDMI_PACKET_TYPE_GAMUT_METADATA))
+ sdp_latency = max(sdp_latency,
+ intel_dp_get_sdp_latency(HDMI_PACKET_TYPE_GAMUT_METADATA,
+ linetime_us));
+
+ if (assume_all_enabled || crtc_state->dsc.compression_enable)
+ sdp_latency = max(sdp_latency,
+ intel_dp_get_sdp_latency(DP_SDP_PPS, linetime_us));
+
+ return sdp_latency;
+}
diff --git a/drivers/gpu/drm/i915/display/intel_dp.h b/drivers/gpu/drm/i915/display/intel_dp.h
index f90cfd1dbbd0..d222749b191c 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.h
+++ b/drivers/gpu/drm/i915/display/intel_dp.h
@@ -215,5 +215,7 @@ int intel_dp_compute_min_hblank(struct intel_crtc_state *crtc_state,
int intel_dp_dsc_bpp_step_x16(const struct intel_connector *connector);
void intel_dp_dpcd_set_probe(struct intel_dp *intel_dp, bool force_on_external);
bool intel_dp_in_hdr_mode(const struct drm_connector_state *conn_state);
+int intel_dp_compute_sdp_latency(const struct intel_crtc_state *crtc_state,
+ bool assume_all_enabled);
#endif /* __INTEL_DP_H__ */
--
2.45.2
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH 07/16] drm/i915/alpm: Add function to compute max link-wake latency
2025-10-06 4:28 [PATCH 00/16] Optimize vrr.guardband and fix LRR Ankit Nautiyal
` (5 preceding siblings ...)
2025-10-06 4:28 ` [PATCH 06/16] drm/i915/dp: Add SDP latency computation helper Ankit Nautiyal
@ 2025-10-06 4:28 ` Ankit Nautiyal
2025-10-06 4:28 ` [PATCH 08/16] drm/i915/display: Add guardband check for feature latencies Ankit Nautiyal
` (11 subsequent siblings)
18 siblings, 0 replies; 30+ messages in thread
From: Ankit Nautiyal @ 2025-10-06 4:28 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: ville.syrjala
Introduce a helper to compute the max link wake latency when using
Auxless/Aux wake mechanism for PSR/Panel Replay/LOBF features.
This will be used to compute the minimum guardband so that the link wake
latencies are accounted and these features work smoothly for higher
refresh rate panels.
Bspec: 70151, 71477
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
---
drivers/gpu/drm/i915/display/intel_alpm.c | 15 +++++++++++++++
drivers/gpu/drm/i915/display/intel_alpm.h | 2 ++
2 files changed, 17 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c
index 749119cc0b28..df380ecf7d0f 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.c
+++ b/drivers/gpu/drm/i915/display/intel_alpm.c
@@ -598,3 +598,18 @@ bool intel_alpm_get_error(struct intel_dp *intel_dp)
return false;
}
+
+int intel_alpm_compute_max_link_wake_latency(const struct intel_crtc_state *crtc_state,
+ bool assume_all_enabled)
+{
+ int psr2_vblank_time = 0;
+ int auxless_wake_time = 0;
+
+ if (assume_all_enabled || crtc_state->has_sel_update)
+ psr2_vblank_time = io_buffer_wake_time(crtc_state);
+
+ if (assume_all_enabled || crtc_state->has_panel_replay)
+ auxless_wake_time = _lnl_compute_aux_less_wake_time(crtc_state);
+
+ return max(psr2_vblank_time, auxless_wake_time);
+}
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.h b/drivers/gpu/drm/i915/display/intel_alpm.h
index a861c20b5d79..b371827af356 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.h
+++ b/drivers/gpu/drm/i915/display/intel_alpm.h
@@ -38,4 +38,6 @@ bool intel_alpm_is_alpm_aux_less(struct intel_dp *intel_dp,
const struct intel_crtc_state *crtc_state);
void intel_alpm_disable(struct intel_dp *intel_dp);
bool intel_alpm_get_error(struct intel_dp *intel_dp);
+int intel_alpm_compute_max_link_wake_latency(const struct intel_crtc_state *crtc_state,
+ bool assume_all_enabled);
#endif
--
2.45.2
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH 08/16] drm/i915/display: Add guardband check for feature latencies
2025-10-06 4:28 [PATCH 00/16] Optimize vrr.guardband and fix LRR Ankit Nautiyal
` (6 preceding siblings ...)
2025-10-06 4:28 ` [PATCH 07/16] drm/i915/alpm: Add function to compute max link-wake latency Ankit Nautiyal
@ 2025-10-06 4:28 ` Ankit Nautiyal
2025-10-06 4:28 ` [PATCH 09/16] drm/i915/skl_watermark: Remove redundant latency checks from vblank validation Ankit Nautiyal
` (10 subsequent siblings)
18 siblings, 0 replies; 30+ messages in thread
From: Ankit Nautiyal @ 2025-10-06 4:28 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: ville.syrjala
Add a check during atomic crtc check phase to ensure the programmed VRR
guardband is sufficient to cover latencies introduced by enabled features
such as DSC, PSR/PR, scalers, and DP SDPs.
Currently, the guardband is programmed to match the vblank length, so
existing checks in skl_is_vblank_too_short() are valid. However, upcoming
changes will optimize the guardband independently of vblank, making those
checks incorrect.
Introduce an explicit guardband check to prepare for future updates
that will remove checking against the vblank length and later program an
optimized guardband.
Note: Need some work to account for package C state latency and the use
of PKG_C_Latency register. When PKG_C_LATENCY is configured hardware will
automatically wake from package C states before framestart so that
package C state latency can be considered to be 0.
v2: Use new helper for PSR2/Panel Replay latency.
v3:
- Align the name of helper with intel_crtc_atomic_check and rename it to
intel_crtc_guardband_atomic_check(). (Jani)
- Simplify checks in the helper. (Mitul)
- Make a separate helper to compute wm0 prefill time. (Mitul)
v4: Drop redundant HAS_VRR() check. (Jani).
v5:
- Use intel_usecs_to_scanlines() instead of hand rolled stuff. (Ville)
- Allow guardband check on all VRR supporting platforms.
- Add a TODO note for accounting for pkgc latency.
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com> (#v3)
---
drivers/gpu/drm/i915/display/intel_display.c | 147 +++++++++++++++++++
drivers/gpu/drm/i915/display/skl_watermark.c | 2 +-
drivers/gpu/drm/i915/display/skl_watermark.h | 1 +
3 files changed, 149 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index b57efd870774..ec415b939770 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -4189,6 +4189,147 @@ static int hsw_compute_linetime_wm(struct intel_atomic_state *state,
return 0;
}
+static int
+cdclk_prefill_adjustment(const struct intel_crtc_state *crtc_state)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+ struct intel_atomic_state *state =
+ to_intel_atomic_state(crtc_state->uapi.state);
+ const struct intel_cdclk_state *cdclk_state;
+
+ cdclk_state = intel_atomic_get_cdclk_state(state);
+ if (IS_ERR(cdclk_state)) {
+ drm_WARN_ON(display->drm, PTR_ERR(cdclk_state));
+ return 1;
+ }
+
+ return min(1, DIV_ROUND_UP(crtc_state->pixel_rate,
+ 2 * intel_cdclk_logical(cdclk_state)));
+}
+
+static int
+dsc_prefill_latency(const struct intel_crtc_state *crtc_state, int linetime)
+{
+ const struct intel_crtc_scaler_state *scaler_state = &crtc_state->scaler_state;
+ int chroma_downscaling_factor = skl_scaler_chroma_downscale_factor(crtc_state);
+ struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+ int num_scaler_users = hweight32(scaler_state->scaler_users);
+ u64 hscale_k[ARRAY_SIZE(scaler_state->scalers)];
+ u64 vscale_k[ARRAY_SIZE(scaler_state->scalers)];
+ u32 dsc_prefill_latency = 0;
+
+ if (!crtc_state->dsc.compression_enable ||
+ !num_scaler_users ||
+ num_scaler_users > crtc->num_scalers)
+ return dsc_prefill_latency;
+
+ for (int i = 0; i < num_scaler_users; i++) {
+ hscale_k[i] = max(1000, mul_u32_u32(scaler_state->scalers[i].hscale, 1000) >> 16);
+ vscale_k[i] = max(1000, mul_u32_u32(scaler_state->scalers[i].vscale, 1000) >> 16);
+ }
+
+ dsc_prefill_latency =
+ intel_dsc_guardband_latency(num_scaler_users, hscale_k, vscale_k,
+ chroma_downscaling_factor,
+ cdclk_prefill_adjustment(crtc_state),
+ linetime);
+
+ return dsc_prefill_latency;
+}
+
+static int
+scaler_prefill_latency(const struct intel_crtc_state *crtc_state, int linetime)
+{
+ const struct intel_crtc_scaler_state *scaler_state = &crtc_state->scaler_state;
+ int chroma_downscaling_factor = skl_scaler_chroma_downscale_factor(crtc_state);
+ int num_scaler_users = hweight32(scaler_state->scaler_users);
+ u64 hscale_k = 0, vscale_k = 0;
+ int scaler_prefill_latency = 0;
+
+ if (!num_scaler_users)
+ return scaler_prefill_latency;
+
+ if (num_scaler_users > 1) {
+ hscale_k = max(1000, mul_u32_u32(scaler_state->scalers[0].hscale, 1000) >> 16);
+ vscale_k = max(1000, mul_u32_u32(scaler_state->scalers[0].vscale, 1000) >> 16);
+ }
+
+ scaler_prefill_latency =
+ skl_scaler_guardband_latency(num_scaler_users, hscale_k, vscale_k,
+ chroma_downscaling_factor,
+ cdclk_prefill_adjustment(crtc_state),
+ linetime);
+
+ return scaler_prefill_latency;
+}
+
+static int
+wm0_prefill_latency(int linetime_us, int max_wm0_lines)
+{
+ return 20 + linetime_us * max_wm0_lines;
+}
+
+static int intel_crtc_guardband_atomic_check(struct intel_crtc_state *crtc_state)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+ const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
+ int dsc_prefill_time = 0;
+ int scaler_prefill_time;
+ int wm0_prefill_time;
+ int psr2_pr_latency;
+ int min_guardband;
+ int guardband_us;
+ int sagv_latency;
+ int linetime_us;
+ int sdp_latency;
+ int pm_delay;
+
+ if (!adjusted_mode->crtc_clock)
+ return 0;
+
+ linetime_us = DIV_ROUND_UP(adjusted_mode->crtc_htotal * 1000,
+ adjusted_mode->crtc_clock);
+
+ /*
+ * #TODO
+ * Account for package C state latency and setting of PKG_C_LATENCY
+ * register.
+ * When PKG_C_LATENCY is configured (not all 1s), hardware will
+ * automatically wake from package C states before framestart so
+ * that package C state latency can be considered to be 0.
+ *
+ * Use max of sagv and package C state latency.
+ */
+ sagv_latency = display->sagv.block_time_us;
+
+ wm0_prefill_time = wm0_prefill_latency(linetime_us, skl_max_wm0_lines(crtc_state));
+
+ scaler_prefill_time = scaler_prefill_latency(crtc_state, linetime_us);
+
+ dsc_prefill_time = dsc_prefill_latency(crtc_state, linetime_us);
+
+ pm_delay = crtc_state->framestart_delay +
+ sagv_latency +
+ wm0_prefill_time +
+ scaler_prefill_time +
+ dsc_prefill_time;
+
+ psr2_pr_latency = intel_alpm_compute_max_link_wake_latency(crtc_state, false);
+ sdp_latency = intel_dp_compute_sdp_latency(crtc_state, false);
+
+ guardband_us = max(sdp_latency, psr2_pr_latency);
+ guardband_us = max(guardband_us, pm_delay);
+ min_guardband = intel_usecs_to_scanlines(adjusted_mode, guardband_us);
+
+ if (crtc_state->vrr.guardband < min_guardband) {
+ drm_dbg_kms(display->drm, "vrr.guardband %d < min guardband %d\n",
+ crtc_state->vrr.guardband, min_guardband);
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
static int intel_crtc_atomic_check(struct intel_atomic_state *state,
struct intel_crtc *crtc)
{
@@ -4251,6 +4392,12 @@ static int intel_crtc_atomic_check(struct intel_atomic_state *state,
if (ret)
return ret;
+ if (intel_vrr_possible(crtc_state)) {
+ ret = intel_crtc_guardband_atomic_check(crtc_state);
+ if (ret)
+ return ret;
+ }
+
return 0;
}
diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c
index deb43f0c348a..9a368bb9e92a 100644
--- a/drivers/gpu/drm/i915/display/skl_watermark.c
+++ b/drivers/gpu/drm/i915/display/skl_watermark.c
@@ -2254,7 +2254,7 @@ skl_is_vblank_too_short(const struct intel_crtc_state *crtc_state,
adjusted_mode->crtc_vtotal - adjusted_mode->crtc_vblank_start;
}
-static int skl_max_wm0_lines(const struct intel_crtc_state *crtc_state)
+int skl_max_wm0_lines(const struct intel_crtc_state *crtc_state)
{
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
enum plane_id plane_id;
diff --git a/drivers/gpu/drm/i915/display/skl_watermark.h b/drivers/gpu/drm/i915/display/skl_watermark.h
index 62790816f030..8706c2010ebe 100644
--- a/drivers/gpu/drm/i915/display/skl_watermark.h
+++ b/drivers/gpu/drm/i915/display/skl_watermark.h
@@ -78,6 +78,7 @@ void intel_dbuf_mbus_post_ddb_update(struct intel_atomic_state *state);
void intel_program_dpkgc_latency(struct intel_atomic_state *state);
bool intel_dbuf_pmdemand_needs_update(struct intel_atomic_state *state);
+int skl_max_wm0_lines(const struct intel_crtc_state *crtc_state);
#endif /* __SKL_WATERMARK_H__ */
--
2.45.2
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH 09/16] drm/i915/skl_watermark: Remove redundant latency checks from vblank validation
2025-10-06 4:28 [PATCH 00/16] Optimize vrr.guardband and fix LRR Ankit Nautiyal
` (7 preceding siblings ...)
2025-10-06 4:28 ` [PATCH 08/16] drm/i915/display: Add guardband check for feature latencies Ankit Nautiyal
@ 2025-10-06 4:28 ` Ankit Nautiyal
2025-10-06 4:28 ` [PATCH 10/16] drm/i915/vrr: s/intel_vrr_compute_config_late/intel_vrr_compute_guardband Ankit Nautiyal
` (9 subsequent siblings)
18 siblings, 0 replies; 30+ messages in thread
From: Ankit Nautiyal @ 2025-10-06 4:28 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: ville.syrjala
Drop DSC and scaler prefill latency checks from skl_is_vblank_too_short().
These are now covered by the guardband validation added during the atomic
CRTC check phase.
This cleanup prepares for future changes where the guardband will be
optimized independently of vblank length, making vblank-based checks
obsolete.
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
---
drivers/gpu/drm/i915/display/skl_watermark.c | 80 --------------------
1 file changed, 80 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c
index 9a368bb9e92a..73e5b2d8ae83 100644
--- a/drivers/gpu/drm/i915/display/skl_watermark.c
+++ b/drivers/gpu/drm/i915/display/skl_watermark.c
@@ -28,7 +28,6 @@
#include "intel_flipq.h"
#include "intel_pcode.h"
#include "intel_plane.h"
-#include "intel_vdsc.h"
#include "intel_wm.h"
#include "skl_universal_plane_regs.h"
#include "skl_scaler.h"
@@ -2162,91 +2161,12 @@ static int icl_build_plane_wm(struct intel_crtc_state *crtc_state,
return 0;
}
-static int
-cdclk_prefill_adjustment(const struct intel_crtc_state *crtc_state)
-{
- struct intel_display *display = to_intel_display(crtc_state);
- struct intel_atomic_state *state =
- to_intel_atomic_state(crtc_state->uapi.state);
- const struct intel_cdclk_state *cdclk_state;
-
- cdclk_state = intel_atomic_get_cdclk_state(state);
- if (IS_ERR(cdclk_state)) {
- drm_WARN_ON(display->drm, PTR_ERR(cdclk_state));
- return 1;
- }
-
- return min(1, DIV_ROUND_UP(crtc_state->pixel_rate,
- 2 * intel_cdclk_logical(cdclk_state)));
-}
-
-static int
-dsc_prefill_latency(const struct intel_crtc_state *crtc_state, int linetime)
-{
- const struct intel_crtc_scaler_state *scaler_state = &crtc_state->scaler_state;
- int chroma_downscaling_factor = skl_scaler_chroma_downscale_factor(crtc_state);
- struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
- int num_scaler_users = hweight32(scaler_state->scaler_users);
- u64 hscale_k[ARRAY_SIZE(scaler_state->scalers)];
- u64 vscale_k[ARRAY_SIZE(scaler_state->scalers)];
- u32 dsc_prefill_latency = 0;
-
- if (!crtc_state->dsc.compression_enable ||
- !num_scaler_users ||
- num_scaler_users > crtc->num_scalers)
- return dsc_prefill_latency;
-
- for (int i = 0; i < num_scaler_users; i++) {
- hscale_k[i] = max(1000, mul_u32_u32(scaler_state->scalers[i].hscale, 1000) >> 16);
- vscale_k[i] = max(1000, mul_u32_u32(scaler_state->scalers[i].vscale, 1000) >> 16);
- }
-
- dsc_prefill_latency =
- intel_dsc_guardband_latency(num_scaler_users, hscale_k, vscale_k,
- chroma_downscaling_factor,
- cdclk_prefill_adjustment(crtc_state),
- linetime);
-
- return dsc_prefill_latency;
-}
-
-static int
-scaler_prefill_latency(const struct intel_crtc_state *crtc_state, int linetime)
-{
- const struct intel_crtc_scaler_state *scaler_state = &crtc_state->scaler_state;
- int chroma_downscaling_factor = skl_scaler_chroma_downscale_factor(crtc_state);
- int num_scaler_users = hweight32(scaler_state->scaler_users);
- u64 hscale_k = 0, vscale_k = 0;
- int scaler_prefill_latency = 0;
-
- if (!num_scaler_users)
- return scaler_prefill_latency;
-
- if (num_scaler_users > 1) {
- hscale_k = max(1000, mul_u32_u32(scaler_state->scalers[0].hscale, 1000) >> 16);
- vscale_k = max(1000, mul_u32_u32(scaler_state->scalers[0].vscale, 1000) >> 16);
- }
-
- scaler_prefill_latency =
- skl_scaler_guardband_latency(num_scaler_users, hscale_k, vscale_k,
- chroma_downscaling_factor,
- cdclk_prefill_adjustment(crtc_state),
- linetime);
-
- return scaler_prefill_latency;
-}
-
static bool
skl_is_vblank_too_short(const struct intel_crtc_state *crtc_state,
int wm0_lines, int latency)
{
const struct drm_display_mode *adjusted_mode =
&crtc_state->hw.adjusted_mode;
- int linetime = DIV_ROUND_UP(1000 * adjusted_mode->htotal,
- adjusted_mode->clock);
-
- latency += scaler_prefill_latency(crtc_state, linetime) +
- dsc_prefill_latency(crtc_state, linetime);
return crtc_state->framestart_delay +
intel_usecs_to_scanlines(adjusted_mode, latency) +
--
2.45.2
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH 10/16] drm/i915/vrr: s/intel_vrr_compute_config_late/intel_vrr_compute_guardband
2025-10-06 4:28 [PATCH 00/16] Optimize vrr.guardband and fix LRR Ankit Nautiyal
` (8 preceding siblings ...)
2025-10-06 4:28 ` [PATCH 09/16] drm/i915/skl_watermark: Remove redundant latency checks from vblank validation Ankit Nautiyal
@ 2025-10-06 4:28 ` Ankit Nautiyal
2025-10-06 4:28 ` [PATCH 11/16] drm/i915/vblank: Add helper to get correct vblank length Ankit Nautiyal
` (8 subsequent siblings)
18 siblings, 0 replies; 30+ messages in thread
From: Ankit Nautiyal @ 2025-10-06 4:28 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: ville.syrjala
The helper intel_vrr_compute_config_late() practically just computes the
guardband. Rename intel_vrr_compute_config_late() to
intel_vrr_compute_guardband().
Since we are going to compute the guardband and then move the
vblank_start for optmizing guardband, move the helper to
intel_crtc_compute_config() which handles such changes.
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 4 ++--
drivers/gpu/drm/i915/display/intel_vrr.c | 2 +-
drivers/gpu/drm/i915/display/intel_vrr.h | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index ec415b939770..b2d4e24fd7c6 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -2414,6 +2414,8 @@ static int intel_crtc_compute_config(struct intel_atomic_state *state,
if (ret)
return ret;
+ intel_vrr_compute_guardband(crtc_state);
+
ret = intel_dpll_crtc_compute_clock(state, crtc);
if (ret)
return ret;
@@ -4869,8 +4871,6 @@ intel_modeset_pipe_config_late(struct intel_atomic_state *state,
struct drm_connector *connector;
int i;
- intel_vrr_compute_config_late(crtc_state);
-
for_each_new_connector_in_state(&state->base, connector,
conn_state, i) {
struct intel_encoder *encoder =
diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c b/drivers/gpu/drm/i915/display/intel_vrr.c
index 4bc14b5e685f..8d71d7dc9d12 100644
--- a/drivers/gpu/drm/i915/display/intel_vrr.c
+++ b/drivers/gpu/drm/i915/display/intel_vrr.c
@@ -433,7 +433,7 @@ intel_vrr_max_guardband(struct intel_crtc_state *crtc_state)
intel_vrr_max_vblank_guardband(crtc_state));
}
-void intel_vrr_compute_config_late(struct intel_crtc_state *crtc_state)
+void intel_vrr_compute_guardband(struct intel_crtc_state *crtc_state)
{
struct intel_display *display = to_intel_display(crtc_state);
const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
diff --git a/drivers/gpu/drm/i915/display/intel_vrr.h b/drivers/gpu/drm/i915/display/intel_vrr.h
index 7317f8730089..bc9044621635 100644
--- a/drivers/gpu/drm/i915/display/intel_vrr.h
+++ b/drivers/gpu/drm/i915/display/intel_vrr.h
@@ -21,7 +21,7 @@ bool intel_vrr_possible(const struct intel_crtc_state *crtc_state);
void intel_vrr_check_modeset(struct intel_atomic_state *state);
void intel_vrr_compute_config(struct intel_crtc_state *crtc_state,
struct drm_connector_state *conn_state);
-void intel_vrr_compute_config_late(struct intel_crtc_state *crtc_state);
+void intel_vrr_compute_guardband(struct intel_crtc_state *crtc_state);
void intel_vrr_set_transcoder_timings(const struct intel_crtc_state *crtc_state);
void intel_vrr_enable(const struct intel_crtc_state *crtc_state);
void intel_vrr_send_push(struct intel_dsb *dsb,
--
2.45.2
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH 11/16] drm/i915/vblank: Add helper to get correct vblank length
2025-10-06 4:28 [PATCH 00/16] Optimize vrr.guardband and fix LRR Ankit Nautiyal
` (9 preceding siblings ...)
2025-10-06 4:28 ` [PATCH 10/16] drm/i915/vrr: s/intel_vrr_compute_config_late/intel_vrr_compute_guardband Ankit Nautiyal
@ 2025-10-06 4:28 ` Ankit Nautiyal
2025-10-06 19:56 ` Ville Syrjälä
2025-10-06 4:28 ` [PATCH 12/16] drm/i915/vrr: Recompute vblank_start for platforms with always-on VRR TG Ankit Nautiyal
` (7 subsequent siblings)
18 siblings, 1 reply; 30+ messages in thread
From: Ankit Nautiyal @ 2025-10-06 4:28 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: ville.syrjala
Currently crtc_vblank_start is assumed to be the vblank_start for the fixed
refresh rate case. That value can be different from the variable refresh
rate case whenever always_use_vrr_tg()==false. On icl/tgl it's always
different due to the extra vblank delay, and also on adl+ it could be
different if we were to use an optimized guardband.
So places where crtc_vblank_start is used to compute vblank length needs
change so as to account for cases where vrr is enabled. Specifically
with vrr.enable the effective vblank length is actually guardband.
Add a helper to get the correct vblank length for both vrr and fixed
refresh rate cases. Use this helper where vblank_start is used to
compute the vblank length.
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
---
drivers/gpu/drm/i915/display/intel_pfit.c | 11 +++++++----
drivers/gpu/drm/i915/display/intel_psr.c | 3 +--
drivers/gpu/drm/i915/display/intel_vblank.c | 10 ++++++++++
drivers/gpu/drm/i915/display/intel_vblank.h | 2 ++
drivers/gpu/drm/i915/display/skl_watermark.c | 3 ++-
5 files changed, 22 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_pfit.c b/drivers/gpu/drm/i915/display/intel_pfit.c
index 68539e7c2a24..ebbaa1d419ba 100644
--- a/drivers/gpu/drm/i915/display/intel_pfit.c
+++ b/drivers/gpu/drm/i915/display/intel_pfit.c
@@ -14,6 +14,7 @@
#include "intel_lvds_regs.h"
#include "intel_pfit.h"
#include "intel_pfit_regs.h"
+#include "intel_vblank.h"
#include "skl_scaler.h"
static int intel_pch_pfit_check_dst_window(const struct intel_crtc_state *crtc_state)
@@ -306,14 +307,15 @@ centre_horizontally(struct drm_display_mode *adjusted_mode,
}
static void
-centre_vertically(struct drm_display_mode *adjusted_mode,
+centre_vertically(struct intel_crtc_state *crtc_state,
+ struct drm_display_mode *adjusted_mode,
int height)
{
u32 border, sync_pos, blank_width, sync_width;
/* keep the vsync and vblank widths constant */
sync_width = adjusted_mode->crtc_vsync_end - adjusted_mode->crtc_vsync_start;
- blank_width = adjusted_mode->crtc_vblank_end - adjusted_mode->crtc_vblank_start;
+ blank_width = intel_crtc_vblank_length(crtc_state);
sync_pos = (blank_width - sync_width + 1) / 2;
border = (adjusted_mode->crtc_vdisplay - height + 1) / 2;
@@ -392,7 +394,8 @@ static void i9xx_scale_aspect(struct intel_crtc_state *crtc_state,
PFIT_HORIZ_INTERP_BILINEAR);
}
} else if (scaled_width < scaled_height) { /* letter */
- centre_vertically(adjusted_mode,
+ centre_vertically(crtc_state,
+ adjusted_mode,
scaled_width / pipe_src_w);
*border = LVDS_BORDER_ENABLE;
@@ -489,7 +492,7 @@ static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
* heights and modify the values programmed into the CRTC.
*/
centre_horizontally(adjusted_mode, pipe_src_w);
- centre_vertically(adjusted_mode, pipe_src_h);
+ centre_vertically(crtc_state, adjusted_mode, pipe_src_h);
border = LVDS_BORDER_ENABLE;
break;
case DRM_MODE_SCALE_ASPECT:
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
index f7115969b4c5..ae6b94a5d450 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -1365,8 +1365,7 @@ static bool wake_lines_fit_into_vblank(struct intel_dp *intel_dp,
bool aux_less)
{
struct intel_display *display = to_intel_display(intel_dp);
- int vblank = crtc_state->hw.adjusted_mode.crtc_vblank_end -
- crtc_state->hw.adjusted_mode.crtc_vblank_start;
+ int vblank = intel_crtc_vblank_length(crtc_state);
int wake_lines;
if (aux_less)
diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c b/drivers/gpu/drm/i915/display/intel_vblank.c
index 0b7fcc05e64c..2fc0c1c0bb87 100644
--- a/drivers/gpu/drm/i915/display/intel_vblank.c
+++ b/drivers/gpu/drm/i915/display/intel_vblank.c
@@ -767,3 +767,13 @@ int intel_vblank_evade(struct intel_vblank_evade_ctx *evade)
return scanline;
}
+
+int intel_crtc_vblank_length(const struct intel_crtc_state *crtc_state)
+{
+ const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
+
+ if (crtc_state->vrr.enable)
+ return crtc_state->vrr.guardband;
+ else
+ return adjusted_mode->crtc_vtotal - adjusted_mode->crtc_vblank_start;
+}
diff --git a/drivers/gpu/drm/i915/display/intel_vblank.h b/drivers/gpu/drm/i915/display/intel_vblank.h
index 21fbb08d61d5..98d04cacd65f 100644
--- a/drivers/gpu/drm/i915/display/intel_vblank.h
+++ b/drivers/gpu/drm/i915/display/intel_vblank.h
@@ -48,4 +48,6 @@ const struct intel_crtc_state *
intel_pre_commit_crtc_state(struct intel_atomic_state *state,
struct intel_crtc *crtc);
+int intel_crtc_vblank_length(const struct intel_crtc_state *crtc_state);
+
#endif /* __INTEL_VBLANK_H__ */
diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c
index 73e5b2d8ae83..6fb2c78fe29b 100644
--- a/drivers/gpu/drm/i915/display/skl_watermark.c
+++ b/drivers/gpu/drm/i915/display/skl_watermark.c
@@ -28,6 +28,7 @@
#include "intel_flipq.h"
#include "intel_pcode.h"
#include "intel_plane.h"
+#include "intel_vblank.h"
#include "intel_wm.h"
#include "skl_universal_plane_regs.h"
#include "skl_scaler.h"
@@ -2171,7 +2172,7 @@ skl_is_vblank_too_short(const struct intel_crtc_state *crtc_state,
return crtc_state->framestart_delay +
intel_usecs_to_scanlines(adjusted_mode, latency) +
wm0_lines >
- adjusted_mode->crtc_vtotal - adjusted_mode->crtc_vblank_start;
+ intel_crtc_vblank_length(crtc_state);
}
int skl_max_wm0_lines(const struct intel_crtc_state *crtc_state)
--
2.45.2
^ permalink raw reply related [flat|nested] 30+ messages in thread* Re: [PATCH 11/16] drm/i915/vblank: Add helper to get correct vblank length
2025-10-06 4:28 ` [PATCH 11/16] drm/i915/vblank: Add helper to get correct vblank length Ankit Nautiyal
@ 2025-10-06 19:56 ` Ville Syrjälä
2025-10-07 5:52 ` Nautiyal, Ankit K
0 siblings, 1 reply; 30+ messages in thread
From: Ville Syrjälä @ 2025-10-06 19:56 UTC (permalink / raw)
To: Ankit Nautiyal; +Cc: intel-gfx, intel-xe
On Mon, Oct 06, 2025 at 09:58:47AM +0530, Ankit Nautiyal wrote:
> Currently crtc_vblank_start is assumed to be the vblank_start for the fixed
> refresh rate case. That value can be different from the variable refresh
> rate case whenever always_use_vrr_tg()==false. On icl/tgl it's always
> different due to the extra vblank delay, and also on adl+ it could be
> different if we were to use an optimized guardband.
>
> So places where crtc_vblank_start is used to compute vblank length needs
> change so as to account for cases where vrr is enabled. Specifically
> with vrr.enable the effective vblank length is actually guardband.
>
> Add a helper to get the correct vblank length for both vrr and fixed
> refresh rate cases. Use this helper where vblank_start is used to
> compute the vblank length.
>
> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_pfit.c | 11 +++++++----
> drivers/gpu/drm/i915/display/intel_psr.c | 3 +--
> drivers/gpu/drm/i915/display/intel_vblank.c | 10 ++++++++++
> drivers/gpu/drm/i915/display/intel_vblank.h | 2 ++
> drivers/gpu/drm/i915/display/skl_watermark.c | 3 ++-
> 5 files changed, 22 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_pfit.c b/drivers/gpu/drm/i915/display/intel_pfit.c
> index 68539e7c2a24..ebbaa1d419ba 100644
> --- a/drivers/gpu/drm/i915/display/intel_pfit.c
> +++ b/drivers/gpu/drm/i915/display/intel_pfit.c
> @@ -14,6 +14,7 @@
> #include "intel_lvds_regs.h"
> #include "intel_pfit.h"
> #include "intel_pfit_regs.h"
> +#include "intel_vblank.h"
> #include "skl_scaler.h"
>
> static int intel_pch_pfit_check_dst_window(const struct intel_crtc_state *crtc_state)
> @@ -306,14 +307,15 @@ centre_horizontally(struct drm_display_mode *adjusted_mode,
> }
>
> static void
> -centre_vertically(struct drm_display_mode *adjusted_mode,
> +centre_vertically(struct intel_crtc_state *crtc_state,
> + struct drm_display_mode *adjusted_mode,
> int height)
> {
> u32 border, sync_pos, blank_width, sync_width;
>
> /* keep the vsync and vblank widths constant */
> sync_width = adjusted_mode->crtc_vsync_end - adjusted_mode->crtc_vsync_start;
> - blank_width = adjusted_mode->crtc_vblank_end - adjusted_mode->crtc_vblank_start;
> + blank_width = intel_crtc_vblank_length(crtc_state);
This pfit stuff is computed way before the guardband, and also only
relevant for ancient gen2-4 hardware. So no point in touching this
stuff IMO.
> sync_pos = (blank_width - sync_width + 1) / 2;
>
> border = (adjusted_mode->crtc_vdisplay - height + 1) / 2;
> @@ -392,7 +394,8 @@ static void i9xx_scale_aspect(struct intel_crtc_state *crtc_state,
> PFIT_HORIZ_INTERP_BILINEAR);
> }
> } else if (scaled_width < scaled_height) { /* letter */
> - centre_vertically(adjusted_mode,
> + centre_vertically(crtc_state,
> + adjusted_mode,
> scaled_width / pipe_src_w);
>
> *border = LVDS_BORDER_ENABLE;
> @@ -489,7 +492,7 @@ static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
> * heights and modify the values programmed into the CRTC.
> */
> centre_horizontally(adjusted_mode, pipe_src_w);
> - centre_vertically(adjusted_mode, pipe_src_h);
> + centre_vertically(crtc_state, adjusted_mode, pipe_src_h);
> border = LVDS_BORDER_ENABLE;
> break;
> case DRM_MODE_SCALE_ASPECT:
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
> index f7115969b4c5..ae6b94a5d450 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -1365,8 +1365,7 @@ static bool wake_lines_fit_into_vblank(struct intel_dp *intel_dp,
> bool aux_less)
> {
> struct intel_display *display = to_intel_display(intel_dp);
> - int vblank = crtc_state->hw.adjusted_mode.crtc_vblank_end -
> - crtc_state->hw.adjusted_mode.crtc_vblank_start;
> + int vblank = intel_crtc_vblank_length(crtc_state);
I *think* this also gets computed during .compute_config() which is
before the guardband calculation. So if this stuff actually depends on
the guardband then we have a real problem here. And if it doesn't (as
in it really interested in the undelayed vblank length) them maybe it
should just compute it as crtc_vtotal-crtc_vactive.
> int wake_lines;
>
> if (aux_less)
> diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c b/drivers/gpu/drm/i915/display/intel_vblank.c
> index 0b7fcc05e64c..2fc0c1c0bb87 100644
> --- a/drivers/gpu/drm/i915/display/intel_vblank.c
> +++ b/drivers/gpu/drm/i915/display/intel_vblank.c
> @@ -767,3 +767,13 @@ int intel_vblank_evade(struct intel_vblank_evade_ctx *evade)
>
> return scanline;
> }
> +
> +int intel_crtc_vblank_length(const struct intel_crtc_state *crtc_state)
> +{
> + const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
> +
> + if (crtc_state->vrr.enable)
> + return crtc_state->vrr.guardband;
> + else
> + return adjusted_mode->crtc_vtotal - adjusted_mode->crtc_vblank_start;
Maybe that should be crtc_vblank_end instead of crtc_vtotal? I guess it
doesn't actually matter given where this gets used.
I think the only case where vblank_end!=vtotal is exactly than ancient
gen2-4 pfit centering stuff. But I've never actually investigated
whether the exact value of vblank_end there even matters. I should do
that one day...
> +}
> diff --git a/drivers/gpu/drm/i915/display/intel_vblank.h b/drivers/gpu/drm/i915/display/intel_vblank.h
> index 21fbb08d61d5..98d04cacd65f 100644
> --- a/drivers/gpu/drm/i915/display/intel_vblank.h
> +++ b/drivers/gpu/drm/i915/display/intel_vblank.h
> @@ -48,4 +48,6 @@ const struct intel_crtc_state *
> intel_pre_commit_crtc_state(struct intel_atomic_state *state,
> struct intel_crtc *crtc);
>
> +int intel_crtc_vblank_length(const struct intel_crtc_state *crtc_state);
> +
> #endif /* __INTEL_VBLANK_H__ */
> diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c
> index 73e5b2d8ae83..6fb2c78fe29b 100644
> --- a/drivers/gpu/drm/i915/display/skl_watermark.c
> +++ b/drivers/gpu/drm/i915/display/skl_watermark.c
> @@ -28,6 +28,7 @@
> #include "intel_flipq.h"
> #include "intel_pcode.h"
> #include "intel_plane.h"
> +#include "intel_vblank.h"
> #include "intel_wm.h"
> #include "skl_universal_plane_regs.h"
> #include "skl_scaler.h"
> @@ -2171,7 +2172,7 @@ skl_is_vblank_too_short(const struct intel_crtc_state *crtc_state,
> return crtc_state->framestart_delay +
> intel_usecs_to_scanlines(adjusted_mode, latency) +
> wm0_lines >
> - adjusted_mode->crtc_vtotal - adjusted_mode->crtc_vblank_start;
> + intel_crtc_vblank_length(crtc_state);
> }
>
> int skl_max_wm0_lines(const struct intel_crtc_state *crtc_state)
> --
> 2.45.2
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 30+ messages in thread* Re: [PATCH 11/16] drm/i915/vblank: Add helper to get correct vblank length
2025-10-06 19:56 ` Ville Syrjälä
@ 2025-10-07 5:52 ` Nautiyal, Ankit K
2025-10-07 15:16 ` Ville Syrjälä
0 siblings, 1 reply; 30+ messages in thread
From: Nautiyal, Ankit K @ 2025-10-07 5:52 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-gfx, intel-xe
On 10/7/2025 1:26 AM, Ville Syrjälä wrote:
> On Mon, Oct 06, 2025 at 09:58:47AM +0530, Ankit Nautiyal wrote:
>> Currently crtc_vblank_start is assumed to be the vblank_start for the fixed
>> refresh rate case. That value can be different from the variable refresh
>> rate case whenever always_use_vrr_tg()==false. On icl/tgl it's always
>> different due to the extra vblank delay, and also on adl+ it could be
>> different if we were to use an optimized guardband.
>>
>> So places where crtc_vblank_start is used to compute vblank length needs
>> change so as to account for cases where vrr is enabled. Specifically
>> with vrr.enable the effective vblank length is actually guardband.
>>
>> Add a helper to get the correct vblank length for both vrr and fixed
>> refresh rate cases. Use this helper where vblank_start is used to
>> compute the vblank length.
>>
>> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
>> ---
>> drivers/gpu/drm/i915/display/intel_pfit.c | 11 +++++++----
>> drivers/gpu/drm/i915/display/intel_psr.c | 3 +--
>> drivers/gpu/drm/i915/display/intel_vblank.c | 10 ++++++++++
>> drivers/gpu/drm/i915/display/intel_vblank.h | 2 ++
>> drivers/gpu/drm/i915/display/skl_watermark.c | 3 ++-
>> 5 files changed, 22 insertions(+), 7 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_pfit.c b/drivers/gpu/drm/i915/display/intel_pfit.c
>> index 68539e7c2a24..ebbaa1d419ba 100644
>> --- a/drivers/gpu/drm/i915/display/intel_pfit.c
>> +++ b/drivers/gpu/drm/i915/display/intel_pfit.c
>> @@ -14,6 +14,7 @@
>> #include "intel_lvds_regs.h"
>> #include "intel_pfit.h"
>> #include "intel_pfit_regs.h"
>> +#include "intel_vblank.h"
>> #include "skl_scaler.h"
>>
>> static int intel_pch_pfit_check_dst_window(const struct intel_crtc_state *crtc_state)
>> @@ -306,14 +307,15 @@ centre_horizontally(struct drm_display_mode *adjusted_mode,
>> }
>>
>> static void
>> -centre_vertically(struct drm_display_mode *adjusted_mode,
>> +centre_vertically(struct intel_crtc_state *crtc_state,
>> + struct drm_display_mode *adjusted_mode,
>> int height)
>> {
>> u32 border, sync_pos, blank_width, sync_width;
>>
>> /* keep the vsync and vblank widths constant */
>> sync_width = adjusted_mode->crtc_vsync_end - adjusted_mode->crtc_vsync_start;
>> - blank_width = adjusted_mode->crtc_vblank_end - adjusted_mode->crtc_vblank_start;
>> + blank_width = intel_crtc_vblank_length(crtc_state);
> This pfit stuff is computed way before the guardband, and also only
> relevant for ancient gen2-4 hardware. So no point in touching this
> stuff IMO.
Alright can skip this stuff.
>
>> sync_pos = (blank_width - sync_width + 1) / 2;
>>
>> border = (adjusted_mode->crtc_vdisplay - height + 1) / 2;
>> @@ -392,7 +394,8 @@ static void i9xx_scale_aspect(struct intel_crtc_state *crtc_state,
>> PFIT_HORIZ_INTERP_BILINEAR);
>> }
>> } else if (scaled_width < scaled_height) { /* letter */
>> - centre_vertically(adjusted_mode,
>> + centre_vertically(crtc_state,
>> + adjusted_mode,
>> scaled_width / pipe_src_w);
>>
>> *border = LVDS_BORDER_ENABLE;
>> @@ -489,7 +492,7 @@ static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
>> * heights and modify the values programmed into the CRTC.
>> */
>> centre_horizontally(adjusted_mode, pipe_src_w);
>> - centre_vertically(adjusted_mode, pipe_src_h);
>> + centre_vertically(crtc_state, adjusted_mode, pipe_src_h);
>> border = LVDS_BORDER_ENABLE;
>> break;
>> case DRM_MODE_SCALE_ASPECT:
>> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
>> index f7115969b4c5..ae6b94a5d450 100644
>> --- a/drivers/gpu/drm/i915/display/intel_psr.c
>> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
>> @@ -1365,8 +1365,7 @@ static bool wake_lines_fit_into_vblank(struct intel_dp *intel_dp,
>> bool aux_less)
>> {
>> struct intel_display *display = to_intel_display(intel_dp);
>> - int vblank = crtc_state->hw.adjusted_mode.crtc_vblank_end -
>> - crtc_state->hw.adjusted_mode.crtc_vblank_start;
>> + int vblank = intel_crtc_vblank_length(crtc_state);
> I *think* this also gets computed during .compute_config() which is
> before the guardband calculation. So if this stuff actually depends on
> the guardband then we have a real problem here. And if it doesn't (as
> in it really interested in the undelayed vblank length) them maybe it
> should just compute it as crtc_vtotal-crtc_vactive.
As far as I understand it depends on guardband for VRR case.
For non vrr case : crtc_vtotal - crtc_vactive - scl lines
For vrr case: guardband length.
Currently since guardband is equal to vblank length this can be
crtc_vtotal - crtc_vactive - scl lines.
Perhaps with the optimized guardband, we need to set the guardband
during intel_vrr_compute_config().
Later intel_psr_compute_config gets called and then we can check the
guardband.
>
>> int wake_lines;
>>
>> if (aux_less)
>> diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c b/drivers/gpu/drm/i915/display/intel_vblank.c
>> index 0b7fcc05e64c..2fc0c1c0bb87 100644
>> --- a/drivers/gpu/drm/i915/display/intel_vblank.c
>> +++ b/drivers/gpu/drm/i915/display/intel_vblank.c
>> @@ -767,3 +767,13 @@ int intel_vblank_evade(struct intel_vblank_evade_ctx *evade)
>>
>> return scanline;
>> }
>> +
>> +int intel_crtc_vblank_length(const struct intel_crtc_state *crtc_state)
>> +{
>> + const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
>> +
>> + if (crtc_state->vrr.enable)
>> + return crtc_state->vrr.guardband;
>> + else
>> + return adjusted_mode->crtc_vtotal - adjusted_mode->crtc_vblank_start;
> Maybe that should be crtc_vblank_end instead of crtc_vtotal? I guess it
> doesn't actually matter given where this gets used.
We can use Vblank end.
Apart from these places, do you think there are more places where
vblank_start adjustement is required?
For evasion logic and wait for push in case of VRR, we are already using
vmin_vtotal - guardband to get the delayed vblank start so we are covered.
Regards,
Ankit
>
> I think the only case where vblank_end!=vtotal is exactly than ancient
> gen2-4 pfit centering stuff. But I've never actually investigated
> whether the exact value of vblank_end there even matters. I should do
> that one day...
>
>> +}
>> diff --git a/drivers/gpu/drm/i915/display/intel_vblank.h b/drivers/gpu/drm/i915/display/intel_vblank.h
>> index 21fbb08d61d5..98d04cacd65f 100644
>> --- a/drivers/gpu/drm/i915/display/intel_vblank.h
>> +++ b/drivers/gpu/drm/i915/display/intel_vblank.h
>> @@ -48,4 +48,6 @@ const struct intel_crtc_state *
>> intel_pre_commit_crtc_state(struct intel_atomic_state *state,
>> struct intel_crtc *crtc);
>>
>> +int intel_crtc_vblank_length(const struct intel_crtc_state *crtc_state);
>> +
>> #endif /* __INTEL_VBLANK_H__ */
>> diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c
>> index 73e5b2d8ae83..6fb2c78fe29b 100644
>> --- a/drivers/gpu/drm/i915/display/skl_watermark.c
>> +++ b/drivers/gpu/drm/i915/display/skl_watermark.c
>> @@ -28,6 +28,7 @@
>> #include "intel_flipq.h"
>> #include "intel_pcode.h"
>> #include "intel_plane.h"
>> +#include "intel_vblank.h"
>> #include "intel_wm.h"
>> #include "skl_universal_plane_regs.h"
>> #include "skl_scaler.h"
>> @@ -2171,7 +2172,7 @@ skl_is_vblank_too_short(const struct intel_crtc_state *crtc_state,
>> return crtc_state->framestart_delay +
>> intel_usecs_to_scanlines(adjusted_mode, latency) +
>> wm0_lines >
>> - adjusted_mode->crtc_vtotal - adjusted_mode->crtc_vblank_start;
>> + intel_crtc_vblank_length(crtc_state);
>> }
>>
>> int skl_max_wm0_lines(const struct intel_crtc_state *crtc_state)
>> --
>> 2.45.2
^ permalink raw reply [flat|nested] 30+ messages in thread* Re: [PATCH 11/16] drm/i915/vblank: Add helper to get correct vblank length
2025-10-07 5:52 ` Nautiyal, Ankit K
@ 2025-10-07 15:16 ` Ville Syrjälä
2025-10-07 17:30 ` Ville Syrjälä
0 siblings, 1 reply; 30+ messages in thread
From: Ville Syrjälä @ 2025-10-07 15:16 UTC (permalink / raw)
To: Nautiyal, Ankit K; +Cc: intel-gfx, intel-xe
On Tue, Oct 07, 2025 at 11:22:44AM +0530, Nautiyal, Ankit K wrote:
>
> On 10/7/2025 1:26 AM, Ville Syrjälä wrote:
> > On Mon, Oct 06, 2025 at 09:58:47AM +0530, Ankit Nautiyal wrote:
> >> Currently crtc_vblank_start is assumed to be the vblank_start for the fixed
> >> refresh rate case. That value can be different from the variable refresh
> >> rate case whenever always_use_vrr_tg()==false. On icl/tgl it's always
> >> different due to the extra vblank delay, and also on adl+ it could be
> >> different if we were to use an optimized guardband.
> >>
> >> So places where crtc_vblank_start is used to compute vblank length needs
> >> change so as to account for cases where vrr is enabled. Specifically
> >> with vrr.enable the effective vblank length is actually guardband.
> >>
> >> Add a helper to get the correct vblank length for both vrr and fixed
> >> refresh rate cases. Use this helper where vblank_start is used to
> >> compute the vblank length.
> >>
> >> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> >> ---
> >> drivers/gpu/drm/i915/display/intel_pfit.c | 11 +++++++----
> >> drivers/gpu/drm/i915/display/intel_psr.c | 3 +--
> >> drivers/gpu/drm/i915/display/intel_vblank.c | 10 ++++++++++
> >> drivers/gpu/drm/i915/display/intel_vblank.h | 2 ++
> >> drivers/gpu/drm/i915/display/skl_watermark.c | 3 ++-
> >> 5 files changed, 22 insertions(+), 7 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/i915/display/intel_pfit.c b/drivers/gpu/drm/i915/display/intel_pfit.c
> >> index 68539e7c2a24..ebbaa1d419ba 100644
> >> --- a/drivers/gpu/drm/i915/display/intel_pfit.c
> >> +++ b/drivers/gpu/drm/i915/display/intel_pfit.c
> >> @@ -14,6 +14,7 @@
> >> #include "intel_lvds_regs.h"
> >> #include "intel_pfit.h"
> >> #include "intel_pfit_regs.h"
> >> +#include "intel_vblank.h"
> >> #include "skl_scaler.h"
> >>
> >> static int intel_pch_pfit_check_dst_window(const struct intel_crtc_state *crtc_state)
> >> @@ -306,14 +307,15 @@ centre_horizontally(struct drm_display_mode *adjusted_mode,
> >> }
> >>
> >> static void
> >> -centre_vertically(struct drm_display_mode *adjusted_mode,
> >> +centre_vertically(struct intel_crtc_state *crtc_state,
> >> + struct drm_display_mode *adjusted_mode,
> >> int height)
> >> {
> >> u32 border, sync_pos, blank_width, sync_width;
> >>
> >> /* keep the vsync and vblank widths constant */
> >> sync_width = adjusted_mode->crtc_vsync_end - adjusted_mode->crtc_vsync_start;
> >> - blank_width = adjusted_mode->crtc_vblank_end - adjusted_mode->crtc_vblank_start;
> >> + blank_width = intel_crtc_vblank_length(crtc_state);
> > This pfit stuff is computed way before the guardband, and also only
> > relevant for ancient gen2-4 hardware. So no point in touching this
> > stuff IMO.
>
> Alright can skip this stuff.
>
>
> >
> >> sync_pos = (blank_width - sync_width + 1) / 2;
> >>
> >> border = (adjusted_mode->crtc_vdisplay - height + 1) / 2;
> >> @@ -392,7 +394,8 @@ static void i9xx_scale_aspect(struct intel_crtc_state *crtc_state,
> >> PFIT_HORIZ_INTERP_BILINEAR);
> >> }
> >> } else if (scaled_width < scaled_height) { /* letter */
> >> - centre_vertically(adjusted_mode,
> >> + centre_vertically(crtc_state,
> >> + adjusted_mode,
> >> scaled_width / pipe_src_w);
> >>
> >> *border = LVDS_BORDER_ENABLE;
> >> @@ -489,7 +492,7 @@ static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
> >> * heights and modify the values programmed into the CRTC.
> >> */
> >> centre_horizontally(adjusted_mode, pipe_src_w);
> >> - centre_vertically(adjusted_mode, pipe_src_h);
> >> + centre_vertically(crtc_state, adjusted_mode, pipe_src_h);
> >> border = LVDS_BORDER_ENABLE;
> >> break;
> >> case DRM_MODE_SCALE_ASPECT:
> >> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
> >> index f7115969b4c5..ae6b94a5d450 100644
> >> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> >> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> >> @@ -1365,8 +1365,7 @@ static bool wake_lines_fit_into_vblank(struct intel_dp *intel_dp,
> >> bool aux_less)
> >> {
> >> struct intel_display *display = to_intel_display(intel_dp);
> >> - int vblank = crtc_state->hw.adjusted_mode.crtc_vblank_end -
> >> - crtc_state->hw.adjusted_mode.crtc_vblank_start;
> >> + int vblank = intel_crtc_vblank_length(crtc_state);
> > I *think* this also gets computed during .compute_config() which is
> > before the guardband calculation. So if this stuff actually depends on
> > the guardband then we have a real problem here. And if it doesn't (as
> > in it really interested in the undelayed vblank length) them maybe it
> > should just compute it as crtc_vtotal-crtc_vactive.
>
> As far as I understand it depends on guardband for VRR case.
> For non vrr case : crtc_vtotal - crtc_vactive - scl lines
> For vrr case: guardband length.
>
> Currently since guardband is equal to vblank length this can be
> crtc_vtotal - crtc_vactive - scl lines.
>
> Perhaps with the optimized guardband, we need to set the guardband
> during intel_vrr_compute_config().
>
> Later intel_psr_compute_config gets called and then we can check the
> guardband.
Originally we moved the vblank delay calculation to happen later
because we needed to know about PSR for it to be done correctly.
I think someone will need to try to actually write down all the
requirements from both PSR and VRR side and sides and come up
with a way to get it all done in the right order, without any
more chicken vs. egg problems.
>
>
> >
> >> int wake_lines;
> >>
> >> if (aux_less)
> >> diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c b/drivers/gpu/drm/i915/display/intel_vblank.c
> >> index 0b7fcc05e64c..2fc0c1c0bb87 100644
> >> --- a/drivers/gpu/drm/i915/display/intel_vblank.c
> >> +++ b/drivers/gpu/drm/i915/display/intel_vblank.c
> >> @@ -767,3 +767,13 @@ int intel_vblank_evade(struct intel_vblank_evade_ctx *evade)
> >>
> >> return scanline;
> >> }
> >> +
> >> +int intel_crtc_vblank_length(const struct intel_crtc_state *crtc_state)
> >> +{
> >> + const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
> >> +
> >> + if (crtc_state->vrr.enable)
> >> + return crtc_state->vrr.guardband;
> >> + else
> >> + return adjusted_mode->crtc_vtotal - adjusted_mode->crtc_vblank_start;
> > Maybe that should be crtc_vblank_end instead of crtc_vtotal? I guess it
> > doesn't actually matter given where this gets used.
>
> We can use Vblank end.
>
> Apart from these places, do you think there are more places where
> vblank_start adjustement is required?
> For evasion logic and wait for push in case of VRR, we are already using
> vmin_vtotal - guardband to get the delayed vblank start so we are covered.
>
> Regards,
>
> Ankit
>
> >
> > I think the only case where vblank_end!=vtotal is exactly than ancient
> > gen2-4 pfit centering stuff. But I've never actually investigated
> > whether the exact value of vblank_end there even matters. I should do
> > that one day...
> >
> >> +}
> >> diff --git a/drivers/gpu/drm/i915/display/intel_vblank.h b/drivers/gpu/drm/i915/display/intel_vblank.h
> >> index 21fbb08d61d5..98d04cacd65f 100644
> >> --- a/drivers/gpu/drm/i915/display/intel_vblank.h
> >> +++ b/drivers/gpu/drm/i915/display/intel_vblank.h
> >> @@ -48,4 +48,6 @@ const struct intel_crtc_state *
> >> intel_pre_commit_crtc_state(struct intel_atomic_state *state,
> >> struct intel_crtc *crtc);
> >>
> >> +int intel_crtc_vblank_length(const struct intel_crtc_state *crtc_state);
> >> +
> >> #endif /* __INTEL_VBLANK_H__ */
> >> diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c
> >> index 73e5b2d8ae83..6fb2c78fe29b 100644
> >> --- a/drivers/gpu/drm/i915/display/skl_watermark.c
> >> +++ b/drivers/gpu/drm/i915/display/skl_watermark.c
> >> @@ -28,6 +28,7 @@
> >> #include "intel_flipq.h"
> >> #include "intel_pcode.h"
> >> #include "intel_plane.h"
> >> +#include "intel_vblank.h"
> >> #include "intel_wm.h"
> >> #include "skl_universal_plane_regs.h"
> >> #include "skl_scaler.h"
> >> @@ -2171,7 +2172,7 @@ skl_is_vblank_too_short(const struct intel_crtc_state *crtc_state,
> >> return crtc_state->framestart_delay +
> >> intel_usecs_to_scanlines(adjusted_mode, latency) +
> >> wm0_lines >
> >> - adjusted_mode->crtc_vtotal - adjusted_mode->crtc_vblank_start;
> >> + intel_crtc_vblank_length(crtc_state);
> >> }
> >>
> >> int skl_max_wm0_lines(const struct intel_crtc_state *crtc_state)
> >> --
> >> 2.45.2
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 30+ messages in thread* Re: [PATCH 11/16] drm/i915/vblank: Add helper to get correct vblank length
2025-10-07 15:16 ` Ville Syrjälä
@ 2025-10-07 17:30 ` Ville Syrjälä
2025-10-08 6:34 ` Nautiyal, Ankit K
0 siblings, 1 reply; 30+ messages in thread
From: Ville Syrjälä @ 2025-10-07 17:30 UTC (permalink / raw)
To: Nautiyal, Ankit K; +Cc: intel-gfx, intel-xe
On Tue, Oct 07, 2025 at 06:16:57PM +0300, Ville Syrjälä wrote:
> On Tue, Oct 07, 2025 at 11:22:44AM +0530, Nautiyal, Ankit K wrote:
> >
> > On 10/7/2025 1:26 AM, Ville Syrjälä wrote:
> > > On Mon, Oct 06, 2025 at 09:58:47AM +0530, Ankit Nautiyal wrote:
> > >> Currently crtc_vblank_start is assumed to be the vblank_start for the fixed
> > >> refresh rate case. That value can be different from the variable refresh
> > >> rate case whenever always_use_vrr_tg()==false. On icl/tgl it's always
> > >> different due to the extra vblank delay, and also on adl+ it could be
> > >> different if we were to use an optimized guardband.
> > >>
> > >> So places where crtc_vblank_start is used to compute vblank length needs
> > >> change so as to account for cases where vrr is enabled. Specifically
> > >> with vrr.enable the effective vblank length is actually guardband.
> > >>
> > >> Add a helper to get the correct vblank length for both vrr and fixed
> > >> refresh rate cases. Use this helper where vblank_start is used to
> > >> compute the vblank length.
> > >>
> > >> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> > >> ---
> > >> drivers/gpu/drm/i915/display/intel_pfit.c | 11 +++++++----
> > >> drivers/gpu/drm/i915/display/intel_psr.c | 3 +--
> > >> drivers/gpu/drm/i915/display/intel_vblank.c | 10 ++++++++++
> > >> drivers/gpu/drm/i915/display/intel_vblank.h | 2 ++
> > >> drivers/gpu/drm/i915/display/skl_watermark.c | 3 ++-
> > >> 5 files changed, 22 insertions(+), 7 deletions(-)
> > >>
> > >> diff --git a/drivers/gpu/drm/i915/display/intel_pfit.c b/drivers/gpu/drm/i915/display/intel_pfit.c
> > >> index 68539e7c2a24..ebbaa1d419ba 100644
> > >> --- a/drivers/gpu/drm/i915/display/intel_pfit.c
> > >> +++ b/drivers/gpu/drm/i915/display/intel_pfit.c
> > >> @@ -14,6 +14,7 @@
> > >> #include "intel_lvds_regs.h"
> > >> #include "intel_pfit.h"
> > >> #include "intel_pfit_regs.h"
> > >> +#include "intel_vblank.h"
> > >> #include "skl_scaler.h"
> > >>
> > >> static int intel_pch_pfit_check_dst_window(const struct intel_crtc_state *crtc_state)
> > >> @@ -306,14 +307,15 @@ centre_horizontally(struct drm_display_mode *adjusted_mode,
> > >> }
> > >>
> > >> static void
> > >> -centre_vertically(struct drm_display_mode *adjusted_mode,
> > >> +centre_vertically(struct intel_crtc_state *crtc_state,
> > >> + struct drm_display_mode *adjusted_mode,
> > >> int height)
> > >> {
> > >> u32 border, sync_pos, blank_width, sync_width;
> > >>
> > >> /* keep the vsync and vblank widths constant */
> > >> sync_width = adjusted_mode->crtc_vsync_end - adjusted_mode->crtc_vsync_start;
> > >> - blank_width = adjusted_mode->crtc_vblank_end - adjusted_mode->crtc_vblank_start;
> > >> + blank_width = intel_crtc_vblank_length(crtc_state);
> > > This pfit stuff is computed way before the guardband, and also only
> > > relevant for ancient gen2-4 hardware. So no point in touching this
> > > stuff IMO.
> >
> > Alright can skip this stuff.
> >
> >
> > >
> > >> sync_pos = (blank_width - sync_width + 1) / 2;
> > >>
> > >> border = (adjusted_mode->crtc_vdisplay - height + 1) / 2;
> > >> @@ -392,7 +394,8 @@ static void i9xx_scale_aspect(struct intel_crtc_state *crtc_state,
> > >> PFIT_HORIZ_INTERP_BILINEAR);
> > >> }
> > >> } else if (scaled_width < scaled_height) { /* letter */
> > >> - centre_vertically(adjusted_mode,
> > >> + centre_vertically(crtc_state,
> > >> + adjusted_mode,
> > >> scaled_width / pipe_src_w);
> > >>
> > >> *border = LVDS_BORDER_ENABLE;
> > >> @@ -489,7 +492,7 @@ static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
> > >> * heights and modify the values programmed into the CRTC.
> > >> */
> > >> centre_horizontally(adjusted_mode, pipe_src_w);
> > >> - centre_vertically(adjusted_mode, pipe_src_h);
> > >> + centre_vertically(crtc_state, adjusted_mode, pipe_src_h);
> > >> border = LVDS_BORDER_ENABLE;
> > >> break;
> > >> case DRM_MODE_SCALE_ASPECT:
> > >> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
> > >> index f7115969b4c5..ae6b94a5d450 100644
> > >> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> > >> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> > >> @@ -1365,8 +1365,7 @@ static bool wake_lines_fit_into_vblank(struct intel_dp *intel_dp,
> > >> bool aux_less)
> > >> {
> > >> struct intel_display *display = to_intel_display(intel_dp);
> > >> - int vblank = crtc_state->hw.adjusted_mode.crtc_vblank_end -
> > >> - crtc_state->hw.adjusted_mode.crtc_vblank_start;
> > >> + int vblank = intel_crtc_vblank_length(crtc_state);
> > > I *think* this also gets computed during .compute_config() which is
> > > before the guardband calculation. So if this stuff actually depends on
> > > the guardband then we have a real problem here. And if it doesn't (as
> > > in it really interested in the undelayed vblank length) them maybe it
> > > should just compute it as crtc_vtotal-crtc_vactive.
> >
> > As far as I understand it depends on guardband for VRR case.
> > For non vrr case : crtc_vtotal - crtc_vactive - scl lines
> > For vrr case: guardband length.
> >
> > Currently since guardband is equal to vblank length this can be
> > crtc_vtotal - crtc_vactive - scl lines.
> >
> > Perhaps with the optimized guardband, we need to set the guardband
> > during intel_vrr_compute_config().
> >
> > Later intel_psr_compute_config gets called and then we can check the
> > guardband.
>
> Originally we moved the vblank delay calculation to happen later
> because we needed to know about PSR for it to be done correctly.
> I think someone will need to try to actually write down all the
> requirements from both PSR and VRR side and sides and come up
> with a way to get it all done in the right order, without any
> more chicken vs. egg problems.
I haven't actually checked any of PSR details here, but I'm thinking
if my assumptions hold that there is a dependency both ways, we migth
need soemthing like this:
1. .compute_config()
Check if PSR is generallty possible/desired, and verify that a maximum
guardband would suffice for PSR (this check could also take PSR specific
SCL requirements into consideration)
2. compute_scl()
Bump SCL if PSR (or anything else) needs it
3. vrr_compute_guardband()
Try to accomodate PSR requirements, but don't worry if we can't satisy
that
.compute_config_late()
Check whether the actual guardband is sufficient for PSR, and
calculate any other state that depends on the guardband. If not,
disable PSR (hopefully we can still do that at this point...)
I think that might generally work (if the assumption about being
able to revert the early PSR decision in .compute_config_late()
is valid).
The only corner case I see is if something else requires
bumping SCL and that reduces the guardband below what PSR needs.
But perhaps we should not worry about such issues, unless perhaps
that other SCL bumping requirement can be trivially accomodated
in the PSR .compute_config() as well.
Or I suppose we might try to see if we could compute SCL (considering
only the non-PSR requirements) even earlier (as in before PSR
.compute_config()), and then have the PSR code itself bump SCL if
required during .compute_config(). But this sort of approach we could
look into later, doesn't have to be done now IMO.
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 30+ messages in thread* Re: [PATCH 11/16] drm/i915/vblank: Add helper to get correct vblank length
2025-10-07 17:30 ` Ville Syrjälä
@ 2025-10-08 6:34 ` Nautiyal, Ankit K
0 siblings, 0 replies; 30+ messages in thread
From: Nautiyal, Ankit K @ 2025-10-08 6:34 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-gfx, intel-xe
On 10/7/2025 11:00 PM, Ville Syrjälä wrote:
> On Tue, Oct 07, 2025 at 06:16:57PM +0300, Ville Syrjälä wrote:
>> On Tue, Oct 07, 2025 at 11:22:44AM +0530, Nautiyal, Ankit K wrote:
>>> On 10/7/2025 1:26 AM, Ville Syrjälä wrote:
>>>> On Mon, Oct 06, 2025 at 09:58:47AM +0530, Ankit Nautiyal wrote:
>>>>> Currently crtc_vblank_start is assumed to be the vblank_start for the fixed
>>>>> refresh rate case. That value can be different from the variable refresh
>>>>> rate case whenever always_use_vrr_tg()==false. On icl/tgl it's always
>>>>> different due to the extra vblank delay, and also on adl+ it could be
>>>>> different if we were to use an optimized guardband.
>>>>>
>>>>> So places where crtc_vblank_start is used to compute vblank length needs
>>>>> change so as to account for cases where vrr is enabled. Specifically
>>>>> with vrr.enable the effective vblank length is actually guardband.
>>>>>
>>>>> Add a helper to get the correct vblank length for both vrr and fixed
>>>>> refresh rate cases. Use this helper where vblank_start is used to
>>>>> compute the vblank length.
>>>>>
>>>>> Signed-off-by: Ankit Nautiyal<ankit.k.nautiyal@intel.com>
>>>>> ---
>>>>> drivers/gpu/drm/i915/display/intel_pfit.c | 11 +++++++----
>>>>> drivers/gpu/drm/i915/display/intel_psr.c | 3 +--
>>>>> drivers/gpu/drm/i915/display/intel_vblank.c | 10 ++++++++++
>>>>> drivers/gpu/drm/i915/display/intel_vblank.h | 2 ++
>>>>> drivers/gpu/drm/i915/display/skl_watermark.c | 3 ++-
>>>>> 5 files changed, 22 insertions(+), 7 deletions(-)
>>>>>
>>>>> diff --git a/drivers/gpu/drm/i915/display/intel_pfit.c b/drivers/gpu/drm/i915/display/intel_pfit.c
>>>>> index 68539e7c2a24..ebbaa1d419ba 100644
>>>>> --- a/drivers/gpu/drm/i915/display/intel_pfit.c
>>>>> +++ b/drivers/gpu/drm/i915/display/intel_pfit.c
>>>>> @@ -14,6 +14,7 @@
>>>>> #include "intel_lvds_regs.h"
>>>>> #include "intel_pfit.h"
>>>>> #include "intel_pfit_regs.h"
>>>>> +#include "intel_vblank.h"
>>>>> #include "skl_scaler.h"
>>>>>
>>>>> static int intel_pch_pfit_check_dst_window(const struct intel_crtc_state *crtc_state)
>>>>> @@ -306,14 +307,15 @@ centre_horizontally(struct drm_display_mode *adjusted_mode,
>>>>> }
>>>>>
>>>>> static void
>>>>> -centre_vertically(struct drm_display_mode *adjusted_mode,
>>>>> +centre_vertically(struct intel_crtc_state *crtc_state,
>>>>> + struct drm_display_mode *adjusted_mode,
>>>>> int height)
>>>>> {
>>>>> u32 border, sync_pos, blank_width, sync_width;
>>>>>
>>>>> /* keep the vsync and vblank widths constant */
>>>>> sync_width = adjusted_mode->crtc_vsync_end - adjusted_mode->crtc_vsync_start;
>>>>> - blank_width = adjusted_mode->crtc_vblank_end - adjusted_mode->crtc_vblank_start;
>>>>> + blank_width = intel_crtc_vblank_length(crtc_state);
>>>> This pfit stuff is computed way before the guardband, and also only
>>>> relevant for ancient gen2-4 hardware. So no point in touching this
>>>> stuff IMO.
>>> Alright can skip this stuff.
>>>
>>>
>>>>> sync_pos = (blank_width - sync_width + 1) / 2;
>>>>>
>>>>> border = (adjusted_mode->crtc_vdisplay - height + 1) / 2;
>>>>> @@ -392,7 +394,8 @@ static void i9xx_scale_aspect(struct intel_crtc_state *crtc_state,
>>>>> PFIT_HORIZ_INTERP_BILINEAR);
>>>>> }
>>>>> } else if (scaled_width < scaled_height) { /* letter */
>>>>> - centre_vertically(adjusted_mode,
>>>>> + centre_vertically(crtc_state,
>>>>> + adjusted_mode,
>>>>> scaled_width / pipe_src_w);
>>>>>
>>>>> *border = LVDS_BORDER_ENABLE;
>>>>> @@ -489,7 +492,7 @@ static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
>>>>> * heights and modify the values programmed into the CRTC.
>>>>> */
>>>>> centre_horizontally(adjusted_mode, pipe_src_w);
>>>>> - centre_vertically(adjusted_mode, pipe_src_h);
>>>>> + centre_vertically(crtc_state, adjusted_mode, pipe_src_h);
>>>>> border = LVDS_BORDER_ENABLE;
>>>>> break;
>>>>> case DRM_MODE_SCALE_ASPECT:
>>>>> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
>>>>> index f7115969b4c5..ae6b94a5d450 100644
>>>>> --- a/drivers/gpu/drm/i915/display/intel_psr.c
>>>>> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
>>>>> @@ -1365,8 +1365,7 @@ static bool wake_lines_fit_into_vblank(struct intel_dp *intel_dp,
>>>>> bool aux_less)
>>>>> {
>>>>> struct intel_display *display = to_intel_display(intel_dp);
>>>>> - int vblank = crtc_state->hw.adjusted_mode.crtc_vblank_end -
>>>>> - crtc_state->hw.adjusted_mode.crtc_vblank_start;
>>>>> + int vblank = intel_crtc_vblank_length(crtc_state);
>>>> I *think* this also gets computed during .compute_config() which is
>>>> before the guardband calculation. So if this stuff actually depends on
>>>> the guardband then we have a real problem here. And if it doesn't (as
>>>> in it really interested in the undelayed vblank length) them maybe it
>>>> should just compute it as crtc_vtotal-crtc_vactive.
>>> As far as I understand it depends on guardband for VRR case.
>>> For non vrr case : crtc_vtotal - crtc_vactive - scl lines
>>> For vrr case: guardband length.
>>>
>>> Currently since guardband is equal to vblank length this can be
>>> crtc_vtotal - crtc_vactive - scl lines.
>>>
>>> Perhaps with the optimized guardband, we need to set the guardband
>>> during intel_vrr_compute_config().
>>>
>>> Later intel_psr_compute_config gets called and then we can check the
>>> guardband.
>> Originally we moved the vblank delay calculation to happen later
>> because we needed to know about PSR for it to be done correctly.
>> I think someone will need to try to actually write down all the
>> requirements from both PSR and VRR side and sides and come up
>> with a way to get it all done in the right order, without any
>> more chicken vs. egg problems.
> I haven't actually checked any of PSR details here, but I'm thinking
> if my assumptions hold that there is a dependency both ways, we migth
> need soemthing like this:
>
> 1. .compute_config()
> Check if PSR is generallty possible/desired, and verify that a maximum
> guardband would suffice for PSR (this check could also take PSR specific
> SCL requirements into consideration)
psr_compute_config currently checks for wake_lines_fit_into_vblank().
So here we continue to check against maximum guardband (vblank_length)
So only thing to add here is the SCL considerations.
> 2. compute_scl()
> Bump SCL if PSR (or anything else) needs it
This is already there, so we are good.
> 3. vrr_compute_guardband()
> Try to accomodate PSR requirements, but don't worry if we can't satisy
> that
Hmm here currently we are not checking anything.
With optimized guardband we must check with max psr requirements and not
the current psr requirements.
(With VRR psr will be off so we don't want to change guardband here)
> .compute_config_late()
> Check whether the actual guardband is sufficient for PSR, and
> calculate any other state that depends on the guardband. If not,
> disable PSR (hopefully we can still do that at this point...)
Can try disabling psr here if the guardband is not sufficient with
actual psr requirements.
We can check here for other latencies also e.g. SDP.
But scaler related latencies we cannot check here.
Coming back to this patch to use the vblank_start adjustment, I guess we
need to re-evaluate.
Regards,
Ankit
> I think that might generally work (if the assumption about being
> able to revert the early PSR decision in .compute_config_late()
> is valid).
>
> The only corner case I see is if something else requires
> bumping SCL and that reduces the guardband below what PSR needs.
> But perhaps we should not worry about such issues, unless perhaps
> that other SCL bumping requirement can be trivially accomodated
> in the PSR .compute_config() as well.
>
> Or I suppose we might try to see if we could compute SCL (considering
> only the non-PSR requirements) even earlier (as in before PSR
> .compute_config()), and then have the PSR code itself bump SCL if
> required during .compute_config(). But this sort of approach we could
> look into later, doesn't have to be done now IMO.
>
^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH 12/16] drm/i915/vrr: Recompute vblank_start for platforms with always-on VRR TG
2025-10-06 4:28 [PATCH 00/16] Optimize vrr.guardband and fix LRR Ankit Nautiyal
` (10 preceding siblings ...)
2025-10-06 4:28 ` [PATCH 11/16] drm/i915/vblank: Add helper to get correct vblank length Ankit Nautiyal
@ 2025-10-06 4:28 ` Ankit Nautiyal
2025-10-06 4:28 ` [PATCH 13/16] drm/i915/display: Add vblank_start adjustment logic for " Ankit Nautiyal
` (6 subsequent siblings)
18 siblings, 0 replies; 30+ messages in thread
From: Ankit Nautiyal @ 2025-10-06 4:28 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: ville.syrjala
Currently, crtc_vblank_start is read from either the VBLANK_START register
(on pre-ADL platforms) or computed as vdisplay + set_context_latency in
intel_get_transcoder_timings().
This works when the entire vblank region after vdisplay is treated as
guardband, i.e.:
delayed vblank start = vdisplay + SCL = vtotal - guardband.
However, with optimized guardband, the guardband becomes shorter, and the
delayed vblank_start moves further away from vdisplay.
For platforms where intel_vrr_always_use_vrr_tg == false, the delayed
vblank start is only relevant in VRR mode. We retain the original
crtc_vblank_start and apply adjustments in VRR-specific paths. Evasion
logic, push clear already use vtotal - guardband directly for VRR case.
On platforms where intel_vrr_always_use_vrr_tg == true, the delayed
vblank_start is used in both fixed and VRR modes. So we need to change the
crtc_vblank_start so that fixed rr case works properly.
Therefore for the readout, we need to overwrite crtc_vblank_start
with vtotal - guardband to ensure correct behavior across both modes.
This change prepares the pipeline for optimized guardband usage by ensuring
crtc_vblank_start reflects the correct timing on platforms with always-on
VRR TG.
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
---
drivers/gpu/drm/i915/display/intel_vrr.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c b/drivers/gpu/drm/i915/display/intel_vrr.c
index 8d71d7dc9d12..221b25832e56 100644
--- a/drivers/gpu/drm/i915/display/intel_vrr.c
+++ b/drivers/gpu/drm/i915/display/intel_vrr.c
@@ -821,6 +821,20 @@ void intel_vrr_get_config(struct intel_crtc_state *crtc_state)
*/
if (crtc_state->vrr.enable)
crtc_state->mode_flags |= I915_MODE_FLAG_VRR;
+
+ /*
+ * For platforms that always use the VRR timing generator, we overwrite
+ * crtc_vblank_start with vtotal - guardband to reflect the delayed
+ * vblank start. This works for both default and optimized guardband values.
+ * On other platforms, we keep the original value from
+ * intel_get_transcoder_timings() and apply adjustments only in VRR-specific
+ * paths as needed.
+ */
+ if (intel_vrr_always_use_vrr_tg(display))
+ crtc_state->hw.adjusted_mode.crtc_vblank_start =
+ crtc_state->hw.adjusted_mode.crtc_vtotal -
+ crtc_state->vrr.guardband;
+
}
int intel_vrr_safe_window_start(const struct intel_crtc_state *crtc_state)
--
2.45.2
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH 13/16] drm/i915/display: Add vblank_start adjustment logic for always-on VRR TG
2025-10-06 4:28 [PATCH 00/16] Optimize vrr.guardband and fix LRR Ankit Nautiyal
` (11 preceding siblings ...)
2025-10-06 4:28 ` [PATCH 12/16] drm/i915/vrr: Recompute vblank_start for platforms with always-on VRR TG Ankit Nautiyal
@ 2025-10-06 4:28 ` Ankit Nautiyal
2025-10-06 19:56 ` Ville Syrjälä
2025-10-06 4:28 ` [PATCH 14/16] drm/i915/vrr: Introduce helper to compute min static guardband Ankit Nautiyal
` (5 subsequent siblings)
18 siblings, 1 reply; 30+ messages in thread
From: Ankit Nautiyal @ 2025-10-06 4:28 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: ville.syrjala
As we move towards using a shorter, optimized guardband, we need to adjust
how the delayed vblank start is computed.
Introduce intel_crtc_compute_vrr_guardband() to handle guardband
computation and apply vblank_start adjustment for platforms that always use
the VRR timing generator.
This function wraps the existing intel_vrr_compute_guardband() and adjusts
crtc_vblank_start using (vblank_length - guardband) only when
intel_vrr_always_use_vrr_tg() is true. Since the guardband is not yet
optimized, the adjustment currently evaluates to zero, preserving existing
behavior.
This paves way for guardband optimization, by handling the movement of
the crtc_vblank_start for platforms that have VRR TG always active.
Also update allow_vblank_delay_fastset() to permit vblank delay adjustments
during fastboot when VRR TG is always active, even without inherited state.
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 33 ++++++++++++++++++--
1 file changed, 30 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index b2d4e24fd7c6..1964e41b5704 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -2403,6 +2403,27 @@ static int intel_crtc_compute_set_context_latency(struct intel_atomic_state *sta
return 0;
}
+static void intel_crtc_compute_vrr_guardband(struct intel_atomic_state *state,
+ struct intel_crtc *crtc)
+{
+ struct intel_display *display = to_intel_display(state);
+ struct intel_crtc_state *crtc_state =
+ intel_atomic_get_new_crtc_state(state, crtc);
+ struct drm_display_mode *adjusted_mode =
+ &crtc_state->hw.adjusted_mode;
+
+ intel_vrr_compute_guardband(crtc_state);
+
+ if (intel_vrr_always_use_vrr_tg(display)) {
+ int vblank_length = adjusted_mode->crtc_vtotal -
+ (crtc_state->set_context_latency +
+ adjusted_mode->crtc_vdisplay);
+
+ adjusted_mode->crtc_vblank_start +=
+ vblank_length - crtc_state->vrr.guardband;
+ }
+}
+
static int intel_crtc_compute_config(struct intel_atomic_state *state,
struct intel_crtc *crtc)
{
@@ -2414,7 +2435,7 @@ static int intel_crtc_compute_config(struct intel_atomic_state *state,
if (ret)
return ret;
- intel_vrr_compute_guardband(crtc_state);
+ intel_crtc_compute_vrr_guardband(state, crtc);
ret = intel_dpll_crtc_compute_clock(state, crtc);
if (ret)
@@ -5105,9 +5126,15 @@ static bool allow_vblank_delay_fastset(const struct intel_crtc_state *old_crtc_s
* Allow fastboot to fix up vblank delay (handled via LRR
* codepaths), a bit dodgy as the registers aren't
* double buffered but seems to be working more or less...
+ *
+ * Also allow this when the VRR timing generator is always on,
+ * which implies optimized guardband is used. In such cases,
+ * vblank delay may vary even without inherited state, but it's
+ * still safe as VRR guardband is still same.
*/
- return HAS_LRR(display) && old_crtc_state->inherited &&
- !intel_crtc_has_type(old_crtc_state, INTEL_OUTPUT_DSI);
+ return HAS_LRR(display) &&
+ (old_crtc_state->inherited || intel_vrr_always_use_vrr_tg(display)) &&
+ !intel_crtc_has_type(old_crtc_state, INTEL_OUTPUT_DSI);
}
bool
--
2.45.2
^ permalink raw reply related [flat|nested] 30+ messages in thread* Re: [PATCH 13/16] drm/i915/display: Add vblank_start adjustment logic for always-on VRR TG
2025-10-06 4:28 ` [PATCH 13/16] drm/i915/display: Add vblank_start adjustment logic for " Ankit Nautiyal
@ 2025-10-06 19:56 ` Ville Syrjälä
2025-10-07 6:30 ` Nautiyal, Ankit K
0 siblings, 1 reply; 30+ messages in thread
From: Ville Syrjälä @ 2025-10-06 19:56 UTC (permalink / raw)
To: Ankit Nautiyal; +Cc: intel-gfx, intel-xe
On Mon, Oct 06, 2025 at 09:58:49AM +0530, Ankit Nautiyal wrote:
> As we move towards using a shorter, optimized guardband, we need to adjust
> how the delayed vblank start is computed.
>
> Introduce intel_crtc_compute_vrr_guardband() to handle guardband
> computation and apply vblank_start adjustment for platforms that always use
> the VRR timing generator.
>
> This function wraps the existing intel_vrr_compute_guardband() and adjusts
> crtc_vblank_start using (vblank_length - guardband) only when
> intel_vrr_always_use_vrr_tg() is true. Since the guardband is not yet
> optimized, the adjustment currently evaluates to zero, preserving existing
> behavior.
>
> This paves way for guardband optimization, by handling the movement of
> the crtc_vblank_start for platforms that have VRR TG always active.
>
> Also update allow_vblank_delay_fastset() to permit vblank delay adjustments
> during fastboot when VRR TG is always active, even without inherited state.
>
> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_display.c | 33 ++++++++++++++++++--
> 1 file changed, 30 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index b2d4e24fd7c6..1964e41b5704 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -2403,6 +2403,27 @@ static int intel_crtc_compute_set_context_latency(struct intel_atomic_state *sta
> return 0;
> }
>
> +static void intel_crtc_compute_vrr_guardband(struct intel_atomic_state *state,
> + struct intel_crtc *crtc)
Why this wrapper? You could just stick the adjustemnt into
intel_vrr_compute_guardband().
> +{
> + struct intel_display *display = to_intel_display(state);
> + struct intel_crtc_state *crtc_state =
> + intel_atomic_get_new_crtc_state(state, crtc);
> + struct drm_display_mode *adjusted_mode =
> + &crtc_state->hw.adjusted_mode;
> +
> + intel_vrr_compute_guardband(crtc_state);
> +
> + if (intel_vrr_always_use_vrr_tg(display)) {
> + int vblank_length = adjusted_mode->crtc_vtotal -
> + (crtc_state->set_context_latency +
> + adjusted_mode->crtc_vdisplay);
> +
> + adjusted_mode->crtc_vblank_start +=
> + vblank_length - crtc_state->vrr.guardband;
Why aren't you using the same 'vblank_start = vtotal-guardband' here as
during readout?
> + }
> +}
> +
> static int intel_crtc_compute_config(struct intel_atomic_state *state,
> struct intel_crtc *crtc)
> {
> @@ -2414,7 +2435,7 @@ static int intel_crtc_compute_config(struct intel_atomic_state *state,
> if (ret)
> return ret;
>
> - intel_vrr_compute_guardband(crtc_state);
> + intel_crtc_compute_vrr_guardband(state, crtc);
>
> ret = intel_dpll_crtc_compute_clock(state, crtc);
> if (ret)
> @@ -5105,9 +5126,15 @@ static bool allow_vblank_delay_fastset(const struct intel_crtc_state *old_crtc_s
> * Allow fastboot to fix up vblank delay (handled via LRR
> * codepaths), a bit dodgy as the registers aren't
> * double buffered but seems to be working more or less...
> + *
> + * Also allow this when the VRR timing generator is always on,
> + * which implies optimized guardband is used. In such cases,
> + * vblank delay may vary even without inherited state, but it's
> + * still safe as VRR guardband is still same.
> */
> - return HAS_LRR(display) && old_crtc_state->inherited &&
> - !intel_crtc_has_type(old_crtc_state, INTEL_OUTPUT_DSI);
> + return HAS_LRR(display) &&
> + (old_crtc_state->inherited || intel_vrr_always_use_vrr_tg(display)) &&
> + !intel_crtc_has_type(old_crtc_state, INTEL_OUTPUT_DSI);
This part doesn't seem directly related to the making crtc_vblank_start
correct. We still use the non-optimzied guardband so crtc_vblank_start
should not be changing during normal runtime operation.
> }
>
> bool
> --
> 2.45.2
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 30+ messages in thread* Re: [PATCH 13/16] drm/i915/display: Add vblank_start adjustment logic for always-on VRR TG
2025-10-06 19:56 ` Ville Syrjälä
@ 2025-10-07 6:30 ` Nautiyal, Ankit K
2025-10-07 15:19 ` Ville Syrjälä
0 siblings, 1 reply; 30+ messages in thread
From: Nautiyal, Ankit K @ 2025-10-07 6:30 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-gfx, intel-xe
On 10/7/2025 1:26 AM, Ville Syrjälä wrote:
> On Mon, Oct 06, 2025 at 09:58:49AM +0530, Ankit Nautiyal wrote:
>> As we move towards using a shorter, optimized guardband, we need to adjust
>> how the delayed vblank start is computed.
>>
>> Introduce intel_crtc_compute_vrr_guardband() to handle guardband
>> computation and apply vblank_start adjustment for platforms that always use
>> the VRR timing generator.
>>
>> This function wraps the existing intel_vrr_compute_guardband() and adjusts
>> crtc_vblank_start using (vblank_length - guardband) only when
>> intel_vrr_always_use_vrr_tg() is true. Since the guardband is not yet
>> optimized, the adjustment currently evaluates to zero, preserving existing
>> behavior.
>>
>> This paves way for guardband optimization, by handling the movement of
>> the crtc_vblank_start for platforms that have VRR TG always active.
>>
>> Also update allow_vblank_delay_fastset() to permit vblank delay adjustments
>> during fastboot when VRR TG is always active, even without inherited state.
>>
>> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
>> ---
>> drivers/gpu/drm/i915/display/intel_display.c | 33 ++++++++++++++++++--
>> 1 file changed, 30 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
>> index b2d4e24fd7c6..1964e41b5704 100644
>> --- a/drivers/gpu/drm/i915/display/intel_display.c
>> +++ b/drivers/gpu/drm/i915/display/intel_display.c
>> @@ -2403,6 +2403,27 @@ static int intel_crtc_compute_set_context_latency(struct intel_atomic_state *sta
>> return 0;
>> }
>>
>> +static void intel_crtc_compute_vrr_guardband(struct intel_atomic_state *state,
>> + struct intel_crtc *crtc)
> Why this wrapper? You could just stick the adjustemnt into
> intel_vrr_compute_guardband().
The idea was to prepare for the optimized guardband which needs
connector also.
In subsequent patch I am getting the connector here to use the optimized
guardband only for platforms with always_use_vrr_tg=true.
And at last I am making changes in intel_vrr_compute_guardband() itself.
As for this patch I can just avoid the wrapper and just use the adjustment.
>
>> +{
>> + struct intel_display *display = to_intel_display(state);
>> + struct intel_crtc_state *crtc_state =
>> + intel_atomic_get_new_crtc_state(state, crtc);
>> + struct drm_display_mode *adjusted_mode =
>> + &crtc_state->hw.adjusted_mode;
>> +
>> + intel_vrr_compute_guardband(crtc_state);
>> +
>> + if (intel_vrr_always_use_vrr_tg(display)) {
>> + int vblank_length = adjusted_mode->crtc_vtotal -
>> + (crtc_state->set_context_latency +
>> + adjusted_mode->crtc_vdisplay);
>> +
>> + adjusted_mode->crtc_vblank_start +=
>> + vblank_length - crtc_state->vrr.guardband;
> Why aren't you using the same 'vblank_start = vtotal-guardband' here as
> during readout?
Hmm I was thinking this more as change in the vblank_start. In
compute_set_context_latency we move the vblank_start by SCL lines. Here
we move further as much amount as the change in guardband.
But I guess that is not very intuitive, so I will just set
crtc_vblank_start as vtotal - guardband here.
>
>> + }
>> +}
>> +
>> static int intel_crtc_compute_config(struct intel_atomic_state *state,
>> struct intel_crtc *crtc)
>> {
>> @@ -2414,7 +2435,7 @@ static int intel_crtc_compute_config(struct intel_atomic_state *state,
>> if (ret)
>> return ret;
>>
>> - intel_vrr_compute_guardband(crtc_state);
>> + intel_crtc_compute_vrr_guardband(state, crtc);
>>
>> ret = intel_dpll_crtc_compute_clock(state, crtc);
>> if (ret)
>> @@ -5105,9 +5126,15 @@ static bool allow_vblank_delay_fastset(const struct intel_crtc_state *old_crtc_s
>> * Allow fastboot to fix up vblank delay (handled via LRR
>> * codepaths), a bit dodgy as the registers aren't
>> * double buffered but seems to be working more or less...
>> + *
>> + * Also allow this when the VRR timing generator is always on,
>> + * which implies optimized guardband is used. In such cases,
>> + * vblank delay may vary even without inherited state, but it's
>> + * still safe as VRR guardband is still same.
>> */
>> - return HAS_LRR(display) && old_crtc_state->inherited &&
>> - !intel_crtc_has_type(old_crtc_state, INTEL_OUTPUT_DSI);
>> + return HAS_LRR(display) &&
>> + (old_crtc_state->inherited || intel_vrr_always_use_vrr_tg(display)) &&
>> + !intel_crtc_has_type(old_crtc_state, INTEL_OUTPUT_DSI);
> This part doesn't seem directly related to the making crtc_vblank_start
> correct. We still use the non-optimzied guardband so crtc_vblank_start
> should not be changing during normal runtime operation.
Yes we do not need this at this time, but only when we really start
using optimized guardband.
I can make it as a separate function.
Regards,
Ankit
>> }
>>
>> bool
>> --
>> 2.45.2
^ permalink raw reply [flat|nested] 30+ messages in thread* Re: [PATCH 13/16] drm/i915/display: Add vblank_start adjustment logic for always-on VRR TG
2025-10-07 6:30 ` Nautiyal, Ankit K
@ 2025-10-07 15:19 ` Ville Syrjälä
0 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjälä @ 2025-10-07 15:19 UTC (permalink / raw)
To: Nautiyal, Ankit K; +Cc: intel-gfx, intel-xe
On Tue, Oct 07, 2025 at 12:00:34PM +0530, Nautiyal, Ankit K wrote:
>
> On 10/7/2025 1:26 AM, Ville Syrjälä wrote:
> > On Mon, Oct 06, 2025 at 09:58:49AM +0530, Ankit Nautiyal wrote:
> >> As we move towards using a shorter, optimized guardband, we need to adjust
> >> how the delayed vblank start is computed.
> >>
> >> Introduce intel_crtc_compute_vrr_guardband() to handle guardband
> >> computation and apply vblank_start adjustment for platforms that always use
> >> the VRR timing generator.
> >>
> >> This function wraps the existing intel_vrr_compute_guardband() and adjusts
> >> crtc_vblank_start using (vblank_length - guardband) only when
> >> intel_vrr_always_use_vrr_tg() is true. Since the guardband is not yet
> >> optimized, the adjustment currently evaluates to zero, preserving existing
> >> behavior.
> >>
> >> This paves way for guardband optimization, by handling the movement of
> >> the crtc_vblank_start for platforms that have VRR TG always active.
> >>
> >> Also update allow_vblank_delay_fastset() to permit vblank delay adjustments
> >> during fastboot when VRR TG is always active, even without inherited state.
> >>
> >> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> >> ---
> >> drivers/gpu/drm/i915/display/intel_display.c | 33 ++++++++++++++++++--
> >> 1 file changed, 30 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> >> index b2d4e24fd7c6..1964e41b5704 100644
> >> --- a/drivers/gpu/drm/i915/display/intel_display.c
> >> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> >> @@ -2403,6 +2403,27 @@ static int intel_crtc_compute_set_context_latency(struct intel_atomic_state *sta
> >> return 0;
> >> }
> >>
> >> +static void intel_crtc_compute_vrr_guardband(struct intel_atomic_state *state,
> >> + struct intel_crtc *crtc)
> > Why this wrapper? You could just stick the adjustemnt into
> > intel_vrr_compute_guardband().
>
>
> The idea was to prepare for the optimized guardband which needs
> connector also.
You shouldn't need the connector there. Looks like you were just using
it to figure out the output type when you could have just grabbed that
from the crtc state.
>
> In subsequent patch I am getting the connector here to use the optimized
> guardband only for platforms with always_use_vrr_tg=true.
> And at last I am making changes in intel_vrr_compute_guardband() itself.
>
> As for this patch I can just avoid the wrapper and just use the adjustment.
>
> >
> >> +{
> >> + struct intel_display *display = to_intel_display(state);
> >> + struct intel_crtc_state *crtc_state =
> >> + intel_atomic_get_new_crtc_state(state, crtc);
> >> + struct drm_display_mode *adjusted_mode =
> >> + &crtc_state->hw.adjusted_mode;
> >> +
> >> + intel_vrr_compute_guardband(crtc_state);
> >> +
> >> + if (intel_vrr_always_use_vrr_tg(display)) {
> >> + int vblank_length = adjusted_mode->crtc_vtotal -
> >> + (crtc_state->set_context_latency +
> >> + adjusted_mode->crtc_vdisplay);
> >> +
> >> + adjusted_mode->crtc_vblank_start +=
> >> + vblank_length - crtc_state->vrr.guardband;
> > Why aren't you using the same 'vblank_start = vtotal-guardband' here as
> > during readout?
>
> Hmm I was thinking this more as change in the vblank_start. In
> compute_set_context_latency we move the vblank_start by SCL lines. Here
> we move further as much amount as the change in guardband.
The SCL adjustment is for the legacy timing generator timings.
This should just overwrite the whole thing with what the VRR
timing generator will actually do.
>
>
> But I guess that is not very intuitive, so I will just set
> crtc_vblank_start as vtotal - guardband here.
>
>
> >
> >> + }
> >> +}
> >> +
> >> static int intel_crtc_compute_config(struct intel_atomic_state *state,
> >> struct intel_crtc *crtc)
> >> {
> >> @@ -2414,7 +2435,7 @@ static int intel_crtc_compute_config(struct intel_atomic_state *state,
> >> if (ret)
> >> return ret;
> >>
> >> - intel_vrr_compute_guardband(crtc_state);
> >> + intel_crtc_compute_vrr_guardband(state, crtc);
> >>
> >> ret = intel_dpll_crtc_compute_clock(state, crtc);
> >> if (ret)
> >> @@ -5105,9 +5126,15 @@ static bool allow_vblank_delay_fastset(const struct intel_crtc_state *old_crtc_s
> >> * Allow fastboot to fix up vblank delay (handled via LRR
> >> * codepaths), a bit dodgy as the registers aren't
> >> * double buffered but seems to be working more or less...
> >> + *
> >> + * Also allow this when the VRR timing generator is always on,
> >> + * which implies optimized guardband is used. In such cases,
> >> + * vblank delay may vary even without inherited state, but it's
> >> + * still safe as VRR guardband is still same.
> >> */
> >> - return HAS_LRR(display) && old_crtc_state->inherited &&
> >> - !intel_crtc_has_type(old_crtc_state, INTEL_OUTPUT_DSI);
> >> + return HAS_LRR(display) &&
> >> + (old_crtc_state->inherited || intel_vrr_always_use_vrr_tg(display)) &&
> >> + !intel_crtc_has_type(old_crtc_state, INTEL_OUTPUT_DSI);
> > This part doesn't seem directly related to the making crtc_vblank_start
> > correct. We still use the non-optimzied guardband so crtc_vblank_start
> > should not be changing during normal runtime operation.
>
>
> Yes we do not need this at this time, but only when we really start
> using optimized guardband.
> I can make it as a separate function.
>
> Regards,
>
> Ankit
>
>
> >> }
> >>
> >> bool
> >> --
> >> 2.45.2
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH 14/16] drm/i915/vrr: Introduce helper to compute min static guardband
2025-10-06 4:28 [PATCH 00/16] Optimize vrr.guardband and fix LRR Ankit Nautiyal
` (12 preceding siblings ...)
2025-10-06 4:28 ` [PATCH 13/16] drm/i915/display: Add vblank_start adjustment logic for " Ankit Nautiyal
@ 2025-10-06 4:28 ` Ankit Nautiyal
2025-10-06 4:28 ` [PATCH 15/16] drm/i915/display: Use optimized guardband for always-on VRR TG Ankit Nautiyal
` (4 subsequent siblings)
18 siblings, 0 replies; 30+ messages in thread
From: Ankit Nautiyal @ 2025-10-06 4:28 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: ville.syrjala
In the current VRR implementation, vrr.vmin and vrr.guardband are set such
that they do not need to change when switching from fixed refresh rate to
variable refresh rate. Specifically, vrr.guardband is always set to match
the vblank length. This approach works for most cases, but not for LRR,
where the guardband would need to change while the VRR timing generator is
still active.
With the VRR TG always active, live updates to guardband are unsafe and not
recommended. To ensure hardware safety, guardband was moved out of the
!fastset block, meaning any change now requires a full modeset.
This breaks seamless LRR switching, which was previously supported.
Since the problem arises from guardband being matched to the vblank length,
solution is to use a minimal, sufficient static value, instead. So we use a
static guardband defined during mode-set that fits within the smallest
expected vblank and remains unchanged in case of features like LRR where
vtotal changes. To compute this minimum guardband we take into account
latencies/delays due to different features as mentioned in the Bspec.
Introduce a helper to compute the minimal sufficient guardband.
v2: Use helpers for dsc/scaler prefill latencies. (Mitul)
Account for pkgc latency and take max of pkgc and sagv latencies.
v3: Use new helper for PSR2/Panel Replay latency.
v4: Avoid re-setting the Vmin/Flipline for optimized guardband.
v5:
- Refactor the function to make it as a helper which can be used to
update crtc_vblank_start and guardband can then be derived from it.
(Ville)
- Modify the subject and commit message for the same.
v6: Use intel_usecs_to_scanlines() instead of hand rolled stuff. (Ville)
v7: Rename helper to intel_vrr_compute_optimized_guardband.
Bspec: 70151
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com> (#v3)
---
drivers/gpu/drm/i915/display/intel_vrr.c | 117 +++++++++++++++++++++++
drivers/gpu/drm/i915/display/intel_vrr.h | 2 +
2 files changed, 119 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c b/drivers/gpu/drm/i915/display/intel_vrr.c
index 221b25832e56..2dca4be28a9c 100644
--- a/drivers/gpu/drm/i915/display/intel_vrr.c
+++ b/drivers/gpu/drm/i915/display/intel_vrr.c
@@ -6,12 +6,18 @@
#include <drm/drm_print.h>
+#include "intel_alpm.h"
+#include "intel_crtc.h"
#include "intel_de.h"
#include "intel_display_regs.h"
#include "intel_display_types.h"
#include "intel_dp.h"
+#include "intel_dp.h"
+#include "intel_vdsc.h"
#include "intel_vrr.h"
#include "intel_vrr_regs.h"
+#include "skl_scaler.h"
+#include "skl_watermark.h"
#define FIXED_POINT_PRECISION 100
#define CMRR_PRECISION_TOLERANCE 10
@@ -433,6 +439,117 @@ intel_vrr_max_guardband(struct intel_crtc_state *crtc_state)
intel_vrr_max_vblank_guardband(crtc_state));
}
+static
+int scaler_prefill_latency(struct intel_crtc_state *crtc_state, int linetime_us)
+{
+ int chroma_downscaling_factor = skl_scaler_chroma_downscale_factor(crtc_state);
+ u64 hscale_k, vscale_k;
+ int cdclk_adjustment;
+ int num_scaler_users;
+
+ /*
+ * Assuming:
+ * Both scaler enabled.
+ * scaler 1 downscaling factor as 2 x 2 (Horiz x Vert)
+ * scaler 2 downscaling factor as 2 x 1 (Horiz x Vert)
+ * Cdclk Adjustment : 1
+ */
+ num_scaler_users = 2;
+ hscale_k = 2 * 1000;
+ vscale_k = 2 * 1000;
+ cdclk_adjustment = 1;
+
+ return skl_scaler_guardband_latency(num_scaler_users, hscale_k, vscale_k,
+ chroma_downscaling_factor,
+ cdclk_adjustment,
+ linetime_us);
+}
+
+static
+int dsc_prefill_latency(struct intel_crtc_state *crtc_state, int linetime_us)
+{
+#define MAX_SCALERS 2
+ int chroma_downscaling_factor = skl_scaler_chroma_downscale_factor(crtc_state);
+ u64 hscale_k[MAX_SCALERS], vscale_k[MAX_SCALERS];
+ int cdclk_adjustment;
+ int num_scaler_users;
+
+ /*
+ * Assuming:
+ * Both scaler enabled.
+ * scaler 1 downscaling factor as 2 x 2 (Horiz x Vert)
+ * scaler 2 downscaling factor as 2 x 1 (Horiz x Vert)
+ * Cdclk Adjustment : 1
+ */
+ num_scaler_users = MAX_SCALERS;
+ hscale_k[0] = 2 * 1000;
+ vscale_k[0] = 2 * 1000;
+ hscale_k[1] = 2 * 1000;
+ vscale_k[1] = 1 * 1000;
+
+ cdclk_adjustment = 1;
+
+ return intel_dsc_guardband_latency(num_scaler_users, hscale_k, vscale_k,
+ chroma_downscaling_factor,
+ cdclk_adjustment,
+ linetime_us);
+}
+
+int intel_vrr_compute_optimized_guardband(struct intel_crtc_state *crtc_state,
+ struct intel_connector *connector)
+{
+ const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
+ struct intel_display *display = to_intel_display(crtc_state);
+ int dsc_prefill_time = 0;
+ int psr2_pr_latency = 0;
+ int scaler_prefill_time;
+ int wm0_prefill_time;
+ int pkgc_max_latency;
+ int sagv_latency;
+ int sdp_latency = 0;
+ int guardband_us;
+ int linetime_us;
+ int guardband;
+ int pm_delay;
+
+ linetime_us = DIV_ROUND_UP(adjusted_mode->crtc_htotal * 1000,
+ adjusted_mode->crtc_clock);
+
+ pkgc_max_latency = skl_watermark_max_latency(display, 1);
+ sagv_latency = display->sagv.block_time_us;
+
+ /* Assuming max wm0 lines = 4 */
+ wm0_prefill_time = 4 * linetime_us + 20;
+
+ scaler_prefill_time = scaler_prefill_latency(crtc_state, linetime_us);
+
+ if (crtc_state->dsc.compression_enable)
+ dsc_prefill_time = dsc_prefill_latency(crtc_state, linetime_us);
+
+ pm_delay = crtc_state->framestart_delay +
+ max(sagv_latency, pkgc_max_latency) +
+ wm0_prefill_time +
+ scaler_prefill_time +
+ dsc_prefill_time;
+
+ switch (connector->base.connector_type) {
+ case DRM_MODE_CONNECTOR_eDP:
+ case DRM_MODE_CONNECTOR_DisplayPort:
+ psr2_pr_latency = intel_alpm_compute_max_link_wake_latency(crtc_state, true);
+ sdp_latency = intel_dp_compute_sdp_latency(crtc_state, true);
+ break;
+ default:
+ break;
+ }
+
+ guardband_us = max(sdp_latency, psr2_pr_latency);
+ guardband_us = max(guardband_us, pm_delay);
+
+ guardband = intel_usecs_to_scanlines(adjusted_mode, guardband_us);
+
+ return guardband;
+}
+
void intel_vrr_compute_guardband(struct intel_crtc_state *crtc_state)
{
struct intel_display *display = to_intel_display(crtc_state);
diff --git a/drivers/gpu/drm/i915/display/intel_vrr.h b/drivers/gpu/drm/i915/display/intel_vrr.h
index bc9044621635..8d1f31ae92df 100644
--- a/drivers/gpu/drm/i915/display/intel_vrr.h
+++ b/drivers/gpu/drm/i915/display/intel_vrr.h
@@ -42,5 +42,7 @@ void intel_vrr_set_fixed_rr_timings(const struct intel_crtc_state *crtc_state);
bool intel_vrr_always_use_vrr_tg(struct intel_display *display);
int intel_vrr_safe_window_start(const struct intel_crtc_state *crtc_state);
int intel_vrr_vmin_safe_window_end(const struct intel_crtc_state *crtc_state);
+int intel_vrr_compute_optimized_guardband(struct intel_crtc_state *crtc_state,
+ struct intel_connector *connector);
#endif /* __INTEL_VRR_H__ */
--
2.45.2
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH 15/16] drm/i915/display: Use optimized guardband for always-on VRR TG
2025-10-06 4:28 [PATCH 00/16] Optimize vrr.guardband and fix LRR Ankit Nautiyal
` (13 preceding siblings ...)
2025-10-06 4:28 ` [PATCH 14/16] drm/i915/vrr: Introduce helper to compute min static guardband Ankit Nautiyal
@ 2025-10-06 4:28 ` Ankit Nautiyal
2025-10-06 4:28 ` [PATCH 16/16] drm/i915/vrr: Use optimized guardband when VRR TG is active Ankit Nautiyal
` (3 subsequent siblings)
18 siblings, 0 replies; 30+ messages in thread
From: Ankit Nautiyal @ 2025-10-06 4:28 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: ville.syrjala
As we have all bits in place for using the optimized guardband,
enable it only for platforms that always use VRR TG for now.
For remaining platforms continue to use the guardband equal to the
vblank length.
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 30 +++++++++++++++-----
1 file changed, 23 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 1964e41b5704..6f61278a36c2 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -2411,16 +2411,32 @@ static void intel_crtc_compute_vrr_guardband(struct intel_atomic_state *state,
intel_atomic_get_new_crtc_state(state, crtc);
struct drm_display_mode *adjusted_mode =
&crtc_state->hw.adjusted_mode;
+ struct drm_connector_state *conn_state;
+ struct drm_connector *drm_connector;
+ int i;
- intel_vrr_compute_guardband(crtc_state);
+ for_each_new_connector_in_state(&state->base,
+ drm_connector,
+ conn_state, i) {
+ struct intel_connector *connector;
+ int vblank_length;
- if (intel_vrr_always_use_vrr_tg(display)) {
- int vblank_length = adjusted_mode->crtc_vtotal -
- (crtc_state->set_context_latency +
- adjusted_mode->crtc_vdisplay);
+ if (conn_state->crtc != &crtc->base)
+ continue;
- adjusted_mode->crtc_vblank_start +=
- vblank_length - crtc_state->vrr.guardband;
+ connector = to_intel_connector(drm_connector);
+ if (intel_vrr_always_use_vrr_tg(display)) {
+ intel_vrr_compute_optimized_guardband(crtc_state, connector);
+
+ vblank_length = adjusted_mode->crtc_vtotal -
+ (crtc_state->set_context_latency +
+ adjusted_mode->crtc_vdisplay);
+
+ adjusted_mode->crtc_vblank_start +=
+ vblank_length - crtc_state->vrr.guardband;
+ } else {
+ intel_vrr_compute_guardband(crtc_state);
+ }
}
}
--
2.45.2
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH 16/16] drm/i915/vrr: Use optimized guardband when VRR TG is active
2025-10-06 4:28 [PATCH 00/16] Optimize vrr.guardband and fix LRR Ankit Nautiyal
` (14 preceding siblings ...)
2025-10-06 4:28 ` [PATCH 15/16] drm/i915/display: Use optimized guardband for always-on VRR TG Ankit Nautiyal
@ 2025-10-06 4:28 ` Ankit Nautiyal
2025-10-06 9:56 ` ✓ i915.CI.BAT: success for Optimize vrr.guardband and fix LRR (rev13) Patchwork
` (2 subsequent siblings)
18 siblings, 0 replies; 30+ messages in thread
From: Ankit Nautiyal @ 2025-10-06 4:28 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: ville.syrjala
Currently, optimized guardband is only used on platforms where the VRR
timing generator is always enabled. We want to use the optimized/reduced
guardband whenever we are using the VRR timing generator, as the legacy
timing generator doesn't need vrr guardband.
On platforms where the VRR timing generator is always ON, we optimize the
guardband regardless of whether the display is operating in fixed or
variable refresh rate mode.
On platforms where the VRR timing generator is not always ON, we optimize
the guardband only when VRR is enabled.
Add a helper intel_vrr_use_optimized_guardband() to determine if the
optimized/reduced guardband should be used.
The actual computation is now performed internally within
intel_vrr_compute_guardband() which calls
intel_vrr_compute_optimized_guardband() when appropriate.
This completes the transition to optimized guardband usage across all
supported platforms.
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 5 +----
drivers/gpu/drm/i915/display/intel_vrr.c | 23 +++++++++++++++-----
drivers/gpu/drm/i915/display/intel_vrr.h | 5 ++---
3 files changed, 21 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 6f61278a36c2..84f830294007 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -2425,17 +2425,14 @@ static void intel_crtc_compute_vrr_guardband(struct intel_atomic_state *state,
continue;
connector = to_intel_connector(drm_connector);
+ intel_vrr_compute_guardband(crtc_state, connector);
if (intel_vrr_always_use_vrr_tg(display)) {
- intel_vrr_compute_optimized_guardband(crtc_state, connector);
-
vblank_length = adjusted_mode->crtc_vtotal -
(crtc_state->set_context_latency +
adjusted_mode->crtc_vdisplay);
adjusted_mode->crtc_vblank_start +=
vblank_length - crtc_state->vrr.guardband;
- } else {
- intel_vrr_compute_guardband(crtc_state);
}
}
}
diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c b/drivers/gpu/drm/i915/display/intel_vrr.c
index 2dca4be28a9c..24f608d4a28f 100644
--- a/drivers/gpu/drm/i915/display/intel_vrr.c
+++ b/drivers/gpu/drm/i915/display/intel_vrr.c
@@ -495,8 +495,15 @@ int dsc_prefill_latency(struct intel_crtc_state *crtc_state, int linetime_us)
linetime_us);
}
-int intel_vrr_compute_optimized_guardband(struct intel_crtc_state *crtc_state,
- struct intel_connector *connector)
+static bool intel_vrr_use_optimized_guardband(const struct intel_crtc_state *crtc_state)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+
+ return intel_vrr_always_use_vrr_tg(display) || crtc_state->vrr.enable;
+}
+
+static int intel_vrr_compute_optimized_guardband(struct intel_crtc_state *crtc_state,
+ struct intel_connector *connector)
{
const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
struct intel_display *display = to_intel_display(crtc_state);
@@ -550,16 +557,22 @@ int intel_vrr_compute_optimized_guardband(struct intel_crtc_state *crtc_state,
return guardband;
}
-void intel_vrr_compute_guardband(struct intel_crtc_state *crtc_state)
+void intel_vrr_compute_guardband(struct intel_crtc_state *crtc_state,
+ struct intel_connector *connector)
{
struct intel_display *display = to_intel_display(crtc_state);
const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
+ int guardband;
if (!intel_vrr_possible(crtc_state))
return;
- crtc_state->vrr.guardband = min(crtc_state->vrr.vmin - adjusted_mode->crtc_vdisplay,
- intel_vrr_max_guardband(crtc_state));
+ if (intel_vrr_use_optimized_guardband(crtc_state))
+ guardband = intel_vrr_compute_optimized_guardband(crtc_state, connector);
+ else
+ guardband = crtc_state->vrr.vmin - adjusted_mode->crtc_vdisplay;
+
+ crtc_state->vrr.guardband = min(guardband, intel_vrr_max_guardband(crtc_state));
if (DISPLAY_VER(display) < 13)
crtc_state->vrr.pipeline_full =
diff --git a/drivers/gpu/drm/i915/display/intel_vrr.h b/drivers/gpu/drm/i915/display/intel_vrr.h
index 8d1f31ae92df..6986e8f122dc 100644
--- a/drivers/gpu/drm/i915/display/intel_vrr.h
+++ b/drivers/gpu/drm/i915/display/intel_vrr.h
@@ -21,7 +21,8 @@ bool intel_vrr_possible(const struct intel_crtc_state *crtc_state);
void intel_vrr_check_modeset(struct intel_atomic_state *state);
void intel_vrr_compute_config(struct intel_crtc_state *crtc_state,
struct drm_connector_state *conn_state);
-void intel_vrr_compute_guardband(struct intel_crtc_state *crtc_state);
+void intel_vrr_compute_guardband(struct intel_crtc_state *crtc_state,
+ struct intel_connector *connector);
void intel_vrr_set_transcoder_timings(const struct intel_crtc_state *crtc_state);
void intel_vrr_enable(const struct intel_crtc_state *crtc_state);
void intel_vrr_send_push(struct intel_dsb *dsb,
@@ -42,7 +43,5 @@ void intel_vrr_set_fixed_rr_timings(const struct intel_crtc_state *crtc_state);
bool intel_vrr_always_use_vrr_tg(struct intel_display *display);
int intel_vrr_safe_window_start(const struct intel_crtc_state *crtc_state);
int intel_vrr_vmin_safe_window_end(const struct intel_crtc_state *crtc_state);
-int intel_vrr_compute_optimized_guardband(struct intel_crtc_state *crtc_state,
- struct intel_connector *connector);
#endif /* __INTEL_VRR_H__ */
--
2.45.2
^ permalink raw reply related [flat|nested] 30+ messages in thread* ✓ i915.CI.BAT: success for Optimize vrr.guardband and fix LRR (rev13)
2025-10-06 4:28 [PATCH 00/16] Optimize vrr.guardband and fix LRR Ankit Nautiyal
` (15 preceding siblings ...)
2025-10-06 4:28 ` [PATCH 16/16] drm/i915/vrr: Use optimized guardband when VRR TG is active Ankit Nautiyal
@ 2025-10-06 9:56 ` Patchwork
2025-10-06 11:54 ` ✗ i915.CI.Full: failure " Patchwork
2025-10-06 22:50 ` [PATCH 00/16] Optimize vrr.guardband and fix LRR Ville Syrjälä
18 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2025-10-06 9:56 UTC (permalink / raw)
To: Ankit Nautiyal; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 3896 bytes --]
== Series Details ==
Series: Optimize vrr.guardband and fix LRR (rev13)
URL : https://patchwork.freedesktop.org/series/151245/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_17309 -> Patchwork_151245v13
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/index.html
Participating hosts (44 -> 43)
------------------------------
Missing (1): fi-snb-2520m
Known issues
------------
Here are the changes found in Patchwork_151245v13 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@dmabuf@all-tests:
- bat-apl-1: [PASS][1] -> [ABORT][2] ([i915#12904]) +1 other test abort
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/bat-apl-1/igt@dmabuf@all-tests.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/bat-apl-1/igt@dmabuf@all-tests.html
* igt@i915_selftest@live:
- bat-mtlp-8: [PASS][3] -> [DMESG-FAIL][4] ([i915#12061]) +1 other test dmesg-fail
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/bat-mtlp-8/igt@i915_selftest@live.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/bat-mtlp-8/igt@i915_selftest@live.html
* igt@i915_selftest@live@workarounds:
- bat-dg2-14: [PASS][5] -> [DMESG-FAIL][6] ([i915#12061]) +1 other test dmesg-fail
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/bat-dg2-14/igt@i915_selftest@live@workarounds.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/bat-dg2-14/igt@i915_selftest@live@workarounds.html
* igt@kms_pm_rpm@basic-rte:
- bat-rpls-4: [PASS][7] -> [DMESG-WARN][8] ([i915#13400])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/bat-rpls-4/igt@kms_pm_rpm@basic-rte.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/bat-rpls-4/igt@kms_pm_rpm@basic-rte.html
#### Possible fixes ####
* igt@i915_selftest@live:
- bat-jsl-1: [DMESG-FAIL][9] ([i915#14910]) -> [PASS][10] +1 other test pass
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/bat-jsl-1/igt@i915_selftest@live.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/bat-jsl-1/igt@i915_selftest@live.html
* igt@i915_selftest@live@workarounds:
- bat-mtlp-6: [DMESG-FAIL][11] ([i915#12061]) -> [PASS][12] +1 other test pass
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/bat-mtlp-6/igt@i915_selftest@live@workarounds.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/bat-mtlp-6/igt@i915_selftest@live@workarounds.html
- bat-mtlp-9: [DMESG-FAIL][13] ([i915#12061]) -> [PASS][14] +1 other test pass
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/bat-mtlp-9/igt@i915_selftest@live@workarounds.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/bat-mtlp-9/igt@i915_selftest@live@workarounds.html
[i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
[i915#12904]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12904
[i915#13400]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13400
[i915#14910]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14910
Build changes
-------------
* Linux: CI_DRM_17309 -> Patchwork_151245v13
CI-20190529: 20190529
CI_DRM_17309: 8ad3832e11cc44823fc35aa6d36f7e76d69e4791 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_8574: 44a15713124663a622c6eddf7c6ee5ba732e0d41 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_151245v13: 8ad3832e11cc44823fc35aa6d36f7e76d69e4791 @ git://anongit.freedesktop.org/gfx-ci/linux
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/index.html
[-- Attachment #2: Type: text/html, Size: 4865 bytes --]
^ permalink raw reply [flat|nested] 30+ messages in thread* ✗ i915.CI.Full: failure for Optimize vrr.guardband and fix LRR (rev13)
2025-10-06 4:28 [PATCH 00/16] Optimize vrr.guardband and fix LRR Ankit Nautiyal
` (16 preceding siblings ...)
2025-10-06 9:56 ` ✓ i915.CI.BAT: success for Optimize vrr.guardband and fix LRR (rev13) Patchwork
@ 2025-10-06 11:54 ` Patchwork
2025-10-06 22:50 ` [PATCH 00/16] Optimize vrr.guardband and fix LRR Ville Syrjälä
18 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2025-10-06 11:54 UTC (permalink / raw)
To: Ankit Nautiyal; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 129803 bytes --]
== Series Details ==
Series: Optimize vrr.guardband and fix LRR (rev13)
URL : https://patchwork.freedesktop.org/series/151245/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_17309_full -> Patchwork_151245v13_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_151245v13_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_151245v13_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (11 -> 11)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_151245v13_full:
### IGT changes ###
#### Possible regressions ####
* igt@kms_async_flips@async-flip-with-page-flip-events-tiled@pipe-a-hdmi-a-1-y:
- shard-rkl: NOTRUN -> [DMESG-WARN][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-4/igt@kms_async_flips@async-flip-with-page-flip-events-tiled@pipe-a-hdmi-a-1-y.html
New tests
---------
New tests have been introduced between CI_DRM_17309_full and Patchwork_151245v13_full:
### New IGT tests (2) ###
* igt@kms_cursor_crc@cursor-size-hints@pipe-a-hdmi-a-4:
- Statuses : 1 pass(s)
- Exec time: [0.60] s
* igt@kms_cursor_crc@cursor-size-hints@pipe-d-hdmi-a-4:
- Statuses : 1 pass(s)
- Exec time: [0.43] s
Known issues
------------
Here are the changes found in Patchwork_151245v13_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@api_intel_bb@object-reloc-keep-cache:
- shard-rkl: NOTRUN -> [SKIP][2] ([i915#8411])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@api_intel_bb@object-reloc-keep-cache.html
* igt@device_reset@cold-reset-bound:
- shard-rkl: NOTRUN -> [SKIP][3] ([i915#11078])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-4/igt@device_reset@cold-reset-bound.html
* igt@gem_basic@multigpu-create-close:
- shard-tglu-1: NOTRUN -> [SKIP][4] ([i915#7697])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@gem_basic@multigpu-create-close.html
* igt@gem_ccs@suspend-resume:
- shard-dg2-9: NOTRUN -> [INCOMPLETE][5] ([i915#13356]) +1 other test incomplete
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@gem_ccs@suspend-resume.html
* igt@gem_close_race@multigpu-basic-process:
- shard-rkl: NOTRUN -> [SKIP][6] ([i915#7697])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@gem_close_race@multigpu-basic-process.html
* igt@gem_create@create-ext-set-pat:
- shard-dg2-9: NOTRUN -> [SKIP][7] ([i915#8562])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@gem_create@create-ext-set-pat.html
* igt@gem_ctx_isolation@preservation-s3@rcs0:
- shard-glk: NOTRUN -> [INCOMPLETE][8] ([i915#12353]) +1 other test incomplete
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-glk5/igt@gem_ctx_isolation@preservation-s3@rcs0.html
* igt@gem_ctx_persistence@heartbeat-stop:
- shard-dg2-9: NOTRUN -> [SKIP][9] ([i915#8555])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@gem_ctx_persistence@heartbeat-stop.html
* igt@gem_ctx_sseu@engines:
- shard-dg2-9: NOTRUN -> [SKIP][10] ([i915#280])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@gem_ctx_sseu@engines.html
* igt@gem_ctx_sseu@invalid-sseu:
- shard-dg2: NOTRUN -> [SKIP][11] ([i915#280])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-4/igt@gem_ctx_sseu@invalid-sseu.html
- shard-tglu-1: NOTRUN -> [SKIP][12] ([i915#280])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@gem_ctx_sseu@invalid-sseu.html
* igt@gem_eio@in-flight-suspend:
- shard-glk: NOTRUN -> [INCOMPLETE][13] ([i915#13390])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-glk6/igt@gem_eio@in-flight-suspend.html
* igt@gem_exec_balancer@bonded-dual:
- shard-dg2-9: NOTRUN -> [SKIP][14] ([i915#4771])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@gem_exec_balancer@bonded-dual.html
* igt@gem_exec_balancer@full:
- shard-dg1: [PASS][15] -> [DMESG-WARN][16] ([i915#4423])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-dg1-18/igt@gem_exec_balancer@full.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg1-19/igt@gem_exec_balancer@full.html
* igt@gem_exec_balancer@hog:
- shard-dg1: NOTRUN -> [SKIP][17] ([i915#4812])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg1-18/igt@gem_exec_balancer@hog.html
- shard-dg2-9: NOTRUN -> [SKIP][18] ([i915#4812])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@gem_exec_balancer@hog.html
* igt@gem_exec_balancer@invalid-bonds:
- shard-dg2: NOTRUN -> [SKIP][19] ([i915#4036])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@gem_exec_balancer@invalid-bonds.html
* igt@gem_exec_balancer@parallel:
- shard-rkl: NOTRUN -> [SKIP][20] ([i915#4525])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-4/igt@gem_exec_balancer@parallel.html
* igt@gem_exec_balancer@parallel-keep-in-fence:
- shard-tglu-1: NOTRUN -> [SKIP][21] ([i915#4525])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@gem_exec_balancer@parallel-keep-in-fence.html
* igt@gem_exec_flush@basic-uc-set-default:
- shard-dg2: NOTRUN -> [SKIP][22] ([i915#3539])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@gem_exec_flush@basic-uc-set-default.html
* igt@gem_exec_flush@basic-wb-pro-default:
- shard-dg1: NOTRUN -> [SKIP][23] ([i915#3539] / [i915#4852])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg1-18/igt@gem_exec_flush@basic-wb-pro-default.html
- shard-dg2-9: NOTRUN -> [SKIP][24] ([i915#3539] / [i915#4852])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@gem_exec_flush@basic-wb-pro-default.html
* igt@gem_exec_flush@basic-wb-ro-before-default:
- shard-dg2: NOTRUN -> [SKIP][25] ([i915#3539] / [i915#4852]) +1 other test skip
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@gem_exec_flush@basic-wb-ro-before-default.html
* igt@gem_exec_params@secure-non-root:
- shard-dg2-9: NOTRUN -> [SKIP][26] +5 other tests skip
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@gem_exec_params@secure-non-root.html
* igt@gem_exec_reloc@basic-gtt-noreloc:
- shard-dg2-9: NOTRUN -> [SKIP][27] ([i915#3281]) +2 other tests skip
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@gem_exec_reloc@basic-gtt-noreloc.html
* igt@gem_exec_reloc@basic-gtt-read:
- shard-dg2: NOTRUN -> [SKIP][28] ([i915#3281]) +8 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@gem_exec_reloc@basic-gtt-read.html
* igt@gem_exec_reloc@basic-write-read:
- shard-rkl: NOTRUN -> [SKIP][29] ([i915#3281]) +5 other tests skip
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-4/igt@gem_exec_reloc@basic-write-read.html
* igt@gem_exec_schedule@reorder-wide:
- shard-dg2-9: NOTRUN -> [SKIP][30] ([i915#4537] / [i915#4812])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@gem_exec_schedule@reorder-wide.html
* igt@gem_exec_schedule@semaphore-power:
- shard-rkl: NOTRUN -> [SKIP][31] ([i915#7276])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-8/igt@gem_exec_schedule@semaphore-power.html
* igt@gem_exec_suspend@basic-s3:
- shard-glk: NOTRUN -> [INCOMPLETE][32] ([i915#13196] / [i915#13356]) +1 other test incomplete
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-glk9/igt@gem_exec_suspend@basic-s3.html
* igt@gem_huc_copy@huc-copy:
- shard-tglu-1: NOTRUN -> [SKIP][33] ([i915#2190])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@gem_huc_copy@huc-copy.html
* igt@gem_lmem_swapping@heavy-verify-random-ccs:
- shard-rkl: NOTRUN -> [SKIP][34] ([i915#4613])
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@gem_lmem_swapping@heavy-verify-random-ccs.html
* igt@gem_lmem_swapping@massive:
- shard-tglu-1: NOTRUN -> [SKIP][35] ([i915#4613]) +1 other test skip
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@gem_lmem_swapping@massive.html
* igt@gem_lmem_swapping@massive-random:
- shard-glk: NOTRUN -> [SKIP][36] ([i915#4613]) +6 other tests skip
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-glk9/igt@gem_lmem_swapping@massive-random.html
* igt@gem_lmem_swapping@parallel-random-verify:
- shard-tglu: NOTRUN -> [SKIP][37] ([i915#4613])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-6/igt@gem_lmem_swapping@parallel-random-verify.html
* igt@gem_lmem_swapping@smem-oom:
- shard-dg2-9: NOTRUN -> [TIMEOUT][38] ([i915#5493]) +1 other test timeout
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@gem_lmem_swapping@smem-oom.html
* igt@gem_media_vme:
- shard-rkl: NOTRUN -> [SKIP][39] ([i915#284])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-4/igt@gem_media_vme.html
* igt@gem_mmap@bad-size:
- shard-dg2: NOTRUN -> [SKIP][40] ([i915#4083])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-6/igt@gem_mmap@bad-size.html
* igt@gem_mmap_gtt@basic-read:
- shard-dg2-9: NOTRUN -> [SKIP][41] ([i915#4077]) +5 other tests skip
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@gem_mmap_gtt@basic-read.html
* igt@gem_mmap_gtt@zero-extend:
- shard-dg2: NOTRUN -> [SKIP][42] ([i915#4077]) +10 other tests skip
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@gem_mmap_gtt@zero-extend.html
* igt@gem_mmap_wc@set-cache-level:
- shard-dg2-9: NOTRUN -> [SKIP][43] ([i915#4083])
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@gem_mmap_wc@set-cache-level.html
- shard-dg1: NOTRUN -> [SKIP][44] ([i915#4083])
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg1-18/igt@gem_mmap_wc@set-cache-level.html
* igt@gem_partial_pwrite_pread@reads-snoop:
- shard-dg2-9: NOTRUN -> [SKIP][45] ([i915#3282]) +2 other tests skip
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@gem_partial_pwrite_pread@reads-snoop.html
* igt@gem_pread@exhaustion:
- shard-dg2: NOTRUN -> [SKIP][46] ([i915#3282]) +1 other test skip
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-4/igt@gem_pread@exhaustion.html
- shard-tglu-1: NOTRUN -> [WARN][47] ([i915#2658])
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@gem_pread@exhaustion.html
* igt@gem_pxp@create-valid-protected-context:
- shard-rkl: [PASS][48] -> [TIMEOUT][49] ([i915#12964])
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-8/igt@gem_pxp@create-valid-protected-context.html
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@gem_pxp@create-valid-protected-context.html
* igt@gem_pxp@reject-modify-context-protection-off-2:
- shard-rkl: [PASS][50] -> [TIMEOUT][51] ([i915#12917] / [i915#12964])
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-8/igt@gem_pxp@reject-modify-context-protection-off-2.html
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-7/igt@gem_pxp@reject-modify-context-protection-off-2.html
* igt@gem_pxp@reject-modify-context-protection-on:
- shard-rkl: NOTRUN -> [TIMEOUT][52] ([i915#12917] / [i915#12964]) +1 other test timeout
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@gem_pxp@reject-modify-context-protection-on.html
* igt@gem_pxp@verify-pxp-execution-after-suspend-resume:
- shard-dg2: NOTRUN -> [SKIP][53] ([i915#4270]) +2 other tests skip
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-6/igt@gem_pxp@verify-pxp-execution-after-suspend-resume.html
* igt@gem_readwrite@read-write:
- shard-rkl: NOTRUN -> [SKIP][54] ([i915#3282]) +2 other tests skip
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@gem_readwrite@read-write.html
* igt@gem_render_copy@linear-to-vebox-yf-tiled:
- shard-dg2-9: NOTRUN -> [SKIP][55] ([i915#5190] / [i915#8428]) +1 other test skip
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@gem_render_copy@linear-to-vebox-yf-tiled.html
* igt@gem_render_copy@yf-tiled-to-vebox-yf-tiled:
- shard-dg2: NOTRUN -> [SKIP][56] ([i915#5190] / [i915#8428]) +3 other tests skip
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@gem_render_copy@yf-tiled-to-vebox-yf-tiled.html
* igt@gem_render_tiled_blits@basic:
- shard-dg1: NOTRUN -> [SKIP][57] ([i915#4079])
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg1-18/igt@gem_render_tiled_blits@basic.html
* igt@gem_set_tiling_vs_blt@tiled-to-tiled:
- shard-dg2: NOTRUN -> [SKIP][58] ([i915#4079])
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-4/igt@gem_set_tiling_vs_blt@tiled-to-tiled.html
* igt@gem_set_tiling_vs_pwrite:
- shard-dg2-9: NOTRUN -> [SKIP][59] ([i915#4079]) +1 other test skip
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@gem_set_tiling_vs_pwrite.html
* igt@gem_softpin@evict-snoop:
- shard-dg2: NOTRUN -> [SKIP][60] ([i915#4885])
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-4/igt@gem_softpin@evict-snoop.html
* igt@gem_userptr_blits@access-control:
- shard-dg2-9: NOTRUN -> [SKIP][61] ([i915#3297]) +2 other tests skip
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@gem_userptr_blits@access-control.html
* igt@gem_userptr_blits@dmabuf-sync:
- shard-glk: NOTRUN -> [SKIP][62] ([i915#3323])
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-glk9/igt@gem_userptr_blits@dmabuf-sync.html
* igt@gem_userptr_blits@forbidden-operations:
- shard-dg2: NOTRUN -> [SKIP][63] ([i915#3282] / [i915#3297])
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@gem_userptr_blits@forbidden-operations.html
* igt@gem_userptr_blits@invalid-mmap-offset-unsync:
- shard-tglu-1: NOTRUN -> [SKIP][64] ([i915#3297]) +2 other tests skip
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html
* igt@gem_userptr_blits@readonly-unsync:
- shard-dg2: NOTRUN -> [SKIP][65] ([i915#3297])
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-4/igt@gem_userptr_blits@readonly-unsync.html
* igt@gem_userptr_blits@relocations:
- shard-dg2: NOTRUN -> [SKIP][66] ([i915#3281] / [i915#3297])
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@gem_userptr_blits@relocations.html
* igt@gem_workarounds@suspend-resume:
- shard-rkl: [PASS][67] -> [INCOMPLETE][68] ([i915#13356]) +2 other tests incomplete
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-2/igt@gem_workarounds@suspend-resume.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-3/igt@gem_workarounds@suspend-resume.html
* igt@gen7_exec_parse@bitmasks:
- shard-glk10: NOTRUN -> [SKIP][69] +227 other tests skip
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-glk10/igt@gen7_exec_parse@bitmasks.html
* igt@gen9_exec_parse@allowed-single:
- shard-rkl: NOTRUN -> [SKIP][70] ([i915#2527]) +3 other tests skip
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-4/igt@gen9_exec_parse@allowed-single.html
* igt@gen9_exec_parse@bb-start-out:
- shard-dg2: NOTRUN -> [SKIP][71] ([i915#2856])
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@gen9_exec_parse@bb-start-out.html
* igt@gen9_exec_parse@shadow-peek:
- shard-dg2-9: NOTRUN -> [SKIP][72] ([i915#2856]) +2 other tests skip
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@gen9_exec_parse@shadow-peek.html
* igt@i915_drm_fdinfo@most-busy-check-all@bcs0:
- shard-dg2-9: NOTRUN -> [SKIP][73] ([i915#14073]) +7 other tests skip
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@i915_drm_fdinfo@most-busy-check-all@bcs0.html
* igt@i915_drm_fdinfo@virtual-busy-hang-all:
- shard-dg2: NOTRUN -> [SKIP][74] ([i915#14118]) +1 other test skip
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@i915_drm_fdinfo@virtual-busy-hang-all.html
* igt@i915_module_load@reload-no-display:
- shard-dg2: [PASS][75] -> [DMESG-WARN][76] ([i915#13029] / [i915#14545])
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-dg2-8/igt@i915_module_load@reload-no-display.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-4/igt@i915_module_load@reload-no-display.html
- shard-dg1: [PASS][77] -> [DMESG-WARN][78] ([i915#13029] / [i915#14545])
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-dg1-17/igt@i915_module_load@reload-no-display.html
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg1-12/igt@i915_module_load@reload-no-display.html
* igt@i915_pm_freq_api@freq-basic-api:
- shard-tglu-1: NOTRUN -> [SKIP][79] ([i915#8399])
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@i915_pm_freq_api@freq-basic-api.html
* igt@i915_pm_rps@thresholds-idle:
- shard-dg2-9: NOTRUN -> [SKIP][80] ([i915#11681])
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@i915_pm_rps@thresholds-idle.html
* igt@i915_suspend@basic-s3-without-i915:
- shard-tglu: NOTRUN -> [INCOMPLETE][81] ([i915#4817] / [i915#7443])
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-6/igt@i915_suspend@basic-s3-without-i915.html
* igt@i915_suspend@forcewake:
- shard-glk10: NOTRUN -> [INCOMPLETE][82] ([i915#4817])
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-glk10/igt@i915_suspend@forcewake.html
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- shard-dg2: NOTRUN -> [SKIP][83] ([i915#5190]) +3 other tests skip
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
* igt@kms_addfb_basic@clobberred-modifier:
- shard-dg2: NOTRUN -> [SKIP][84] ([i915#4212]) +1 other test skip
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-4/igt@kms_addfb_basic@clobberred-modifier.html
* igt@kms_addfb_basic@invalid-smem-bo-on-discrete:
- shard-tglu-1: NOTRUN -> [SKIP][85] ([i915#12454] / [i915#12712])
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html
* igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-a-hdmi-a-4:
- shard-dg1: [PASS][86] -> [FAIL][87] ([i915#5956]) +1 other test fail
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-dg1-14/igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-a-hdmi-a-4.html
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg1-18/igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-a-hdmi-a-4.html
* igt@kms_big_fb@4-tiled-32bpp-rotate-0:
- shard-rkl: NOTRUN -> [SKIP][88] ([i915#5286]) +2 other tests skip
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-4/igt@kms_big_fb@4-tiled-32bpp-rotate-0.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip:
- shard-tglu-1: NOTRUN -> [SKIP][89] ([i915#5286]) +2 other tests skip
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip.html
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip:
- shard-tglu: NOTRUN -> [SKIP][90] ([i915#5286]) +1 other test skip
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
* igt@kms_big_fb@linear-64bpp-rotate-90:
- shard-rkl: NOTRUN -> [SKIP][91] ([i915#3638]) +3 other tests skip
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-4/igt@kms_big_fb@linear-64bpp-rotate-90.html
* igt@kms_big_fb@y-tiled-addfb-size-offset-overflow:
- shard-dg2-9: NOTRUN -> [SKIP][92] ([i915#5190]) +1 other test skip
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip:
- shard-dg2-9: NOTRUN -> [SKIP][93] ([i915#4538] / [i915#5190]) +3 other tests skip
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0:
- shard-tglu-1: NOTRUN -> [SKIP][94] +39 other tests skip
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180:
- shard-rkl: NOTRUN -> [SKIP][95] +9 other tests skip
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip:
- shard-dg2: NOTRUN -> [SKIP][96] ([i915#4538] / [i915#5190]) +9 other tests skip
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-6/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
* igt@kms_ccs@bad-pixel-format-4-tiled-mtl-mc-ccs:
- shard-dg2: NOTRUN -> [SKIP][97] ([i915#10307] / [i915#6095]) +140 other tests skip
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-4/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-mc-ccs.html
* igt@kms_ccs@ccs-on-another-bo-y-tiled-ccs@pipe-b-hdmi-a-3:
- shard-dg1: NOTRUN -> [SKIP][98] ([i915#6095]) +87 other tests skip
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg1-12/igt@kms_ccs@ccs-on-another-bo-y-tiled-ccs@pipe-b-hdmi-a-3.html
* igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs:
- shard-tglu: NOTRUN -> [SKIP][99] ([i915#12313])
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-6/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html
* igt@kms_ccs@crc-primary-rotation-180-yf-tiled-ccs@pipe-d-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][100] ([i915#10307] / [i915#10434] / [i915#6095]) +1 other test skip
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-4/igt@kms_ccs@crc-primary-rotation-180-yf-tiled-ccs@pipe-d-hdmi-a-1.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
- shard-dg2-9: NOTRUN -> [SKIP][101] ([i915#12805])
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs:
- shard-dg2: NOTRUN -> [SKIP][102] ([i915#12805])
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc@pipe-c-hdmi-a-1:
- shard-tglu-1: NOTRUN -> [SKIP][103] ([i915#6095]) +39 other tests skip
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc@pipe-c-hdmi-a-1.html
* igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-b-dp-3:
- shard-dg2: NOTRUN -> [SKIP][104] ([i915#6095]) +8 other tests skip
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-10/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-b-dp-3.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs:
- shard-rkl: NOTRUN -> [SKIP][105] ([i915#12313])
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-4/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs:
- shard-dg2: NOTRUN -> [SKIP][106] ([i915#12313])
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-rc-ccs-cc@pipe-a-hdmi-a-2:
- shard-dg2-9: NOTRUN -> [SKIP][107] ([i915#10307] / [i915#6095]) +24 other tests skip
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-rc-ccs-cc@pipe-a-hdmi-a-2.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc:
- shard-tglu: NOTRUN -> [SKIP][108] ([i915#6095]) +4 other tests skip
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-6/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs:
- shard-dg2-9: NOTRUN -> [SKIP][109] ([i915#12313])
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-1:
- shard-rkl: NOTRUN -> [SKIP][110] ([i915#6095]) +47 other tests skip
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-7/igt@kms_ccs@random-ccs-data-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-1.html
* igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][111] ([i915#14098] / [i915#6095]) +48 other tests skip
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html
* igt@kms_cdclk@mode-transition:
- shard-rkl: NOTRUN -> [SKIP][112] ([i915#3742]) +1 other test skip
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-4/igt@kms_cdclk@mode-transition.html
* igt@kms_chamelium_audio@hdmi-audio-edid:
- shard-dg2-9: NOTRUN -> [SKIP][113] ([i915#11151] / [i915#7828]) +4 other tests skip
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_chamelium_audio@hdmi-audio-edid.html
* igt@kms_chamelium_color@degamma:
- shard-dg2: NOTRUN -> [SKIP][114] +11 other tests skip
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_chamelium_color@degamma.html
* igt@kms_chamelium_frames@dp-crc-single:
- shard-tglu-1: NOTRUN -> [SKIP][115] ([i915#11151] / [i915#7828]) +4 other tests skip
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@kms_chamelium_frames@dp-crc-single.html
* igt@kms_chamelium_frames@dp-frame-dump:
- shard-dg2: NOTRUN -> [SKIP][116] ([i915#11151] / [i915#7828]) +8 other tests skip
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_chamelium_frames@dp-frame-dump.html
* igt@kms_chamelium_hpd@vga-hpd-fast:
- shard-rkl: NOTRUN -> [SKIP][117] ([i915#11151] / [i915#7828]) +3 other tests skip
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-8/igt@kms_chamelium_hpd@vga-hpd-fast.html
* igt@kms_color@ctm-0-75:
- shard-rkl: [PASS][118] -> [SKIP][119] ([i915#12655] / [i915#14544]) +1 other test skip
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_color@ctm-0-75.html
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_color@ctm-0-75.html
* igt@kms_content_protection@atomic@pipe-a-dp-3:
- shard-dg2: NOTRUN -> [FAIL][120] ([i915#7173])
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-10/igt@kms_content_protection@atomic@pipe-a-dp-3.html
* igt@kms_content_protection@dp-mst-lic-type-0:
- shard-rkl: NOTRUN -> [SKIP][121] ([i915#3116])
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-8/igt@kms_content_protection@dp-mst-lic-type-0.html
* igt@kms_content_protection@dp-mst-type-1:
- shard-dg2: NOTRUN -> [SKIP][122] ([i915#3299])
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_content_protection@dp-mst-type-1.html
* igt@kms_content_protection@legacy:
- shard-rkl: NOTRUN -> [SKIP][123] ([i915#7118] / [i915#9424]) +1 other test skip
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-4/igt@kms_content_protection@legacy.html
* igt@kms_cursor_crc@cursor-offscreen-32x32:
- shard-tglu-1: NOTRUN -> [SKIP][124] ([i915#3555]) +1 other test skip
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@kms_cursor_crc@cursor-offscreen-32x32.html
* igt@kms_cursor_crc@cursor-onscreen-256x256:
- shard-rkl: [PASS][125] -> [DMESG-WARN][126] ([i915#12964]) +16 other tests dmesg-warn
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-4/igt@kms_cursor_crc@cursor-onscreen-256x256.html
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-7/igt@kms_cursor_crc@cursor-onscreen-256x256.html
* igt@kms_cursor_crc@cursor-onscreen-32x32:
- shard-rkl: NOTRUN -> [SKIP][127] ([i915#3555]) +2 other tests skip
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-4/igt@kms_cursor_crc@cursor-onscreen-32x32.html
* igt@kms_cursor_crc@cursor-random-512x170:
- shard-dg2: NOTRUN -> [SKIP][128] ([i915#13049]) +1 other test skip
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_cursor_crc@cursor-random-512x170.html
* igt@kms_cursor_crc@cursor-random-64x21:
- shard-tglu: NOTRUN -> [FAIL][129] ([i915#13566]) +1 other test fail
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-6/igt@kms_cursor_crc@cursor-random-64x21.html
* igt@kms_cursor_crc@cursor-random-max-size:
- shard-glk: NOTRUN -> [SKIP][130] +287 other tests skip
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-glk9/igt@kms_cursor_crc@cursor-random-max-size.html
* igt@kms_cursor_crc@cursor-rapid-movement-32x32:
- shard-tglu: NOTRUN -> [SKIP][131] ([i915#3555])
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-6/igt@kms_cursor_crc@cursor-rapid-movement-32x32.html
* igt@kms_cursor_crc@cursor-rapid-movement-512x512:
- shard-rkl: NOTRUN -> [SKIP][132] ([i915#13049])
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html
* igt@kms_cursor_crc@cursor-sliding-128x42@pipe-a-hdmi-a-2:
- shard-rkl: NOTRUN -> [FAIL][133] ([i915#13566])
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-8/igt@kms_cursor_crc@cursor-sliding-128x42@pipe-a-hdmi-a-2.html
* igt@kms_cursor_crc@cursor-sliding-512x170:
- shard-tglu-1: NOTRUN -> [SKIP][134] ([i915#13049])
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@kms_cursor_crc@cursor-sliding-512x170.html
* igt@kms_cursor_edge_walk@256x256-top-bottom:
- shard-rkl: [PASS][135] -> [SKIP][136] ([i915#14544]) +17 other tests skip
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_cursor_edge_walk@256x256-top-bottom.html
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_cursor_edge_walk@256x256-top-bottom.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- shard-dg2-9: NOTRUN -> [SKIP][137] ([i915#4103] / [i915#4213])
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
* igt@kms_cursor_legacy@basic-flip-before-cursor-legacy:
- shard-glk10: NOTRUN -> [SKIP][138] ([i915#11190]) +1 other test skip
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-glk10/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
* igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size:
- shard-rkl: NOTRUN -> [DMESG-WARN][139] ([i915#12964]) +13 other tests dmesg-warn
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-4/igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size.html
* igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions:
- shard-dg2: NOTRUN -> [SKIP][140] ([i915#13046] / [i915#5354]) +7 other tests skip
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-atomic:
- shard-dg2-9: NOTRUN -> [SKIP][141] ([i915#13046] / [i915#5354]) +2 other tests skip
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-glk: NOTRUN -> [FAIL][142] ([i915#2346])
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-glk5/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:
- shard-rkl: NOTRUN -> [SKIP][143] ([i915#4103])
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
* igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][144] ([i915#3804])
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-2.html
* igt@kms_dither@fb-8bpc-vs-panel-8bpc:
- shard-dg2-9: NOTRUN -> [SKIP][145] ([i915#3555]) +3 other tests skip
[145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_dither@fb-8bpc-vs-panel-8bpc.html
* igt@kms_dp_aux_dev:
- shard-dg2: [PASS][146] -> [SKIP][147] ([i915#1257])
[146]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-dg2-10/igt@kms_dp_aux_dev.html
[147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-1/igt@kms_dp_aux_dev.html
* igt@kms_dp_link_training@non-uhbr-sst:
- shard-rkl: NOTRUN -> [SKIP][148] ([i915#13749])
[148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-8/igt@kms_dp_link_training@non-uhbr-sst.html
* igt@kms_dp_link_training@uhbr-sst:
- shard-rkl: NOTRUN -> [SKIP][149] ([i915#13748])
[149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_dp_link_training@uhbr-sst.html
* igt@kms_dp_linktrain_fallback@dsc-fallback:
- shard-dg2: NOTRUN -> [SKIP][150] ([i915#13707])
[150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_dp_linktrain_fallback@dsc-fallback.html
* igt@kms_dsc@dsc-basic:
- shard-dg2-9: NOTRUN -> [SKIP][151] ([i915#3555] / [i915#3840])
[151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_dsc@dsc-basic.html
* igt@kms_dsc@dsc-fractional-bpp:
- shard-dg2: NOTRUN -> [SKIP][152] ([i915#3840] / [i915#9688])
[152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_dsc@dsc-fractional-bpp.html
* igt@kms_dsc@dsc-with-formats:
- shard-rkl: NOTRUN -> [SKIP][153] ([i915#3555] / [i915#3840])
[153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-8/igt@kms_dsc@dsc-with-formats.html
* igt@kms_dsc@dsc-with-output-formats:
- shard-dg2: NOTRUN -> [SKIP][154] ([i915#3555] / [i915#3840]) +1 other test skip
[154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_dsc@dsc-with-output-formats.html
* igt@kms_fbcon_fbt@psr:
- shard-tglu-1: NOTRUN -> [SKIP][155] ([i915#3469])
[155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@kms_fbcon_fbt@psr.html
* igt@kms_fbcon_fbt@psr-suspend:
- shard-tglu: NOTRUN -> [SKIP][156] ([i915#3469])
[156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-6/igt@kms_fbcon_fbt@psr-suspend.html
* igt@kms_feature_discovery@chamelium:
- shard-rkl: NOTRUN -> [SKIP][157] ([i915#4854])
[157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-4/igt@kms_feature_discovery@chamelium.html
* igt@kms_feature_discovery@dp-mst:
- shard-dg2-9: NOTRUN -> [SKIP][158] ([i915#9337])
[158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_feature_discovery@dp-mst.html
- shard-dg1: NOTRUN -> [SKIP][159] ([i915#9337])
[159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg1-18/igt@kms_feature_discovery@dp-mst.html
* igt@kms_flip@2x-absolute-wf_vblank:
- shard-rkl: NOTRUN -> [SKIP][160] ([i915#9934]) +5 other tests skip
[160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_flip@2x-absolute-wf_vblank.html
* igt@kms_flip@2x-absolute-wf_vblank-interruptible:
- shard-dg2: NOTRUN -> [SKIP][161] ([i915#9934]) +5 other tests skip
[161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_flip@2x-absolute-wf_vblank-interruptible.html
* igt@kms_flip@2x-flip-vs-suspend-interruptible:
- shard-glk: NOTRUN -> [INCOMPLETE][162] ([i915#12745] / [i915#4839])
[162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-glk6/igt@kms_flip@2x-flip-vs-suspend-interruptible.html
* igt@kms_flip@2x-flip-vs-suspend-interruptible@ab-hdmi-a1-hdmi-a2:
- shard-glk: NOTRUN -> [INCOMPLETE][163] ([i915#4839])
[163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-glk6/igt@kms_flip@2x-flip-vs-suspend-interruptible@ab-hdmi-a1-hdmi-a2.html
* igt@kms_flip@2x-plain-flip-fb-recreate:
- shard-dg2-9: NOTRUN -> [SKIP][164] ([i915#9934])
[164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_flip@2x-plain-flip-fb-recreate.html
* igt@kms_flip@2x-plain-flip-ts-check-interruptible:
- shard-tglu-1: NOTRUN -> [SKIP][165] ([i915#3637] / [i915#9934]) +4 other tests skip
[165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@kms_flip@2x-plain-flip-ts-check-interruptible.html
* igt@kms_flip@bo-too-big-interruptible:
- shard-rkl: [PASS][166] -> [SKIP][167] ([i915#14544] / [i915#3637]) +2 other tests skip
[166]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_flip@bo-too-big-interruptible.html
[167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_flip@bo-too-big-interruptible.html
* igt@kms_flip@flip-vs-dpms-on-nop:
- shard-rkl: [PASS][168] -> [SKIP][169] ([i915#14544] / [i915#14553])
[168]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_flip@flip-vs-dpms-on-nop.html
[169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_flip@flip-vs-dpms-on-nop.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling:
- shard-dg2: NOTRUN -> [SKIP][170] ([i915#2672] / [i915#3555])
[170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling@pipe-a-valid-mode:
- shard-dg2: NOTRUN -> [SKIP][171] ([i915#2672]) +3 other tests skip
[171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling:
- shard-dg2-9: NOTRUN -> [SKIP][172] ([i915#2672] / [i915#3555])
[172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling@pipe-a-valid-mode:
- shard-dg2-9: NOTRUN -> [SKIP][173] ([i915#2672])
[173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling:
- shard-tglu-1: NOTRUN -> [SKIP][174] ([i915#2587] / [i915#2672] / [i915#3555])
[174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling@pipe-a-valid-mode:
- shard-tglu-1: NOTRUN -> [SKIP][175] ([i915#2587] / [i915#2672])
[175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling@pipe-a-valid-mode:
- shard-rkl: NOTRUN -> [SKIP][176] ([i915#2672]) +3 other tests skip
[176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling:
- shard-tglu: NOTRUN -> [SKIP][177] ([i915#2672] / [i915#3555])
[177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-6/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling@pipe-a-valid-mode:
- shard-tglu: NOTRUN -> [SKIP][178] ([i915#2587] / [i915#2672])
[178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-6/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling:
- shard-rkl: NOTRUN -> [SKIP][179] ([i915#2672] / [i915#3555]) +1 other test skip
[179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-8/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling:
- shard-rkl: [PASS][180] -> [SKIP][181] ([i915#14544] / [i915#3555]) +1 other test skip
[180]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling.html
[181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling:
- shard-dg2: NOTRUN -> [SKIP][182] ([i915#2672] / [i915#3555] / [i915#5190]) +2 other tests skip
[182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-4/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-pwrite:
- shard-rkl: [PASS][183] -> [SKIP][184] ([i915#14544] / [i915#1849] / [i915#5354]) +4 other tests skip
[183]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-pwrite.html
[184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt:
- shard-dg2: [PASS][185] -> [FAIL][186] ([i915#6880])
[185]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-dg2-4/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt.html
[186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-wc:
- shard-dg2-9: NOTRUN -> [SKIP][187] ([i915#8708]) +5 other tests skip
[187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc:
- shard-rkl: NOTRUN -> [SKIP][188] ([i915#1825]) +25 other tests skip
[188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-farfromfence-mmap-gtt:
- shard-dg1: NOTRUN -> [SKIP][189] ([i915#8708])
[189]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg1-18/igt@kms_frontbuffer_tracking@fbc-farfromfence-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-pwrite:
- shard-dg2: NOTRUN -> [SKIP][190] ([i915#3458]) +14 other tests skip
[190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-pgflip-blt:
- shard-tglu: NOTRUN -> [SKIP][191] +9 other tests skip
[191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-cpu:
- shard-dg2: NOTRUN -> [SKIP][192] ([i915#10433] / [i915#3458]) +1 other test skip
[192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-render:
- shard-dg2-9: NOTRUN -> [SKIP][193] ([i915#3458]) +9 other tests skip
[193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-render.html
* igt@kms_frontbuffer_tracking@pipe-fbc-rte:
- shard-dg2-9: NOTRUN -> [SKIP][194] ([i915#9766])
[194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-cpu:
- shard-dg2-9: NOTRUN -> [SKIP][195] ([i915#5354]) +12 other tests skip
[195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-blt:
- shard-dg2: NOTRUN -> [SKIP][196] ([i915#5354]) +24 other tests skip
[196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary:
- shard-rkl: NOTRUN -> [SKIP][197] ([i915#3023]) +12 other tests skip
[197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary.html
* igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-gtt:
- shard-dg2: NOTRUN -> [SKIP][198] ([i915#8708]) +12 other tests skip
[198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-gtt.html
* igt@kms_hdr@static-swap:
- shard-dg2-9: NOTRUN -> [SKIP][199] ([i915#3555] / [i915#8228])
[199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_hdr@static-swap.html
* igt@kms_hdr@static-toggle:
- shard-rkl: NOTRUN -> [SKIP][200] ([i915#3555] / [i915#8228])
[200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_hdr@static-toggle.html
* igt@kms_hdr@static-toggle-suspend:
- shard-dg2: NOTRUN -> [SKIP][201] ([i915#3555] / [i915#8228]) +1 other test skip
[201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-4/igt@kms_hdr@static-toggle-suspend.html
- shard-tglu-1: NOTRUN -> [SKIP][202] ([i915#3555] / [i915#8228]) +1 other test skip
[202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@kms_hdr@static-toggle-suspend.html
* igt@kms_invalid_mode@zero-hdisplay:
- shard-rkl: [PASS][203] -> [SKIP][204] ([i915#14544] / [i915#3555] / [i915#8826]) +1 other test skip
[203]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_invalid_mode@zero-hdisplay.html
[204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_invalid_mode@zero-hdisplay.html
* igt@kms_joiner@basic-max-non-joiner:
- shard-rkl: NOTRUN -> [SKIP][205] ([i915#13688])
[205]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-4/igt@kms_joiner@basic-max-non-joiner.html
* igt@kms_joiner@basic-ultra-joiner:
- shard-tglu-1: NOTRUN -> [SKIP][206] ([i915#12339])
[206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@kms_joiner@basic-ultra-joiner.html
* igt@kms_joiner@invalid-modeset-big-joiner:
- shard-dg2: NOTRUN -> [SKIP][207] ([i915#10656])
[207]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_joiner@invalid-modeset-big-joiner.html
* igt@kms_joiner@invalid-modeset-ultra-joiner:
- shard-dg2: NOTRUN -> [SKIP][208] ([i915#12339])
[208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_joiner@invalid-modeset-ultra-joiner.html
* igt@kms_pipe_crc_basic@read-crc-frame-sequence:
- shard-rkl: [PASS][209] -> [SKIP][210] ([i915#11190] / [i915#14544])
[209]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_pipe_crc_basic@read-crc-frame-sequence.html
[210]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_pipe_crc_basic@read-crc-frame-sequence.html
* igt@kms_pipe_stress@stress-xrgb8888-ytiled:
- shard-dg2: NOTRUN -> [SKIP][211] ([i915#13705])
[211]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_pipe_stress@stress-xrgb8888-ytiled.html
* igt@kms_plane_alpha_blend@alpha-transparent-fb:
- shard-glk: NOTRUN -> [FAIL][212] ([i915#10647] / [i915#12177])
[212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-glk5/igt@kms_plane_alpha_blend@alpha-transparent-fb.html
* igt@kms_plane_alpha_blend@alpha-transparent-fb@pipe-a-hdmi-a-1:
- shard-glk: NOTRUN -> [FAIL][213] ([i915#10647]) +1 other test fail
[213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-glk5/igt@kms_plane_alpha_blend@alpha-transparent-fb@pipe-a-hdmi-a-1.html
* igt@kms_plane_alpha_blend@coverage-vs-premult-vs-constant:
- shard-rkl: [PASS][214] -> [SKIP][215] ([i915#14544] / [i915#7294]) +1 other test skip
[214]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_plane_alpha_blend@coverage-vs-premult-vs-constant.html
[215]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_plane_alpha_blend@coverage-vs-premult-vs-constant.html
* igt@kms_plane_lowres@tiling-y:
- shard-dg2-9: NOTRUN -> [SKIP][216] ([i915#8821])
[216]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_plane_lowres@tiling-y.html
* igt@kms_plane_multiple@2x-tiling-none:
- shard-rkl: NOTRUN -> [SKIP][217] ([i915#13958])
[217]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_plane_multiple@2x-tiling-none.html
* igt@kms_plane_multiple@tiling-y:
- shard-dg2: NOTRUN -> [SKIP][218] ([i915#14259])
[218]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_plane_multiple@tiling-y.html
* igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-a:
- shard-rkl: NOTRUN -> [SKIP][219] ([i915#12247]) +8 other tests skip
[219]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-8/igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-a.html
* igt@kms_plane_scaling@plane-upscale-factor-0-25-with-modifiers:
- shard-rkl: [PASS][220] -> [SKIP][221] ([i915#14544] / [i915#8152])
[220]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_plane_scaling@plane-upscale-factor-0-25-with-modifiers.html
[221]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_plane_scaling@plane-upscale-factor-0-25-with-modifiers.html
* igt@kms_plane_scaling@plane-upscale-factor-0-25-with-modifiers@pipe-b:
- shard-rkl: [PASS][222] -> [SKIP][223] ([i915#12247] / [i915#14544] / [i915#8152]) +3 other tests skip
[222]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_plane_scaling@plane-upscale-factor-0-25-with-modifiers@pipe-b.html
[223]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_plane_scaling@plane-upscale-factor-0-25-with-modifiers@pipe-b.html
* igt@kms_plane_scaling@planes-downscale-factor-0-5:
- shard-rkl: [PASS][224] -> [SKIP][225] ([i915#12247] / [i915#14544] / [i915#6953] / [i915#8152])
[224]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_plane_scaling@planes-downscale-factor-0-5.html
[225]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_plane_scaling@planes-downscale-factor-0-5.html
* igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a:
- shard-rkl: [PASS][226] -> [SKIP][227] ([i915#12247] / [i915#14544]) +2 other tests skip
[226]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a.html
[227]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a.html
* igt@kms_pm_dc@dc6-dpms:
- shard-rkl: NOTRUN -> [FAIL][228] ([i915#9295])
[228]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-4/igt@kms_pm_dc@dc6-dpms.html
* igt@kms_pm_lpsp@screens-disabled:
- shard-dg2: NOTRUN -> [SKIP][229] ([i915#8430])
[229]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-4/igt@kms_pm_lpsp@screens-disabled.html
- shard-tglu-1: NOTRUN -> [SKIP][230] ([i915#8430])
[230]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@kms_pm_lpsp@screens-disabled.html
* igt@kms_pm_rpm@dpms-lpsp:
- shard-rkl: [PASS][231] -> [SKIP][232] ([i915#15073]) +1 other test skip
[231]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-4/igt@kms_pm_rpm@dpms-lpsp.html
[232]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-8/igt@kms_pm_rpm@dpms-lpsp.html
* igt@kms_pm_rpm@dpms-mode-unset-lpsp:
- shard-dg2: [PASS][233] -> [SKIP][234] ([i915#15073])
[233]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-dg2-4/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
[234]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-3/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
* igt@kms_pm_rpm@dpms-mode-unset-non-lpsp:
- shard-rkl: NOTRUN -> [SKIP][235] ([i915#15073]) +1 other test skip
[235]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
* igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait:
- shard-tglu-1: NOTRUN -> [SKIP][236] ([i915#15073])
[236]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
* igt@kms_pm_rpm@pm-caching:
- shard-glk: NOTRUN -> [DMESG-WARN][237] ([i915#118])
[237]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-glk9/igt@kms_pm_rpm@pm-caching.html
* igt@kms_pm_rpm@system-suspend-modeset:
- shard-glk10: NOTRUN -> [INCOMPLETE][238] ([i915#10553])
[238]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-glk10/igt@kms_pm_rpm@system-suspend-modeset.html
* igt@kms_prime@basic-crc-vgem:
- shard-rkl: [PASS][239] -> [SKIP][240] ([i915#14544] / [i915#6524])
[239]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_prime@basic-crc-vgem.html
[240]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_prime@basic-crc-vgem.html
* igt@kms_prime@basic-modeset-hybrid:
- shard-dg2: NOTRUN -> [SKIP][241] ([i915#6524] / [i915#6805]) +1 other test skip
[241]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-4/igt@kms_prime@basic-modeset-hybrid.html
- shard-tglu-1: NOTRUN -> [SKIP][242] ([i915#6524])
[242]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@kms_prime@basic-modeset-hybrid.html
* igt@kms_properties@crtc-properties-legacy:
- shard-rkl: [PASS][243] -> [SKIP][244] ([i915#11521] / [i915#14544])
[243]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_properties@crtc-properties-legacy.html
[244]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_properties@crtc-properties-legacy.html
* igt@kms_psr2_sf@fbc-pr-overlay-primary-update-sf-dmg-area:
- shard-rkl: NOTRUN -> [SKIP][245] ([i915#11520]) +5 other tests skip
[245]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-8/igt@kms_psr2_sf@fbc-pr-overlay-primary-update-sf-dmg-area.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf:
- shard-tglu-1: NOTRUN -> [SKIP][246] ([i915#11520]) +3 other tests skip
[246]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf:
- shard-glk10: NOTRUN -> [SKIP][247] ([i915#11520]) +3 other tests skip
[247]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-glk10/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area:
- shard-glk: NOTRUN -> [SKIP][248] ([i915#11520]) +9 other tests skip
[248]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-glk5/igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area.html
* igt@kms_psr2_sf@pr-cursor-plane-update-sf:
- shard-dg2-9: NOTRUN -> [SKIP][249] ([i915#11520]) +3 other tests skip
[249]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_psr2_sf@pr-cursor-plane-update-sf.html
* igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-sf:
- shard-tglu: NOTRUN -> [SKIP][250] ([i915#11520]) +1 other test skip
[250]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-6/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-sf.html
* igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area:
- shard-dg2: NOTRUN -> [SKIP][251] ([i915#11520]) +6 other tests skip
[251]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area.html
* igt@kms_psr2_su@frontbuffer-xrgb8888:
- shard-dg2: NOTRUN -> [SKIP][252] ([i915#9683])
[252]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-4/igt@kms_psr2_su@frontbuffer-xrgb8888.html
* igt@kms_psr2_su@page_flip-xrgb8888:
- shard-tglu-1: NOTRUN -> [SKIP][253] ([i915#9683]) +1 other test skip
[253]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@kms_psr2_su@page_flip-xrgb8888.html
* igt@kms_psr@fbc-pr-basic:
- shard-tglu: NOTRUN -> [SKIP][254] ([i915#9732]) +1 other test skip
[254]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-6/igt@kms_psr@fbc-pr-basic.html
* igt@kms_psr@fbc-psr-cursor-plane-move:
- shard-dg2: NOTRUN -> [SKIP][255] ([i915#1072] / [i915#9732]) +17 other tests skip
[255]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_psr@fbc-psr-cursor-plane-move.html
* igt@kms_psr@fbc-psr-sprite-mmap-gtt:
- shard-tglu-1: NOTRUN -> [SKIP][256] ([i915#9732]) +7 other tests skip
[256]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@kms_psr@fbc-psr-sprite-mmap-gtt.html
* igt@kms_psr@fbc-psr2-sprite-blt:
- shard-dg2-9: NOTRUN -> [SKIP][257] ([i915#1072] / [i915#9732]) +9 other tests skip
[257]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_psr@fbc-psr2-sprite-blt.html
* igt@kms_psr@psr2-basic:
- shard-dg1: NOTRUN -> [SKIP][258] ([i915#1072] / [i915#9732]) +1 other test skip
[258]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg1-18/igt@kms_psr@psr2-basic.html
* igt@kms_psr@psr2-primary-mmap-gtt:
- shard-rkl: NOTRUN -> [SKIP][259] ([i915#1072] / [i915#9732]) +11 other tests skip
[259]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-4/igt@kms_psr@psr2-primary-mmap-gtt.html
* igt@kms_rotation_crc@exhaust-fences:
- shard-dg2: NOTRUN -> [SKIP][260] ([i915#4235])
[260]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_rotation_crc@exhaust-fences.html
* igt@kms_rotation_crc@primary-rotation-270:
- shard-dg2-9: NOTRUN -> [SKIP][261] ([i915#12755]) +1 other test skip
[261]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_rotation_crc@primary-rotation-270.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
- shard-tglu-1: NOTRUN -> [SKIP][262] ([i915#5289])
[262]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
- shard-dg2: NOTRUN -> [SKIP][263] ([i915#12755] / [i915#5190])
[263]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-6/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
- shard-dg2-9: NOTRUN -> [SKIP][264] ([i915#12755] / [i915#5190])
[264]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html
* igt@kms_rotation_crc@sprite-rotation-90-pos-100-0:
- shard-dg2: NOTRUN -> [SKIP][265] ([i915#12755])
[265]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_rotation_crc@sprite-rotation-90-pos-100-0.html
* igt@kms_scaling_modes@scaling-mode-center:
- shard-dg1: NOTRUN -> [SKIP][266] ([i915#3555])
[266]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg1-18/igt@kms_scaling_modes@scaling-mode-center.html
* igt@kms_selftest@drm_framebuffer:
- shard-glk10: NOTRUN -> [ABORT][267] ([i915#13179]) +1 other test abort
[267]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-glk10/igt@kms_selftest@drm_framebuffer.html
* igt@kms_selftest@drm_framebuffer@drm_test_framebuffer_free:
- shard-dg2: NOTRUN -> [ABORT][268] ([i915#13179]) +1 other test abort
[268]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-6/igt@kms_selftest@drm_framebuffer@drm_test_framebuffer_free.html
* igt@kms_setmode@basic-clone-single-crtc:
- shard-dg2: NOTRUN -> [SKIP][269] ([i915#3555]) +5 other tests skip
[269]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@kms_setmode@basic-clone-single-crtc.html
* igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-2:
- shard-glk: NOTRUN -> [INCOMPLETE][270] ([i915#12276]) +3 other tests incomplete
[270]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-glk5/igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-2.html
* igt@kms_vrr@flip-basic-fastset:
- shard-dg1: NOTRUN -> [SKIP][271] ([i915#9906])
[271]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg1-18/igt@kms_vrr@flip-basic-fastset.html
- shard-dg2-9: NOTRUN -> [SKIP][272] ([i915#9906])
[272]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@kms_vrr@flip-basic-fastset.html
* igt@kms_vrr@negative-basic:
- shard-rkl: NOTRUN -> [SKIP][273] ([i915#3555] / [i915#9906])
[273]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-8/igt@kms_vrr@negative-basic.html
* igt@kms_vrr@seamless-rr-switch-vrr:
- shard-dg2: NOTRUN -> [SKIP][274] ([i915#9906])
[274]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-4/igt@kms_vrr@seamless-rr-switch-vrr.html
- shard-tglu-1: NOTRUN -> [SKIP][275] ([i915#9906])
[275]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@kms_vrr@seamless-rr-switch-vrr.html
* igt@kms_writeback@writeback-pixel-formats:
- shard-tglu: NOTRUN -> [SKIP][276] ([i915#2437] / [i915#9412]) +1 other test skip
[276]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-6/igt@kms_writeback@writeback-pixel-formats.html
* igt@perf@per-context-mode-unprivileged:
- shard-rkl: NOTRUN -> [SKIP][277] ([i915#2435])
[277]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-4/igt@perf@per-context-mode-unprivileged.html
* igt@perf_pmu@rc6@other-idle-gt0:
- shard-dg2-9: NOTRUN -> [SKIP][278] ([i915#8516]) +1 other test skip
[278]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@perf_pmu@rc6@other-idle-gt0.html
* igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem:
- shard-dg2-9: NOTRUN -> [SKIP][279] ([i915#14121]) +1 other test skip
[279]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem.html
* igt@prime_vgem@basic-fence-flip:
- shard-dg2-9: NOTRUN -> [SKIP][280] ([i915#3708])
[280]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@prime_vgem@basic-fence-flip.html
* igt@prime_vgem@basic-fence-read:
- shard-dg2-9: NOTRUN -> [SKIP][281] ([i915#3291] / [i915#3708])
[281]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-9/igt@prime_vgem@basic-fence-read.html
* igt@prime_vgem@basic-gtt:
- shard-dg2: NOTRUN -> [SKIP][282] ([i915#3708] / [i915#4077])
[282]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-7/igt@prime_vgem@basic-gtt.html
* igt@prime_vgem@basic-write:
- shard-rkl: NOTRUN -> [SKIP][283] ([i915#3291] / [i915#3708])
[283]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-4/igt@prime_vgem@basic-write.html
* igt@sriov_basic@enable-vfs-autoprobe-on:
- shard-dg2: NOTRUN -> [SKIP][284] ([i915#9917])
[284]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-6/igt@sriov_basic@enable-vfs-autoprobe-on.html
* igt@sriov_basic@enable-vfs-bind-unbind-each@numvfs-2:
- shard-tglu-1: NOTRUN -> [FAIL][285] ([i915#12910]) +8 other tests fail
[285]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-1/igt@sriov_basic@enable-vfs-bind-unbind-each@numvfs-2.html
#### Possible fixes ####
* igt@gem_ctx_freq@sysfs@gt0:
- shard-dg2: [FAIL][286] ([i915#9561]) -> [PASS][287] +1 other test pass
[286]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-dg2-8/igt@gem_ctx_freq@sysfs@gt0.html
[287]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-5/igt@gem_ctx_freq@sysfs@gt0.html
* igt@gem_eio@kms:
- shard-rkl: [DMESG-WARN][288] ([i915#13363]) -> [PASS][289]
[288]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-8/igt@gem_eio@kms.html
[289]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@gem_eio@kms.html
* igt@gem_exec_suspend@basic-s0:
- shard-rkl: [INCOMPLETE][290] ([i915#13356]) -> [PASS][291] +1 other test pass
[290]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-5/igt@gem_exec_suspend@basic-s0.html
[291]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-8/igt@gem_exec_suspend@basic-s0.html
* igt@gem_pxp@regular-baseline-src-copy-readible:
- shard-rkl: [TIMEOUT][292] ([i915#12964]) -> [PASS][293]
[292]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-5/igt@gem_pxp@regular-baseline-src-copy-readible.html
[293]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-8/igt@gem_pxp@regular-baseline-src-copy-readible.html
* igt@i915_module_load@resize-bar:
- shard-dg2: [DMESG-WARN][294] ([i915#14545]) -> [PASS][295]
[294]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-dg2-3/igt@i915_module_load@resize-bar.html
[295]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-8/igt@i915_module_load@resize-bar.html
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip:
- shard-mtlp: [FAIL][296] ([i915#5138]) -> [PASS][297]
[296]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-mtlp-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
[297]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-mtlp-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
* igt@kms_color@ctm-green-to-red:
- shard-rkl: [SKIP][298] ([i915#12655] / [i915#14544]) -> [PASS][299]
[298]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_color@ctm-green-to-red.html
[299]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@kms_color@ctm-green-to-red.html
* igt@kms_cursor_crc@cursor-random-256x85@pipe-a-hdmi-a-1:
- shard-tglu: [FAIL][300] ([i915#13566]) -> [PASS][301] +1 other test pass
[300]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-tglu-4/igt@kms_cursor_crc@cursor-random-256x85@pipe-a-hdmi-a-1.html
[301]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-10/igt@kms_cursor_crc@cursor-random-256x85@pipe-a-hdmi-a-1.html
* igt@kms_cursor_legacy@cursora-vs-flipa-atomic-transitions:
- shard-rkl: [SKIP][302] ([i915#14544]) -> [PASS][303] +23 other tests pass
[302]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_cursor_legacy@cursora-vs-flipa-atomic-transitions.html
[303]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_cursor_legacy@cursora-vs-flipa-atomic-transitions.html
* igt@kms_flip@2x-dpms-vs-vblank-race:
- shard-snb: [FAIL][304] ([i915#10826]) -> [PASS][305] +1 other test pass
[304]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-snb6/igt@kms_flip@2x-dpms-vs-vblank-race.html
[305]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-snb6/igt@kms_flip@2x-dpms-vs-vblank-race.html
* igt@kms_flip@2x-flip-vs-suspend@ab-vga1-hdmi-a1:
- shard-snb: [TIMEOUT][306] ([i915#14033]) -> [PASS][307] +1 other test pass
[306]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-snb1/igt@kms_flip@2x-flip-vs-suspend@ab-vga1-hdmi-a1.html
[307]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-snb7/igt@kms_flip@2x-flip-vs-suspend@ab-vga1-hdmi-a1.html
* igt@kms_flip@basic-flip-vs-wf_vblank:
- shard-rkl: [SKIP][308] ([i915#14544] / [i915#3637]) -> [PASS][309] +2 other tests pass
[308]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_flip@basic-flip-vs-wf_vblank.html
[309]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@kms_flip@basic-flip-vs-wf_vblank.html
* igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling:
- shard-rkl: [SKIP][310] ([i915#14544] / [i915#3555]) -> [PASS][311] +1 other test pass
[310]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling.html
[311]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling.html
* igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-pwrite:
- shard-rkl: [SKIP][312] ([i915#14544] / [i915#1849] / [i915#5354]) -> [PASS][313] +4 other tests pass
[312]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-pwrite.html
[313]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-pwrite.html
* igt@kms_hdr@static-toggle:
- shard-dg2: [SKIP][314] ([i915#3555] / [i915#8228]) -> [PASS][315]
[314]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-dg2-1/igt@kms_hdr@static-toggle.html
[315]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-10/igt@kms_hdr@static-toggle.html
* igt@kms_invalid_mode@clock-too-high:
- shard-rkl: [SKIP][316] ([i915#14544] / [i915#3555] / [i915#8826]) -> [PASS][317]
[316]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_invalid_mode@clock-too-high.html
[317]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@kms_invalid_mode@clock-too-high.html
* igt@kms_plane@plane-position-hole:
- shard-rkl: [SKIP][318] ([i915#14544] / [i915#8825]) -> [PASS][319]
[318]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_plane@plane-position-hole.html
[319]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_plane@plane-position-hole.html
* igt@kms_plane_alpha_blend@constant-alpha-mid:
- shard-rkl: [SKIP][320] ([i915#14544] / [i915#7294]) -> [PASS][321]
[320]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_plane_alpha_blend@constant-alpha-mid.html
[321]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@kms_plane_alpha_blend@constant-alpha-mid.html
* igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format:
- shard-rkl: [SKIP][322] ([i915#14544] / [i915#8152]) -> [PASS][323]
[322]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format.html
[323]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format.html
* igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format@pipe-b:
- shard-rkl: [SKIP][324] ([i915#12247] / [i915#14544] / [i915#8152]) -> [PASS][325] +1 other test pass
[324]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format@pipe-b.html
[325]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format@pipe-b.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75:
- shard-rkl: [SKIP][326] ([i915#12247] / [i915#14544] / [i915#3555] / [i915#6953] / [i915#8152]) -> [PASS][327]
[326]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75.html
[327]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-a:
- shard-rkl: [SKIP][328] ([i915#12247] / [i915#14544]) -> [PASS][329] +1 other test pass
[328]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-a.html
[329]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-a.html
* igt@kms_pm_rpm@cursor-dpms:
- shard-rkl: [SKIP][330] ([i915#14544] / [i915#1849]) -> [PASS][331]
[330]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_pm_rpm@cursor-dpms.html
[331]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_pm_rpm@cursor-dpms.html
* igt@kms_pm_rpm@modeset-lpsp:
- shard-dg2: [SKIP][332] ([i915#15073]) -> [PASS][333]
[332]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-dg2-8/igt@kms_pm_rpm@modeset-lpsp.html
[333]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-4/igt@kms_pm_rpm@modeset-lpsp.html
* igt@kms_pm_rpm@modeset-non-lpsp:
- shard-rkl: [SKIP][334] ([i915#15073]) -> [PASS][335] +1 other test pass
[334]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_pm_rpm@modeset-non-lpsp.html
[335]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@kms_pm_rpm@modeset-non-lpsp.html
* {igt@kms_pm_rpm@system-suspend-idle}:
- shard-rkl: [INCOMPLETE][336] ([i915#14419]) -> [PASS][337]
[336]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-3/igt@kms_pm_rpm@system-suspend-idle.html
[337]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_pm_rpm@system-suspend-idle.html
* igt@perf_pmu@rc6-suspend:
- shard-rkl: [INCOMPLETE][338] ([i915#13520]) -> [PASS][339]
[338]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-3/igt@perf_pmu@rc6-suspend.html
[339]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-4/igt@perf_pmu@rc6-suspend.html
* igt@perf_pmu@render-node-busy@bcs0:
- shard-rkl: [DMESG-WARN][340] ([i915#12964]) -> [PASS][341] +3 other tests pass
[340]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-4/igt@perf_pmu@render-node-busy@bcs0.html
[341]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-7/igt@perf_pmu@render-node-busy@bcs0.html
* igt@sysfs_heartbeat_interval@precise@bcs0:
- shard-rkl: [FAIL][342] ([i915#14783]) -> [PASS][343] +1 other test pass
[342]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-4/igt@sysfs_heartbeat_interval@precise@bcs0.html
[343]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-8/igt@sysfs_heartbeat_interval@precise@bcs0.html
#### Warnings ####
* igt@api_intel_bb@blit-reloc-keep-cache:
- shard-rkl: [SKIP][344] ([i915#8411]) -> [SKIP][345] ([i915#14544] / [i915#8411])
[344]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@api_intel_bb@blit-reloc-keep-cache.html
[345]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@api_intel_bb@blit-reloc-keep-cache.html
* igt@api_intel_bb@crc32:
- shard-rkl: [SKIP][346] ([i915#6230]) -> [SKIP][347] ([i915#14544] / [i915#6230])
[346]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@api_intel_bb@crc32.html
[347]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@api_intel_bb@crc32.html
* igt@gem_ccs@block-multicopy-compressed:
- shard-rkl: [SKIP][348] ([i915#14544] / [i915#9323]) -> [SKIP][349] ([i915#9323])
[348]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@gem_ccs@block-multicopy-compressed.html
[349]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@gem_ccs@block-multicopy-compressed.html
* igt@gem_ccs@block-multicopy-inplace:
- shard-rkl: [SKIP][350] ([i915#3555] / [i915#9323]) -> [SKIP][351] ([i915#14544] / [i915#3555] / [i915#9323])
[350]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@gem_ccs@block-multicopy-inplace.html
[351]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@gem_ccs@block-multicopy-inplace.html
* igt@gem_exec_balancer@parallel-balancer:
- shard-rkl: [SKIP][352] ([i915#4525]) -> [SKIP][353] ([i915#14544] / [i915#4525])
[352]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@gem_exec_balancer@parallel-balancer.html
[353]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@gem_exec_balancer@parallel-balancer.html
* igt@gem_exec_balancer@parallel-dmabuf-import-out-fence:
- shard-rkl: [SKIP][354] ([i915#14544] / [i915#4525]) -> [SKIP][355] ([i915#4525])
[354]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@gem_exec_balancer@parallel-dmabuf-import-out-fence.html
[355]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@gem_exec_balancer@parallel-dmabuf-import-out-fence.html
* igt@gem_exec_big@single:
- shard-tglu: [ABORT][356] ([i915#11713] / [i915#14756]) -> [ABORT][357] ([i915#14976])
[356]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-tglu-3/igt@gem_exec_big@single.html
[357]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-tglu-7/igt@gem_exec_big@single.html
* igt@gem_exec_capture@capture-recoverable:
- shard-rkl: [SKIP][358] ([i915#14544] / [i915#6344]) -> [SKIP][359] ([i915#6344])
[358]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@gem_exec_capture@capture-recoverable.html
[359]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@gem_exec_capture@capture-recoverable.html
* igt@gem_exec_reloc@basic-wc-gtt:
- shard-rkl: [SKIP][360] ([i915#14544] / [i915#3281]) -> [SKIP][361] ([i915#3281]) +6 other tests skip
[360]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@gem_exec_reloc@basic-wc-gtt.html
[361]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@gem_exec_reloc@basic-wc-gtt.html
* igt@gem_exec_reloc@basic-write-read-noreloc:
- shard-rkl: [SKIP][362] ([i915#3281]) -> [SKIP][363] ([i915#14544] / [i915#3281]) +8 other tests skip
[362]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@gem_exec_reloc@basic-write-read-noreloc.html
[363]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@gem_exec_reloc@basic-write-read-noreloc.html
* igt@gem_lmem_swapping@heavy-verify-multi-ccs:
- shard-rkl: [SKIP][364] ([i915#14544] / [i915#4613]) -> [SKIP][365] ([i915#4613]) +1 other test skip
[364]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html
[365]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html
* igt@gem_lmem_swapping@heavy-verify-random:
- shard-rkl: [SKIP][366] ([i915#4613]) -> [SKIP][367] ([i915#14544] / [i915#4613]) +1 other test skip
[366]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@gem_lmem_swapping@heavy-verify-random.html
[367]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@gem_lmem_swapping@heavy-verify-random.html
* igt@gem_mmap_gtt@coherency:
- shard-rkl: [SKIP][368] ([i915#14544]) -> [SKIP][369] +6 other tests skip
[368]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@gem_mmap_gtt@coherency.html
[369]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@gem_mmap_gtt@coherency.html
* igt@gem_partial_pwrite_pread@write-snoop:
- shard-rkl: [SKIP][370] ([i915#14544] / [i915#3282]) -> [SKIP][371] ([i915#3282])
[370]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@gem_partial_pwrite_pread@write-snoop.html
[371]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@gem_partial_pwrite_pread@write-snoop.html
* igt@gem_partial_pwrite_pread@writes-after-reads-display:
- shard-rkl: [SKIP][372] ([i915#3282]) -> [SKIP][373] ([i915#14544] / [i915#3282]) +1 other test skip
[372]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@gem_partial_pwrite_pread@writes-after-reads-display.html
[373]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@gem_partial_pwrite_pread@writes-after-reads-display.html
* igt@gem_pxp@create-protected-buffer:
- shard-rkl: [SKIP][374] ([i915#14544] / [i915#4270]) -> [TIMEOUT][375] ([i915#12964])
[374]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@gem_pxp@create-protected-buffer.html
[375]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@gem_pxp@create-protected-buffer.html
* igt@gem_userptr_blits@unsync-unmap:
- shard-rkl: [SKIP][376] ([i915#14544] / [i915#3297]) -> [SKIP][377] ([i915#3297])
[376]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@gem_userptr_blits@unsync-unmap.html
[377]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@gem_userptr_blits@unsync-unmap.html
* igt@gen9_exec_parse@bb-start-far:
- shard-rkl: [SKIP][378] ([i915#14544] / [i915#2527]) -> [SKIP][379] ([i915#2527])
[378]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@gen9_exec_parse@bb-start-far.html
[379]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@gen9_exec_parse@bb-start-far.html
* igt@gen9_exec_parse@valid-registers:
- shard-rkl: [SKIP][380] ([i915#2527]) -> [SKIP][381] ([i915#14544] / [i915#2527]) +1 other test skip
[380]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@gen9_exec_parse@valid-registers.html
[381]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@gen9_exec_parse@valid-registers.html
* igt@intel_hwmon@hwmon-read:
- shard-rkl: [SKIP][382] ([i915#7707]) -> [SKIP][383] ([i915#14544] / [i915#7707])
[382]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@intel_hwmon@hwmon-read.html
[383]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@intel_hwmon@hwmon-read.html
* igt@kms_atomic@plane-primary-overlay-mutable-zpos:
- shard-rkl: [SKIP][384] ([i915#9531]) -> [SKIP][385] ([i915#14544])
[384]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html
[385]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html
* igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels:
- shard-rkl: [SKIP][386] ([i915#14544]) -> [SKIP][387] ([i915#1769] / [i915#3555])
[386]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html
[387]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html
* igt@kms_big_fb@4-tiled-8bpp-rotate-0:
- shard-rkl: [SKIP][388] ([i915#5286]) -> [SKIP][389] ([i915#14544]) +2 other tests skip
[388]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_big_fb@4-tiled-8bpp-rotate-0.html
[389]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_big_fb@4-tiled-8bpp-rotate-0.html
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180:
- shard-rkl: [SKIP][390] ([i915#14544]) -> [SKIP][391] ([i915#5286]) +2 other tests skip
[390]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180.html
[391]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180.html
* igt@kms_big_fb@linear-8bpp-rotate-270:
- shard-rkl: [SKIP][392] ([i915#3638]) -> [SKIP][393] ([i915#14544]) +1 other test skip
[392]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_big_fb@linear-8bpp-rotate-270.html
[393]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_big_fb@linear-8bpp-rotate-270.html
* igt@kms_big_fb@x-tiled-16bpp-rotate-270:
- shard-rkl: [SKIP][394] ([i915#14544]) -> [SKIP][395] ([i915#3638])
[394]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html
[395]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html
* igt@kms_big_fb@x-tiled-64bpp-rotate-180:
- shard-rkl: [SKIP][396] ([i915#14544]) -> [DMESG-WARN][397] ([i915#12964]) +1 other test dmesg-warn
[396]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_big_fb@x-tiled-64bpp-rotate-180.html
[397]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@kms_big_fb@x-tiled-64bpp-rotate-180.html
* igt@kms_big_fb@y-tiled-addfb:
- shard-rkl: [DMESG-WARN][398] ([i915#12964]) -> [SKIP][399] ([i915#14544])
[398]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_big_fb@y-tiled-addfb.html
[399]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_big_fb@y-tiled-addfb.html
* igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs-cc@pipe-b-hdmi-a-2:
- shard-rkl: [SKIP][400] ([i915#14098] / [i915#6095]) -> [SKIP][401] ([i915#6095]) +1 other test skip
[400]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-5/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs-cc@pipe-b-hdmi-a-2.html
[401]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-8/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs-cc@pipe-b-hdmi-a-2.html
* igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs:
- shard-rkl: [SKIP][402] ([i915#14544]) -> [SKIP][403] ([i915#12313])
[402]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs.html
[403]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs.html
* igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs:
- shard-rkl: [SKIP][404] ([i915#12313]) -> [SKIP][405] ([i915#14544]) +1 other test skip
[404]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html
[405]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs:
- shard-rkl: [SKIP][406] ([i915#14544]) -> [SKIP][407] ([i915#14098] / [i915#6095]) +6 other tests skip
[406]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs.html
[407]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs:
- shard-rkl: [SKIP][408] ([i915#14098] / [i915#6095]) -> [SKIP][409] ([i915#14544]) +6 other tests skip
[408]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
[409]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
* igt@kms_chamelium_color@ctm-max:
- shard-rkl: [SKIP][410] -> [SKIP][411] ([i915#14544]) +9 other tests skip
[410]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_chamelium_color@ctm-max.html
[411]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_chamelium_color@ctm-max.html
* igt@kms_chamelium_edid@hdmi-edid-read:
- shard-rkl: [SKIP][412] ([i915#11151] / [i915#7828]) -> [SKIP][413] ([i915#11151] / [i915#14544] / [i915#7828]) +2 other tests skip
[412]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_chamelium_edid@hdmi-edid-read.html
[413]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_chamelium_edid@hdmi-edid-read.html
* igt@kms_chamelium_frames@dp-crc-fast:
- shard-rkl: [SKIP][414] ([i915#11151] / [i915#14544] / [i915#7828]) -> [SKIP][415] ([i915#11151] / [i915#7828]) +5 other tests skip
[414]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_chamelium_frames@dp-crc-fast.html
[415]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_chamelium_frames@dp-crc-fast.html
* igt@kms_content_protection@atomic:
- shard-dg2: [SKIP][416] ([i915#7118] / [i915#9424]) -> [FAIL][417] ([i915#7173])
[416]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-dg2-1/igt@kms_content_protection@atomic.html
[417]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-10/igt@kms_content_protection@atomic.html
* igt@kms_content_protection@atomic-dpms:
- shard-rkl: [SKIP][418] ([i915#14544]) -> [SKIP][419] ([i915#7118] / [i915#9424])
[418]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_content_protection@atomic-dpms.html
[419]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_content_protection@atomic-dpms.html
* igt@kms_content_protection@dp-mst-type-0:
- shard-rkl: [SKIP][420] ([i915#3116]) -> [SKIP][421] ([i915#14544])
[420]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_content_protection@dp-mst-type-0.html
[421]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_content_protection@dp-mst-type-0.html
* igt@kms_content_protection@uevent:
- shard-rkl: [SKIP][422] ([i915#7118] / [i915#9424]) -> [SKIP][423] ([i915#14544])
[422]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_content_protection@uevent.html
[423]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_content_protection@uevent.html
* igt@kms_cursor_crc@cursor-offscreen-512x512:
- shard-rkl: [SKIP][424] ([i915#14544]) -> [SKIP][425] ([i915#13049]) +1 other test skip
[424]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_cursor_crc@cursor-offscreen-512x512.html
[425]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@kms_cursor_crc@cursor-offscreen-512x512.html
* igt@kms_cursor_crc@cursor-onscreen-32x10:
- shard-rkl: [SKIP][426] ([i915#3555]) -> [SKIP][427] ([i915#14544]) +1 other test skip
[426]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_cursor_crc@cursor-onscreen-32x10.html
[427]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_cursor_crc@cursor-onscreen-32x10.html
* igt@kms_cursor_crc@cursor-onscreen-max-size:
- shard-rkl: [SKIP][428] ([i915#14544]) -> [SKIP][429] ([i915#3555]) +2 other tests skip
[428]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_cursor_crc@cursor-onscreen-max-size.html
[429]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_cursor_crc@cursor-onscreen-max-size.html
* igt@kms_cursor_crc@cursor-random-256x85:
- shard-rkl: [FAIL][430] ([i915#13566]) -> [SKIP][431] ([i915#14544])
[430]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_cursor_crc@cursor-random-256x85.html
[431]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_cursor_crc@cursor-random-256x85.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- shard-rkl: [SKIP][432] ([i915#4103]) -> [SKIP][433] ([i915#11190] / [i915#14544])
[432]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
[433]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
- shard-rkl: [SKIP][434] ([i915#14544]) -> [FAIL][435] ([i915#2346])
[434]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
[435]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
- shard-rkl: [SKIP][436] ([i915#14544]) -> [SKIP][437] ([i915#4103])
[436]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
[437]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
* igt@kms_dither@fb-8bpc-vs-panel-6bpc:
- shard-rkl: [SKIP][438] ([i915#14544]) -> [SKIP][439] ([i915#3555] / [i915#3804])
[438]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html
[439]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html
* igt@kms_dp_aux_dev:
- shard-rkl: [SKIP][440] ([i915#1257]) -> [SKIP][441] ([i915#1257] / [i915#14544])
[440]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_dp_aux_dev.html
[441]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_dp_aux_dev.html
* igt@kms_dsc@dsc-with-output-formats-with-bpc:
- shard-rkl: [SKIP][442] ([i915#3840] / [i915#9053]) -> [SKIP][443] ([i915#14544])
[442]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_dsc@dsc-with-output-formats-with-bpc.html
[443]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_dsc@dsc-with-output-formats-with-bpc.html
* igt@kms_feature_discovery@display-3x:
- shard-rkl: [SKIP][444] ([i915#14544] / [i915#1839]) -> [SKIP][445] ([i915#1839]) +1 other test skip
[444]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_feature_discovery@display-3x.html
[445]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_feature_discovery@display-3x.html
* igt@kms_flip@2x-flip-vs-fences:
- shard-rkl: [SKIP][446] ([i915#14544] / [i915#9934]) -> [SKIP][447] ([i915#9934]) +2 other tests skip
[446]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_flip@2x-flip-vs-fences.html
[447]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_flip@2x-flip-vs-fences.html
* igt@kms_flip@2x-flip-vs-panning-vs-hang:
- shard-rkl: [SKIP][448] ([i915#9934]) -> [SKIP][449] ([i915#14544] / [i915#9934]) +4 other tests skip
[448]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_flip@2x-flip-vs-panning-vs-hang.html
[449]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_flip@2x-flip-vs-panning-vs-hang.html
* igt@kms_flip@wf_vblank-ts-check:
- shard-rkl: [SKIP][450] ([i915#14544] / [i915#3637]) -> [DMESG-WARN][451] ([i915#12964])
[450]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_flip@wf_vblank-ts-check.html
[451]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_flip@wf_vblank-ts-check.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling:
- shard-rkl: [SKIP][452] ([i915#2672] / [i915#3555]) -> [SKIP][453] ([i915#14544] / [i915#3555]) +1 other test skip
[452]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling.html
[453]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling:
- shard-rkl: [SKIP][454] ([i915#14544] / [i915#3555]) -> [SKIP][455] ([i915#2672] / [i915#3555]) +1 other test skip
[454]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling.html
[455]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling.html
* igt@kms_force_connector_basic@force-load-detect:
- shard-dg1: [ABORT][456] ([i915#4423]) -> [SKIP][457]
[456]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-dg1-19/igt@kms_force_connector_basic@force-load-detect.html
[457]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg1-13/igt@kms_force_connector_basic@force-load-detect.html
* igt@kms_frontbuffer_tracking@fbc-2p-pri-indfb-multidraw:
- shard-rkl: [SKIP][458] ([i915#14544] / [i915#1849] / [i915#5354]) -> [SKIP][459] ([i915#1825]) +20 other tests skip
[458]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-2p-pri-indfb-multidraw.html
[459]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@kms_frontbuffer_tracking@fbc-2p-pri-indfb-multidraw.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw:
- shard-rkl: [SKIP][460] ([i915#3023]) -> [SKIP][461] ([i915#14544] / [i915#1849] / [i915#5354]) +12 other tests skip
[460]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html
[461]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite:
- shard-dg2: [SKIP][462] ([i915#10433] / [i915#3458]) -> [SKIP][463] ([i915#3458]) +2 other tests skip
[462]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite.html
[463]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-3/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt:
- shard-rkl: [SKIP][464] ([i915#14544] / [i915#1849] / [i915#5354]) -> [SKIP][465] ([i915#3023]) +11 other tests skip
[464]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt.html
[465]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render:
- shard-rkl: [SKIP][466] ([i915#1825]) -> [SKIP][467] ([i915#14544] / [i915#1849] / [i915#5354]) +15 other tests skip
[466]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render.html
[467]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render.html
* igt@kms_hdr@bpc-switch-dpms:
- shard-rkl: [SKIP][468] ([i915#3555] / [i915#8228]) -> [SKIP][469] ([i915#14544])
[468]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_hdr@bpc-switch-dpms.html
[469]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_hdr@bpc-switch-dpms.html
* igt@kms_hdr@bpc-switch-suspend:
- shard-dg2: [ABORT][470] -> [SKIP][471] ([i915#3555] / [i915#8228])
[470]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-dg2-10/igt@kms_hdr@bpc-switch-suspend.html
[471]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-4/igt@kms_hdr@bpc-switch-suspend.html
* igt@kms_hdr@brightness-with-hdr:
- shard-dg2: [SKIP][472] ([i915#12713]) -> [SKIP][473] ([i915#13331])
[472]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-dg2-5/igt@kms_hdr@brightness-with-hdr.html
[473]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-dg2-10/igt@kms_hdr@brightness-with-hdr.html
* igt@kms_hdr@invalid-hdr:
- shard-rkl: [SKIP][474] ([i915#14544]) -> [SKIP][475] ([i915#3555] / [i915#8228])
[474]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_hdr@invalid-hdr.html
[475]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_hdr@invalid-hdr.html
* igt@kms_joiner@invalid-modeset-force-ultra-joiner:
- shard-rkl: [SKIP][476] ([i915#12394]) -> [SKIP][477] ([i915#12394] / [i915#14544])
[476]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
[477]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
* igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
- shard-rkl: [SKIP][478] ([i915#13522] / [i915#14544]) -> [SKIP][479] ([i915#13522])
[478]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
[479]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-5/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
* igt@kms_plane_multiple@2x-tiling-x:
- shard-rkl: [SKIP][480] ([i915#14544]) -> [SKIP][481] ([i915#13958])
[480]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_plane_multiple@2x-tiling-x.html
[481]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_plane_multiple@2x-tiling-x.html
* igt@kms_plane_multiple@2x-tiling-y:
- shard-rkl: [SKIP][482] ([i915#13958]) -> [SKIP][483] ([i915#14544])
[482]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_plane_multiple@2x-tiling-y.html
[483]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_plane_multiple@2x-tiling-y.html
* igt@kms_pm_dc@dc6-psr:
- shard-rkl: [SKIP][484] ([i915#9685]) -> [SKIP][485] ([i915#14544] / [i915#9685]) +2 other tests skip
[484]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_pm_dc@dc6-psr.html
[485]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_pm_dc@dc6-psr.html
* igt@kms_pm_rpm@modeset-lpsp:
- shard-rkl: [SKIP][486] ([i915#15073]) -> [DMESG-WARN][487] ([i915#12964])
[486]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-8/igt@kms_pm_rpm@modeset-lpsp.html
[487]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-7/igt@kms_pm_rpm@modeset-lpsp.html
* igt@kms_prime@basic-crc-hybrid:
- shard-rkl: [SKIP][488] ([i915#14544] / [i915#6524]) -> [SKIP][489] ([i915#6524])
[488]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_prime@basic-crc-hybrid.html
[489]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_prime@basic-crc-hybrid.html
* igt@kms_psr2_sf@fbc-pr-primary-plane-update-sf-dmg-area:
- shard-rkl: [SKIP][490] ([i915#11520]) -> [SKIP][491] ([i915#11520] / [i915#14544]) +3 other tests skip
[490]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_psr2_sf@fbc-pr-primary-plane-update-sf-dmg-area.html
[491]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_psr2_sf@fbc-pr-primary-plane-update-sf-dmg-area.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf:
- shard-rkl: [SKIP][492] ([i915#11520] / [i915#14544]) -> [SKIP][493] ([i915#11520]) +3 other tests skip
[492]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf.html
[493]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf.html
* igt@kms_psr@pr-cursor-plane-onoff:
- shard-rkl: [SKIP][494] ([i915#1072] / [i915#14544] / [i915#9732]) -> [SKIP][495] ([i915#1072] / [i915#9732]) +9 other tests skip
[494]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@kms_psr@pr-cursor-plane-onoff.html
[495]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@kms_psr@pr-cursor-plane-onoff.html
* igt@kms_psr@psr2-cursor-blt:
- shard-rkl: [SKIP][496] ([i915#1072] / [i915#9732]) -> [SKIP][497] ([i915#1072] / [i915#14544] / [i915#9732]) +9 other tests skip
[496]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_psr@psr2-cursor-blt.html
[497]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_psr@psr2-cursor-blt.html
* igt@kms_setmode@clone-exclusive-crtc:
- shard-rkl: [SKIP][498] ([i915#3555]) -> [SKIP][499] ([i915#14544] / [i915#3555])
[498]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_setmode@clone-exclusive-crtc.html
[499]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_setmode@clone-exclusive-crtc.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-rkl: [SKIP][500] ([i915#8623]) -> [SKIP][501] ([i915#14544])
[500]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_tiled_display@basic-test-pattern.html
[501]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_tiled_display@basic-test-pattern.html
* igt@kms_vrr@lobf:
- shard-rkl: [SKIP][502] ([i915#11920]) -> [SKIP][503] ([i915#14544])
[502]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@kms_vrr@lobf.html
[503]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@kms_vrr@lobf.html
* igt@prime_vgem@fence-read-hang:
- shard-rkl: [SKIP][504] ([i915#3708]) -> [SKIP][505] ([i915#14544] / [i915#3708])
[504]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-7/igt@prime_vgem@fence-read-hang.html
[505]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-6/igt@prime_vgem@fence-read-hang.html
* igt@sriov_basic@enable-vfs-autoprobe-off:
- shard-rkl: [SKIP][506] ([i915#14544] / [i915#9917]) -> [SKIP][507] ([i915#9917])
[506]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17309/shard-rkl-6/igt@sriov_basic@enable-vfs-autoprobe-off.html
[507]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/shard-rkl-2/igt@sriov_basic@enable-vfs-autoprobe-off.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
[i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433
[i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434
[i915#10553]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10553
[i915#10647]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10647
[i915#10656]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10656
[i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
[i915#10826]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10826
[i915#11078]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11078
[i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151
[i915#11190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11190
[i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
[i915#11521]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11521
[i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681
[i915#11713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11713
[i915#118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/118
[i915#11920]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11920
[i915#12177]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12177
[i915#12247]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12247
[i915#12276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12276
[i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313
[i915#12339]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12339
[i915#12353]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12353
[i915#12394]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12394
[i915#12454]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12454
[i915#1257]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1257
[i915#12655]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12655
[i915#12712]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12712
[i915#12713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12713
[i915#12745]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12745
[i915#12755]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12755
[i915#12805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12805
[i915#12910]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12910
[i915#12917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12917
[i915#12964]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12964
[i915#13029]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13029
[i915#13046]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13046
[i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049
[i915#13179]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13179
[i915#13196]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13196
[i915#13331]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13331
[i915#13356]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13356
[i915#13363]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13363
[i915#13390]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13390
[i915#13520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13520
[i915#13522]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13522
[i915#13566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13566
[i915#13688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13688
[i915#13705]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13705
[i915#13707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13707
[i915#13748]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13748
[i915#13749]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13749
[i915#13958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13958
[i915#14033]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14033
[i915#14073]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14073
[i915#14098]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14098
[i915#14118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14118
[i915#14121]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14121
[i915#14259]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14259
[i915#14419]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14419
[i915#14544]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14544
[i915#14545]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14545
[i915#14553]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14553
[i915#14712]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14712
[i915#14756]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14756
[i915#14783]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14783
[i915#14976]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14976
[i915#15073]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15073
[i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769
[i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
[i915#1839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1839
[i915#1849]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1849
[i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190
[i915#2346]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2346
[i915#2435]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2435
[i915#2437]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
[i915#2587]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2587
[i915#2658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2658
[i915#2672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2672
[i915#280]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/280
[i915#284]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/284
[i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
[i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023
[i915#3116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3116
[i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291
[i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3299
[i915#3323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3323
[i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458
[i915#3469]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3469
[i915#3539]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3539
[i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
[i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637
[i915#3638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3638
[i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
[i915#3742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3742
[i915#3804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3804
[i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
[i915#4036]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4036
[i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
[i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
[i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213
[i915#4235]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4235
[i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270
[i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423
[i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525
[i915#4537]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4537
[i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538
[i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
[i915#4771]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4771
[i915#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812
[i915#4817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4817
[i915#4839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4839
[i915#4852]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4852
[i915#4854]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4854
[i915#4885]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4885
[i915#5138]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5138
[i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
[i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286
[i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289
[i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
[i915#5493]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5493
[i915#5956]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5956
[i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
[i915#6230]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6230
[i915#6344]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6344
[i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
[i915#6805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6805
[i915#6880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6880
[i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953
[i915#7118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7118
[i915#7173]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7173
[i915#7276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7276
[i915#7294]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7294
[i915#7443]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7443
[i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697
[i915#7707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7707
[i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
[i915#8152]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8152
[i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228
[i915#8399]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8399
[i915#8411]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8411
[i915#8428]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8428
[i915#8430]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8430
[i915#8516]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8516
[i915#8555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8555
[i915#8562]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8562
[i915#8623]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8623
[i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708
[i915#8821]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8821
[i915#8825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8825
[i915#8826]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8826
[i915#9053]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9053
[i915#9295]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9295
[i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323
[i915#9337]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9337
[i915#9412]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9412
[i915#9424]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9424
[i915#9531]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9531
[i915#9561]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9561
[i915#9683]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9683
[i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685
[i915#9688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9688
[i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
[i915#9766]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9766
[i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906
[i915#9917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9917
[i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934
Build changes
-------------
* Linux: CI_DRM_17309 -> Patchwork_151245v13
CI-20190529: 20190529
CI_DRM_17309: 8ad3832e11cc44823fc35aa6d36f7e76d69e4791 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_8574: 44a15713124663a622c6eddf7c6ee5ba732e0d41 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_151245v13: 8ad3832e11cc44823fc35aa6d36f7e76d69e4791 @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_151245v13/index.html
[-- Attachment #2: Type: text/html, Size: 171658 bytes --]
^ permalink raw reply [flat|nested] 30+ messages in thread* Re: [PATCH 00/16] Optimize vrr.guardband and fix LRR
2025-10-06 4:28 [PATCH 00/16] Optimize vrr.guardband and fix LRR Ankit Nautiyal
` (17 preceding siblings ...)
2025-10-06 11:54 ` ✗ i915.CI.Full: failure " Patchwork
@ 2025-10-06 22:50 ` Ville Syrjälä
2025-10-07 6:33 ` Nautiyal, Ankit K
18 siblings, 1 reply; 30+ messages in thread
From: Ville Syrjälä @ 2025-10-06 22:50 UTC (permalink / raw)
To: Ankit Nautiyal; +Cc: intel-gfx, intel-xe
On Mon, Oct 06, 2025 at 09:58:36AM +0530, Ankit Nautiyal wrote:
I'd like to see a separate series with just the patches to fix
the crtc_vblank_start stuff, which I think is roughly these:
> drm/i915/vrr: Use crtc_vsync_start/end for computing vrr.vsync_start/end
> drm/i915/vrr: s/intel_vrr_compute_config_late/intel_vrr_compute_guardband
> drm/i915/vblank: Add helper to get correct vblank length
> drm/i915/vrr: Recompute vblank_start for platforms with always-on VRR TG
> drm/i915/display: Add vblank_start adjustment logic for always-on VRR TG
(+ whatever is needed to sort out the issues I outlined in the
indiviual replies)
That is really just fixing existing things, and has nothing to
do with any of the prefill stuff/etc. in the rest of the series.
The prefill stuff btw seems to be completely borked in current
upstream code even; it computes things based on a completely stale
cdclk frequency (the new frequency will be computed much later).
I *think* I can reorder things sufficiently to fix that, but I really
must get https://patchwork.freedesktop.org/series/154921/ landed
first...
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 30+ messages in thread* Re: [PATCH 00/16] Optimize vrr.guardband and fix LRR
2025-10-06 22:50 ` [PATCH 00/16] Optimize vrr.guardband and fix LRR Ville Syrjälä
@ 2025-10-07 6:33 ` Nautiyal, Ankit K
2025-10-07 15:22 ` Ville Syrjälä
0 siblings, 1 reply; 30+ messages in thread
From: Nautiyal, Ankit K @ 2025-10-07 6:33 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-gfx, intel-xe
On 10/7/2025 4:20 AM, Ville Syrjälä wrote:
> On Mon, Oct 06, 2025 at 09:58:36AM +0530, Ankit Nautiyal wrote:
>
> I'd like to see a separate series with just the patches to fix
> the crtc_vblank_start stuff, which I think is roughly these:
>
>> drm/i915/vrr: Use crtc_vsync_start/end for computing vrr.vsync_start/end
>> drm/i915/vrr: s/intel_vrr_compute_config_late/intel_vrr_compute_guardband
>> drm/i915/vblank: Add helper to get correct vblank length
>> drm/i915/vrr: Recompute vblank_start for platforms with always-on VRR TG
>> drm/i915/display: Add vblank_start adjustment logic for always-on VRR TG
> (+ whatever is needed to sort out the issues I outlined in the
> indiviual replies)
>
> That is really just fixing existing things, and has nothing to
> do with any of the prefill stuff/etc. in the rest of the series.
Alright I can send a separate series for this.
Then optimized guardband and pipeline fill thing can wait.
For fixing LRR on PTL, is there any other stop gap?
Currently guardband depends on vmin vtotal and for LRR vtotal gets
changed. Is it possible to get a constant value?
Regards,
Ankit
>
> The prefill stuff btw seems to be completely borked in current
> upstream code even; it computes things based on a completely stale
> cdclk frequency (the new frequency will be computed much later).
>
> I *think* I can reorder things sufficiently to fix that, but I really
> must get https://patchwork.freedesktop.org/series/154921/ landed
> first...
>
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH 00/16] Optimize vrr.guardband and fix LRR
2025-10-07 6:33 ` Nautiyal, Ankit K
@ 2025-10-07 15:22 ` Ville Syrjälä
0 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjälä @ 2025-10-07 15:22 UTC (permalink / raw)
To: Nautiyal, Ankit K; +Cc: intel-gfx, intel-xe
On Tue, Oct 07, 2025 at 12:03:47PM +0530, Nautiyal, Ankit K wrote:
>
> On 10/7/2025 4:20 AM, Ville Syrjälä wrote:
> > On Mon, Oct 06, 2025 at 09:58:36AM +0530, Ankit Nautiyal wrote:
> >
> > I'd like to see a separate series with just the patches to fix
> > the crtc_vblank_start stuff, which I think is roughly these:
> >
> >> drm/i915/vrr: Use crtc_vsync_start/end for computing vrr.vsync_start/end
> >> drm/i915/vrr: s/intel_vrr_compute_config_late/intel_vrr_compute_guardband
> >> drm/i915/vblank: Add helper to get correct vblank length
> >> drm/i915/vrr: Recompute vblank_start for platforms with always-on VRR TG
> >> drm/i915/display: Add vblank_start adjustment logic for always-on VRR TG
> > (+ whatever is needed to sort out the issues I outlined in the
> > indiviual replies)
> >
> > That is really just fixing existing things, and has nothing to
> > do with any of the prefill stuff/etc. in the rest of the series.
>
>
> Alright I can send a separate series for this.
>
>
> Then optimized guardband and pipeline fill thing can wait.
>
>
> For fixing LRR on PTL, is there any other stop gap?
>
> Currently guardband depends on vmin vtotal and for LRR vtotal gets
> changed. Is it possible to get a constant value?
If we aren't convinced that changing the guardband is ok then using
the optimized guardband is the only choice that I can see.
>
>
> Regards,
>
> Ankit
>
> >
> > The prefill stuff btw seems to be completely borked in current
> > upstream code even; it computes things based on a completely stale
> > cdclk frequency (the new frequency will be computed much later).
Also the scaler stuff is borked in the same way. Fixing that is probably
going to require some actual work :/
> >
> > I *think* I can reorder things sufficiently to fix that, but I really
> > must get https://patchwork.freedesktop.org/series/154921/ landed
> > first...
> >
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 30+ messages in thread