* [PATCH 0/5] drm/i915/psr: Panel Replay and PSR2 with the joiner
@ 2026-09-23 11:59 Mika Kahola
2026-09-23 11:59 ` [PATCH] drm/i915/psr: Track all joined pipes for frontbuffer tracking Mika Kahola
` (6 more replies)
0 siblings, 7 replies; 17+ messages in thread
From: Mika Kahola @ 2026-09-23 11:59 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: jouni.hogander, Mika Kahola
PSR has been refused outright with the joiner so far. Each joined pipe
has its own PSR register block, so Panel Replay and PSR2 selective
update do work as long as the joined pipes are A and B. Plain PSR1
doesn't, and stays rejected.
The first three patches fix what the joiner breaks, before anything is
enabled: frontbuffer tracking only looked at the primary pipe, the
selective fetch area was taken from the adjusted mode which spans all
the joined pipes, and PSR2_MAN_TRK_CTL is a transcoder register that
both joined pipes would program. Patch 4 then allows the feature and
patch 5 lets the joiner be forced on eDP, so this is testable without a
panel that asks for it in VBT.
Tested with kms_joiner and kms_psr2_sf on LunarLake, together with the
IGT changes in https://patchwork.freedesktop.org/series/174623/
Mika Kahola (5):
drm/i915/psr: Track all joined pipes for frontbuffer tracking
drm/i915/psr: Take the selective fetch area from pipe_src
drm/i915/psr: Merge the selective fetch area across joined pipes
drm/i915/psr: Allow Panel Replay and PSR2 with joiner
drm/i915/display: Allow forcing the joiner on eDP
.../drm/i915/display/intel_display_debugfs.c | 5 +-
.../drm/i915/display/intel_display_types.h | 1 +
drivers/gpu/drm/i915/display/intel_dp.c | 12 +-
drivers/gpu/drm/i915/display/intel_psr.c | 288 ++++++++++++++----
drivers/gpu/drm/i915/display/intel_vdsc.c | 2 +-
drivers/gpu/drm/i915/display/intel_vdsc.h | 2 +-
6 files changed, 241 insertions(+), 69 deletions(-)
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH] drm/i915/psr: Track all joined pipes for frontbuffer tracking
2026-09-23 11:59 [PATCH 0/5] drm/i915/psr: Panel Replay and PSR2 with the joiner Mika Kahola
@ 2026-09-23 11:59 ` Mika Kahola
2026-09-24 13:02 ` Hogander, Jouni
2026-09-23 11:59 ` [PATCH] drm/i915/psr: Take the selective fetch area from pipe_src Mika Kahola
` (5 subsequent siblings)
6 siblings, 1 reply; 17+ messages in thread
From: Mika Kahola @ 2026-09-23 11:59 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: jouni.hogander, Mika Kahola
psr.pipe is the joiner primary only, so frontbuffer bits coming from a
secondary pipe get masked out and the update goes unnoticed. Add
psr.pipe_mask covering every joined pipe and use that instead.
No functional change, joiner is still rejected in compute_config().
Assisted-by: Copilot:claude-opus-5
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
.../drm/i915/display/intel_display_types.h | 1 +
drivers/gpu/drm/i915/display/intel_psr.c | 27 ++++++++++++++-----
2 files changed, 21 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 79f30660c2b6..2e6e3661675c 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1798,6 +1798,7 @@ struct intel_psr {
bool enabled;
int pause_counter;
enum pipe pipe;
+ u8 pipe_mask;
enum transcoder transcoder;
bool active;
struct work_struct work;
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
index 872e253db178..76260ceb49cb 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -36,6 +36,7 @@
#include "intel_cursor_regs.h"
#include "intel_ddi.h"
#include "intel_de.h"
+#include "intel_display.h"
#include "intel_display_irq.h"
#include "intel_display_regs.h"
#include "intel_display_rpm.h"
@@ -1798,6 +1799,19 @@ static void psr2_dc3co_disable_work(struct work_struct *work)
mutex_unlock(&intel_dp->psr.lock);
}
+/* Frontbuffer bits for every pipe driving this PSR/Panel Replay instance. */
+static unsigned int psr_frontbuffer_mask(struct intel_dp *intel_dp)
+{
+ struct intel_display *display = to_intel_display(intel_dp);
+ unsigned int mask = 0;
+ enum pipe pipe;
+
+ for_each_pipe_masked(display, pipe, intel_dp->psr.pipe_mask)
+ mask |= INTEL_FRONTBUFFER_ALL_MASK(pipe);
+
+ return mask;
+}
+
static void
psr2_dc3co_flush_locked(struct intel_dp *intel_dp, unsigned int frontbuffer_bits)
{
@@ -1813,8 +1827,7 @@ psr2_dc3co_flush_locked(struct intel_dp *intel_dp, unsigned int frontbuffer_bits
* At every frontbuffer flush flip event modified delay of delayed work,
* when delayed work schedules that means display has been idle.
*/
- if (!(frontbuffer_bits &
- INTEL_FRONTBUFFER_ALL_MASK(intel_dp->psr.pipe)))
+ if (!(frontbuffer_bits & psr_frontbuffer_mask(intel_dp)))
return;
mod_delayed_work(display->wq.unordered, &intel_dp->psr.dc3co_work,
@@ -1845,7 +1858,7 @@ void intel_psr_set_non_psr_pipes(struct intel_dp *intel_dp,
active_pipes = intel_calc_active_pipes(state, active_pipes);
crtc_state->active_non_psr_pipes = active_pipes &
- ~BIT(to_intel_crtc(crtc_state->uapi.crtc)->pipe);
+ ~intel_crtc_joined_pipe_mask(crtc_state);
}
void intel_psr_compute_config(struct intel_dp *intel_dp,
@@ -2175,6 +2188,7 @@ static void intel_psr_enable_locked(struct intel_dp *intel_dp,
intel_dp->psr.panel_replay_enabled = crtc_state->has_panel_replay;
intel_dp->psr.busy_frontbuffer_bits = 0;
intel_dp->psr.pipe = to_intel_crtc(crtc_state->uapi.crtc)->pipe;
+ intel_dp->psr.pipe_mask = intel_crtc_joined_pipe_mask(crtc_state);
intel_dp->psr.transcoder = crtc_state->cpu_transcoder;
/* DC5/DC6 requires at least 6 idle frames */
val = usecs_to_jiffies(intel_get_frame_time_us(crtc_state) * 6);
@@ -2394,6 +2408,7 @@ static void intel_psr_disable_locked(struct intel_dp *intel_dp)
intel_dp->psr.psr2_sel_fetch_cff_enabled = false;
intel_dp->psr.active_non_psr_pipes = 0;
intel_dp->psr.pkg_c_latency_used = 0;
+ intel_dp->psr.pipe_mask = 0;
cancel_delayed_work(&intel_dp->psr.dc3co_work);
intel_dp->psr.dc3co_allowed = false;
}
@@ -3627,8 +3642,7 @@ void intel_psr_invalidate(struct intel_display *display,
continue;
}
- pipe_frontbuffer_bits &=
- INTEL_FRONTBUFFER_ALL_MASK(intel_dp->psr.pipe);
+ pipe_frontbuffer_bits &= psr_frontbuffer_mask(intel_dp);
intel_dp->psr.busy_frontbuffer_bits |= pipe_frontbuffer_bits;
if (pipe_frontbuffer_bits)
@@ -3708,8 +3722,7 @@ void intel_psr_flush(struct intel_display *display,
continue;
}
- pipe_frontbuffer_bits &=
- INTEL_FRONTBUFFER_ALL_MASK(intel_dp->psr.pipe);
+ pipe_frontbuffer_bits &= psr_frontbuffer_mask(intel_dp);
intel_dp->psr.busy_frontbuffer_bits &= ~pipe_frontbuffer_bits;
/*
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH] drm/i915/psr: Take the selective fetch area from pipe_src
2026-09-23 11:59 [PATCH 0/5] drm/i915/psr: Panel Replay and PSR2 with the joiner Mika Kahola
2026-09-23 11:59 ` [PATCH] drm/i915/psr: Track all joined pipes for frontbuffer tracking Mika Kahola
@ 2026-09-23 11:59 ` Mika Kahola
2026-09-24 9:45 ` Hogander, Jouni
2026-09-23 11:59 ` [PATCH] drm/i915/psr: Merge the selective fetch area across joined pipes Mika Kahola
` (4 subsequent siblings)
6 siblings, 1 reply; 17+ messages in thread
From: Mika Kahola @ 2026-09-23 11:59 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: jouni.hogander, Mika Kahola
The adjusted mode spans all the joined pipes, so it is the wrong
reference for a per-pipe area. pipe_src is this pipe's own share.
No functional change, the two are the same without a joiner.
Assisted-by: Copilot:claude-opus-5
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
drivers/gpu/drm/i915/display/intel_psr.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
index 76260ceb49cb..c1994da38567 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -2912,8 +2912,8 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
struct drm_rect display_area = {
.x1 = 0,
.y1 = 0,
- .x2 = crtc_state->hw.adjusted_mode.crtc_hdisplay,
- .y2 = crtc_state->hw.adjusted_mode.crtc_vdisplay,
+ .x2 = drm_rect_width(&crtc_state->pipe_src),
+ .y2 = drm_rect_height(&crtc_state->pipe_src),
};
bool full_update = false, su_area_changed;
int i, ret;
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH] drm/i915/psr: Merge the selective fetch area across joined pipes
2026-09-23 11:59 [PATCH 0/5] drm/i915/psr: Panel Replay and PSR2 with the joiner Mika Kahola
2026-09-23 11:59 ` [PATCH] drm/i915/psr: Track all joined pipes for frontbuffer tracking Mika Kahola
2026-09-23 11:59 ` [PATCH] drm/i915/psr: Take the selective fetch area from pipe_src Mika Kahola
@ 2026-09-23 11:59 ` Mika Kahola
2026-10-07 10:25 ` Hogander, Jouni
2026-09-23 11:59 ` [PATCH] drm/i915/psr: Allow Panel Replay and PSR2 with joiner Mika Kahola
` (3 subsequent siblings)
6 siblings, 1 reply; 17+ messages in thread
From: Mika Kahola @ 2026-09-23 11:59 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: jouni.hogander, Mika Kahola
PSR2_MAN_TRK_CTL is per transcoder and a joined config has only one
transcoder, so both joined pipes would program it and the primary
would win. Merge the per-pipe areas, hand the result back to every
joined pipe before the plane areas are set and write the transcoder
register from the primary only. The joiner splits the image
horizontally, so the pipes share the Y coordinate space and all of
them have to fetch the merged range.
The plane support check has to run before the merge, so it now covers
every visible plane instead of only the ones intersecting the area.
Assisted-by: Copilot:claude-opus-5
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
drivers/gpu/drm/i915/display/intel_psr.c | 184 +++++++++++++++++-----
drivers/gpu/drm/i915/display/intel_vdsc.c | 2 +-
drivers/gpu/drm/i915/display/intel_vdsc.h | 2 +-
3 files changed, 145 insertions(+), 43 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
index c1994da38567..4743b5b91743 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -2657,9 +2657,11 @@ void intel_psr2_program_trans_man_trk_ctl(struct intel_dsb *dsb,
break;
}
- intel_de_write_dsb(display, dsb,
- PSR2_MAN_TRK_CTL(display, cpu_transcoder),
- crtc_state->psr2_man_track_ctl);
+ /* The joined pipes drive one transcoder, so program it once. */
+ if (!intel_crtc_is_joiner_secondary(crtc_state))
+ intel_de_write_dsb(display, dsb,
+ PSR2_MAN_TRK_CTL(display, cpu_transcoder),
+ crtc_state->psr2_man_track_ctl);
if (!crtc_state->enable_psr2_su_region_et)
return;
@@ -2670,7 +2672,7 @@ void intel_psr2_program_trans_man_trk_ctl(struct intel_dsb *dsb,
if (!crtc_state->dsc.compression_enable)
return;
- intel_dsc_su_et_parameters_configure(dsb, encoder, crtc_state,
+ intel_dsc_su_et_parameters_configure(dsb, crtc_state,
drm_rect_height(&crtc_state->psr2_su_area));
}
@@ -2900,12 +2902,11 @@ intel_psr_apply_su_area_workarounds(struct intel_crtc_state *crtc_state)
intel_psr_apply_pr_link_on_su_wa(crtc_state);
}
-int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
- struct intel_crtc *crtc)
+static int psr2_sel_fetch_compute_su_area(struct intel_atomic_state *state,
+ struct intel_crtc *crtc,
+ bool *full_update)
{
struct intel_display *display = to_intel_display(state);
- const struct intel_crtc_state *old_crtc_state =
- intel_atomic_get_old_crtc_state(state, crtc);
struct intel_crtc_state *crtc_state = intel_atomic_get_new_crtc_state(state, crtc);
struct intel_plane_state *new_plane_state, *old_plane_state;
struct intel_plane *plane;
@@ -2915,28 +2916,14 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
.x2 = drm_rect_width(&crtc_state->pipe_src),
.y2 = drm_rect_height(&crtc_state->pipe_src),
};
- bool full_update = false, su_area_changed;
+ bool su_area_changed;
int i, ret;
- /*
- * Selective fetch is not always usable, for instance it is dropped
- * while pipe CRC is active. The planes keep their selective fetch
- * enable bit set in hardware over that, and a plane disabled while
- * selective fetch is off never gets the bit cleared. Once selective
- * fetch comes back the hardware would resume fetching for a plane that
- * is no longer enabled and keep its DDB range reserved, so have the
- * plane update drop the bit for every plane of the pipe as selective
- * fetch is turned off.
- */
- crtc_state->clear_psr2_sel_fetch = old_crtc_state->enable_psr2_sel_fetch &&
- !crtc_state->enable_psr2_sel_fetch;
-
- if (!crtc_state->enable_psr2_sel_fetch)
- return 0;
+ *full_update = false;
if (!psr2_sel_fetch_pipe_state_supported(crtc_state)) {
- full_update = true;
- goto skip_sel_fetch_set_loop;
+ *full_update = true;
+ return 0;
}
crtc_state->psr2_su_area.x1 = 0;
@@ -2963,7 +2950,7 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
continue;
if (!psr2_sel_fetch_plane_state_supported(new_plane_state)) {
- full_update = true;
+ *full_update = true;
break;
}
@@ -3023,11 +3010,11 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
drm_info_once(display->drm,
"Selective fetch area calculation failed in pipe %c\n",
pipe_name(crtc->pipe));
- full_update = true;
+ *full_update = true;
}
- if (full_update)
- goto skip_sel_fetch_set_loop;
+ if (*full_update)
+ return 0;
intel_psr_apply_su_area_workarounds(crtc_state);
@@ -3035,6 +3022,21 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
if (ret)
return ret;
+ /*
+ * The loop above never saw the planes pulled in just now, and the area
+ * has to be final before the joined pipes merge it.
+ */
+ for_each_new_intel_plane_in_state(state, plane, new_plane_state, i) {
+ if (new_plane_state->hw.crtc != crtc_state->uapi.crtc ||
+ !new_plane_state->uapi.visible)
+ continue;
+
+ if (!psr2_sel_fetch_plane_state_supported(new_plane_state)) {
+ *full_update = true;
+ return 0;
+ }
+ }
+
do {
bool cursor_in_su_area = false;
@@ -3063,6 +3065,58 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
break;
} while (su_area_changed);
+ return 0;
+}
+
+/*
+ * The joined pipes share one transcoder, and thus one SU region describing the
+ * whole joined frame. Joining splits the image horizontally, so the pipes share
+ * the Y coordinate space and each of them has to fetch the merged range.
+ */
+static void psr2_sel_fetch_merge_su_area(struct intel_atomic_state *state,
+ u8 joined_pipes)
+{
+ struct intel_display *display = to_intel_display(state);
+ struct intel_crtc_state *crtc_state;
+ struct intel_crtc *crtc;
+ int y1 = INT_MAX, y2 = INT_MIN;
+
+ for_each_intel_crtc_in_pipe_mask(display, crtc, joined_pipes) {
+ crtc_state = intel_atomic_get_new_crtc_state(state, crtc);
+
+ y1 = min(y1, crtc_state->psr2_su_area.y1);
+ y2 = max(y2, crtc_state->psr2_su_area.y2);
+ }
+
+ for_each_intel_crtc_in_pipe_mask(display, crtc, joined_pipes) {
+ crtc_state = intel_atomic_get_new_crtc_state(state, crtc);
+
+ crtc_state->psr2_su_area.y1 = y1;
+ crtc_state->psr2_su_area.y2 = y2;
+ }
+}
+
+static int psr2_sel_fetch_apply_su_area(struct intel_atomic_state *state,
+ struct intel_crtc *crtc,
+ bool full_update)
+{
+ struct intel_crtc_state *crtc_state = intel_atomic_get_new_crtc_state(state, crtc);
+ struct intel_plane_state *new_plane_state, *old_plane_state;
+ struct intel_plane *plane;
+ struct drm_rect display_area = {
+ .x1 = 0,
+ .y1 = 0,
+ .x2 = drm_rect_width(&crtc_state->pipe_src),
+ .y2 = drm_rect_height(&crtc_state->pipe_src),
+ };
+ int i;
+
+ if (full_update) {
+ clip_area_update(&crtc_state->psr2_su_area, &display_area,
+ &display_area);
+ goto out;
+ }
+
/*
* Now that we have the pipe damaged area check if it intersect with
* every plane, if it does set the plane selective fetch area.
@@ -3091,12 +3145,6 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
continue;
}
- if (!psr2_sel_fetch_plane_state_supported(new_plane_state)) {
- full_update = true;
- break;
- }
-
- sel_fetch_area = &new_plane_state->psr2_sel_fetch_area;
sel_fetch_area->y1 = inter.y1 - new_plane_state->uapi.dst.y1;
sel_fetch_area->y2 = inter.y2 - new_plane_state->uapi.dst.y1;
crtc_state->update_planes |= BIT(plane->id);
@@ -3120,14 +3168,68 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
}
}
-skip_sel_fetch_set_loop:
- if (full_update)
- clip_area_update(&crtc_state->psr2_su_area, &display_area,
- &display_area);
-
+out:
psr2_man_trk_ctl_calc(crtc_state, full_update);
crtc_state->pipe_srcsz_early_tpt =
psr2_pipe_srcsz_early_tpt_calc(crtc_state, full_update);
+
+ return 0;
+}
+
+int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
+ struct intel_crtc *crtc)
+{
+ struct intel_display *display = to_intel_display(state);
+ const struct intel_crtc_state *old_crtc_state =
+ intel_atomic_get_old_crtc_state(state, crtc);
+ struct intel_crtc_state *crtc_state = intel_atomic_get_new_crtc_state(state, crtc);
+ struct intel_crtc *joined_crtc;
+ bool full_update = false;
+ u8 joined_pipes;
+ int ret;
+
+ /*
+ * Selective fetch is not always usable, for instance it is dropped
+ * while pipe CRC is active. The planes keep their selective fetch
+ * enable bit set in hardware over that, and a plane disabled while
+ * selective fetch is off never gets the bit cleared. Once selective
+ * fetch comes back the hardware would resume fetching for a plane that
+ * is no longer enabled and keep its DDB range reserved, so have the
+ * plane update drop the bit for every plane of the pipe as selective
+ * fetch is turned off.
+ */
+ crtc_state->clear_psr2_sel_fetch = old_crtc_state->enable_psr2_sel_fetch &&
+ !crtc_state->enable_psr2_sel_fetch;
+
+ if (!crtc_state->enable_psr2_sel_fetch)
+ return 0;
+
+ /* The joined pipes are handled in one go from the primary. */
+ if (intel_crtc_is_joiner_secondary(crtc_state))
+ return 0;
+
+ joined_pipes = intel_crtc_joined_pipe_mask(crtc_state);
+
+ for_each_intel_crtc_in_pipe_mask(display, joined_crtc, joined_pipes) {
+ bool pipe_full_update;
+
+ ret = psr2_sel_fetch_compute_su_area(state, joined_crtc,
+ &pipe_full_update);
+ if (ret)
+ return ret;
+
+ full_update |= pipe_full_update;
+ }
+
+ if (!full_update)
+ psr2_sel_fetch_merge_su_area(state, joined_pipes);
+
+ for_each_intel_crtc_in_pipe_mask(display, joined_crtc, joined_pipes) {
+ ret = psr2_sel_fetch_apply_su_area(state, joined_crtc, full_update);
+ if (ret)
+ return ret;
+ }
+
return 0;
}
diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
index 8f06c3a4d56d..29eec44ca3b0 100644
--- a/drivers/gpu/drm/i915/display/intel_vdsc.c
+++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
@@ -820,7 +820,7 @@ void intel_dsc_dp_pps_write(struct intel_encoder *encoder,
sizeof(dp_dsc_pps_sdp));
}
-void intel_dsc_su_et_parameters_configure(struct intel_dsb *dsb, struct intel_encoder *encoder,
+void intel_dsc_su_et_parameters_configure(struct intel_dsb *dsb,
const struct intel_crtc_state *crtc_state, int su_lines)
{
struct intel_display *display = to_intel_display(crtc_state);
diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.h b/drivers/gpu/drm/i915/display/intel_vdsc.h
index 3372f8694054..08a3ffedb8ec 100644
--- a/drivers/gpu/drm/i915/display/intel_vdsc.h
+++ b/drivers/gpu/drm/i915/display/intel_vdsc.h
@@ -38,7 +38,7 @@ void intel_dsc_dsi_pps_write(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state);
void intel_dsc_dp_pps_write(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state);
-void intel_dsc_su_et_parameters_configure(struct intel_dsb *dsb, struct intel_encoder *encoder,
+void intel_dsc_su_et_parameters_configure(struct intel_dsb *dsb,
const struct intel_crtc_state *crtc_state, int su_lines);
void intel_vdsc_state_dump(struct drm_printer *p, int indent,
const struct intel_crtc_state *crtc_state);
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH] drm/i915/psr: Allow Panel Replay and PSR2 with joiner
2026-09-23 11:59 [PATCH 0/5] drm/i915/psr: Panel Replay and PSR2 with the joiner Mika Kahola
` (2 preceding siblings ...)
2026-09-23 11:59 ` [PATCH] drm/i915/psr: Merge the selective fetch area across joined pipes Mika Kahola
@ 2026-09-23 11:59 ` Mika Kahola
2026-09-25 11:06 ` Hogander, Jouni
2026-09-23 11:59 ` [PATCH] drm/i915/display: Allow forcing the joiner on eDP Mika Kahola
` (2 subsequent siblings)
6 siblings, 1 reply; 17+ messages in thread
From: Mika Kahola @ 2026-09-23 11:59 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: jouni.hogander, Mika Kahola
Each joined pipe has its own PSR register block, so Panel Replay and
PSR2 selective update work with the pipe A/B joiner. Plain PSR1 does
not, keep rejecting that.
Assisted-by: Copilot:claude-opus-5
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
drivers/gpu/drm/i915/display/intel_psr.c | 73 ++++++++++++++++++++----
1 file changed, 62 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
index 4743b5b91743..c830332b33f2 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -1587,6 +1587,50 @@ static bool intel_psr2_config_valid(struct intel_dp *intel_dp,
return true;
}
+/*
+ * Joiner needs a per-pipe PSR/Panel Replay register block, only
+ * supported on pipe A/B.
+ */
+static bool psr_joiner_config_valid(struct intel_dp *intel_dp,
+ const struct intel_crtc_state *crtc_state,
+ const char *what)
+{
+ struct intel_display *display = to_intel_display(intel_dp);
+
+ if (!crtc_state->joiner_pipes)
+ return true;
+
+ if (crtc_state->joiner_pipes & ~(BIT(PIPE_A) | BIT(PIPE_B))) {
+ drm_dbg_kms(display->drm,
+ "%s not enabled, joiner only supported on pipe A/B\n", what);
+ return false;
+ }
+
+ return true;
+}
+
+/*
+ * PSR2 selective fetch and Panel Replay Selective Update share the same
+ * joiner limits, plus no uncompressed joiner configuration in YUV 4:2:0.
+ */
+static bool psr2_joiner_config_valid(struct intel_dp *intel_dp,
+ const struct intel_crtc_state *crtc_state)
+{
+ struct intel_display *display = to_intel_display(intel_dp);
+
+ if (!psr_joiner_config_valid(intel_dp, crtc_state, "Selective update"))
+ return false;
+
+ if (crtc_state->joiner_pipes && !crtc_state->dsc.compression_enable &&
+ crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420) {
+ drm_dbg_kms(display->drm,
+ "Selective update not enabled, uncompressed joiner does not support YUV 4:2:0\n");
+ return false;
+ }
+
+ return true;
+}
+
static bool intel_sel_update_config_valid(struct intel_crtc_state *crtc_state,
struct drm_connector_state *conn_state)
{
@@ -1594,6 +1638,9 @@ static bool intel_sel_update_config_valid(struct intel_crtc_state *crtc_state,
struct intel_dp *intel_dp = intel_attached_dp(connector);
struct intel_display *display = to_intel_display(intel_dp);
+ if (!psr2_joiner_config_valid(intel_dp, crtc_state))
+ goto unsupported;
+
if (HAS_PSR2_SEL_FETCH(display) &&
!intel_psr2_sel_fetch_config_valid(intel_dp, crtc_state) &&
!HAS_PSR_HW_TRACKING(display)) {
@@ -1733,6 +1780,9 @@ static bool _panel_replay_compute_config(struct intel_crtc_state *crtc_state,
return false;
}
+ if (!psr_joiner_config_valid(intel_dp, crtc_state, "Panel Replay"))
+ return false;
+
crtc_state->link_off_after_as_sdp_when_pr_active = compute_link_off_after_as_sdp_when_pr_active(connector);
crtc_state->disable_as_sdp_when_pr_active = compute_disable_as_sdp_when_pr_active(connector);
@@ -1886,17 +1936,6 @@ void intel_psr_compute_config(struct intel_dp *intel_dp,
return;
}
- /*
- * FIXME figure out what is wrong with PSR+joiner and
- * fix it. Presumably something related to the fact that
- * PSR is a transcoder level feature.
- */
- if (crtc_state->joiner_pipes) {
- drm_dbg_kms(display->drm,
- "PSR disabled due to joiner\n");
- return;
- }
-
/* Only used for state verification. */
crtc_state->panel_replay_dsc_support = connector->dp.panel_replay_caps.dsc_support;
crtc_state->has_panel_replay = _panel_replay_compute_config(crtc_state, conn_state);
@@ -1908,6 +1947,14 @@ void intel_psr_compute_config(struct intel_dp *intel_dp,
return;
crtc_state->has_sel_update = intel_sel_update_config_valid(crtc_state, conn_state);
+
+ /* Plain PSR1 is not supported with joiner. */
+ if (crtc_state->joiner_pipes && !crtc_state->has_panel_replay &&
+ !crtc_state->has_sel_update) {
+ drm_dbg_kms(display->drm,
+ "PSR disabled, PSR1 not supported with joiner\n");
+ crtc_state->has_psr = false;
+ }
}
void intel_psr_get_config(struct intel_encoder *encoder,
@@ -4728,6 +4775,10 @@ void intel_psr_compute_config_late(struct intel_dp *intel_dp,
crtc_state->has_sel_update = false;
crtc_state->enable_psr2_su_region_et = false;
crtc_state->enable_psr2_sel_fetch = false;
+
+ /* Plain PSR1 is not supported with joiner. */
+ if (crtc_state->joiner_pipes)
+ crtc_state->has_psr = false;
}
/* Wa_18037818876 */
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH] drm/i915/display: Allow forcing the joiner on eDP
2026-09-23 11:59 [PATCH 0/5] drm/i915/psr: Panel Replay and PSR2 with the joiner Mika Kahola
` (3 preceding siblings ...)
2026-09-23 11:59 ` [PATCH] drm/i915/psr: Allow Panel Replay and PSR2 with joiner Mika Kahola
@ 2026-09-23 11:59 ` Mika Kahola
2026-09-25 11:08 ` Hogander, Jouni
2026-09-23 13:17 ` ✓ i915.CI.BAT: success for drm/i915/psr: Allow Panel Replay and PSR2 with joiner Patchwork
2026-09-24 7:34 ` ✗ i915.CI.Full: failure " Patchwork
6 siblings, 1 reply; 17+ messages in thread
From: Mika Kahola @ 2026-09-23 11:59 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: jouni.hogander, Mika Kahola
intel_dp_has_joiner() rejects eDP unless the VBT enables the pipe
joiner, and the debugfs file is only created when that returns true, so
i915_joiner_force_enable can never turn it on.
Always create the file for DP and eDP, and let a forced pipe count
above one override the VBT.
Assisted-by: Copilot:claude-opus-5
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
drivers/gpu/drm/i915/display/intel_display_debugfs.c | 5 ++---
drivers/gpu/drm/i915/display/intel_dp.c | 12 +++++++++---
2 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
index 3e302f23f247..e55fa01addb5 100644
--- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
+++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
@@ -1352,9 +1352,8 @@ void intel_connector_debugfs_add(struct intel_connector *connector)
connector, &i915_dsc_fractional_bpp_fops);
}
- if ((connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
- connector_type == DRM_MODE_CONNECTOR_eDP) &&
- intel_dp_has_joiner(intel_attached_dp(connector))) {
+ if (connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
+ connector_type == DRM_MODE_CONNECTOR_eDP) {
debugfs_create_file("i915_joiner_force_enable", 0644, root,
connector, &i915_joiner_fops);
}
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 2480b8ce3bec..80ce71ce4c20 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -473,9 +473,15 @@ bool intel_dp_has_joiner(struct intel_dp *intel_dp)
if (intel_dp->mso_link_count)
return false;
- if (intel_dp_is_edp(intel_dp) &&
- !connector->panel.vbt.edp.pipe_joiner_enable)
- return false;
+ if (intel_dp_is_edp(intel_dp)) {
+ bool pipe_joiner_enable = connector->panel.vbt.edp.pipe_joiner_enable;
+
+ if (connector->force_joined_pipes > 1)
+ pipe_joiner_enable = true;
+
+ if (!pipe_joiner_enable)
+ return false;
+ }
return DISPLAY_VER(display) >= 12 ||
(DISPLAY_VER(display) == 11 &&
^ permalink raw reply related [flat|nested] 17+ messages in thread
* ✓ i915.CI.BAT: success for drm/i915/psr: Allow Panel Replay and PSR2 with joiner
2026-09-23 11:59 [PATCH 0/5] drm/i915/psr: Panel Replay and PSR2 with the joiner Mika Kahola
` (4 preceding siblings ...)
2026-09-23 11:59 ` [PATCH] drm/i915/display: Allow forcing the joiner on eDP Mika Kahola
@ 2026-09-23 13:17 ` Patchwork
2026-09-24 7:34 ` ✗ i915.CI.Full: failure " Patchwork
6 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2026-09-23 13:17 UTC (permalink / raw)
To: Mika Kahola; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 2771 bytes --]
== Series Details ==
Series: drm/i915/psr: Allow Panel Replay and PSR2 with joiner
URL : https://patchwork.freedesktop.org/series/174791/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_19207 -> Patchwork_174791v1
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/index.html
Participating hosts (39 -> 38)
------------------------------
Missing (1): bat-dg2-13
Known issues
------------
Here are the changes found in Patchwork_174791v1 that come from known issues:
### IGT changes ###
#### Possible fixes ####
* igt@fbdev@info:
- fi-hsw-4770: [SKIP][1] ([i915#1849] / [i915#2582]) -> [PASS][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/fi-hsw-4770/igt@fbdev@info.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/fi-hsw-4770/igt@fbdev@info.html
* igt@fbdev@nullptr:
- fi-hsw-4770: [SKIP][3] ([i915#2582]) -> [PASS][4] +3 other tests pass
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/fi-hsw-4770/igt@fbdev@nullptr.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/fi-hsw-4770/igt@fbdev@nullptr.html
* igt@gem_softpin@safe-alignment:
- fi-hsw-4770: [FAIL][5] ([i915#15527]) -> [PASS][6]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/fi-hsw-4770/igt@gem_softpin@safe-alignment.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/fi-hsw-4770/igt@gem_softpin@safe-alignment.html
* igt@i915_selftest@live:
- bat-mtlp-8: [DMESG-FAIL][7] ([i915#12964]) -> [PASS][8] +1 other test pass
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/bat-mtlp-8/igt@i915_selftest@live.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/bat-mtlp-8/igt@i915_selftest@live.html
[i915#12964]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12964
[i915#15527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15527
[i915#1849]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1849
[i915#2582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2582
Build changes
-------------
* Linux: CI_DRM_19207 -> Patchwork_174791v1
CI-20190529: 20190529
CI_DRM_19207: 890d1157247d8ad65d9a2d44c065accd550b61f4 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_9109: 65f84b280be2caf8ce376295d97987a808affdee @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_174791v1: 890d1157247d8ad65d9a2d44c065accd550b61f4 @ git://anongit.freedesktop.org/gfx-ci/linux
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/index.html
[-- Attachment #2: Type: text/html, Size: 3524 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
* ✗ i915.CI.Full: failure for drm/i915/psr: Allow Panel Replay and PSR2 with joiner
2026-09-23 11:59 [PATCH 0/5] drm/i915/psr: Panel Replay and PSR2 with the joiner Mika Kahola
` (5 preceding siblings ...)
2026-09-23 13:17 ` ✓ i915.CI.BAT: success for drm/i915/psr: Allow Panel Replay and PSR2 with joiner Patchwork
@ 2026-09-24 7:34 ` Patchwork
6 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2026-09-24 7:34 UTC (permalink / raw)
To: Mika Kahola; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 112040 bytes --]
== Series Details ==
Series: drm/i915/psr: Allow Panel Replay and PSR2 with joiner
URL : https://patchwork.freedesktop.org/series/174791/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_19207_full -> Patchwork_174791v1_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_174791v1_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_174791v1_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 (10 -> 10)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_174791v1_full:
### IGT changes ###
#### Possible regressions ####
* igt@gem_ctx_isolation@preservation-s3@ccs0:
- shard-mtlp: NOTRUN -> [ABORT][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-mtlp-3/igt@gem_ctx_isolation@preservation-s3@ccs0.html
* igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions:
- shard-dg2: [PASS][2] -> [DMESG-WARN][3]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-dg2-1/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions.html
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg2-3/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions.html
#### Warnings ####
* igt@gem_ctx_isolation@preservation-s3:
- shard-mtlp: [INCOMPLETE][4] ([i915#13356]) -> [ABORT][5]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-mtlp-4/igt@gem_ctx_isolation@preservation-s3.html
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-mtlp-3/igt@gem_ctx_isolation@preservation-s3.html
New tests
---------
New tests have been introduced between CI_DRM_19207_full and Patchwork_174791v1_full:
### New IGT tests (22) ###
* igt@i915_module_load@2x-flip-vs-panning:
- Statuses :
- Exec time: [None] s
* igt@i915_module_load@bad-pixel-format-4-tiled-dg2-rc-ccs-cc:
- Statuses :
- Exec time: [None] s
* igt@i915_module_load@crc-primary-rotation-180-4-tiled-dg2-mc-ccs:
- Statuses :
- Exec time: [None] s
* igt@i915_module_load@dc5-psr:
- Statuses :
- Exec time: [None] s
* igt@i915_module_load@fbc-2p-scndscrn-pri-indfb-draw-pwrite:
- Statuses :
- Exec time: [None] s
* igt@i915_module_load@fbchdr-1p-primscrn-pri-shrfb-draw-mmap-cpu:
- Statuses :
- Exec time: [None] s
* igt@i915_module_load@fbcpsr-1p-indfb-fliptrack-mmap-gtt:
- Statuses :
- Exec time: [None] s
* igt@i915_module_load@fbcpsr-2p-scndscrn-pri-shrfb-draw-render:
- Statuses :
- Exec time: [None] s
* igt@i915_module_load@fbcpsr-rgb565-draw-mmap-wc:
- Statuses :
- Exec time: [None] s
* igt@i915_module_load@fbcpsrhdr-2p-primscrn-pri-shrfb-draw-blt:
- Statuses :
- Exec time: [None] s
* igt@i915_module_load@fences-dpms:
- Statuses :
- Exec time: [None] s
* igt@i915_module_load@hdr-1p-primscrn-pri-shrfb-draw-render:
- Statuses :
- Exec time: [None] s
* igt@i915_module_load@hdr-2p-scndscrn-spr-indfb-draw-mmap-cpu:
- Statuses :
- Exec time: [None] s
* igt@i915_module_load@missing-ccs-buffer-y-tiled-gen12-mc-ccs:
- Statuses :
- Exec time: [None] s
* igt@i915_module_load@pc8-residency:
- Statuses :
- Exec time: [None] s
* igt@i915_module_load@psr-1p-primscrn-pri-shrfb-draw-mmap-wc:
- Statuses :
- Exec time: [None] s
* igt@i915_module_load@psr-2p-primscrn-pri-shrfb-draw-mmap-gtt:
- Statuses :
- Exec time: [None] s
* igt@i915_module_load@psrhdr-1p-offscreen-pri-shrfb-draw-mmap-cpu:
- Statuses :
- Exec time: [None] s
* igt@i915_module_load@psrhdr-2p-scndscrn-pri-indfb-draw-mmap-cpu:
- Statuses :
- Exec time: [None] s
* igt@i915_module_load@rc6-fence:
- Statuses :
- Exec time: [None] s
* igt@i915_module_load@timestamp-moving:
- Statuses :
- Exec time: [None] s
* igt@i915_module_load@x-tiled-max-hw-stride-32bpp-rotate-0:
- Statuses :
- Exec time: [None] s
Known issues
------------
Here are the changes found in Patchwork_174791v1_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@api_intel_bb@object-reloc-purge-cache:
- shard-dg1: NOTRUN -> [SKIP][6] ([i915#8411])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@api_intel_bb@object-reloc-purge-cache.html
* igt@device_reset@cold-reset-bound:
- shard-tglu: NOTRUN -> [SKIP][7] ([i915#11078])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-2/igt@device_reset@cold-reset-bound.html
* igt@device_reset@unbind-cold-reset-rebind:
- shard-tglu-1: NOTRUN -> [SKIP][8] ([i915#11078])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@device_reset@unbind-cold-reset-rebind.html
* igt@gem_ccs@block-multicopy-compressed:
- shard-rkl: NOTRUN -> [SKIP][9] ([i915#9323])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-5/igt@gem_ccs@block-multicopy-compressed.html
* igt@gem_ccs@block-multicopy-inplace:
- shard-rkl: NOTRUN -> [SKIP][10] ([i915#3555] / [i915#9323])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@gem_ccs@block-multicopy-inplace.html
- shard-tglu: NOTRUN -> [SKIP][11] ([i915#3555] / [i915#9323])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-4/igt@gem_ccs@block-multicopy-inplace.html
* igt@gem_ccs@ctrl-surf-copy:
- shard-tglu-1: NOTRUN -> [SKIP][12] ([i915#3555] / [i915#9323])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@gem_ccs@ctrl-surf-copy.html
* igt@gem_ccs@suspend-resume@tile64-compressed-compfmt0-smem-lmem0:
- shard-dg2: NOTRUN -> [INCOMPLETE][13] ([i915#13356] / [i915#16348])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg2-4/igt@gem_ccs@suspend-resume@tile64-compressed-compfmt0-smem-lmem0.html
* igt@gem_create@create-ext-cpu-access-sanity-check:
- shard-tglu: NOTRUN -> [SKIP][14] ([i915#6335])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-2/igt@gem_create@create-ext-cpu-access-sanity-check.html
* igt@gem_create@create-ext-set-pat:
- shard-tglu: NOTRUN -> [SKIP][15] ([i915#8562])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-4/igt@gem_create@create-ext-set-pat.html
* igt@gem_ctx_isolation@preservation-s3@vcs1:
- shard-mtlp: NOTRUN -> [FAIL][16] ([i915#17176]) +3 other tests fail
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-mtlp-3/igt@gem_ctx_isolation@preservation-s3@vcs1.html
* igt@gem_ctx_persistence@hang:
- shard-snb: NOTRUN -> [SKIP][17] ([i915#1099])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-snb6/igt@gem_ctx_persistence@hang.html
* igt@gem_ctx_persistence@legacy-engines-hang@blt:
- shard-glk11: NOTRUN -> [SKIP][18] +118 other tests skip
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk11/igt@gem_ctx_persistence@legacy-engines-hang@blt.html
* igt@gem_exec_balancer@bonded-pair:
- shard-dg1: NOTRUN -> [SKIP][19] ([i915#4771])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@gem_exec_balancer@bonded-pair.html
* igt@gem_exec_balancer@parallel-keep-submit-fence:
- shard-tglu: NOTRUN -> [SKIP][20] ([i915#4525])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-10/igt@gem_exec_balancer@parallel-keep-submit-fence.html
* igt@gem_exec_balancer@parallel-ordering:
- shard-rkl: NOTRUN -> [SKIP][21] ([i915#4525]) +2 other tests skip
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@gem_exec_balancer@parallel-ordering.html
- shard-tglu-1: NOTRUN -> [SKIP][22] ([i915#4525]) +1 other test skip
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@gem_exec_balancer@parallel-ordering.html
* igt@gem_exec_big@single:
- shard-tglu: NOTRUN -> [FAIL][23] ([i915#15816])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-9/igt@gem_exec_big@single.html
* igt@gem_exec_capture@capture-invisible@smem0:
- shard-glk: NOTRUN -> [SKIP][24] ([i915#6334]) +1 other test skip
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk8/igt@gem_exec_capture@capture-invisible@smem0.html
* igt@gem_exec_reloc@basic-cpu-gtt-noreloc:
- shard-rkl: NOTRUN -> [SKIP][25] ([i915#3281]) +4 other tests skip
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@gem_exec_reloc@basic-cpu-gtt-noreloc.html
* igt@gem_exec_reloc@basic-gtt-cpu:
- shard-dg1: NOTRUN -> [SKIP][26] ([i915#3281]) +3 other tests skip
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@gem_exec_reloc@basic-gtt-cpu.html
* igt@gem_exec_suspend@basic-s0@smem:
- shard-dg2: [PASS][27] -> [INCOMPLETE][28] ([i915#13356])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-dg2-4/igt@gem_exec_suspend@basic-s0@smem.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg2-4/igt@gem_exec_suspend@basic-s0@smem.html
* igt@gem_huc_copy@huc-copy:
- shard-tglu: NOTRUN -> [SKIP][29] ([i915#2190])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-10/igt@gem_huc_copy@huc-copy.html
* igt@gem_lmem_swapping@heavy-multi:
- shard-rkl: NOTRUN -> [SKIP][30] ([i915#4613]) +1 other test skip
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@gem_lmem_swapping@heavy-multi.html
* igt@gem_lmem_swapping@heavy-verify-random-ccs:
- shard-tglu-1: NOTRUN -> [SKIP][31] ([i915#4613]) +1 other test skip
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@gem_lmem_swapping@heavy-verify-random-ccs.html
* igt@gem_lmem_swapping@verify-random-ccs:
- shard-tglu: NOTRUN -> [SKIP][32] ([i915#4613]) +3 other tests skip
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-10/igt@gem_lmem_swapping@verify-random-ccs.html
* igt@gem_mmap_gtt@cpuset-medium-copy-xy:
- shard-dg1: NOTRUN -> [SKIP][33] ([i915#4077]) +1 other test skip
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@gem_mmap_gtt@cpuset-medium-copy-xy.html
* igt@gem_partial_pwrite_pread@writes-after-reads-uncached:
- shard-rkl: NOTRUN -> [SKIP][34] ([i915#3282]) +4 other tests skip
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html
* igt@gem_pread@exhaustion:
- shard-dg1: NOTRUN -> [SKIP][35] ([i915#3282])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@gem_pread@exhaustion.html
* igt@gem_userptr_blits@dmabuf-unsync:
- shard-tglu: NOTRUN -> [SKIP][36] ([i915#3297]) +2 other tests skip
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-2/igt@gem_userptr_blits@dmabuf-unsync.html
* igt@gem_userptr_blits@unsync-overlap:
- shard-tglu-1: NOTRUN -> [SKIP][37] ([i915#3297])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@gem_userptr_blits@unsync-overlap.html
* igt@gem_userptr_blits@unsync-unmap-after-close:
- shard-rkl: NOTRUN -> [SKIP][38] ([i915#3297]) +1 other test skip
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@gem_userptr_blits@unsync-unmap-after-close.html
* igt@gem_workarounds@suspend-resume-fd:
- shard-rkl: [PASS][39] -> [INCOMPLETE][40] ([i915#13356]) +1 other test incomplete
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-4/igt@gem_workarounds@suspend-resume-fd.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-3/igt@gem_workarounds@suspend-resume-fd.html
* igt@gen9_exec_parse@allowed-single:
- shard-glk: NOTRUN -> [ABORT][41] ([i915#5566])
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk3/igt@gen9_exec_parse@allowed-single.html
* igt@gen9_exec_parse@batch-without-end:
- shard-rkl: NOTRUN -> [SKIP][42] ([i915#2527]) +1 other test skip
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@gen9_exec_parse@batch-without-end.html
* igt@gen9_exec_parse@batch-zero-length:
- shard-tglu: NOTRUN -> [SKIP][43] ([i915#2527] / [i915#2856]) +4 other tests skip
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-2/igt@gen9_exec_parse@batch-zero-length.html
* igt@gen9_exec_parse@bb-start-param:
- shard-dg1: NOTRUN -> [SKIP][44] ([i915#2527]) +1 other test skip
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@gen9_exec_parse@bb-start-param.html
* igt@gen9_exec_parse@unaligned-jump:
- shard-tglu-1: NOTRUN -> [SKIP][45] ([i915#2527] / [i915#2856]) +1 other test skip
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@gen9_exec_parse@unaligned-jump.html
* igt@i915_module_load@fault-injection@uc_fw_rsa_data_create:
- shard-mtlp: [PASS][46] -> [INCOMPLETE][47] ([i915#16978])
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-mtlp-4/igt@i915_module_load@fault-injection@uc_fw_rsa_data_create.html
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-mtlp-3/igt@i915_module_load@fault-injection@uc_fw_rsa_data_create.html
* igt@i915_module_load@reload-no-display:
- shard-tglu: NOTRUN -> [DMESG-WARN][48] ([i915#13029] / [i915#14545])
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-10/igt@i915_module_load@reload-no-display.html
* igt@i915_module_load@resize-bar:
- shard-tglu: NOTRUN -> [SKIP][49] ([i915#6412])
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-2/igt@i915_module_load@resize-bar.html
* igt@i915_pm_freq_api@freq-reset:
- shard-rkl: NOTRUN -> [SKIP][50] ([i915#8399])
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@i915_pm_freq_api@freq-reset.html
* igt@i915_pm_freq_api@freq-reset-multiple:
- shard-tglu-1: NOTRUN -> [SKIP][51] ([i915#8399]) +1 other test skip
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@i915_pm_freq_api@freq-reset-multiple.html
* igt@i915_pm_freq_mult@media-freq@gt0:
- shard-tglu: NOTRUN -> [SKIP][52] ([i915#6590]) +1 other test skip
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-10/igt@i915_pm_freq_mult@media-freq@gt0.html
* igt@i915_pm_rc6_residency@rc6-idle:
- shard-rkl: NOTRUN -> [SKIP][53] ([i915#14498])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@i915_pm_rc6_residency@rc6-idle.html
* igt@i915_pm_rps@thresholds-idle-park:
- shard-dg1: NOTRUN -> [SKIP][54] ([i915#11681])
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@i915_pm_rps@thresholds-idle-park.html
* igt@i915_query@hwconfig_table:
- shard-tglu: NOTRUN -> [SKIP][55] ([i915#6245])
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-4/igt@i915_query@hwconfig_table.html
* igt@i915_suspend@debugfs-reader:
- shard-glk11: NOTRUN -> [INCOMPLETE][56] ([i915#13356] / [i915#16182] / [i915#4817]) +1 other test incomplete
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk11/igt@i915_suspend@debugfs-reader.html
* igt@i915_suspend@fence-restore-untiled:
- shard-rkl: [PASS][57] -> [INCOMPLETE][58] ([i915#4817]) +1 other test incomplete
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@i915_suspend@fence-restore-untiled.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@i915_suspend@fence-restore-untiled.html
* igt@i915_suspend@sysfs-reader:
- shard-mtlp: [PASS][59] -> [ABORT][60] ([i915#17175])
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-mtlp-7/igt@i915_suspend@sysfs-reader.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-mtlp-7/igt@i915_suspend@sysfs-reader.html
* igt@intel_hwmon@hwmon-write:
- shard-tglu: NOTRUN -> [SKIP][61] ([i915#7707])
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-9/igt@intel_hwmon@hwmon-write.html
* igt@kms_async_flips@alternate-sync-async-flip@pipe-b-hdmi-a-1:
- shard-glk: [PASS][62] -> [FAIL][63] ([i915#14888])
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-glk2/igt@kms_async_flips@alternate-sync-async-flip@pipe-b-hdmi-a-1.html
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk9/igt@kms_async_flips@alternate-sync-async-flip@pipe-b-hdmi-a-1.html
* igt@kms_async_flips@async-flip-suspend-resume:
- shard-glk: NOTRUN -> [INCOMPLETE][64] ([i915#12761] / [i915#13356]) +1 other test incomplete
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk4/igt@kms_async_flips@async-flip-suspend-resume.html
* igt@kms_atomic@plane-overlay-legacy@pipe-a-vga-1:
- shard-snb: NOTRUN -> [FAIL][65] ([i915#17126]) +1 other test fail
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-snb6/igt@kms_atomic@plane-overlay-legacy@pipe-a-vga-1.html
* igt@kms_atomic@plane-primary-overlay-mutable-zpos:
- shard-snb: NOTRUN -> [INCOMPLETE][66] ([i915#17134])
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-snb6/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html
* igt@kms_big_fb@4-tiled-16bpp-rotate-270:
- shard-dg1: NOTRUN -> [SKIP][67] ([i915#4538] / [i915#5286])
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_big_fb@4-tiled-16bpp-rotate-270.html
* igt@kms_big_fb@4-tiled-addfb-size-offset-overflow:
- shard-tglu: NOTRUN -> [SKIP][68] ([i915#5286]) +7 other tests skip
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-2/igt@kms_big_fb@4-tiled-addfb-size-offset-overflow.html
* igt@kms_big_fb@4-tiled-addfb-size-overflow:
- shard-rkl: NOTRUN -> [SKIP][69] ([i915#5286]) +1 other test skip
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_big_fb@4-tiled-addfb-size-overflow.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
- shard-tglu-1: NOTRUN -> [SKIP][70] ([i915#5286]) +2 other tests skip
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html
* igt@kms_big_fb@linear-8bpp-rotate-270:
- shard-dg1: NOTRUN -> [SKIP][71] ([i915#3638])
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_big_fb@linear-8bpp-rotate-270.html
* igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip:
- shard-tglu: NOTRUN -> [SKIP][72] ([i915#3828])
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-4/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip.html
* igt@kms_big_fb@x-tiled-32bpp-rotate-270:
- shard-rkl: NOTRUN -> [SKIP][73] ([i915#3638]) +2 other tests skip
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_big_fb@x-tiled-32bpp-rotate-270.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip:
- shard-dg1: NOTRUN -> [SKIP][74] ([i915#4538])
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
* igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs:
- shard-tglu: NOTRUN -> [SKIP][75] ([i915#12313]) +1 other test skip
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-4/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs.html
* igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][76] ([i915#14544] / [i915#6095]) +14 other tests skip
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-2.html
* igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][77] ([i915#14098] / [i915#14544] / [i915#6095]) +7 other tests skip
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-2.html
* igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-1:
- shard-tglu: NOTRUN -> [SKIP][78] ([i915#6095]) +74 other tests skip
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-4/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-1.html
* igt@kms_ccs@ccs-on-another-bo-yf-tiled-ccs:
- shard-snb: NOTRUN -> [SKIP][79] +207 other tests skip
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-snb6/igt@kms_ccs@ccs-on-another-bo-yf-tiled-ccs.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs:
- shard-tglu-1: NOTRUN -> [SKIP][80] ([i915#12313])
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][81] ([i915#14098] / [i915#6095]) +36 other tests skip
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-2.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-mc-ccs@pipe-d-edp-1:
- shard-mtlp: [PASS][82] -> [FAIL][83] ([i915#17158]) +1 other test fail
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-mtlp-7/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-mc-ccs@pipe-d-edp-1.html
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-mtlp-7/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-mc-ccs@pipe-d-edp-1.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-2:
- shard-glk10: NOTRUN -> [SKIP][84] +121 other tests skip
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk10/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-2.html
* igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-3:
- shard-dg1: NOTRUN -> [SKIP][85] ([i915#6095]) +123 other tests skip
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-12/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-3.html
* igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][86] ([i915#6095]) +58 other tests skip
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-4/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html
* igt@kms_ccs@random-ccs-data-y-tiled-ccs@pipe-d-hdmi-a-1:
- shard-tglu-1: NOTRUN -> [SKIP][87] ([i915#6095]) +39 other tests skip
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_ccs@random-ccs-data-y-tiled-ccs@pipe-d-hdmi-a-1.html
* igt@kms_cdclk@mode-rejected-max-dotclock:
- shard-tglu: NOTRUN -> [SKIP][88] ([i915#17099])
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-4/igt@kms_cdclk@mode-rejected-max-dotclock.html
* igt@kms_cdclk@mode-transition-all-outputs:
- shard-tglu: NOTRUN -> [SKIP][89] ([i915#3742])
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-2/igt@kms_cdclk@mode-transition-all-outputs.html
* igt@kms_chamelium_color_pipeline@plane-lut1d-lut1d:
- shard-tglu-1: NOTRUN -> [SKIP][90] ([i915#16471]) +1 other test skip
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_chamelium_color_pipeline@plane-lut1d-lut1d.html
* igt@kms_chamelium_color_pipeline@plane-lut1d-post-ctm3x4:
- shard-tglu: NOTRUN -> [SKIP][91] ([i915#16471])
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-2/igt@kms_chamelium_color_pipeline@plane-lut1d-post-ctm3x4.html
* igt@kms_chamelium_edid@vga-edid-read:
- shard-tglu-1: NOTRUN -> [SKIP][92] ([i915#11151] / [i915#7828]) +2 other tests skip
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_chamelium_edid@vga-edid-read.html
* igt@kms_chamelium_frames@dp-crc-fast:
- shard-rkl: NOTRUN -> [SKIP][93] ([i915#11151] / [i915#7828]) +4 other tests skip
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_chamelium_frames@dp-crc-fast.html
* igt@kms_chamelium_frames@hdmi-aspect-ratio:
- shard-tglu: NOTRUN -> [SKIP][94] ([i915#11151] / [i915#7828]) +9 other tests skip
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-10/igt@kms_chamelium_frames@hdmi-aspect-ratio.html
* igt@kms_chamelium_hpd@dp-hpd-enable-disable-mode:
- shard-dg1: NOTRUN -> [SKIP][95] ([i915#11151] / [i915#7828]) +2 other tests skip
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_chamelium_hpd@dp-hpd-enable-disable-mode.html
* igt@kms_color_pipeline@plane-ctm3x4-lut1d@pipe-b-plane-4:
- shard-tglu-1: NOTRUN -> [SKIP][96] ([i915#16990]) +15 other tests skip
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_color_pipeline@plane-ctm3x4-lut1d@pipe-b-plane-4.html
* igt@kms_color_pipeline@plane-fixed-matrix-yuv-rgb-bt2020-lim:
- shard-rkl: NOTRUN -> [FAIL][97] ([i915#17116]) +9 other tests fail
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@kms_color_pipeline@plane-fixed-matrix-yuv-rgb-bt2020-lim.html
* igt@kms_color_pipeline@plane-fixed-matrix-yuv-rgb-bt709-lim-lut1d@pipe-a-plane-2:
- shard-tglu: NOTRUN -> [FAIL][98] ([i915#17116]) +38 other tests fail
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-9/igt@kms_color_pipeline@plane-fixed-matrix-yuv-rgb-bt709-lim-lut1d@pipe-a-plane-2.html
* igt@kms_color_pipeline@plane-fixed-matrix-yuv-rgb-bt709@pipe-a-plane-0:
- shard-tglu-1: NOTRUN -> [FAIL][99] ([i915#17116]) +25 other tests fail
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_color_pipeline@plane-fixed-matrix-yuv-rgb-bt709@pipe-a-plane-0.html
* igt@kms_content_protection@dp-mst-lic-type-0:
- shard-tglu: NOTRUN -> [SKIP][100] ([i915#15330] / [i915#3116] / [i915#3299]) +2 other tests skip
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-10/igt@kms_content_protection@dp-mst-lic-type-0.html
* igt@kms_content_protection@dp-mst-lic-type-1:
- shard-rkl: NOTRUN -> [SKIP][101] ([i915#15330] / [i915#3116])
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_content_protection@dp-mst-lic-type-1.html
* igt@kms_content_protection@dp-mst-type-0:
- shard-dg1: NOTRUN -> [SKIP][102] ([i915#15330] / [i915#3299])
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_content_protection@dp-mst-type-0.html
* igt@kms_content_protection@dp-mst-type-1-suspend-resume:
- shard-tglu: NOTRUN -> [SKIP][103] ([i915#15330])
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-2/igt@kms_content_protection@dp-mst-type-1-suspend-resume.html
* igt@kms_content_protection@mei-interface:
- shard-tglu-1: NOTRUN -> [SKIP][104] ([i915#15865]) +2 other tests skip
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_content_protection@mei-interface.html
* igt@kms_content_protection@srm:
- shard-rkl: NOTRUN -> [SKIP][105] ([i915#15865]) +1 other test skip
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@kms_content_protection@srm.html
* igt@kms_content_protection@uevent-hdcp14:
- shard-tglu: NOTRUN -> [SKIP][106] ([i915#15865])
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-9/igt@kms_content_protection@uevent-hdcp14.html
* igt@kms_cursor_crc@cursor-onscreen-128x42:
- shard-tglu: NOTRUN -> [FAIL][107] ([i915#13566]) +3 other tests fail
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-9/igt@kms_cursor_crc@cursor-onscreen-128x42.html
* igt@kms_cursor_crc@cursor-random-512x512:
- shard-tglu: NOTRUN -> [SKIP][108] ([i915#13049]) +2 other tests skip
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-4/igt@kms_cursor_crc@cursor-random-512x512.html
* igt@kms_cursor_crc@cursor-rapid-movement-32x32:
- shard-tglu-1: NOTRUN -> [SKIP][109] ([i915#3555]) +2 other tests skip
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_cursor_crc@cursor-rapid-movement-32x32.html
* igt@kms_cursor_crc@cursor-sliding-128x42@pipe-a-hdmi-a-1:
- shard-tglu-1: NOTRUN -> [FAIL][110] ([i915#13566]) +1 other test fail
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_cursor_crc@cursor-sliding-128x42@pipe-a-hdmi-a-1.html
* igt@kms_cursor_crc@cursor-sliding-64x21@pipe-a-hdmi-a-2:
- shard-rkl: NOTRUN -> [FAIL][111] ([i915#13566]) +4 other tests fail
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-4/igt@kms_cursor_crc@cursor-sliding-64x21@pipe-a-hdmi-a-2.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- shard-rkl: NOTRUN -> [SKIP][112] ([i915#4103])
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
- shard-tglu: NOTRUN -> [SKIP][113] ([i915#4103])
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-4/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
* igt@kms_dirtyfb@drrs-dirtyfb-ioctl:
- shard-rkl: NOTRUN -> [SKIP][114] ([i915#9723])
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-5/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html
* igt@kms_dirtyfb@psr-dirtyfb-ioctl:
- shard-tglu-1: NOTRUN -> [SKIP][115] ([i915#9723])
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html
* igt@kms_display_modes@extended-mode-basic:
- shard-tglu: NOTRUN -> [SKIP][116] ([i915#13691])
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-4/igt@kms_display_modes@extended-mode-basic.html
* igt@kms_dp_link_training@uhbr-sst:
- shard-rkl: NOTRUN -> [SKIP][117] ([i915#13748])
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_dp_link_training@uhbr-sst.html
* igt@kms_dsc@dsc-fractional-bpp:
- shard-rkl: NOTRUN -> [SKIP][118] ([i915#16361])
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_dsc@dsc-fractional-bpp.html
* igt@kms_dsc@dsc-fractional-bpp-bigjoiner:
- shard-dg1: NOTRUN -> [SKIP][119] ([i915#16361])
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_dsc@dsc-fractional-bpp-bigjoiner.html
* igt@kms_dsc@dsc-with-bpc-bigjoiner:
- shard-tglu: NOTRUN -> [SKIP][120] ([i915#16361]) +2 other tests skip
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-2/igt@kms_dsc@dsc-with-bpc-bigjoiner.html
* igt@kms_dsc@dsc-with-bpc-formats:
- shard-tglu-1: NOTRUN -> [SKIP][121] ([i915#16361]) +1 other test skip
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_dsc@dsc-with-bpc-formats.html
* igt@kms_fbcon_fbt@fbc-suspend:
- shard-glk10: NOTRUN -> [INCOMPLETE][122] ([i915#13356] / [i915#9878])
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk10/igt@kms_fbcon_fbt@fbc-suspend.html
* igt@kms_feature_discovery@chamelium:
- shard-tglu: NOTRUN -> [SKIP][123] ([i915#2065])
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-9/igt@kms_feature_discovery@chamelium.html
* igt@kms_feature_discovery@display-2x:
- shard-rkl: NOTRUN -> [SKIP][124] ([i915#16081])
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@kms_feature_discovery@display-2x.html
- shard-tglu-1: NOTRUN -> [SKIP][125] ([i915#16081])
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_feature_discovery@display-2x.html
* igt@kms_feature_discovery@hdr:
- shard-tglu: NOTRUN -> [SKIP][126] ([i915#16600])
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-4/igt@kms_feature_discovery@hdr.html
* igt@kms_feature_discovery@psr2:
- shard-tglu: NOTRUN -> [SKIP][127] ([i915#658])
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-9/igt@kms_feature_discovery@psr2.html
* igt@kms_flip@2x-blocking-wf_vblank:
- shard-tglu-1: NOTRUN -> [SKIP][128] ([i915#3637] / [i915#9934]) +2 other tests skip
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_flip@2x-blocking-wf_vblank.html
* igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible:
- shard-tglu: NOTRUN -> [SKIP][129] ([i915#9934])
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-2/igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible.html
* igt@kms_flip@2x-flip-vs-expired-vblank:
- shard-glk: [PASS][130] -> [FAIL][131] ([i915#13027]) +1 other test fail
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-glk5/igt@kms_flip@2x-flip-vs-expired-vblank.html
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk3/igt@kms_flip@2x-flip-vs-expired-vblank.html
* igt@kms_flip@2x-flip-vs-suspend-interruptible:
- shard-glk: NOTRUN -> [INCOMPLETE][132] ([i915#12314] / [i915#12745] / [i915#13356] / [i915#17183] / [i915#4839])
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk8/igt@kms_flip@2x-flip-vs-suspend-interruptible.html
* igt@kms_flip@2x-flip-vs-suspend-interruptible@ac-hdmi-a1-hdmi-a2:
- shard-glk: NOTRUN -> [INCOMPLETE][133] ([i915#12314] / [i915#12745] / [i915#13356] / [i915#17183])
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk8/igt@kms_flip@2x-flip-vs-suspend-interruptible@ac-hdmi-a1-hdmi-a2.html
* igt@kms_flip@2x-plain-flip-fb-recreate:
- shard-tglu: NOTRUN -> [SKIP][134] ([i915#3637] / [i915#9934]) +4 other tests skip
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-9/igt@kms_flip@2x-plain-flip-fb-recreate.html
* igt@kms_flip@2x-plain-flip-ts-check-interruptible:
- shard-dg1: NOTRUN -> [SKIP][135] ([i915#9934]) +2 other tests skip
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_flip@2x-plain-flip-ts-check-interruptible.html
* igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible:
- shard-rkl: NOTRUN -> [SKIP][136] ([i915#9934]) +1 other test skip
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling:
- shard-tglu: NOTRUN -> [SKIP][137] ([i915#15643]) +3 other tests skip
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-9/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling:
- shard-rkl: NOTRUN -> [SKIP][138] ([i915#15643]) +2 other tests skip
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
- shard-tglu-1: NOTRUN -> [SKIP][139] ([i915#15643]) +1 other test skip
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling:
- shard-dg1: NOTRUN -> [SKIP][140] ([i915#15643]) +1 other test skip
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling.html
* igt@kms_force_connector_basic@prune-stale-modes:
- shard-mtlp: [PASS][141] -> [SKIP][142] ([i915#15672])
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-mtlp-4/igt@kms_force_connector_basic@prune-stale-modes.html
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-mtlp-1/igt@kms_force_connector_basic@prune-stale-modes.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-shrfb-draw-mmap-wc:
- shard-dg1: NOTRUN -> [SKIP][143] ([i915#15104] / [i915#15990])
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-shrfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-cpu:
- shard-tglu-1: NOTRUN -> [SKIP][144] +54 other tests skip
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@fbc-suspend:
- shard-glk11: NOTRUN -> [INCOMPLETE][145] ([i915#10056] / [i915#13356] / [i915#16593])
[145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk11/igt@kms_frontbuffer_tracking@fbc-suspend.html
* igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-cur-indfb-draw-pwrite:
- shard-rkl: NOTRUN -> [SKIP][146] +47 other tests skip
[146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-cur-indfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbchdr-rgb101010-draw-blt:
- shard-rkl: NOTRUN -> [SKIP][147] ([i915#15989]) +14 other tests skip
[147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-2/igt@kms_frontbuffer_tracking@fbchdr-rgb101010-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-render:
- shard-dg2: NOTRUN -> [SKIP][148] ([i915#15991] / [i915#5354])
[148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg2-8/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-fullscreen:
- shard-tglu: NOTRUN -> [SKIP][149] +132 other tests skip
[149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-fullscreen.html
* igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-indfb-fliptrack-mmap-gtt:
- shard-tglu: NOTRUN -> [SKIP][150] ([i915#15102]) +58 other tests skip
[150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-4/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-indfb-fliptrack-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-cur-indfb-draw-render:
- shard-tglu-1: NOTRUN -> [SKIP][151] ([i915#15102]) +17 other tests skip
[151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@hdr-1p-primscrn-pri-indfb-draw-blt:
- shard-tglu: NOTRUN -> [SKIP][152] ([i915#15989]) +25 other tests skip
[152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-10/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@hdr-1p-primscrn-pri-shrfb-draw-mmap-cpu:
- shard-rkl: [PASS][153] -> [SKIP][154] ([i915#15989]) +8 other tests skip
[153]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-1/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-pri-shrfb-draw-mmap-cpu.html
[154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-2/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-pri-shrfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@hdr-1p-primscrn-shrfb-plflip-blt:
- shard-tglu-1: NOTRUN -> [SKIP][155] ([i915#15989]) +11 other tests skip
[155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-shrfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@hdr-1p-primscrn-spr-indfb-draw-blt:
- shard-dg1: NOTRUN -> [SKIP][156] ([i915#15989]) +4 other tests skip
[156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-cur-indfb-draw-render:
- shard-dg2: NOTRUN -> [SKIP][157] ([i915#15991])
[157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg2-8/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-pri-shrfb-draw-mmap-gtt:
- shard-glk: [PASS][158] -> [SKIP][159] +13 other tests skip
[158]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-glk8/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-pri-shrfb-draw-mmap-gtt.html
[159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk6/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-pri-shrfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@psr-1p-pri-indfb-multidraw:
- shard-glk: NOTRUN -> [SKIP][160] +178 other tests skip
[160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk3/igt@kms_frontbuffer_tracking@psr-1p-pri-indfb-multidraw.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc:
- shard-dg1: NOTRUN -> [SKIP][161] ([i915#15990] / [i915#8708]) +4 other tests skip
[161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-mmap-gtt:
- shard-rkl: NOTRUN -> [SKIP][162] ([i915#1825]) +4 other tests skip
[162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-spr-indfb-onoff:
- shard-dg1: NOTRUN -> [SKIP][163] +15 other tests skip
[163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-spr-indfb-draw-mmap-gtt:
- shard-dg1: NOTRUN -> [SKIP][164] ([i915#15990]) +3 other tests skip
[164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-spr-indfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@psrhdr-rgb101010-draw-blt:
- shard-rkl: NOTRUN -> [SKIP][165] ([i915#15102]) +17 other tests skip
[165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_frontbuffer_tracking@psrhdr-rgb101010-draw-blt.html
* igt@kms_frontbuffer_tracking@psrhdr-rgb565-draw-render:
- shard-dg1: NOTRUN -> [SKIP][166] ([i915#15102]) +9 other tests skip
[166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_frontbuffer_tracking@psrhdr-rgb565-draw-render.html
* igt@kms_frontbuffer_tracking@psrhdr-suspend:
- shard-dg2: NOTRUN -> [SKIP][167] ([i915#15102])
[167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg2-8/igt@kms_frontbuffer_tracking@psrhdr-suspend.html
* igt@kms_hdmi_audio_bw@audio-bw-hblank160:
- shard-glk: NOTRUN -> [FAIL][168] ([i915#17102])
[168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk8/igt@kms_hdmi_audio_bw@audio-bw-hblank160.html
* igt@kms_hdmi_audio_bw@suspend-mem-audio-recovery:
- shard-glk10: NOTRUN -> [INCOMPLETE][169] ([i915#13356])
[169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk10/igt@kms_hdmi_audio_bw@suspend-mem-audio-recovery.html
* igt@kms_hdmi_inject@inject-audio:
- shard-mtlp: [PASS][170] -> [SKIP][171] ([i915#15725])
[170]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-mtlp-4/igt@kms_hdmi_inject@inject-audio.html
[171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-mtlp-1/igt@kms_hdmi_inject@inject-audio.html
* igt@kms_hdr@bpc-switch-dpms:
- shard-tglu: NOTRUN -> [SKIP][172] ([i915#3555] / [i915#8228])
[172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-9/igt@kms_hdr@bpc-switch-dpms.html
* igt@kms_hdr@bpc-switch-suspend:
- shard-rkl: NOTRUN -> [SKIP][173] ([i915#16644] / [i915#3555] / [i915#8228])
[173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@kms_hdr@bpc-switch-suspend.html
- shard-tglu-1: NOTRUN -> [SKIP][174] ([i915#3555] / [i915#8228])
[174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_hdr@bpc-switch-suspend.html
* igt@kms_joiner@invalid-modeset-force-big-joiner:
- shard-tglu: NOTRUN -> [SKIP][175] ([i915#15459])
[175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-9/igt@kms_joiner@invalid-modeset-force-big-joiner.html
* igt@kms_joiner@invalid-modeset-force-ultra-joiner:
- shard-tglu: NOTRUN -> [SKIP][176] ([i915#15458]) +1 other test skip
[176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-2/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
* igt@kms_joiner@invalid-modeset-ultra-joiner:
- shard-tglu-1: NOTRUN -> [SKIP][177] ([i915#15458])
[177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_joiner@invalid-modeset-ultra-joiner.html
* igt@kms_panel_fitting@legacy:
- shard-tglu: NOTRUN -> [SKIP][178] ([i915#6301])
[178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-2/igt@kms_panel_fitting@legacy.html
* igt@kms_pipe_stress@stress-xrgb8888-untiled:
- shard-glk: NOTRUN -> [DMESG-FAIL][179] ([i915#118])
[179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk3/igt@kms_pipe_stress@stress-xrgb8888-untiled.html
* igt@kms_plane@pixel-format-4-tiled-dg2-mc-ccs-modifier-source-clamping:
- shard-tglu: NOTRUN -> [SKIP][180] ([i915#15709]) +5 other tests skip
[180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-4/igt@kms_plane@pixel-format-4-tiled-dg2-mc-ccs-modifier-source-clamping.html
* igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier:
- shard-tglu-1: NOTRUN -> [SKIP][181] ([i915#15709]) +1 other test skip
[181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier.html
* igt@kms_plane@pixel-format-4-tiled-modifier:
- shard-rkl: NOTRUN -> [SKIP][182] ([i915#15709]) +2 other tests skip
[182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_plane@pixel-format-4-tiled-modifier.html
* igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier:
- shard-dg1: NOTRUN -> [SKIP][183] ([i915#15709])
[183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier.html
* igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier@pipe-a-plane-7:
- shard-tglu-1: NOTRUN -> [SKIP][184] ([i915#16386]) +3 other tests skip
[184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier@pipe-a-plane-7.html
* igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier@pipe-b-plane-5:
- shard-rkl: NOTRUN -> [SKIP][185] ([i915#16386]) +1 other test skip
[185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier@pipe-b-plane-5.html
* igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b:
- shard-glk: NOTRUN -> [INCOMPLETE][186] ([i915#13026] / [i915#13356])
[186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk5/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b.html
* igt@kms_plane_lowres@tiling-yf:
- shard-dg1: NOTRUN -> [SKIP][187] ([i915#3555]) +2 other tests skip
[187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_plane_lowres@tiling-yf.html
* igt@kms_plane_multiple@2x-tiling-x:
- shard-tglu-1: NOTRUN -> [SKIP][188] ([i915#13958])
[188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_plane_multiple@2x-tiling-x.html
* igt@kms_plane_multiple@2x-tiling-yf:
- shard-tglu: NOTRUN -> [SKIP][189] ([i915#13958]) +1 other test skip
[189]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-4/igt@kms_plane_multiple@2x-tiling-yf.html
* igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-b:
- shard-dg1: NOTRUN -> [SKIP][190] ([i915#15329]) +4 other tests skip
[190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-b.html
* igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation:
- shard-tglu: NOTRUN -> [SKIP][191] ([i915#15329] / [i915#3555])
[191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-10/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation.html
* igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b:
- shard-tglu: NOTRUN -> [SKIP][192] ([i915#15329]) +3 other tests skip
[192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-10/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b.html
* igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-a:
- shard-rkl: NOTRUN -> [SKIP][193] ([i915#15329]) +3 other tests skip
[193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-a.html
* igt@kms_pm_backlight@bad-brightness:
- shard-rkl: NOTRUN -> [SKIP][194] ([i915#12343] / [i915#5354])
[194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_pm_backlight@bad-brightness.html
- shard-tglu: NOTRUN -> [SKIP][195] ([i915#12343] / [i915#9812])
[195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-4/igt@kms_pm_backlight@bad-brightness.html
* igt@kms_pm_dc@dc5-dpms-suspend-resume:
- shard-glk: NOTRUN -> [INCOMPLETE][196] ([i915#13356] / [i915#16938])
[196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk3/igt@kms_pm_dc@dc5-dpms-suspend-resume.html
* igt@kms_pm_dc@dc5-psr-suspend-resume:
- shard-tglu: NOTRUN -> [SKIP][197] ([i915#16914])
[197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-10/igt@kms_pm_dc@dc5-psr-suspend-resume.html
* igt@kms_pm_dc@dc6-dpms:
- shard-tglu: NOTRUN -> [FAIL][198] ([i915#16479])
[198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-4/igt@kms_pm_dc@dc6-dpms.html
* igt@kms_pm_dc@dc6-psr:
- shard-tglu: NOTRUN -> [SKIP][199] ([i915#15948])
[199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-2/igt@kms_pm_dc@dc6-psr.html
* igt@kms_pm_dc@dc9-dpms:
- shard-rkl: NOTRUN -> [SKIP][200] ([i915#15739])
[200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@kms_pm_dc@dc9-dpms.html
- shard-tglu-1: NOTRUN -> [SKIP][201] ([i915#15739])
[201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_pm_dc@dc9-dpms.html
* igt@kms_pm_lpsp@kms-lpsp:
- shard-tglu-1: NOTRUN -> [SKIP][202] ([i915#3828]) +1 other test skip
[202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_pm_lpsp@kms-lpsp.html
* igt@kms_pm_rpm@dpms-mode-unset-lpsp:
- shard-dg1: [PASS][203] -> [SKIP][204] ([i915#15073])
[203]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-dg1-15/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
[204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-19/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
* igt@kms_pm_rpm@modeset-lpsp:
- shard-rkl: [PASS][205] -> [SKIP][206] ([i915#15073])
[205]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-2/igt@kms_pm_rpm@modeset-lpsp.html
[206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@kms_pm_rpm@modeset-lpsp.html
* igt@kms_pm_rpm@modeset-lpsp-stress-no-wait:
- shard-dg1: NOTRUN -> [SKIP][207] ([i915#15073])
[207]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html
* igt@kms_pm_rpm@modeset-non-lpsp:
- shard-tglu: NOTRUN -> [SKIP][208] ([i915#15073]) +1 other test skip
[208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-9/igt@kms_pm_rpm@modeset-non-lpsp.html
* igt@kms_prime@basic-crc-hybrid:
- shard-dg1: NOTRUN -> [SKIP][209] ([i915#6524])
[209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_prime@basic-crc-hybrid.html
* igt@kms_prime@d3hot:
- shard-rkl: NOTRUN -> [SKIP][210] ([i915#6524])
[210]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@kms_prime@d3hot.html
- shard-tglu-1: NOTRUN -> [SKIP][211] ([i915#6524])
[211]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_prime@d3hot.html
* igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-sf:
- shard-glk11: NOTRUN -> [SKIP][212] ([i915#11520]) +3 other tests skip
[212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk11/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-fully-sf:
- shard-tglu: NOTRUN -> [SKIP][213] ([i915#11520]) +10 other tests skip
[213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-9/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf:
- shard-tglu-1: NOTRUN -> [SKIP][214] ([i915#11520]) +3 other tests skip
[214]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-continuous-sf:
- shard-glk: NOTRUN -> [SKIP][215] ([i915#11520]) +2 other tests skip
[215]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk3/igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-continuous-sf.html
* igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-fully-sf:
- shard-dg1: NOTRUN -> [SKIP][216] ([i915#11520])
[216]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-sf:
- shard-glk10: NOTRUN -> [SKIP][217] ([i915#11520]) +3 other tests skip
[217]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk10/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf:
- shard-rkl: NOTRUN -> [SKIP][218] ([i915#11520]) +3 other tests skip
[218]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf.html
* igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-fully-sf:
- shard-snb: NOTRUN -> [SKIP][219] ([i915#11520]) +3 other tests skip
[219]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-snb6/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_su@page_flip-nv12:
- shard-dg1: NOTRUN -> [SKIP][220] ([i915#9683])
[220]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_psr2_su@page_flip-nv12.html
* igt@kms_psr@pr-primary-page-flip:
- shard-tglu: NOTRUN -> [SKIP][221] ([i915#9732]) +25 other tests skip
[221]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-4/igt@kms_psr@pr-primary-page-flip.html
* igt@kms_psr@psr-sprite-mmap-cpu:
- shard-dg1: NOTRUN -> [SKIP][222] ([i915#1072] / [i915#9732]) +4 other tests skip
[222]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_psr@psr-sprite-mmap-cpu.html
* igt@kms_psr@psr2-cursor-mmap-gtt:
- shard-rkl: NOTRUN -> [SKIP][223] ([i915#1072] / [i915#9732]) +14 other tests skip
[223]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-5/igt@kms_psr@psr2-cursor-mmap-gtt.html
* igt@kms_psr@psr2-sprite-mmap-gtt:
- shard-tglu-1: NOTRUN -> [SKIP][224] ([i915#9732]) +9 other tests skip
[224]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_psr@psr2-sprite-mmap-gtt.html
* igt@kms_psr_stress_test@invalidate-primary-flip-overlay:
- shard-tglu-1: NOTRUN -> [SKIP][225] ([i915#15949])
[225]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
- shard-rkl: NOTRUN -> [SKIP][226] ([i915#15949])
[226]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
* igt@kms_rotation_crc@multiplane-rotation:
- shard-glk: NOTRUN -> [INCOMPLETE][227] ([i915#15492] / [i915#16184])
[227]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk3/igt@kms_rotation_crc@multiplane-rotation.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
- shard-tglu: NOTRUN -> [SKIP][228] ([i915#5289]) +1 other test skip
[228]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-10/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html
* igt@kms_scaling_modes@scaling-mode-full:
- shard-tglu: NOTRUN -> [SKIP][229] ([i915#3555]) +5 other tests skip
[229]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-2/igt@kms_scaling_modes@scaling-mode-full.html
* igt@kms_vrr@seamless-rr-switch-virtual:
- shard-tglu: NOTRUN -> [SKIP][230] ([i915#9906])
[230]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-9/igt@kms_vrr@seamless-rr-switch-virtual.html
* igt@kms_vrr@seamless-rr-switch-vrr:
- shard-dg1: NOTRUN -> [SKIP][231] ([i915#9906])
[231]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_vrr@seamless-rr-switch-vrr.html
* igt@perf_pmu@busy-double-start@ccs0:
- shard-dg2: [PASS][232] -> [FAIL][233] ([i915#4349])
[232]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-dg2-5/igt@perf_pmu@busy-double-start@ccs0.html
[233]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg2-6/igt@perf_pmu@busy-double-start@ccs0.html
* igt@perf_pmu@busy-double-start@vecs0:
- shard-mtlp: [PASS][234] -> [FAIL][235] ([i915#4349])
[234]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-mtlp-5/igt@perf_pmu@busy-double-start@vecs0.html
[235]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-mtlp-7/igt@perf_pmu@busy-double-start@vecs0.html
* igt@perf_pmu@module-unload:
- shard-glk10: NOTRUN -> [FAIL][236] ([i915#17127])
[236]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk10/igt@perf_pmu@module-unload.html
* igt@perf_pmu@rc6-all-gts:
- shard-tglu-1: NOTRUN -> [SKIP][237] ([i915#8516])
[237]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-1/igt@perf_pmu@rc6-all-gts.html
* igt@prime_vgem@basic-fence-read:
- shard-rkl: NOTRUN -> [SKIP][238] ([i915#3291] / [i915#3708]) +1 other test skip
[238]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@prime_vgem@basic-fence-read.html
#### Possible fixes ####
* igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-lmem0-lmem0:
- shard-dg2: [INCOMPLETE][239] ([i915#13356] / [i915#16348]) -> [PASS][240]
[239]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-dg2-4/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-lmem0-lmem0.html
[240]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg2-4/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-lmem0-lmem0.html
* igt@i915_suspend@sysfs-reader:
- shard-rkl: [INCOMPLETE][241] ([i915#4817]) -> [PASS][242]
[241]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@i915_suspend@sysfs-reader.html
[242]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@i915_suspend@sysfs-reader.html
* igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-a-hdmi-a-2:
- shard-glk: [FAIL][243] ([i915#14888]) -> [PASS][244] +1 other test pass
[243]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-glk1/igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-a-hdmi-a-2.html
[244]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk3/igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-a-hdmi-a-2.html
* igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs-cc:
- shard-dg1: [DMESG-WARN][245] ([i915#4423]) -> [PASS][246] +2 other tests pass
[245]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-dg1-15/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs-cc.html
[246]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-19/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs-cc.html
* igt@kms_flip@flip-vs-suspend-interruptible:
- shard-rkl: [ABORT][247] ([i915#15132] / [i915#16925]) -> [PASS][248]
[247]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-1/igt@kms_flip@flip-vs-suspend-interruptible.html
[248]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-2/igt@kms_flip@flip-vs-suspend-interruptible.html
* igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-onoff:
- shard-rkl: [SKIP][249] ([i915#15989]) -> [PASS][250] +6 other tests pass
[249]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-onoff.html
[250]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-onoff.html
* igt@kms_hdmi_inject@inject-4k:
- shard-mtlp: [SKIP][251] ([i915#15725]) -> [PASS][252]
[251]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-mtlp-1/igt@kms_hdmi_inject@inject-4k.html
[252]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-mtlp-5/igt@kms_hdmi_inject@inject-4k.html
* igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a:
- shard-glk: [INCOMPLETE][253] ([i915#13026] / [i915#13356]) -> [PASS][254]
[253]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-glk8/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a.html
[254]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-glk5/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a.html
* igt@kms_plane_scaling@intel-max-src-size:
- shard-rkl: [SKIP][255] ([i915#6953]) -> [PASS][256]
[255]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_plane_scaling@intel-max-src-size.html
[256]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_plane_scaling@intel-max-src-size.html
* igt@kms_pm_rpm@modeset-non-lpsp-stress:
- shard-rkl: [SKIP][257] ([i915#15073]) -> [PASS][258] +1 other test pass
[257]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-2/igt@kms_pm_rpm@modeset-non-lpsp-stress.html
[258]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@kms_pm_rpm@modeset-non-lpsp-stress.html
* igt@kms_pm_rpm@system-suspend-idle:
- shard-rkl: [INCOMPLETE][259] ([i915#14419]) -> [PASS][260]
[259]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-3/igt@kms_pm_rpm@system-suspend-idle.html
[260]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_pm_rpm@system-suspend-idle.html
* igt@perf_pmu@busy-double-start@vcs1:
- shard-dg1: [FAIL][261] ([i915#4349]) -> [PASS][262]
[261]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-dg1-14/igt@perf_pmu@busy-double-start@vcs1.html
[262]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-15/igt@perf_pmu@busy-double-start@vcs1.html
- shard-mtlp: [FAIL][263] ([i915#4349]) -> [PASS][264]
[263]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-mtlp-5/igt@perf_pmu@busy-double-start@vcs1.html
[264]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-mtlp-7/igt@perf_pmu@busy-double-start@vcs1.html
* igt@perf_pmu@busy-double-start@vecs0:
- shard-dg2: [FAIL][265] ([i915#4349]) -> [PASS][266] +1 other test pass
[265]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-dg2-5/igt@perf_pmu@busy-double-start@vecs0.html
[266]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg2-6/igt@perf_pmu@busy-double-start@vecs0.html
#### Warnings ####
* igt@api_intel_bb@object-reloc-keep-cache:
- shard-rkl: [SKIP][267] ([i915#8411]) -> [SKIP][268] ([i915#14544] / [i915#8411])
[267]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@api_intel_bb@object-reloc-keep-cache.html
[268]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@api_intel_bb@object-reloc-keep-cache.html
* igt@gem_basic@multigpu-create-close:
- shard-rkl: [SKIP][269] ([i915#7697]) -> [SKIP][270] ([i915#14544] / [i915#7697]) +1 other test skip
[269]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@gem_basic@multigpu-create-close.html
[270]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@gem_basic@multigpu-create-close.html
* igt@gem_ctx_isolation@preservation-s3@rcs0:
- shard-mtlp: [INCOMPLETE][271] ([i915#13356]) -> [FAIL][272] ([i915#17176])
[271]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-mtlp-4/igt@gem_ctx_isolation@preservation-s3@rcs0.html
[272]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-mtlp-3/igt@gem_ctx_isolation@preservation-s3@rcs0.html
* igt@gem_ctx_sseu@engines:
- shard-rkl: [SKIP][273] ([i915#280]) -> [SKIP][274] ([i915#14544] / [i915#280])
[273]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@gem_ctx_sseu@engines.html
[274]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@gem_ctx_sseu@engines.html
* igt@gem_ctx_sseu@invalid-sseu:
- shard-rkl: [SKIP][275] ([i915#14544] / [i915#280]) -> [SKIP][276] ([i915#280])
[275]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@gem_ctx_sseu@invalid-sseu.html
[276]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@gem_ctx_sseu@invalid-sseu.html
* igt@gem_exec_balancer@parallel-balancer:
- shard-rkl: [SKIP][277] ([i915#4525]) -> [SKIP][278] ([i915#14544] / [i915#4525])
[277]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@gem_exec_balancer@parallel-balancer.html
[278]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@gem_exec_balancer@parallel-balancer.html
* igt@gem_exec_capture@capture-recoverable:
- shard-rkl: [SKIP][279] ([i915#6344]) -> [SKIP][280] ([i915#14544] / [i915#6344])
[279]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@gem_exec_capture@capture-recoverable.html
[280]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@gem_exec_capture@capture-recoverable.html
* igt@gem_exec_reloc@basic-cpu-read-active:
- shard-rkl: [SKIP][281] ([i915#14544] / [i915#3281]) -> [SKIP][282] ([i915#3281]) +2 other tests skip
[281]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@gem_exec_reloc@basic-cpu-read-active.html
[282]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@gem_exec_reloc@basic-cpu-read-active.html
* igt@gem_exec_reloc@basic-softpin:
- shard-rkl: [SKIP][283] ([i915#3281]) -> [SKIP][284] ([i915#14544] / [i915#3281]) +1 other test skip
[283]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@gem_exec_reloc@basic-softpin.html
[284]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@gem_exec_reloc@basic-softpin.html
* igt@gem_exec_schedule@semaphore-power:
- shard-rkl: [SKIP][285] ([i915#14544] / [i915#7276]) -> [SKIP][286] ([i915#7276])
[285]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@gem_exec_schedule@semaphore-power.html
[286]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@gem_exec_schedule@semaphore-power.html
* igt@gem_lmem_swapping@heavy-verify-random-ccs:
- shard-rkl: [SKIP][287] ([i915#14544] / [i915#4613]) -> [SKIP][288] ([i915#4613]) +1 other test skip
[287]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@gem_lmem_swapping@heavy-verify-random-ccs.html
[288]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@gem_lmem_swapping@heavy-verify-random-ccs.html
* igt@gem_pwrite@basic-exhaustion:
- shard-rkl: [SKIP][289] ([i915#3282]) -> [SKIP][290] ([i915#14544] / [i915#3282])
[289]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@gem_pwrite@basic-exhaustion.html
[290]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@gem_pwrite@basic-exhaustion.html
* igt@gem_readwrite@read-write:
- shard-rkl: [SKIP][291] ([i915#14544] / [i915#3282]) -> [SKIP][292] ([i915#3282]) +2 other tests skip
[291]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@gem_readwrite@read-write.html
[292]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@gem_readwrite@read-write.html
* igt@gem_userptr_blits@readonly-unsync:
- shard-rkl: [SKIP][293] ([i915#14544] / [i915#3297]) -> [SKIP][294] ([i915#3297])
[293]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@gem_userptr_blits@readonly-unsync.html
[294]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-5/igt@gem_userptr_blits@readonly-unsync.html
* igt@gen9_exec_parse@bb-chained:
- shard-rkl: [SKIP][295] ([i915#2527]) -> [SKIP][296] ([i915#14544] / [i915#2527]) +1 other test skip
[295]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@gen9_exec_parse@bb-chained.html
[296]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@gen9_exec_parse@bb-chained.html
* igt@gen9_exec_parse@unaligned-jump:
- shard-rkl: [SKIP][297] ([i915#14544] / [i915#2527]) -> [SKIP][298] ([i915#2527])
[297]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@gen9_exec_parse@unaligned-jump.html
[298]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@gen9_exec_parse@unaligned-jump.html
* igt@i915_module_load@fault-injection:
- shard-mtlp: [ABORT][299] ([i915#15342] / [i915#15481]) -> [ABORT][300] ([i915#15481])
[299]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-mtlp-4/igt@i915_module_load@fault-injection.html
[300]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-mtlp-3/igt@i915_module_load@fault-injection.html
* igt@i915_query@query-topology-known-pci-ids:
- shard-rkl: [SKIP][301] ([i915#14544] / [i915#16109]) -> [SKIP][302] ([i915#16109])
[301]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@i915_query@query-topology-known-pci-ids.html
[302]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-5/igt@i915_query@query-topology-known-pci-ids.html
* igt@i915_query@test-query-geometry-subslices:
- shard-rkl: [SKIP][303] ([i915#5723]) -> [SKIP][304] ([i915#14544] / [i915#5723])
[303]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@i915_query@test-query-geometry-subslices.html
[304]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@i915_query@test-query-geometry-subslices.html
* igt@kms_big_fb@4-tiled-addfb:
- shard-rkl: [SKIP][305] ([i915#5286]) -> [SKIP][306] ([i915#14544] / [i915#5286]) +2 other tests skip
[305]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_big_fb@4-tiled-addfb.html
[306]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_big_fb@4-tiled-addfb.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip:
- shard-rkl: [SKIP][307] ([i915#14544] / [i915#5286]) -> [SKIP][308] ([i915#5286]) +1 other test skip
[307]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
[308]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-5/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
* igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip:
- shard-rkl: [SKIP][309] ([i915#14544] / [i915#3828]) -> [SKIP][310] ([i915#3828])
[309]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip.html
[310]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip.html
* igt@kms_big_fb@y-tiled-8bpp-rotate-270:
- shard-rkl: [SKIP][311] ([i915#3638]) -> [SKIP][312] ([i915#14544] / [i915#3638])
[311]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_big_fb@y-tiled-8bpp-rotate-270.html
[312]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_big_fb@y-tiled-8bpp-rotate-270.html
* igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-2:
- shard-rkl: [SKIP][313] ([i915#14544] / [i915#6095]) -> [SKIP][314] ([i915#6095]) +4 other tests skip
[313]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-2.html
[314]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-2.html
* igt@kms_ccs@bad-pixel-format-y-tiled-gen12-mc-ccs:
- shard-rkl: [SKIP][315] ([i915#14098] / [i915#6095]) -> [SKIP][316] ([i915#14098] / [i915#14544] / [i915#6095]) +7 other tests skip
[315]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_ccs@bad-pixel-format-y-tiled-gen12-mc-ccs.html
[316]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_ccs@bad-pixel-format-y-tiled-gen12-mc-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs:
- shard-rkl: [SKIP][317] ([i915#12313]) -> [SKIP][318] ([i915#12313] / [i915#14544])
[317]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs.html
[318]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs:
- shard-rkl: [SKIP][319] ([i915#12313] / [i915#14544]) -> [SKIP][320] ([i915#12313])
[319]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs.html
[320]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-5/igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-mtl-mc-ccs:
- shard-rkl: [SKIP][321] ([i915#14098] / [i915#14544] / [i915#6095]) -> [SKIP][322] ([i915#14098] / [i915#6095]) +6 other tests skip
[321]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_ccs@random-ccs-data-4-tiled-mtl-mc-ccs.html
[322]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_ccs@random-ccs-data-4-tiled-mtl-mc-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-4:
- shard-dg1: [SKIP][323] ([i915#6095]) -> [SKIP][324] ([i915#4423] / [i915#6095]) +1 other test skip
[323]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-dg1-18/igt@kms_ccs@random-ccs-data-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-4.html
[324]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_ccs@random-ccs-data-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-4.html
* igt@kms_chamelium_color_pipeline@plane-fixed-matrix-yuv-rgb-bt601-lim-lut1d:
- shard-dg1: [SKIP][325] ([i915#4423]) -> [SKIP][326]
[325]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-dg1-12/igt@kms_chamelium_color_pipeline@plane-fixed-matrix-yuv-rgb-bt601-lim-lut1d.html
[326]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-16/igt@kms_chamelium_color_pipeline@plane-fixed-matrix-yuv-rgb-bt601-lim-lut1d.html
* igt@kms_chamelium_color_pipeline@plane-lut1d-ctm3x4-lut1d:
- shard-rkl: [SKIP][327] ([i915#16471]) -> [SKIP][328] ([i915#14544] / [i915#16471]) +2 other tests skip
[327]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_chamelium_color_pipeline@plane-lut1d-ctm3x4-lut1d.html
[328]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_chamelium_color_pipeline@plane-lut1d-ctm3x4-lut1d.html
* igt@kms_chamelium_frames@hdmi-crc-fast:
- shard-rkl: [SKIP][329] ([i915#11151] / [i915#14544] / [i915#7828]) -> [SKIP][330] ([i915#11151] / [i915#7828]) +2 other tests skip
[329]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_chamelium_frames@hdmi-crc-fast.html
[330]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-5/igt@kms_chamelium_frames@hdmi-crc-fast.html
* igt@kms_chamelium_hpd@dp-hpd-storm:
- shard-rkl: [SKIP][331] ([i915#11151] / [i915#7828]) -> [SKIP][332] ([i915#11151] / [i915#14544] / [i915#7828]) +2 other tests skip
[331]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_chamelium_hpd@dp-hpd-storm.html
[332]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_chamelium_hpd@dp-hpd-storm.html
* igt@kms_content_protection@suspend-resume:
- shard-rkl: [SKIP][333] ([i915#14544] / [i915#15865]) -> [SKIP][334] ([i915#15865]) +3 other tests skip
[333]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_content_protection@suspend-resume.html
[334]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-5/igt@kms_content_protection@suspend-resume.html
* igt@kms_cursor_crc@cursor-sliding-512x512:
- shard-rkl: [SKIP][335] ([i915#13049]) -> [SKIP][336] ([i915#13049] / [i915#14544])
[335]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_cursor_crc@cursor-sliding-512x512.html
[336]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_cursor_crc@cursor-sliding-512x512.html
* igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot:
- shard-rkl: [SKIP][337] ([i915#9067]) -> [SKIP][338] ([i915#14544] / [i915#9067])
[337]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html
[338]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html
* igt@kms_dp_linktrain_fallback@uhbr-to-hbr-fallback:
- shard-rkl: [SKIP][339] ([i915#16867]) -> [SKIP][340] ([i915#14544] / [i915#16867]) +1 other test skip
[339]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_dp_linktrain_fallback@uhbr-to-hbr-fallback.html
[340]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_dp_linktrain_fallback@uhbr-to-hbr-fallback.html
* igt@kms_dsc@dsc-with-output-formats:
- shard-rkl: [SKIP][341] ([i915#16361]) -> [SKIP][342] ([i915#14544] / [i915#16361]) +1 other test skip
[341]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_dsc@dsc-with-output-formats.html
[342]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_dsc@dsc-with-output-formats.html
* igt@kms_dsc@dsc-with-output-formats-with-bpc-bigjoiner:
- shard-rkl: [SKIP][343] ([i915#14544] / [i915#16361]) -> [SKIP][344] ([i915#16361])
[343]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_dsc@dsc-with-output-formats-with-bpc-bigjoiner.html
[344]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@kms_dsc@dsc-with-output-formats-with-bpc-bigjoiner.html
* igt@kms_flip@2x-blocking-wf_vblank:
- shard-rkl: [SKIP][345] ([i915#14544] / [i915#9934]) -> [SKIP][346] ([i915#9934])
[345]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_flip@2x-blocking-wf_vblank.html
[346]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@kms_flip@2x-blocking-wf_vblank.html
* igt@kms_flip@2x-modeset-vs-vblank-race:
- shard-rkl: [SKIP][347] ([i915#9934]) -> [SKIP][348] ([i915#14544] / [i915#9934]) +5 other tests skip
[347]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_flip@2x-modeset-vs-vblank-race.html
[348]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_flip@2x-modeset-vs-vblank-race.html
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling:
- shard-rkl: [SKIP][349] ([i915#15643]) -> [SKIP][350] ([i915#14544] / [i915#15643]) +1 other test skip
[349]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
[350]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling:
- shard-rkl: [SKIP][351] ([i915#14544] / [i915#15643]) -> [SKIP][352] ([i915#15643])
[351]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling.html
[352]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling.html
* igt@kms_frontbuffer_tracking@fbchdr-suspend:
- shard-rkl: [INCOMPLETE][353] ([i915#16056]) -> [SKIP][354] ([i915#15989])
[353]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_frontbuffer_tracking@fbchdr-suspend.html
[354]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-5/igt@kms_frontbuffer_tracking@fbchdr-suspend.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-wc:
- shard-rkl: [SKIP][355] ([i915#14544] / [i915#1825]) -> [SKIP][356] ([i915#1825]) +4 other tests skip
[355]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-wc.html
[356]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-indfb-pgflip-blt:
- shard-dg1: [SKIP][357] ([i915#15102] / [i915#4423]) -> [SKIP][358] ([i915#15102])
[357]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-dg1-12/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-indfb-pgflip-blt.html
[358]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-16/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-indfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-scndscrn-spr-indfb-onoff:
- shard-rkl: [SKIP][359] -> [SKIP][360] ([i915#14544]) +46 other tests skip
[359]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-scndscrn-spr-indfb-onoff.html
[360]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-scndscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-spr-indfb-draw-mmap-wc:
- shard-rkl: [SKIP][361] ([i915#14544]) -> [SKIP][362] +29 other tests skip
[361]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-spr-indfb-draw-mmap-wc.html
[362]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-5/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-plflip-blt:
- shard-rkl: [SKIP][363] ([i915#15102]) -> [SKIP][364] ([i915#14544] / [i915#15102]) +21 other tests skip
[363]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-plflip-blt.html
[364]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt:
- shard-rkl: [SKIP][365] ([i915#14544] / [i915#15102]) -> [SKIP][366] ([i915#15102]) +16 other tests skip
[365]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt.html
[366]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-gtt:
- shard-rkl: [SKIP][367] ([i915#1825]) -> [SKIP][368] ([i915#14544] / [i915#1825]) +6 other tests skip
[367]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-gtt.html
[368]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-gtt.html
* igt@kms_hdmi_audio_bw@suspend-disk-audio-recovery:
- shard-rkl: [ABORT][369] ([i915#15132]) -> [FAIL][370] ([i915#17122] / [i915#17137])
[369]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_hdmi_audio_bw@suspend-disk-audio-recovery.html
[370]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_hdmi_audio_bw@suspend-disk-audio-recovery.html
- shard-tglu: [FAIL][371] ([i915#17101] / [i915#17108]) -> [FAIL][372] ([i915#17101] / [i915#17108] / [i915#17188])
[371]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-tglu-9/igt@kms_hdmi_audio_bw@suspend-disk-audio-recovery.html
[372]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-8/igt@kms_hdmi_audio_bw@suspend-disk-audio-recovery.html
* igt@kms_hdr@brightness-with-hdr:
- shard-rkl: [SKIP][373] ([i915#14544] / [i915#16644]) -> [SKIP][374] ([i915#12713] / [i915#16644])
[373]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_hdr@brightness-with-hdr.html
[374]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-5/igt@kms_hdr@brightness-with-hdr.html
- shard-tglu: [SKIP][375] ([i915#1187] / [i915#12713]) -> [SKIP][376] ([i915#12713])
[375]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-tglu-2/igt@kms_hdr@brightness-with-hdr.html
[376]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-tglu-7/igt@kms_hdr@brightness-with-hdr.html
* igt@kms_hdr@invalid-hdr:
- shard-rkl: [SKIP][377] ([i915#16644] / [i915#3555] / [i915#8228]) -> [SKIP][378] ([i915#14544] / [i915#16644] / [i915#3555] / [i915#8228])
[377]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_hdr@invalid-hdr.html
[378]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_hdr@invalid-hdr.html
* igt@kms_joiner@invalid-modeset-big-joiner:
- shard-rkl: [SKIP][379] ([i915#14544] / [i915#15460]) -> [SKIP][380] ([i915#15460])
[379]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_joiner@invalid-modeset-big-joiner.html
[380]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_joiner@invalid-modeset-big-joiner.html
* igt@kms_joiner@invalid-modeset-ultra-joiner:
- shard-rkl: [SKIP][381] ([i915#14544] / [i915#15458]) -> [SKIP][382] ([i915#15458])
[381]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_joiner@invalid-modeset-ultra-joiner.html
[382]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@kms_joiner@invalid-modeset-ultra-joiner.html
* igt@kms_panel_fitting@atomic-fastset:
- shard-rkl: [SKIP][383] ([i915#6301]) -> [SKIP][384] ([i915#14544] / [i915#6301])
[383]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_panel_fitting@atomic-fastset.html
[384]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_panel_fitting@atomic-fastset.html
* igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier:
- shard-rkl: [SKIP][385] ([i915#15709]) -> [SKIP][386] ([i915#14544] / [i915#15709])
[385]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier.html
[386]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier.html
* igt@kms_plane_multiple@2x-tiling-none:
- shard-rkl: [SKIP][387] ([i915#13958] / [i915#14544]) -> [SKIP][388] ([i915#13958])
[387]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_plane_multiple@2x-tiling-none.html
[388]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_plane_multiple@2x-tiling-none.html
* igt@kms_plane_scaling@plane-downscale-factor-0-75-with-rotation@pipe-a:
- shard-rkl: [SKIP][389] ([i915#14544] / [i915#15329]) -> [SKIP][390] ([i915#15329]) +3 other tests skip
[389]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-rotation@pipe-a.html
[390]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-rotation@pipe-a.html
- shard-dg1: [SKIP][391] ([i915#15329]) -> [SKIP][392] ([i915#15329] / [i915#4423]) +1 other test skip
[391]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-dg1-18/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-rotation@pipe-a.html
[392]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-dg1-18/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-rotation@pipe-a.html
* igt@kms_pm_backlight@fade-with-suspend:
- shard-rkl: [SKIP][393] ([i915#12343] / [i915#5354]) -> [SKIP][394] ([i915#12343] / [i915#14544] / [i915#5354]) +1 other test skip
[393]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_pm_backlight@fade-with-suspend.html
[394]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_pm_backlight@fade-with-suspend.html
* igt@kms_pm_dc@dc5-pageflip-negative:
- shard-rkl: [SKIP][395] ([i915#9685]) -> [SKIP][396] ([i915#14544] / [i915#9685])
[395]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_pm_dc@dc5-pageflip-negative.html
[396]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_pm_dc@dc5-pageflip-negative.html
* igt@kms_pm_lpsp@screens-disabled:
- shard-rkl: [SKIP][397] ([i915#14544] / [i915#8430]) -> [SKIP][398] ([i915#8430])
[397]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_pm_lpsp@screens-disabled.html
[398]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_pm_lpsp@screens-disabled.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf:
- shard-rkl: [SKIP][399] ([i915#11520] / [i915#14544]) -> [SKIP][400] ([i915#11520]) +1 other test skip
[399]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf.html
[400]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-sf:
- shard-rkl: [SKIP][401] ([i915#11520]) -> [SKIP][402] ([i915#11520] / [i915#14544]) +3 other tests skip
[401]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-sf.html
[402]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-sf.html
* igt@kms_psr@fbc-psr2-primary-blt:
- shard-rkl: [SKIP][403] ([i915#1072] / [i915#14544] / [i915#9732]) -> [SKIP][404] ([i915#1072] / [i915#9732]) +3 other tests skip
[403]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@kms_psr@fbc-psr2-primary-blt.html
[404]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-8/igt@kms_psr@fbc-psr2-primary-blt.html
* igt@kms_psr@psr-cursor-plane-move:
- shard-rkl: [SKIP][405] ([i915#1072] / [i915#9732]) -> [SKIP][406] ([i915#1072] / [i915#14544] / [i915#9732]) +9 other tests skip
[405]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_psr@psr-cursor-plane-move.html
[406]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_psr@psr-cursor-plane-move.html
* igt@kms_scaling_modes@scaling-mode-none:
- shard-rkl: [SKIP][407] ([i915#3555]) -> [SKIP][408] ([i915#14544] / [i915#3555]) +2 other tests skip
[407]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_scaling_modes@scaling-mode-none.html
[408]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_scaling_modes@scaling-mode-none.html
* igt@kms_vrr@flip-suspend:
- shard-rkl: [SKIP][409] ([i915#15243] / [i915#3555]) -> [SKIP][410] ([i915#14544] / [i915#15243] / [i915#3555])
[409]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@kms_vrr@flip-suspend.html
[410]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@kms_vrr@flip-suspend.html
* igt@perf_pmu@rc6-all-gts:
- shard-rkl: [SKIP][411] ([i915#14544] / [i915#8516]) -> [SKIP][412] ([i915#8516])
[411]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-6/igt@perf_pmu@rc6-all-gts.html
[412]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-7/igt@perf_pmu@rc6-all-gts.html
* igt@prime_vgem@coherency-gtt:
- shard-rkl: [SKIP][413] ([i915#3708]) -> [SKIP][414] ([i915#14544] / [i915#3708])
[413]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19207/shard-rkl-5/igt@prime_vgem@coherency-gtt.html
[414]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_174791v1/shard-rkl-6/igt@prime_vgem@coherency-gtt.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[i915#10056]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10056
[i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
[i915#1099]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1099
[i915#11078]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11078
[i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151
[i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
[i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681
[i915#118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/118
[i915#1187]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1187
[i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313
[i915#12314]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12314
[i915#12343]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12343
[i915#12713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12713
[i915#12745]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12745
[i915#12761]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12761
[i915#13026]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13026
[i915#13027]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13027
[i915#13029]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13029
[i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049
[i915#13356]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13356
[i915#13566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13566
[i915#13691]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13691
[i915#13748]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13748
[i915#13958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13958
[i915#14098]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14098
[i915#14419]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14419
[i915#14498]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14498
[i915#14544]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14544
[i915#14545]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14545
[i915#14888]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14888
[i915#15073]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15073
[i915#15102]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15102
[i915#15104]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15104
[i915#15132]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15132
[i915#15243]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15243
[i915#15329]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15329
[i915#15330]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15330
[i915#15342]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15342
[i915#15458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15458
[i915#15459]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15459
[i915#15460]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15460
[i915#15481]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15481
[i915#15492]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15492
[i915#15643]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15643
[i915#15672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15672
[i915#15709]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15709
[i915#15725]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15725
[i915#15739]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15739
[i915#15816]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15816
[i915#15865]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15865
[i915#15948]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15948
[i915#15949]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15949
[i915#15989]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15989
[i915#15990]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15990
[i915#15991]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15991
[i915#16056]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16056
[i915#16081]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16081
[i915#16109]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16109
[i915#16182]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16182
[i915#16184]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16184
[i915#16348]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16348
[i915#16361]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16361
[i915#16386]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16386
[i915#16471]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16471
[i915#16479]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16479
[i915#16593]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16593
[i915#16600]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16600
[i915#16644]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16644
[i915#16867]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16867
[i915#16914]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16914
[i915#16925]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16925
[i915#16938]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16938
[i915#16978]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16978
[i915#16990]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16990
[i915#17099]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/17099
[i915#17101]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/17101
[i915#17102]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/17102
[i915#17108]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/17108
[i915#17116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/17116
[i915#17122]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/17122
[i915#17126]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/17126
[i915#17127]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/17127
[i915#17134]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/17134
[i915#17137]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/17137
[i915#17158]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/17158
[i915#17175]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/17175
[i915#17176]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/17176
[i915#17183]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/17183
[i915#17188]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/17188
[i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
[i915#2065]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2065
[i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190
[i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
[i915#280]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/280
[i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
[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#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#3828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3828
[i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
[i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
[i915#4349]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4349
[i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423
[i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525
[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#4817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4817
[i915#4839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4839
[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#5566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5566
[i915#5723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5723
[i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
[i915#6245]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6245
[i915#6301]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6301
[i915#6334]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6334
[i915#6335]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6335
[i915#6344]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6344
[i915#6412]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6412
[i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
[i915#658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/658
[i915#6590]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6590
[i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953
[i915#7276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7276
[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#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#8430]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8430
[i915#8516]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8516
[i915#8562]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8562
[i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708
[i915#9067]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9067
[i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323
[i915#9683]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9683
[i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685
[i915#9723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9723
[i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
[i915#9812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9812
[i915#9878]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9878
[i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906
[i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934
Build changes
-------------
* Linux: CI_DRM_19207 -> Patchwork_174791v1
CI-20190529: 20190529
CI_DRM_19207: 890d1157247d8ad65d9a2d44c065accd550b61f4 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_9109: 65f84b280be2caf8ce376295d97987a808affdee @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_174791v1: 890d1157247d8ad65d9a2d44c065accd550b61f4 @ 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_174791v1/index.html
[-- Attachment #2: Type: text/html, Size: 147130 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH] drm/i915/psr: Take the selective fetch area from pipe_src
2026-09-23 11:59 ` [PATCH] drm/i915/psr: Take the selective fetch area from pipe_src Mika Kahola
@ 2026-09-24 9:45 ` Hogander, Jouni
2026-09-25 7:00 ` Kahola, Mika
0 siblings, 1 reply; 17+ messages in thread
From: Hogander, Jouni @ 2026-09-24 9:45 UTC (permalink / raw)
To: intel-xe@lists.freedesktop.org, Kahola, Mika,
intel-gfx@lists.freedesktop.org
On Wed, 2026-09-23 at 11:59 +0000, Mika Kahola wrote:
> The adjusted mode spans all the joined pipes, so it is the wrong
> reference for a per-pipe area. pipe_src is this pipe's own share.
>
> No functional change, the two are the same without a joiner.
>
> Assisted-by: Copilot:claude-opus-5
> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_psr.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> b/drivers/gpu/drm/i915/display/intel_psr.c
> index 76260ceb49cb..c1994da38567 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -2912,8 +2912,8 @@ int intel_psr2_sel_fetch_update(struct
> intel_atomic_state *state,
> struct drm_rect display_area = {
> .x1 = 0,
> .y1 = 0,
> - .x2 = crtc_state->hw.adjusted_mode.crtc_hdisplay,
> - .y2 = crtc_state->hw.adjusted_mode.crtc_vdisplay,
> + .x2 = drm_rect_width(&crtc_state->pipe_src),
> + .y2 = drm_rect_height(&crtc_state->pipe_src),
I think you should rather use crtc_state->hw.pipe_mode? Altought
selective update is not supported with pipe scaling.
BR,
Jouni Högander
> };
> bool full_update = false, su_area_changed;
> int i, ret;
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH] drm/i915/psr: Track all joined pipes for frontbuffer tracking
2026-09-23 11:59 ` [PATCH] drm/i915/psr: Track all joined pipes for frontbuffer tracking Mika Kahola
@ 2026-09-24 13:02 ` Hogander, Jouni
2026-09-25 7:17 ` Kahola, Mika
0 siblings, 1 reply; 17+ messages in thread
From: Hogander, Jouni @ 2026-09-24 13:02 UTC (permalink / raw)
To: intel-xe@lists.freedesktop.org, Kahola, Mika,
intel-gfx@lists.freedesktop.org
On Wed, 2026-09-23 at 11:59 +0000, Mika Kahola wrote:
> psr.pipe is the joiner primary only, so frontbuffer bits coming from
> a
> secondary pipe get masked out and the update goes unnoticed. Add
> psr.pipe_mask covering every joined pipe and use that instead.
>
> No functional change, joiner is still rejected in compute_config().
>
> Assisted-by: Copilot:claude-opus-5
> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> ---
> .../drm/i915/display/intel_display_types.h | 1 +
> drivers/gpu/drm/i915/display/intel_psr.c | 27 ++++++++++++++---
> --
> 2 files changed, 21 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h
> b/drivers/gpu/drm/i915/display/intel_display_types.h
> index 79f30660c2b6..2e6e3661675c 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -1798,6 +1798,7 @@ struct intel_psr {
> bool enabled;
> int pause_counter;
> enum pipe pipe;
> + u8 pipe_mask;
> enum transcoder transcoder;
> bool active;
> struct work_struct work;
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> b/drivers/gpu/drm/i915/display/intel_psr.c
> index 872e253db178..76260ceb49cb 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -36,6 +36,7 @@
> #include "intel_cursor_regs.h"
> #include "intel_ddi.h"
> #include "intel_de.h"
> +#include "intel_display.h"
> #include "intel_display_irq.h"
> #include "intel_display_regs.h"
> #include "intel_display_rpm.h"
> @@ -1798,6 +1799,19 @@ static void psr2_dc3co_disable_work(struct
> work_struct *work)
> mutex_unlock(&intel_dp->psr.lock);
> }
>
> +/* Frontbuffer bits for every pipe driving this PSR/Panel Replay
> instance. */
> +static unsigned int psr_frontbuffer_mask(struct intel_dp *intel_dp)
> +{
> + struct intel_display *display = to_intel_display(intel_dp);
> + unsigned int mask = 0;
> + enum pipe pipe;
> +
> + for_each_pipe_masked(display, pipe, intel_dp->psr.pipe_mask)
> + mask |= INTEL_FRONTBUFFER_ALL_MASK(pipe);
> +
> + return mask;
> +}
> +
> static void
> psr2_dc3co_flush_locked(struct intel_dp *intel_dp, unsigned int
> frontbuffer_bits)
> {
> @@ -1813,8 +1827,7 @@ psr2_dc3co_flush_locked(struct intel_dp
> *intel_dp, unsigned int frontbuffer_bits
> * At every frontbuffer flush flip event modified delay of
> delayed work,
> * when delayed work schedules that means display has been
> idle.
> */
> - if (!(frontbuffer_bits &
> - INTEL_FRONTBUFFER_ALL_MASK(intel_dp->psr.pipe)))
> + if (!(frontbuffer_bits & psr_frontbuffer_mask(intel_dp)))
> return;
>
> mod_delayed_work(display->wq.unordered, &intel_dp-
> >psr.dc3co_work,
> @@ -1845,7 +1858,7 @@ void intel_psr_set_non_psr_pipes(struct
> intel_dp *intel_dp,
> active_pipes = intel_calc_active_pipes(state, active_pipes);
>
> crtc_state->active_non_psr_pipes = active_pipes &
> - ~BIT(to_intel_crtc(crtc_state->uapi.crtc)->pipe);
> + ~intel_crtc_joined_pipe_mask(crtc_state);
This change is not related to frontbuffer tracking.
BR,
Jouni Högander
> }
>
> void intel_psr_compute_config(struct intel_dp *intel_dp,
> @@ -2175,6 +2188,7 @@ static void intel_psr_enable_locked(struct
> intel_dp *intel_dp,
> intel_dp->psr.panel_replay_enabled = crtc_state-
> >has_panel_replay;
> intel_dp->psr.busy_frontbuffer_bits = 0;
> intel_dp->psr.pipe = to_intel_crtc(crtc_state->uapi.crtc)-
> >pipe;
> + intel_dp->psr.pipe_mask =
> intel_crtc_joined_pipe_mask(crtc_state);
> intel_dp->psr.transcoder = crtc_state->cpu_transcoder;
> /* DC5/DC6 requires at least 6 idle frames */
> val = usecs_to_jiffies(intel_get_frame_time_us(crtc_state) *
> 6);
> @@ -2394,6 +2408,7 @@ static void intel_psr_disable_locked(struct
> intel_dp *intel_dp)
> intel_dp->psr.psr2_sel_fetch_cff_enabled = false;
> intel_dp->psr.active_non_psr_pipes = 0;
> intel_dp->psr.pkg_c_latency_used = 0;
> + intel_dp->psr.pipe_mask = 0;
> cancel_delayed_work(&intel_dp->psr.dc3co_work);
> intel_dp->psr.dc3co_allowed = false;
> }
> @@ -3627,8 +3642,7 @@ void intel_psr_invalidate(struct intel_display
> *display,
> continue;
> }
>
> - pipe_frontbuffer_bits &=
> - INTEL_FRONTBUFFER_ALL_MASK(intel_dp-
> >psr.pipe);
> + pipe_frontbuffer_bits &=
> psr_frontbuffer_mask(intel_dp);
> intel_dp->psr.busy_frontbuffer_bits |=
> pipe_frontbuffer_bits;
>
> if (pipe_frontbuffer_bits)
> @@ -3708,8 +3722,7 @@ void intel_psr_flush(struct intel_display
> *display,
> continue;
> }
>
> - pipe_frontbuffer_bits &=
> - INTEL_FRONTBUFFER_ALL_MASK(intel_dp-
> >psr.pipe);
> + pipe_frontbuffer_bits &=
> psr_frontbuffer_mask(intel_dp);
> intel_dp->psr.busy_frontbuffer_bits &=
> ~pipe_frontbuffer_bits;
>
> /*
^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [PATCH] drm/i915/psr: Take the selective fetch area from pipe_src
2026-09-24 9:45 ` Hogander, Jouni
@ 2026-09-25 7:00 ` Kahola, Mika
0 siblings, 0 replies; 17+ messages in thread
From: Kahola, Mika @ 2026-09-25 7:00 UTC (permalink / raw)
To: Hogander, Jouni, intel-xe@lists.freedesktop.org,
intel-gfx@lists.freedesktop.org
> -----Original Message-----
> From: Hogander, Jouni <jouni.hogander@intel.com>
> Sent: Thursday, 24 September 2026 12.46
> To: intel-xe@lists.freedesktop.org; Kahola, Mika <mika.kahola@intel.com>; intel-gfx@lists.freedesktop.org
> Subject: Re: [PATCH] drm/i915/psr: Take the selective fetch area from pipe_src
>
> On Wed, 2026-09-23 at 11:59 +0000, Mika Kahola wrote:
> > The adjusted mode spans all the joined pipes, so it is the wrong
> > reference for a per-pipe area. pipe_src is this pipe's own share.
> >
> > No functional change, the two are the same without a joiner.
> >
> > Assisted-by: Copilot:claude-opus-5
> > Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> > ---
> > drivers/gpu/drm/i915/display/intel_psr.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> > b/drivers/gpu/drm/i915/display/intel_psr.c
> > index 76260ceb49cb..c1994da38567 100644
> > --- a/drivers/gpu/drm/i915/display/intel_psr.c
> > +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> > @@ -2912,8 +2912,8 @@ int intel_psr2_sel_fetch_update(struct
> > intel_atomic_state *state,
> > struct drm_rect display_area = {
> > .x1 = 0,
> > .y1 = 0,
> > - .x2 = crtc_state->hw.adjusted_mode.crtc_hdisplay,
> > - .y2 = crtc_state->hw.adjusted_mode.crtc_vdisplay,
> > + .x2 = drm_rect_width(&crtc_state->pipe_src),
> > + .y2 = drm_rect_height(&crtc_state->pipe_src),
>
> I think you should rather use crtc_state->hw.pipe_mode? Altought
> selective update is not supported with pipe scaling.
Yes, both will end up the same outcome but I guesss hw.pipe_mode is closer to transcoder level so I can switch to use that instead.
Thanks!
-Mika-
>
> BR,
> Jouni Högander
>
> > };
> > bool full_update = false, su_area_changed;
> > int i, ret;
^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [PATCH] drm/i915/psr: Track all joined pipes for frontbuffer tracking
2026-09-24 13:02 ` Hogander, Jouni
@ 2026-09-25 7:17 ` Kahola, Mika
0 siblings, 0 replies; 17+ messages in thread
From: Kahola, Mika @ 2026-09-25 7:17 UTC (permalink / raw)
To: Hogander, Jouni, intel-xe@lists.freedesktop.org,
intel-gfx@lists.freedesktop.org
> -----Original Message-----
> From: Hogander, Jouni <jouni.hogander@intel.com>
> Sent: Thursday, 24 September 2026 16.02
> To: intel-xe@lists.freedesktop.org; Kahola, Mika <mika.kahola@intel.com>; intel-gfx@lists.freedesktop.org
> Subject: Re: [PATCH] drm/i915/psr: Track all joined pipes for frontbuffer tracking
>
> On Wed, 2026-09-23 at 11:59 +0000, Mika Kahola wrote:
> > psr.pipe is the joiner primary only, so frontbuffer bits coming from
> > a
> > secondary pipe get masked out and the update goes unnoticed. Add
> > psr.pipe_mask covering every joined pipe and use that instead.
> >
> > No functional change, joiner is still rejected in compute_config().
> >
> > Assisted-by: Copilot:claude-opus-5
> > Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> > ---
> > .../drm/i915/display/intel_display_types.h | 1 +
> > drivers/gpu/drm/i915/display/intel_psr.c | 27 ++++++++++++++---
> > --
> > 2 files changed, 21 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h
> > b/drivers/gpu/drm/i915/display/intel_display_types.h
> > index 79f30660c2b6..2e6e3661675c 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> > @@ -1798,6 +1798,7 @@ struct intel_psr {
> > bool enabled;
> > int pause_counter;
> > enum pipe pipe;
> > + u8 pipe_mask;
> > enum transcoder transcoder;
> > bool active;
> > struct work_struct work;
> > diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> > b/drivers/gpu/drm/i915/display/intel_psr.c
> > index 872e253db178..76260ceb49cb 100644
> > --- a/drivers/gpu/drm/i915/display/intel_psr.c
> > +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> > @@ -36,6 +36,7 @@
> > #include "intel_cursor_regs.h"
> > #include "intel_ddi.h"
> > #include "intel_de.h"
> > +#include "intel_display.h"
> > #include "intel_display_irq.h"
> > #include "intel_display_regs.h"
> > #include "intel_display_rpm.h"
> > @@ -1798,6 +1799,19 @@ static void psr2_dc3co_disable_work(struct
> > work_struct *work)
> > mutex_unlock(&intel_dp->psr.lock);
> > }
> >
> > +/* Frontbuffer bits for every pipe driving this PSR/Panel Replay
> > instance. */
> > +static unsigned int psr_frontbuffer_mask(struct intel_dp *intel_dp)
> > +{
> > + struct intel_display *display = to_intel_display(intel_dp);
> > + unsigned int mask = 0;
> > + enum pipe pipe;
> > +
> > + for_each_pipe_masked(display, pipe, intel_dp->psr.pipe_mask)
> > + mask |= INTEL_FRONTBUFFER_ALL_MASK(pipe);
> > +
> > + return mask;
> > +}
> > +
> > static void
> > psr2_dc3co_flush_locked(struct intel_dp *intel_dp, unsigned int
> > frontbuffer_bits)
> > {
> > @@ -1813,8 +1827,7 @@ psr2_dc3co_flush_locked(struct intel_dp
> > *intel_dp, unsigned int frontbuffer_bits
> > * At every frontbuffer flush flip event modified delay of
> > delayed work,
> > * when delayed work schedules that means display has been
> > idle.
> > */
> > - if (!(frontbuffer_bits &
> > - INTEL_FRONTBUFFER_ALL_MASK(intel_dp->psr.pipe)))
> > + if (!(frontbuffer_bits & psr_frontbuffer_mask(intel_dp)))
> > return;
> >
> > mod_delayed_work(display->wq.unordered, &intel_dp-
> > >psr.dc3co_work,
> > @@ -1845,7 +1858,7 @@ void intel_psr_set_non_psr_pipes(struct
> > intel_dp *intel_dp,
> > active_pipes = intel_calc_active_pipes(state, active_pipes);
> >
> > crtc_state->active_non_psr_pipes = active_pipes &
> > - ~BIT(to_intel_crtc(crtc_state->uapi.crtc)->pipe);
> > + ~intel_crtc_joined_pipe_mask(crtc_state);
>
> This change is not related to frontbuffer tracking.
Good catch! This shouldn't belong to frontbuffer tracking patch. I will split this hunk as a separate patch.
Thanks!
-Mika-
>
> BR,
>
> Jouni Högander
>
> > }
> >
> > void intel_psr_compute_config(struct intel_dp *intel_dp,
> > @@ -2175,6 +2188,7 @@ static void intel_psr_enable_locked(struct
> > intel_dp *intel_dp,
> > intel_dp->psr.panel_replay_enabled = crtc_state-
> > >has_panel_replay;
> > intel_dp->psr.busy_frontbuffer_bits = 0;
> > intel_dp->psr.pipe = to_intel_crtc(crtc_state->uapi.crtc)-
> > >pipe;
> > + intel_dp->psr.pipe_mask =
> > intel_crtc_joined_pipe_mask(crtc_state);
> > intel_dp->psr.transcoder = crtc_state->cpu_transcoder;
> > /* DC5/DC6 requires at least 6 idle frames */
> > val = usecs_to_jiffies(intel_get_frame_time_us(crtc_state) *
> > 6);
> > @@ -2394,6 +2408,7 @@ static void intel_psr_disable_locked(struct
> > intel_dp *intel_dp)
> > intel_dp->psr.psr2_sel_fetch_cff_enabled = false;
> > intel_dp->psr.active_non_psr_pipes = 0;
> > intel_dp->psr.pkg_c_latency_used = 0;
> > + intel_dp->psr.pipe_mask = 0;
> > cancel_delayed_work(&intel_dp->psr.dc3co_work);
> > intel_dp->psr.dc3co_allowed = false;
> > }
> > @@ -3627,8 +3642,7 @@ void intel_psr_invalidate(struct intel_display
> > *display,
> > continue;
> > }
> >
> > - pipe_frontbuffer_bits &=
> > - INTEL_FRONTBUFFER_ALL_MASK(intel_dp-
> > >psr.pipe);
> > + pipe_frontbuffer_bits &=
> > psr_frontbuffer_mask(intel_dp);
> > intel_dp->psr.busy_frontbuffer_bits |=
> > pipe_frontbuffer_bits;
> >
> > if (pipe_frontbuffer_bits)
> > @@ -3708,8 +3722,7 @@ void intel_psr_flush(struct intel_display
> > *display,
> > continue;
> > }
> >
> > - pipe_frontbuffer_bits &=
> > - INTEL_FRONTBUFFER_ALL_MASK(intel_dp-
> > >psr.pipe);
> > + pipe_frontbuffer_bits &=
> > psr_frontbuffer_mask(intel_dp);
> > intel_dp->psr.busy_frontbuffer_bits &=
> > ~pipe_frontbuffer_bits;
> >
> > /*
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH] drm/i915/psr: Allow Panel Replay and PSR2 with joiner
2026-09-23 11:59 ` [PATCH] drm/i915/psr: Allow Panel Replay and PSR2 with joiner Mika Kahola
@ 2026-09-25 11:06 ` Hogander, Jouni
2026-09-25 12:32 ` Kahola, Mika
0 siblings, 1 reply; 17+ messages in thread
From: Hogander, Jouni @ 2026-09-25 11:06 UTC (permalink / raw)
To: intel-xe@lists.freedesktop.org, Kahola, Mika,
intel-gfx@lists.freedesktop.org
On Wed, 2026-09-23 at 11:59 +0000, Mika Kahola wrote:
> Each joined pipe has its own PSR register block, so Panel Replay and
> PSR2 selective update work with the pipe A/B joiner. Plain PSR1 does
> not, keep rejecting that.
>
> Assisted-by: Copilot:claude-opus-5
> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_psr.c | 73 ++++++++++++++++++++--
> --
> 1 file changed, 62 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> b/drivers/gpu/drm/i915/display/intel_psr.c
> index 4743b5b91743..c830332b33f2 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -1587,6 +1587,50 @@ static bool intel_psr2_config_valid(struct
> intel_dp *intel_dp,
> return true;
> }
>
> +/*
> + * Joiner needs a per-pipe PSR/Panel Replay register block, only
> + * supported on pipe A/B.
> + */
> +static bool psr_joiner_config_valid(struct intel_dp *intel_dp,
> + const struct intel_crtc_state
> *crtc_state,
> + const char *what)
> +{
> + struct intel_display *display = to_intel_display(intel_dp);
> +
> + if (!crtc_state->joiner_pipes)
> + return true;
> +
> + if (crtc_state->joiner_pipes & ~(BIT(PIPE_A) | BIT(PIPE_B)))
> {
> + drm_dbg_kms(display->drm,
> + "%s not enabled, joiner only supported
> on pipe A/B\n", what);
> + return false;
PSR and eDP Panel Replay are restricted to pipe A and pipe B generally
not specific to joiner. See table in Bspec 68920. DP Panel Replay do
not have this restriction. Panel Replay restriction is handled in
_panel_replay_compute_config. PSR doesn't seem to have this check at
all. I don't know if it's even possible to have eDP on pipe C? Just
questioning if this check makes sense being joiner specific? Are you
targeting to handle scenario where primary pipe has psr/panel replay,
but secondary doesn't?
> + }
> +
> + return true;
> +}
> +
> +/*
> + * PSR2 selective fetch and Panel Replay Selective Update share the
> same
> + * joiner limits, plus no uncompressed joiner configuration in YUV
> 4:2:0.
> + */
> +static bool psr2_joiner_config_valid(struct intel_dp *intel_dp,
> + const struct intel_crtc_state
> *crtc_state)
Rename this as sel_update_joiner_config_valid. psr2 is psr2 but
sel_update may be panel replay or psr2. There is still some old code
not following this, but let's not add more.
BR,
Jouni Högander
> +{
> + struct intel_display *display = to_intel_display(intel_dp);
> +
> + if (!psr_joiner_config_valid(intel_dp, crtc_state,
> "Selective update"))
> + return false;
> +
> + if (crtc_state->joiner_pipes && !crtc_state-
> >dsc.compression_enable &&
> + crtc_state->output_format ==
> INTEL_OUTPUT_FORMAT_YCBCR420) {
> + drm_dbg_kms(display->drm,
> + "Selective update not enabled,
> uncompressed joiner does not support YUV 4:2:0\n");
> + return false;
> + }
> +
> + return true;
> +}
> +
> static bool intel_sel_update_config_valid(struct intel_crtc_state
> *crtc_state,
> struct drm_connector_state
> *conn_state)
> {
> @@ -1594,6 +1638,9 @@ static bool
> intel_sel_update_config_valid(struct intel_crtc_state *crtc_state,
> struct intel_dp *intel_dp = intel_attached_dp(connector);
> struct intel_display *display = to_intel_display(intel_dp);
>
> + if (!psr2_joiner_config_valid(intel_dp, crtc_state))
> + goto unsupported;
> +
> if (HAS_PSR2_SEL_FETCH(display) &&
> !intel_psr2_sel_fetch_config_valid(intel_dp, crtc_state)
> &&
> !HAS_PSR_HW_TRACKING(display)) {
> @@ -1733,6 +1780,9 @@ static bool _panel_replay_compute_config(struct
> intel_crtc_state *crtc_state,
> return false;
> }
>
> + if (!psr_joiner_config_valid(intel_dp, crtc_state, "Panel
> Replay"))
> + return false;
> +
> crtc_state->link_off_after_as_sdp_when_pr_active =
> compute_link_off_after_as_sdp_when_pr_active(connector);
> crtc_state->disable_as_sdp_when_pr_active =
> compute_disable_as_sdp_when_pr_active(connector);
>
> @@ -1886,17 +1936,6 @@ void intel_psr_compute_config(struct intel_dp
> *intel_dp,
> return;
> }
>
> - /*
> - * FIXME figure out what is wrong with PSR+joiner and
> - * fix it. Presumably something related to the fact that
> - * PSR is a transcoder level feature.
> - */
> - if (crtc_state->joiner_pipes) {
> - drm_dbg_kms(display->drm,
> - "PSR disabled due to joiner\n");
> - return;
> - }
> -
> /* Only used for state verification. */
> crtc_state->panel_replay_dsc_support = connector-
> >dp.panel_replay_caps.dsc_support;
> crtc_state->has_panel_replay =
> _panel_replay_compute_config(crtc_state, conn_state);
> @@ -1908,6 +1947,14 @@ void intel_psr_compute_config(struct intel_dp
> *intel_dp,
> return;
>
> crtc_state->has_sel_update =
> intel_sel_update_config_valid(crtc_state, conn_state);
> +
> + /* Plain PSR1 is not supported with joiner. */
> + if (crtc_state->joiner_pipes && !crtc_state-
> >has_panel_replay &&
> + !crtc_state->has_sel_update) {
> + drm_dbg_kms(display->drm,
> + "PSR disabled, PSR1 not supported with
> joiner\n");
> + crtc_state->has_psr = false;
> + }
> }
>
> void intel_psr_get_config(struct intel_encoder *encoder,
> @@ -4728,6 +4775,10 @@ void intel_psr_compute_config_late(struct
> intel_dp *intel_dp,
> crtc_state->has_sel_update = false;
> crtc_state->enable_psr2_su_region_et = false;
> crtc_state->enable_psr2_sel_fetch = false;
> +
> + /* Plain PSR1 is not supported with joiner. */
> + if (crtc_state->joiner_pipes)
> + crtc_state->has_psr = false;
> }
>
> /* Wa_18037818876 */
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH] drm/i915/display: Allow forcing the joiner on eDP
2026-09-23 11:59 ` [PATCH] drm/i915/display: Allow forcing the joiner on eDP Mika Kahola
@ 2026-09-25 11:08 ` Hogander, Jouni
0 siblings, 0 replies; 17+ messages in thread
From: Hogander, Jouni @ 2026-09-25 11:08 UTC (permalink / raw)
To: intel-xe@lists.freedesktop.org, Kahola, Mika,
intel-gfx@lists.freedesktop.org
On Wed, 2026-09-23 at 11:59 +0000, Mika Kahola wrote:
> intel_dp_has_joiner() rejects eDP unless the VBT enables the pipe
> joiner, and the debugfs file is only created when that returns true,
> so
> i915_joiner_force_enable can never turn it on.
>
> Always create the file for DP and eDP, and let a forced pipe count
> above one override the VBT.
>
> Assisted-by: Copilot:claude-opus-5
> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_display_debugfs.c | 5 ++---
> drivers/gpu/drm/i915/display/intel_dp.c | 12 +++++++++-
> --
> 2 files changed, 11 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> index 3e302f23f247..e55fa01addb5 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> @@ -1352,9 +1352,8 @@ void intel_connector_debugfs_add(struct
> intel_connector *connector)
> connector,
> &i915_dsc_fractional_bpp_fops);
> }
>
> - if ((connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
> - connector_type == DRM_MODE_CONNECTOR_eDP) &&
> - intel_dp_has_joiner(intel_attached_dp(connector))) {
> + if (connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
> + connector_type == DRM_MODE_CONNECTOR_eDP) {
> debugfs_create_file("i915_joiner_force_enable",
> 0644, root,
> connector, &i915_joiner_fops);
> }
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c
> b/drivers/gpu/drm/i915/display/intel_dp.c
> index 2480b8ce3bec..80ce71ce4c20 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -473,9 +473,15 @@ bool intel_dp_has_joiner(struct intel_dp
> *intel_dp)
> if (intel_dp->mso_link_count)
> return false;
>
> - if (intel_dp_is_edp(intel_dp) &&
> - !connector->panel.vbt.edp.pipe_joiner_enable)
> - return false;
> + if (intel_dp_is_edp(intel_dp)) {
> + bool pipe_joiner_enable = connector-
> >panel.vbt.edp.pipe_joiner_enable;
> +
> + if (connector->force_joined_pipes > 1)
> + pipe_joiner_enable = true;
> +
> + if (!pipe_joiner_enable)
> + return false;
> + }
>
> return DISPLAY_VER(display) >= 12 ||
> (DISPLAY_VER(display) == 11 &&
^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [PATCH] drm/i915/psr: Allow Panel Replay and PSR2 with joiner
2026-09-25 11:06 ` Hogander, Jouni
@ 2026-09-25 12:32 ` Kahola, Mika
0 siblings, 0 replies; 17+ messages in thread
From: Kahola, Mika @ 2026-09-25 12:32 UTC (permalink / raw)
To: Hogander, Jouni, intel-xe@lists.freedesktop.org,
intel-gfx@lists.freedesktop.org
> -----Original Message-----
> From: Hogander, Jouni <jouni.hogander@intel.com>
> Sent: Friday, 25 September 2026 14.07
> To: intel-xe@lists.freedesktop.org; Kahola, Mika <mika.kahola@intel.com>; intel-gfx@lists.freedesktop.org
> Subject: Re: [PATCH] drm/i915/psr: Allow Panel Replay and PSR2 with joiner
>
> On Wed, 2026-09-23 at 11:59 +0000, Mika Kahola wrote:
> > Each joined pipe has its own PSR register block, so Panel Replay and
> > PSR2 selective update work with the pipe A/B joiner. Plain PSR1 does
> > not, keep rejecting that.
> >
> > Assisted-by: Copilot:claude-opus-5
> > Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> > ---
> > drivers/gpu/drm/i915/display/intel_psr.c | 73 ++++++++++++++++++++--
> > --
> > 1 file changed, 62 insertions(+), 11 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> > b/drivers/gpu/drm/i915/display/intel_psr.c
> > index 4743b5b91743..c830332b33f2 100644
> > --- a/drivers/gpu/drm/i915/display/intel_psr.c
> > +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> > @@ -1587,6 +1587,50 @@ static bool intel_psr2_config_valid(struct
> > intel_dp *intel_dp,
> > return true;
> > }
> >
> > +/*
> > + * Joiner needs a per-pipe PSR/Panel Replay register block, only
> > + * supported on pipe A/B.
> > + */
> > +static bool psr_joiner_config_valid(struct intel_dp *intel_dp,
> > + const struct intel_crtc_state
> > *crtc_state,
> > + const char *what)
> > +{
> > + struct intel_display *display = to_intel_display(intel_dp);
> > +
> > + if (!crtc_state->joiner_pipes)
> > + return true;
> > +
> > + if (crtc_state->joiner_pipes & ~(BIT(PIPE_A) | BIT(PIPE_B)))
> > {
> > + drm_dbg_kms(display->drm,
> > + "%s not enabled, joiner only supported
> > on pipe A/B\n", what);
> > + return false;
>
> PSR and eDP Panel Replay are restricted to pipe A and pipe B generally
> not specific to joiner. See table in Bspec 68920. DP Panel Replay do
> not have this restriction. Panel Replay restriction is handled in
> _panel_replay_compute_config. PSR doesn't seem to have this check at
> all. I don't know if it's even possible to have eDP on pipe C? Just
> questioning if this check makes sense being joiner specific? Are you
> targeting to handle scenario where primary pipe has psr/panel replay,
> but secondary doesn't?
eDP is limited to pipe A and B only. You're right that Panel Replay doesn't have this limitation. So we are talking about about PIPE C etc. In case of Panel Replay. Like you said, this pipe check is already in place in _panel_replay_compute_config(). I don't see a scenario possible that primary pipe would have PSR/PR and secondary doesn't or vice versa. So all in all, I will drop this from the future series.
Thanks for a review!
-Mika-
>
> > + }
> > +
> > + return true;
> > +}
> > +
> > +/*
> > + * PSR2 selective fetch and Panel Replay Selective Update share the
> > same
> > + * joiner limits, plus no uncompressed joiner configuration in YUV
> > 4:2:0.
> > + */
> > +static bool psr2_joiner_config_valid(struct intel_dp *intel_dp,
> > + const struct intel_crtc_state
> > *crtc_state)
>
> Rename this as sel_update_joiner_config_valid. psr2 is psr2 but
> sel_update may be panel replay or psr2. There is still some old code
> not following this, but let's not add more.
>
> BR,
> Jouni Högander
>
> > +{
> > + struct intel_display *display = to_intel_display(intel_dp);
> > +
> > + if (!psr_joiner_config_valid(intel_dp, crtc_state,
> > "Selective update"))
> > + return false;
> > +
> > + if (crtc_state->joiner_pipes && !crtc_state-
> > >dsc.compression_enable &&
> > + crtc_state->output_format ==
> > INTEL_OUTPUT_FORMAT_YCBCR420) {
> > + drm_dbg_kms(display->drm,
> > + "Selective update not enabled,
> > uncompressed joiner does not support YUV 4:2:0\n");
> > + return false;
> > + }
> > +
> > + return true;
> > +}
> > +
> > static bool intel_sel_update_config_valid(struct intel_crtc_state
> > *crtc_state,
> > struct drm_connector_state
> > *conn_state)
> > {
> > @@ -1594,6 +1638,9 @@ static bool
> > intel_sel_update_config_valid(struct intel_crtc_state *crtc_state,
> > struct intel_dp *intel_dp = intel_attached_dp(connector);
> > struct intel_display *display = to_intel_display(intel_dp);
> >
> > + if (!psr2_joiner_config_valid(intel_dp, crtc_state))
> > + goto unsupported;
> > +
> > if (HAS_PSR2_SEL_FETCH(display) &&
> > !intel_psr2_sel_fetch_config_valid(intel_dp, crtc_state)
> > &&
> > !HAS_PSR_HW_TRACKING(display)) {
> > @@ -1733,6 +1780,9 @@ static bool _panel_replay_compute_config(struct
> > intel_crtc_state *crtc_state,
> > return false;
> > }
> >
> > + if (!psr_joiner_config_valid(intel_dp, crtc_state, "Panel
> > Replay"))
> > + return false;
> > +
> > crtc_state->link_off_after_as_sdp_when_pr_active =
> > compute_link_off_after_as_sdp_when_pr_active(connector);
> > crtc_state->disable_as_sdp_when_pr_active =
> > compute_disable_as_sdp_when_pr_active(connector);
> >
> > @@ -1886,17 +1936,6 @@ void intel_psr_compute_config(struct intel_dp
> > *intel_dp,
> > return;
> > }
> >
> > - /*
> > - * FIXME figure out what is wrong with PSR+joiner and
> > - * fix it. Presumably something related to the fact that
> > - * PSR is a transcoder level feature.
> > - */
> > - if (crtc_state->joiner_pipes) {
> > - drm_dbg_kms(display->drm,
> > - "PSR disabled due to joiner\n");
> > - return;
> > - }
> > -
> > /* Only used for state verification. */
> > crtc_state->panel_replay_dsc_support = connector-
> > >dp.panel_replay_caps.dsc_support;
> > crtc_state->has_panel_replay =
> > _panel_replay_compute_config(crtc_state, conn_state);
> > @@ -1908,6 +1947,14 @@ void intel_psr_compute_config(struct intel_dp
> > *intel_dp,
> > return;
> >
> > crtc_state->has_sel_update =
> > intel_sel_update_config_valid(crtc_state, conn_state);
> > +
> > + /* Plain PSR1 is not supported with joiner. */
> > + if (crtc_state->joiner_pipes && !crtc_state-
> > >has_panel_replay &&
> > + !crtc_state->has_sel_update) {
> > + drm_dbg_kms(display->drm,
> > + "PSR disabled, PSR1 not supported with
> > joiner\n");
> > + crtc_state->has_psr = false;
> > + }
> > }
> >
> > void intel_psr_get_config(struct intel_encoder *encoder,
> > @@ -4728,6 +4775,10 @@ void intel_psr_compute_config_late(struct
> > intel_dp *intel_dp,
> > crtc_state->has_sel_update = false;
> > crtc_state->enable_psr2_su_region_et = false;
> > crtc_state->enable_psr2_sel_fetch = false;
> > +
> > + /* Plain PSR1 is not supported with joiner. */
> > + if (crtc_state->joiner_pipes)
> > + crtc_state->has_psr = false;
> > }
> >
> > /* Wa_18037818876 */
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH] drm/i915/psr: Merge the selective fetch area across joined pipes
2026-09-23 11:59 ` [PATCH] drm/i915/psr: Merge the selective fetch area across joined pipes Mika Kahola
@ 2026-10-07 10:25 ` Hogander, Jouni
2026-10-09 6:50 ` Kahola, Mika
0 siblings, 1 reply; 17+ messages in thread
From: Hogander, Jouni @ 2026-10-07 10:25 UTC (permalink / raw)
To: intel-xe@lists.freedesktop.org, Kahola, Mika,
intel-gfx@lists.freedesktop.org
On Wed, 2026-09-23 at 11:59 +0000, Mika Kahola wrote:
> PSR2_MAN_TRK_CTL is per transcoder and a joined config has only one
> transcoder, so both joined pipes would program it and the primary
> would win. Merge the per-pipe areas, hand the result back to every
> joined pipe before the plane areas are set and write the transcoder
> register from the primary only. The joiner splits the image
> horizontally, so the pipes share the Y coordinate space and all of
> them have to fetch the merged range.
>
> The plane support check has to run before the merge, so it now covers
> every visible plane instead of only the ones intersecting the area.
there is this step in current intel_psr2_sel_fetch_update:
if (crtc_state->psr2_su_area.y1 == -1) {
drm_info_once(display->drm,
"Selective fetch area calculation failed
in pipe %c\n",
pipe_name(crtc->pipe));
full_update = true;
}
Consider case where there is no update in pipeA, but some damage are in
pipeB. That will improperly trigger full update.
> Assisted-by: Copilot:claude-opus-5
> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_psr.c | 184 +++++++++++++++++---
> --
> drivers/gpu/drm/i915/display/intel_vdsc.c | 2 +-
> drivers/gpu/drm/i915/display/intel_vdsc.h | 2 +-
> 3 files changed, 145 insertions(+), 43 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> b/drivers/gpu/drm/i915/display/intel_psr.c
> index c1994da38567..4743b5b91743 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -2657,9 +2657,11 @@ void
> intel_psr2_program_trans_man_trk_ctl(struct intel_dsb *dsb,
> break;
> }
>
> - intel_de_write_dsb(display, dsb,
> - PSR2_MAN_TRK_CTL(display,
> cpu_transcoder),
> - crtc_state->psr2_man_track_ctl);
> + /* The joined pipes drive one transcoder, so program it
> once. */
> + if (!intel_crtc_is_joiner_secondary(crtc_state))
> + intel_de_write_dsb(display, dsb,
> + PSR2_MAN_TRK_CTL(display,
> cpu_transcoder),
> + crtc_state->psr2_man_track_ctl);
>
> if (!crtc_state->enable_psr2_su_region_et)
> return;
> @@ -2670,7 +2672,7 @@ void
> intel_psr2_program_trans_man_trk_ctl(struct intel_dsb *dsb,
> if (!crtc_state->dsc.compression_enable)
> return;
>
> - intel_dsc_su_et_parameters_configure(dsb, encoder,
> crtc_state,
> + intel_dsc_su_et_parameters_configure(dsb, crtc_state,
>
> drm_rect_height(&crtc_state->psr2_su_area));
> }
>
> @@ -2900,12 +2902,11 @@ intel_psr_apply_su_area_workarounds(struct
> intel_crtc_state *crtc_state)
> intel_psr_apply_pr_link_on_su_wa(crtc_state);
> }
>
> -int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
> - struct intel_crtc *crtc)
> +static int psr2_sel_fetch_compute_su_area(struct intel_atomic_state
> *state,
> + struct intel_crtc *crtc,
> + bool *full_update)
> {
> struct intel_display *display = to_intel_display(state);
> - const struct intel_crtc_state *old_crtc_state =
> - intel_atomic_get_old_crtc_state(state, crtc);
> struct intel_crtc_state *crtc_state =
> intel_atomic_get_new_crtc_state(state, crtc);
> struct intel_plane_state *new_plane_state, *old_plane_state;
> struct intel_plane *plane;
> @@ -2915,28 +2916,14 @@ int intel_psr2_sel_fetch_update(struct
> intel_atomic_state *state,
> .x2 = drm_rect_width(&crtc_state->pipe_src),
> .y2 = drm_rect_height(&crtc_state->pipe_src),
> };
> - bool full_update = false, su_area_changed;
> + bool su_area_changed;
> int i, ret;
>
> - /*
> - * Selective fetch is not always usable, for instance it is
> dropped
> - * while pipe CRC is active. The planes keep their selective
> fetch
> - * enable bit set in hardware over that, and a plane
> disabled while
> - * selective fetch is off never gets the bit cleared. Once
> selective
> - * fetch comes back the hardware would resume fetching for a
> plane that
> - * is no longer enabled and keep its DDB range reserved, so
> have the
> - * plane update drop the bit for every plane of the pipe as
> selective
> - * fetch is turned off.
> - */
> - crtc_state->clear_psr2_sel_fetch = old_crtc_state-
> >enable_psr2_sel_fetch &&
> - !crtc_state->enable_psr2_sel_fetch;
> -
> - if (!crtc_state->enable_psr2_sel_fetch)
> - return 0;
> + *full_update = false;
>
> if (!psr2_sel_fetch_pipe_state_supported(crtc_state)) {
> - full_update = true;
> - goto skip_sel_fetch_set_loop;
> + *full_update = true;
> + return 0;
> }
>
> crtc_state->psr2_su_area.x1 = 0;
> @@ -2963,7 +2950,7 @@ int intel_psr2_sel_fetch_update(struct
> intel_atomic_state *state,
> continue;
>
> if
> (!psr2_sel_fetch_plane_state_supported(new_plane_state)) {
> - full_update = true;
> + *full_update = true;
> break;
> }
>
> @@ -3023,11 +3010,11 @@ int intel_psr2_sel_fetch_update(struct
> intel_atomic_state *state,
> drm_info_once(display->drm,
> "Selective fetch area calculation
> failed in pipe %c\n",
> pipe_name(crtc->pipe));
> - full_update = true;
> + *full_update = true;
> }
>
> - if (full_update)
> - goto skip_sel_fetch_set_loop;
> + if (*full_update)
> + return 0;
>
> intel_psr_apply_su_area_workarounds(crtc_state);
>
> @@ -3035,6 +3022,21 @@ int intel_psr2_sel_fetch_update(struct
> intel_atomic_state *state,
> if (ret)
> return ret;
>
> + /*
> + * The loop above never saw the planes pulled in just now,
> and the area
> + * has to be final before the joined pipes merge it.
> + */
> + for_each_new_intel_plane_in_state(state, plane,
> new_plane_state, i) {
> + if (new_plane_state->hw.crtc != crtc_state-
> >uapi.crtc ||
> + !new_plane_state->uapi.visible)
> + continue;
> +
> + if
> (!psr2_sel_fetch_plane_state_supported(new_plane_state)) {
> + *full_update = true;
> + return 0;
> + }
> + }
> +
> do {
> bool cursor_in_su_area = false;
>
> @@ -3063,6 +3065,58 @@ int intel_psr2_sel_fetch_update(struct
> intel_atomic_state *state,
> break;
> } while (su_area_changed);
>
> + return 0;
> +}
> +
> +/*
> + * The joined pipes share one transcoder, and thus one SU region
> describing the
> + * whole joined frame. Joining splits the image horizontally, so the
> pipes share
> + * the Y coordinate space and each of them has to fetch the merged
> range.
> + */
> +static void psr2_sel_fetch_merge_su_area(struct intel_atomic_state
> *state,
> + u8 joined_pipes)
> +{
> + struct intel_display *display = to_intel_display(state);
> + struct intel_crtc_state *crtc_state;
> + struct intel_crtc *crtc;
> + int y1 = INT_MAX, y2 = INT_MIN;
> +
> + for_each_intel_crtc_in_pipe_mask(display, crtc,
> joined_pipes) {
> + crtc_state = intel_atomic_get_new_crtc_state(state,
> crtc);
> +
> + y1 = min(y1, crtc_state->psr2_su_area.y1);
> + y2 = max(y2, crtc_state->psr2_su_area.y2);
> + }
> +
> + for_each_intel_crtc_in_pipe_mask(display, crtc,
> joined_pipes) {
> + crtc_state = intel_atomic_get_new_crtc_state(state,
> crtc);
> +
> + crtc_state->psr2_su_area.y1 = y1;
> + crtc_state->psr2_su_area.y2 = y2;
You should also handle case where cursor is partially covered by the su
area after this step.
> + }
> +}
> +
> +static int psr2_sel_fetch_apply_su_area(struct intel_atomic_state
> *state,
> + struct intel_crtc *crtc,
> + bool full_update)
> +{
> + struct intel_crtc_state *crtc_state =
> intel_atomic_get_new_crtc_state(state, crtc);
> + struct intel_plane_state *new_plane_state, *old_plane_state;
> + struct intel_plane *plane;
> + struct drm_rect display_area = {
> + .x1 = 0,
> + .y1 = 0,
> + .x2 = drm_rect_width(&crtc_state->pipe_src),
> + .y2 = drm_rect_height(&crtc_state->pipe_src),
> + };
> + int i;
> +
> + if (full_update) {
> + clip_area_update(&crtc_state->psr2_su_area,
> &display_area,
> + &display_area);
> + goto out;
> + }
> +
> /*
> * Now that we have the pipe damaged area check if it
> intersect with
> * every plane, if it does set the plane selective fetch
> area.
> @@ -3091,12 +3145,6 @@ int intel_psr2_sel_fetch_update(struct
> intel_atomic_state *state,
> continue;
> }
>
> - if
> (!psr2_sel_fetch_plane_state_supported(new_plane_state)) {
> - full_update = true;
> - break;
> - }
> -
> - sel_fetch_area = &new_plane_state-
> >psr2_sel_fetch_area;
> sel_fetch_area->y1 = inter.y1 - new_plane_state-
> >uapi.dst.y1;
> sel_fetch_area->y2 = inter.y2 - new_plane_state-
> >uapi.dst.y1;
> crtc_state->update_planes |= BIT(plane->id);
> @@ -3120,14 +3168,68 @@ int intel_psr2_sel_fetch_update(struct
> intel_atomic_state *state,
> }
> }
>
> -skip_sel_fetch_set_loop:
> - if (full_update)
> - clip_area_update(&crtc_state->psr2_su_area,
> &display_area,
> - &display_area);
> -
> +out:
> psr2_man_trk_ctl_calc(crtc_state, full_update);
> crtc_state->pipe_srcsz_early_tpt =
> psr2_pipe_srcsz_early_tpt_calc(crtc_state,
> full_update);
> +
> + return 0;
> +}
> +
> +int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
> + struct intel_crtc *crtc)
> +{
> + struct intel_display *display = to_intel_display(state);
> + const struct intel_crtc_state *old_crtc_state =
> + intel_atomic_get_old_crtc_state(state, crtc);
> + struct intel_crtc_state *crtc_state =
> intel_atomic_get_new_crtc_state(state, crtc);
> + struct intel_crtc *joined_crtc;
> + bool full_update = false;
> + u8 joined_pipes;
> + int ret;
> +
> + /*
> + * Selective fetch is not always usable, for instance it is
> dropped
> + * while pipe CRC is active. The planes keep their selective
> fetch
> + * enable bit set in hardware over that, and a plane
> disabled while
> + * selective fetch is off never gets the bit cleared. Once
> selective
> + * fetch comes back the hardware would resume fetching for a
> plane that
> + * is no longer enabled and keep its DDB range reserved, so
> have the
> + * plane update drop the bit for every plane of the pipe as
> selective
> + * fetch is turned off.
> + */
> + crtc_state->clear_psr2_sel_fetch = old_crtc_state-
> >enable_psr2_sel_fetch &&
> + !crtc_state->enable_psr2_sel_fetch;
> +
> + if (!crtc_state->enable_psr2_sel_fetch)
> + return 0;
> +
> + /* The joined pipes are handled in one go from the primary.
> */
> + if (intel_crtc_is_joiner_secondary(crtc_state))
> + return 0;
> +
> + joined_pipes = intel_crtc_joined_pipe_mask(crtc_state);
> +
> + for_each_intel_crtc_in_pipe_mask(display, joined_crtc,
> joined_pipes) {
> + bool pipe_full_update;
> +
> + ret = psr2_sel_fetch_compute_su_area(state,
> joined_crtc,
> +
> &pipe_full_update);
> + if (ret)
> + return ret;
> +
> + full_update |= pipe_full_update;
I think you could break immediately.
BR,
Jouni Högander
> + }
> +
> + if (!full_update)
> + psr2_sel_fetch_merge_su_area(state, joined_pipes);
> +
> + for_each_intel_crtc_in_pipe_mask(display, joined_crtc,
> joined_pipes) {
> + ret = psr2_sel_fetch_apply_su_area(state,
> joined_crtc, full_update);
> + if (ret)
> + return ret;
> + }
> +
> return 0;
> }
>
> diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c
> b/drivers/gpu/drm/i915/display/intel_vdsc.c
> index 8f06c3a4d56d..29eec44ca3b0 100644
> --- a/drivers/gpu/drm/i915/display/intel_vdsc.c
> +++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
> @@ -820,7 +820,7 @@ void intel_dsc_dp_pps_write(struct intel_encoder
> *encoder,
> sizeof(dp_dsc_pps_sdp));
> }
>
> -void intel_dsc_su_et_parameters_configure(struct intel_dsb *dsb,
> struct intel_encoder *encoder,
> +void intel_dsc_su_et_parameters_configure(struct intel_dsb *dsb,
> const struct
> intel_crtc_state *crtc_state, int su_lines)
> {
> struct intel_display *display =
> to_intel_display(crtc_state);
> diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.h
> b/drivers/gpu/drm/i915/display/intel_vdsc.h
> index 3372f8694054..08a3ffedb8ec 100644
> --- a/drivers/gpu/drm/i915/display/intel_vdsc.h
> +++ b/drivers/gpu/drm/i915/display/intel_vdsc.h
> @@ -38,7 +38,7 @@ void intel_dsc_dsi_pps_write(struct intel_encoder
> *encoder,
> const struct intel_crtc_state
> *crtc_state);
> void intel_dsc_dp_pps_write(struct intel_encoder *encoder,
> const struct intel_crtc_state
> *crtc_state);
> -void intel_dsc_su_et_parameters_configure(struct intel_dsb *dsb,
> struct intel_encoder *encoder,
> +void intel_dsc_su_et_parameters_configure(struct intel_dsb *dsb,
> const struct
> intel_crtc_state *crtc_state, int su_lines);
> void intel_vdsc_state_dump(struct drm_printer *p, int indent,
> const struct intel_crtc_state
> *crtc_state);
^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [PATCH] drm/i915/psr: Merge the selective fetch area across joined pipes
2026-10-07 10:25 ` Hogander, Jouni
@ 2026-10-09 6:50 ` Kahola, Mika
0 siblings, 0 replies; 17+ messages in thread
From: Kahola, Mika @ 2026-10-09 6:50 UTC (permalink / raw)
To: Hogander, Jouni, intel-xe@lists.freedesktop.org,
intel-gfx@lists.freedesktop.org
> -----Original Message-----
> From: Hogander, Jouni <jouni.hogander@intel.com>
> Sent: Wednesday, 7 October 2026 13.26
> To: intel-xe@lists.freedesktop.org; Kahola, Mika <mika.kahola@intel.com>; intel-gfx@lists.freedesktop.org
> Subject: Re: [PATCH] drm/i915/psr: Merge the selective fetch area across joined pipes
>
> On Wed, 2026-09-23 at 11:59 +0000, Mika Kahola wrote:
> > PSR2_MAN_TRK_CTL is per transcoder and a joined config has only one
> > transcoder, so both joined pipes would program it and the primary
> > would win. Merge the per-pipe areas, hand the result back to every
> > joined pipe before the plane areas are set and write the transcoder
> > register from the primary only. The joiner splits the image
> > horizontally, so the pipes share the Y coordinate space and all of
> > them have to fetch the merged range.
> >
> > The plane support check has to run before the merge, so it now covers
> > every visible plane instead of only the ones intersecting the area.
>
> there is this step in current intel_psr2_sel_fetch_update:
>
> if (crtc_state->psr2_su_area.y1 == -1) {
> drm_info_once(display->drm,
> "Selective fetch area calculation failed
> in pipe %c\n",
> pipe_name(crtc->pipe));
> full_update = true;
> }
>
> Consider case where there is no update in pipeA, but some damage are in
> pipeB. That will improperly trigger full update.
Right, there's absolutely no need to do full update in case only either of the pipes has damage area.
>
>
> > Assisted-by: Copilot:claude-opus-5
> > Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> > ---
> > drivers/gpu/drm/i915/display/intel_psr.c | 184 +++++++++++++++++---
> > --
> > drivers/gpu/drm/i915/display/intel_vdsc.c | 2 +-
> > drivers/gpu/drm/i915/display/intel_vdsc.h | 2 +-
> > 3 files changed, 145 insertions(+), 43 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> > b/drivers/gpu/drm/i915/display/intel_psr.c
> > index c1994da38567..4743b5b91743 100644
> > --- a/drivers/gpu/drm/i915/display/intel_psr.c
> > +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> > @@ -2657,9 +2657,11 @@ void
> > intel_psr2_program_trans_man_trk_ctl(struct intel_dsb *dsb,
> > break;
> > }
> >
> > - intel_de_write_dsb(display, dsb,
> > - PSR2_MAN_TRK_CTL(display,
> > cpu_transcoder),
> > - crtc_state->psr2_man_track_ctl);
> > + /* The joined pipes drive one transcoder, so program it
> > once. */
> > + if (!intel_crtc_is_joiner_secondary(crtc_state))
> > + intel_de_write_dsb(display, dsb,
> > + PSR2_MAN_TRK_CTL(display,
> > cpu_transcoder),
> > + crtc_state->psr2_man_track_ctl);
> >
> > if (!crtc_state->enable_psr2_su_region_et)
> > return;
> > @@ -2670,7 +2672,7 @@ void
> > intel_psr2_program_trans_man_trk_ctl(struct intel_dsb *dsb,
> > if (!crtc_state->dsc.compression_enable)
> > return;
> >
> > - intel_dsc_su_et_parameters_configure(dsb, encoder,
> > crtc_state,
> > + intel_dsc_su_et_parameters_configure(dsb, crtc_state,
> >
> > drm_rect_height(&crtc_state->psr2_su_area));
> > }
> >
> > @@ -2900,12 +2902,11 @@ intel_psr_apply_su_area_workarounds(struct
> > intel_crtc_state *crtc_state)
> > intel_psr_apply_pr_link_on_su_wa(crtc_state);
> > }
> >
> > -int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
> > - struct intel_crtc *crtc)
> > +static int psr2_sel_fetch_compute_su_area(struct intel_atomic_state
> > *state,
> > + struct intel_crtc *crtc,
> > + bool *full_update)
> > {
> > struct intel_display *display = to_intel_display(state);
> > - const struct intel_crtc_state *old_crtc_state =
> > - intel_atomic_get_old_crtc_state(state, crtc);
> > struct intel_crtc_state *crtc_state =
> > intel_atomic_get_new_crtc_state(state, crtc);
> > struct intel_plane_state *new_plane_state, *old_plane_state;
> > struct intel_plane *plane;
> > @@ -2915,28 +2916,14 @@ int intel_psr2_sel_fetch_update(struct
> > intel_atomic_state *state,
> > .x2 = drm_rect_width(&crtc_state->pipe_src),
> > .y2 = drm_rect_height(&crtc_state->pipe_src),
> > };
> > - bool full_update = false, su_area_changed;
> > + bool su_area_changed;
> > int i, ret;
> >
> > - /*
> > - * Selective fetch is not always usable, for instance it is
> > dropped
> > - * while pipe CRC is active. The planes keep their selective
> > fetch
> > - * enable bit set in hardware over that, and a plane
> > disabled while
> > - * selective fetch is off never gets the bit cleared. Once
> > selective
> > - * fetch comes back the hardware would resume fetching for a
> > plane that
> > - * is no longer enabled and keep its DDB range reserved, so
> > have the
> > - * plane update drop the bit for every plane of the pipe as
> > selective
> > - * fetch is turned off.
> > - */
> > - crtc_state->clear_psr2_sel_fetch = old_crtc_state-
> > >enable_psr2_sel_fetch &&
> > - !crtc_state->enable_psr2_sel_fetch;
> > -
> > - if (!crtc_state->enable_psr2_sel_fetch)
> > - return 0;
> > + *full_update = false;
> >
> > if (!psr2_sel_fetch_pipe_state_supported(crtc_state)) {
> > - full_update = true;
> > - goto skip_sel_fetch_set_loop;
> > + *full_update = true;
> > + return 0;
> > }
> >
> > crtc_state->psr2_su_area.x1 = 0;
> > @@ -2963,7 +2950,7 @@ int intel_psr2_sel_fetch_update(struct
> > intel_atomic_state *state,
> > continue;
> >
> > if
> > (!psr2_sel_fetch_plane_state_supported(new_plane_state)) {
> > - full_update = true;
> > + *full_update = true;
> > break;
> > }
> >
> > @@ -3023,11 +3010,11 @@ int intel_psr2_sel_fetch_update(struct
> > intel_atomic_state *state,
> > drm_info_once(display->drm,
> > "Selective fetch area calculation
> > failed in pipe %c\n",
> > pipe_name(crtc->pipe));
> > - full_update = true;
> > + *full_update = true;
> > }
> >
> > - if (full_update)
> > - goto skip_sel_fetch_set_loop;
> > + if (*full_update)
> > + return 0;
> >
> > intel_psr_apply_su_area_workarounds(crtc_state);
> >
> > @@ -3035,6 +3022,21 @@ int intel_psr2_sel_fetch_update(struct
> > intel_atomic_state *state,
> > if (ret)
> > return ret;
> >
> > + /*
> > + * The loop above never saw the planes pulled in just now,
> > and the area
> > + * has to be final before the joined pipes merge it.
> > + */
> > + for_each_new_intel_plane_in_state(state, plane,
> > new_plane_state, i) {
> > + if (new_plane_state->hw.crtc != crtc_state-
> > >uapi.crtc ||
> > + !new_plane_state->uapi.visible)
> > + continue;
> > +
> > + if
> > (!psr2_sel_fetch_plane_state_supported(new_plane_state)) {
> > + *full_update = true;
> > + return 0;
> > + }
> > + }
> > +
> > do {
> > bool cursor_in_su_area = false;
> >
> > @@ -3063,6 +3065,58 @@ int intel_psr2_sel_fetch_update(struct
> > intel_atomic_state *state,
> > break;
> > } while (su_area_changed);
> >
> > + return 0;
> > +}
> > +
> > +/*
> > + * The joined pipes share one transcoder, and thus one SU region
> > describing the
> > + * whole joined frame. Joining splits the image horizontally, so the
> > pipes share
> > + * the Y coordinate space and each of them has to fetch the merged
> > range.
> > + */
> > +static void psr2_sel_fetch_merge_su_area(struct intel_atomic_state
> > *state,
> > + u8 joined_pipes)
> > +{
> > + struct intel_display *display = to_intel_display(state);
> > + struct intel_crtc_state *crtc_state;
> > + struct intel_crtc *crtc;
> > + int y1 = INT_MAX, y2 = INT_MIN;
> > +
> > + for_each_intel_crtc_in_pipe_mask(display, crtc,
> > joined_pipes) {
> > + crtc_state = intel_atomic_get_new_crtc_state(state,
> > crtc);
> > +
> > + y1 = min(y1, crtc_state->psr2_su_area.y1);
> > + y2 = max(y2, crtc_state->psr2_su_area.y2);
> > + }
> > +
> > + for_each_intel_crtc_in_pipe_mask(display, crtc,
> > joined_pipes) {
> > + crtc_state = intel_atomic_get_new_crtc_state(state,
> > crtc);
> > +
> > + crtc_state->psr2_su_area.y1 = y1;
> > + crtc_state->psr2_su_area.y2 = y2;
>
> You should also handle case where cursor is partially covered by the su
> area after this step.
Right, the cursor now can intersect the merged area. Good catch!
>
> > + }
> > +}
> > +
> > +static int psr2_sel_fetch_apply_su_area(struct intel_atomic_state
> > *state,
> > + struct intel_crtc *crtc,
> > + bool full_update)
> > +{
> > + struct intel_crtc_state *crtc_state =
> > intel_atomic_get_new_crtc_state(state, crtc);
> > + struct intel_plane_state *new_plane_state, *old_plane_state;
> > + struct intel_plane *plane;
> > + struct drm_rect display_area = {
> > + .x1 = 0,
> > + .y1 = 0,
> > + .x2 = drm_rect_width(&crtc_state->pipe_src),
> > + .y2 = drm_rect_height(&crtc_state->pipe_src),
> > + };
> > + int i;
> > +
> > + if (full_update) {
> > + clip_area_update(&crtc_state->psr2_su_area,
> > &display_area,
> > + &display_area);
> > + goto out;
> > + }
> > +
> > /*
> > * Now that we have the pipe damaged area check if it
> > intersect with
> > * every plane, if it does set the plane selective fetch
> > area.
> > @@ -3091,12 +3145,6 @@ int intel_psr2_sel_fetch_update(struct
> > intel_atomic_state *state,
> > continue;
> > }
> >
> > - if
> > (!psr2_sel_fetch_plane_state_supported(new_plane_state)) {
> > - full_update = true;
> > - break;
> > - }
> > -
> > - sel_fetch_area = &new_plane_state-
> > >psr2_sel_fetch_area;
> > sel_fetch_area->y1 = inter.y1 - new_plane_state-
> > >uapi.dst.y1;
> > sel_fetch_area->y2 = inter.y2 - new_plane_state-
> > >uapi.dst.y1;
> > crtc_state->update_planes |= BIT(plane->id);
> > @@ -3120,14 +3168,68 @@ int intel_psr2_sel_fetch_update(struct
> > intel_atomic_state *state,
> > }
> > }
> >
> > -skip_sel_fetch_set_loop:
> > - if (full_update)
> > - clip_area_update(&crtc_state->psr2_su_area,
> > &display_area,
> > - &display_area);
> > -
> > +out:
> > psr2_man_trk_ctl_calc(crtc_state, full_update);
> > crtc_state->pipe_srcsz_early_tpt =
> > psr2_pipe_srcsz_early_tpt_calc(crtc_state,
> > full_update);
> > +
> > + return 0;
> > +}
> > +
> > +int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
> > + struct intel_crtc *crtc)
> > +{
> > + struct intel_display *display = to_intel_display(state);
> > + const struct intel_crtc_state *old_crtc_state =
> > + intel_atomic_get_old_crtc_state(state, crtc);
> > + struct intel_crtc_state *crtc_state =
> > intel_atomic_get_new_crtc_state(state, crtc);
> > + struct intel_crtc *joined_crtc;
> > + bool full_update = false;
> > + u8 joined_pipes;
> > + int ret;
> > +
> > + /*
> > + * Selective fetch is not always usable, for instance it is
> > dropped
> > + * while pipe CRC is active. The planes keep their selective
> > fetch
> > + * enable bit set in hardware over that, and a plane
> > disabled while
> > + * selective fetch is off never gets the bit cleared. Once
> > selective
> > + * fetch comes back the hardware would resume fetching for a
> > plane that
> > + * is no longer enabled and keep its DDB range reserved, so
> > have the
> > + * plane update drop the bit for every plane of the pipe as
> > selective
> > + * fetch is turned off.
> > + */
> > + crtc_state->clear_psr2_sel_fetch = old_crtc_state-
> > >enable_psr2_sel_fetch &&
> > + !crtc_state->enable_psr2_sel_fetch;
> > +
> > + if (!crtc_state->enable_psr2_sel_fetch)
> > + return 0;
> > +
> > + /* The joined pipes are handled in one go from the primary.
> > */
> > + if (intel_crtc_is_joiner_secondary(crtc_state))
> > + return 0;
> > +
> > + joined_pipes = intel_crtc_joined_pipe_mask(crtc_state);
> > +
> > + for_each_intel_crtc_in_pipe_mask(display, joined_crtc,
> > joined_pipes) {
> > + bool pipe_full_update;
> > +
> > + ret = psr2_sel_fetch_compute_su_area(state,
> > joined_crtc,
> > +
> > &pipe_full_update);
> > + if (ret)
> > + return ret;
> > +
> > + full_update |= pipe_full_update;
>
> I think you could break immediately.
Yes, that can be done.
Thanks for the review. I will fix these and spin out v2 shortly.
>
> BR,
> Jouni Högander
>
>
> > + }
> > +
> > + if (!full_update)
> > + psr2_sel_fetch_merge_su_area(state, joined_pipes);
> > +
> > + for_each_intel_crtc_in_pipe_mask(display, joined_crtc,
> > joined_pipes) {
> > + ret = psr2_sel_fetch_apply_su_area(state,
> > joined_crtc, full_update);
> > + if (ret)
> > + return ret;
> > + }
> > +
> > return 0;
> > }
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c
> > b/drivers/gpu/drm/i915/display/intel_vdsc.c
> > index 8f06c3a4d56d..29eec44ca3b0 100644
> > --- a/drivers/gpu/drm/i915/display/intel_vdsc.c
> > +++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
> > @@ -820,7 +820,7 @@ void intel_dsc_dp_pps_write(struct intel_encoder
> > *encoder,
> > sizeof(dp_dsc_pps_sdp));
> > }
> >
> > -void intel_dsc_su_et_parameters_configure(struct intel_dsb *dsb,
> > struct intel_encoder *encoder,
> > +void intel_dsc_su_et_parameters_configure(struct intel_dsb *dsb,
> > const struct
> > intel_crtc_state *crtc_state, int su_lines)
> > {
> > struct intel_display *display =
> > to_intel_display(crtc_state);
> > diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.h
> > b/drivers/gpu/drm/i915/display/intel_vdsc.h
> > index 3372f8694054..08a3ffedb8ec 100644
> > --- a/drivers/gpu/drm/i915/display/intel_vdsc.h
> > +++ b/drivers/gpu/drm/i915/display/intel_vdsc.h
> > @@ -38,7 +38,7 @@ void intel_dsc_dsi_pps_write(struct intel_encoder
> > *encoder,
> > const struct intel_crtc_state
> > *crtc_state);
> > void intel_dsc_dp_pps_write(struct intel_encoder *encoder,
> > const struct intel_crtc_state
> > *crtc_state);
> > -void intel_dsc_su_et_parameters_configure(struct intel_dsb *dsb,
> > struct intel_encoder *encoder,
> > +void intel_dsc_su_et_parameters_configure(struct intel_dsb *dsb,
> > const struct
> > intel_crtc_state *crtc_state, int su_lines);
> > void intel_vdsc_state_dump(struct drm_printer *p, int indent,
> > const struct intel_crtc_state
> > *crtc_state);
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2026-10-09 6:54 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-23 11:59 [PATCH 0/5] drm/i915/psr: Panel Replay and PSR2 with the joiner Mika Kahola
2026-09-23 11:59 ` [PATCH] drm/i915/psr: Track all joined pipes for frontbuffer tracking Mika Kahola
2026-09-24 13:02 ` Hogander, Jouni
2026-09-25 7:17 ` Kahola, Mika
2026-09-23 11:59 ` [PATCH] drm/i915/psr: Take the selective fetch area from pipe_src Mika Kahola
2026-09-24 9:45 ` Hogander, Jouni
2026-09-25 7:00 ` Kahola, Mika
2026-09-23 11:59 ` [PATCH] drm/i915/psr: Merge the selective fetch area across joined pipes Mika Kahola
2026-10-07 10:25 ` Hogander, Jouni
2026-10-09 6:50 ` Kahola, Mika
2026-09-23 11:59 ` [PATCH] drm/i915/psr: Allow Panel Replay and PSR2 with joiner Mika Kahola
2026-09-25 11:06 ` Hogander, Jouni
2026-09-25 12:32 ` Kahola, Mika
2026-09-23 11:59 ` [PATCH] drm/i915/display: Allow forcing the joiner on eDP Mika Kahola
2026-09-25 11:08 ` Hogander, Jouni
2026-09-23 13:17 ` ✓ i915.CI.BAT: success for drm/i915/psr: Allow Panel Replay and PSR2 with joiner Patchwork
2026-09-24 7:34 ` ✗ i915.CI.Full: failure " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox