* [PATCH 0/6] Enable joiner cursor fast updates
@ 2026-08-21 4:47 Nemesa Garg
2026-08-21 4:47 ` [PATCH 1/6] drm/i915/cursor: Check joiner cursor commit status Nemesa Garg
` (7 more replies)
0 siblings, 8 replies; 22+ messages in thread
From: Nemesa Garg @ 2026-08-21 4:47 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: chaitanya.kumar.borah, Nemesa Garg
This series enables the cursor fast path for joiner mode
and adds the missing secondary-plane handling to keep updates
correct and synchronized.
Nemesa Garg (6):
drm/i915/cursor: Check joiner cursor commit status
drm/i915/cursor: Add helper to update cursor plane
drm/i915/cursor: Handle secondary cursor state
drm/i915/cursor: Program secondary cursor planes
drm/i915/cursor: Schedule cursor unpin per joined pipe
drm/i915/cursor: Allow joiner cursor fast path update
drivers/gpu/drm/i915/display/intel_cursor.c | 282 +++++++++++++++-----
1 file changed, 212 insertions(+), 70 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 22+ messages in thread* [PATCH 1/6] drm/i915/cursor: Check joiner cursor commit status 2026-08-21 4:47 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg @ 2026-08-21 4:47 ` Nemesa Garg 2026-08-27 9:45 ` Borah, Chaitanya Kumar 2026-08-21 4:47 ` [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane Nemesa Garg ` (6 subsequent siblings) 7 siblings, 1 reply; 22+ messages in thread From: Nemesa Garg @ 2026-08-21 4:47 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: chaitanya.kumar.borah, Nemesa Garg In joiner mode, secondary cursor commits may still be running even when the primary cursor commit is done. Walking the secondary pipes also requires holding the secondary planes modeset locks. Add intel_cursor_lock_joined_planes() to acquire modeset locks for all secondary cursor planes. Check all joined cursor commit status before taking the fast path. If any commit is still pending, fallback to slow path. v2: Use intel_crtc_joined_pipe_mask(). [Ville] v3: Lock secondary cursor CRTCs and planes. [sashiko] v4: Iterate the full joined mask uniformly in both helpers, no primary special-case. Move the parameter-change check above the lock acquisition so we don't grab secondary locks just to fall to slow path. [Chaitanya] v5: Remove extra header declerartion. [Chaitanya] Assisted-by: Claude:claude-sonnet-4.6 Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> --- drivers/gpu/drm/i915/display/intel_cursor.c | 68 ++++++++++++++++++--- 1 file changed, 59 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c index 0673f16f6fd0..bc1e58d5c4c5 100644 --- a/drivers/gpu/drm/i915/display/intel_cursor.c +++ b/drivers/gpu/drm/i915/display/intel_cursor.c @@ -796,6 +796,50 @@ void intel_cursor_unpin_work(struct kthread_work *base) intel_plane_destroy_state(&plane->base, &plane_state->uapi); } +static int intel_cursor_lock_joined_planes(struct intel_display *display, + const struct intel_crtc_state *crtc_state, + struct drm_modeset_acquire_ctx *ctx) +{ + struct intel_crtc *pipe_crtc; + int ret; + + for_each_intel_crtc_in_pipe_mask(display, pipe_crtc, + intel_crtc_joined_pipe_mask(crtc_state)) { + struct intel_plane *pipe_plane = + intel_crtc_get_plane(pipe_crtc, PLANE_CURSOR); + + ret = drm_modeset_lock(&pipe_crtc->base.mutex, ctx); + if (ret) + return ret; + + ret = drm_modeset_lock(&pipe_plane->base.mutex, ctx); + if (ret) + return ret; + } + return 0; +} + +static bool +intel_cursor_joiner_commits_idle(struct intel_display *display, + const struct intel_crtc_state *crtc_state) +{ + struct intel_crtc *pipe_crtc; + + for_each_intel_crtc_in_pipe_mask(display, pipe_crtc, + intel_crtc_joined_pipe_mask(crtc_state)) { + struct intel_plane *pipe_plane = + intel_crtc_get_plane(pipe_crtc, PLANE_CURSOR); + struct intel_plane_state *pipe_plane_state = + to_intel_plane_state(pipe_plane->base.state); + + if (pipe_plane_state->uapi.commit && + !try_wait_for_completion(&pipe_plane_state->uapi.commit->hw_done)) + return false; + } + + return true; +} + static int intel_legacy_cursor_update(struct drm_plane *_plane, struct drm_crtc *_crtc, @@ -833,15 +877,6 @@ intel_legacy_cursor_update(struct drm_plane *_plane, crtc_state->joiner_pipes) goto slow; - /* - * Don't do an async update if there is an outstanding commit modifying - * the plane. This prevents our async update's changes from getting - * overridden by a previous synchronous update's state. - */ - if (old_plane_state->uapi.commit && - !try_wait_for_completion(&old_plane_state->uapi.commit->hw_done)) - goto slow; - /* * If any parameters change that may affect watermarks, * take the slowpath. Only changing fb or position should be @@ -855,6 +890,21 @@ intel_legacy_cursor_update(struct drm_plane *_plane, !old_plane_state->uapi.fb != !fb) goto slow; + ret = intel_cursor_lock_joined_planes(display, crtc_state, ctx); + if (ret == -EDEADLK) + return ret; + if (ret) + goto slow; + + /* + * Don't do an async update if there is an outstanding commit modifying + * any of the joined cursor planes. This prevents our async update's + * changes from getting overridden by a previous synchronous update's + * state. + */ + if (!intel_cursor_joiner_commits_idle(display, crtc_state)) + goto slow; + new_plane_state = to_intel_plane_state(intel_plane_duplicate_state(&plane->base)); if (!new_plane_state) return -ENOMEM; -- 2.25.1 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH 1/6] drm/i915/cursor: Check joiner cursor commit status 2026-08-21 4:47 ` [PATCH 1/6] drm/i915/cursor: Check joiner cursor commit status Nemesa Garg @ 2026-08-27 9:45 ` Borah, Chaitanya Kumar 0 siblings, 0 replies; 22+ messages in thread From: Borah, Chaitanya Kumar @ 2026-08-27 9:45 UTC (permalink / raw) To: Nemesa Garg, intel-gfx, intel-xe On 8/21/2026 10:17 AM, Nemesa Garg wrote: > In joiner mode, secondary cursor commits may still be running > even when the primary cursor commit is done. Walking the secondary > pipes also requires holding the secondary planes modeset locks. > Add intel_cursor_lock_joined_planes() to acquire modeset locks > for all secondary cursor planes. Check all joined cursor commit > status before taking the fast path. If any commit is still pending, > fallback to slow path. > > v2: Use intel_crtc_joined_pipe_mask(). [Ville] > v3: Lock secondary cursor CRTCs and planes. [sashiko] > v4: Iterate the full joined mask uniformly in both helpers, no > primary special-case. > Move the parameter-change check above the lock acquisition so > we don't grab secondary locks just to fall to slow path. [Chaitanya] > v5: Remove extra header declerartion. [Chaitanya] declaration. Other than that, LGTM Reviewed-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com> P.S. Please add version prefix while sending out the patches. > > Assisted-by: Claude:claude-sonnet-4.6 > Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> > --- > drivers/gpu/drm/i915/display/intel_cursor.c | 68 ++++++++++++++++++--- > 1 file changed, 59 insertions(+), 9 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c > index 0673f16f6fd0..bc1e58d5c4c5 100644 > --- a/drivers/gpu/drm/i915/display/intel_cursor.c > +++ b/drivers/gpu/drm/i915/display/intel_cursor.c > @@ -796,6 +796,50 @@ void intel_cursor_unpin_work(struct kthread_work *base) > intel_plane_destroy_state(&plane->base, &plane_state->uapi); > } > > +static int intel_cursor_lock_joined_planes(struct intel_display *display, > + const struct intel_crtc_state *crtc_state, > + struct drm_modeset_acquire_ctx *ctx) > +{ > + struct intel_crtc *pipe_crtc; > + int ret; > + > + for_each_intel_crtc_in_pipe_mask(display, pipe_crtc, > + intel_crtc_joined_pipe_mask(crtc_state)) { > + struct intel_plane *pipe_plane = > + intel_crtc_get_plane(pipe_crtc, PLANE_CURSOR); > + > + ret = drm_modeset_lock(&pipe_crtc->base.mutex, ctx); > + if (ret) > + return ret; > + > + ret = drm_modeset_lock(&pipe_plane->base.mutex, ctx); > + if (ret) > + return ret; > + } > + return 0; > +} > + > +static bool > +intel_cursor_joiner_commits_idle(struct intel_display *display, > + const struct intel_crtc_state *crtc_state) > +{ > + struct intel_crtc *pipe_crtc; > + > + for_each_intel_crtc_in_pipe_mask(display, pipe_crtc, > + intel_crtc_joined_pipe_mask(crtc_state)) { > + struct intel_plane *pipe_plane = > + intel_crtc_get_plane(pipe_crtc, PLANE_CURSOR); > + struct intel_plane_state *pipe_plane_state = > + to_intel_plane_state(pipe_plane->base.state); > + > + if (pipe_plane_state->uapi.commit && > + !try_wait_for_completion(&pipe_plane_state->uapi.commit->hw_done)) > + return false; > + } > + > + return true; > +} > + > static int > intel_legacy_cursor_update(struct drm_plane *_plane, > struct drm_crtc *_crtc, > @@ -833,15 +877,6 @@ intel_legacy_cursor_update(struct drm_plane *_plane, > crtc_state->joiner_pipes) > goto slow; > > - /* > - * Don't do an async update if there is an outstanding commit modifying > - * the plane. This prevents our async update's changes from getting > - * overridden by a previous synchronous update's state. > - */ > - if (old_plane_state->uapi.commit && > - !try_wait_for_completion(&old_plane_state->uapi.commit->hw_done)) > - goto slow; > - > /* > * If any parameters change that may affect watermarks, > * take the slowpath. Only changing fb or position should be > @@ -855,6 +890,21 @@ intel_legacy_cursor_update(struct drm_plane *_plane, > !old_plane_state->uapi.fb != !fb) > goto slow; > > + ret = intel_cursor_lock_joined_planes(display, crtc_state, ctx); > + if (ret == -EDEADLK) > + return ret; > + if (ret) > + goto slow; > + > + /* > + * Don't do an async update if there is an outstanding commit modifying > + * any of the joined cursor planes. This prevents our async update's > + * changes from getting overridden by a previous synchronous update's > + * state. > + */ > + if (!intel_cursor_joiner_commits_idle(display, crtc_state)) > + goto slow; > + > new_plane_state = to_intel_plane_state(intel_plane_duplicate_state(&plane->base)); > if (!new_plane_state) > return -ENOMEM; ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane 2026-08-21 4:47 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg 2026-08-21 4:47 ` [PATCH 1/6] drm/i915/cursor: Check joiner cursor commit status Nemesa Garg @ 2026-08-21 4:47 ` Nemesa Garg 2026-08-27 9:45 ` Borah, Chaitanya Kumar 2026-08-21 4:47 ` [PATCH 3/6] drm/i915/cursor: Handle secondary cursor state Nemesa Garg ` (5 subsequent siblings) 7 siblings, 1 reply; 22+ messages in thread From: Nemesa Garg @ 2026-08-21 4:47 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: chaitanya.kumar.borah, Nemesa Garg Move cursor fast path plane state update into helper function. The target hw.crtc is passed as a parameter so a later patch can reuse the helper for joiner secondary pipes, where hw.crtc points at the secondary being programmed while uapi.crtc stays on the primary. v4: Drop uapi.crtc assignment from the helper. [Chaitanya] Assisted-by: Claude:claude-sonnet-4.6 Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> --- drivers/gpu/drm/i915/display/intel_cursor.c | 39 ++++++++++++++------- 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c index bc1e58d5c4c5..db4eaa74fc58 100644 --- a/drivers/gpu/drm/i915/display/intel_cursor.c +++ b/drivers/gpu/drm/i915/display/intel_cursor.c @@ -840,6 +840,29 @@ intel_cursor_joiner_commits_idle(struct intel_display *display, return true; } +static void +intel_cursor_fastpath_update_plane_state(struct intel_plane_state *plane_state, + struct drm_framebuffer *fb, + struct intel_crtc *hw_crtc, + int crtc_x, int crtc_y, + unsigned int crtc_w, unsigned int crtc_h, + u32 src_x, u32 src_y, + u32 src_w, u32 src_h) +{ + drm_atomic_set_fb_for_plane(&plane_state->uapi, fb); + + plane_state->uapi.src_x = src_x; + plane_state->uapi.src_y = src_y; + plane_state->uapi.src_w = src_w; + plane_state->uapi.src_h = src_h; + plane_state->uapi.crtc_x = crtc_x; + plane_state->uapi.crtc_y = crtc_y; + plane_state->uapi.crtc_w = crtc_w; + plane_state->uapi.crtc_h = crtc_h; + + intel_plane_copy_uapi_to_hw_state(NULL, plane_state, plane_state, hw_crtc); +} + static int intel_legacy_cursor_update(struct drm_plane *_plane, struct drm_crtc *_crtc, @@ -915,18 +938,10 @@ intel_legacy_cursor_update(struct drm_plane *_plane, goto out_free; } - drm_atomic_set_fb_for_plane(&new_plane_state->uapi, fb); - - new_plane_state->uapi.src_x = src_x; - new_plane_state->uapi.src_y = src_y; - new_plane_state->uapi.src_w = src_w; - new_plane_state->uapi.src_h = src_h; - new_plane_state->uapi.crtc_x = crtc_x; - new_plane_state->uapi.crtc_y = crtc_y; - new_plane_state->uapi.crtc_w = crtc_w; - new_plane_state->uapi.crtc_h = crtc_h; - - intel_plane_copy_uapi_to_hw_state(NULL, new_plane_state, new_plane_state, crtc); + intel_cursor_fastpath_update_plane_state(new_plane_state, fb, + crtc, + crtc_x, crtc_y, crtc_w, crtc_h, + src_x, src_y, src_w, src_h); ret = intel_plane_atomic_check_with_state(crtc_state, new_crtc_state, old_plane_state, new_plane_state); -- 2.25.1 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane 2026-08-21 4:47 ` [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane Nemesa Garg @ 2026-08-27 9:45 ` Borah, Chaitanya Kumar 0 siblings, 0 replies; 22+ messages in thread From: Borah, Chaitanya Kumar @ 2026-08-27 9:45 UTC (permalink / raw) To: Nemesa Garg, intel-gfx, intel-xe On 8/21/2026 10:17 AM, Nemesa Garg wrote: > Move cursor fast path plane state update into helper > function. The target hw.crtc is passed as a parameter > so a later patch can reuse the helper for joiner > secondary pipes, where hw.crtc points at the secondary > being programmed while uapi.crtc stays on the primary. > > v4: Drop uapi.crtc assignment from the helper. [Chaitanya] LGTM Reviewed-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com> > > Assisted-by: Claude:claude-sonnet-4.6 > Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> > --- > drivers/gpu/drm/i915/display/intel_cursor.c | 39 ++++++++++++++------- > 1 file changed, 27 insertions(+), 12 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c > index bc1e58d5c4c5..db4eaa74fc58 100644 > --- a/drivers/gpu/drm/i915/display/intel_cursor.c > +++ b/drivers/gpu/drm/i915/display/intel_cursor.c > @@ -840,6 +840,29 @@ intel_cursor_joiner_commits_idle(struct intel_display *display, > return true; > } > > +static void > +intel_cursor_fastpath_update_plane_state(struct intel_plane_state *plane_state, > + struct drm_framebuffer *fb, > + struct intel_crtc *hw_crtc, > + int crtc_x, int crtc_y, > + unsigned int crtc_w, unsigned int crtc_h, > + u32 src_x, u32 src_y, > + u32 src_w, u32 src_h) > +{ > + drm_atomic_set_fb_for_plane(&plane_state->uapi, fb); > + > + plane_state->uapi.src_x = src_x; > + plane_state->uapi.src_y = src_y; > + plane_state->uapi.src_w = src_w; > + plane_state->uapi.src_h = src_h; > + plane_state->uapi.crtc_x = crtc_x; > + plane_state->uapi.crtc_y = crtc_y; > + plane_state->uapi.crtc_w = crtc_w; > + plane_state->uapi.crtc_h = crtc_h; > + > + intel_plane_copy_uapi_to_hw_state(NULL, plane_state, plane_state, hw_crtc); > +} > + > static int > intel_legacy_cursor_update(struct drm_plane *_plane, > struct drm_crtc *_crtc, > @@ -915,18 +938,10 @@ intel_legacy_cursor_update(struct drm_plane *_plane, > goto out_free; > } > > - drm_atomic_set_fb_for_plane(&new_plane_state->uapi, fb); > - > - new_plane_state->uapi.src_x = src_x; > - new_plane_state->uapi.src_y = src_y; > - new_plane_state->uapi.src_w = src_w; > - new_plane_state->uapi.src_h = src_h; > - new_plane_state->uapi.crtc_x = crtc_x; > - new_plane_state->uapi.crtc_y = crtc_y; > - new_plane_state->uapi.crtc_w = crtc_w; > - new_plane_state->uapi.crtc_h = crtc_h; > - > - intel_plane_copy_uapi_to_hw_state(NULL, new_plane_state, new_plane_state, crtc); > + intel_cursor_fastpath_update_plane_state(new_plane_state, fb, > + crtc, > + crtc_x, crtc_y, crtc_w, crtc_h, > + src_x, src_y, src_w, src_h); > > ret = intel_plane_atomic_check_with_state(crtc_state, new_crtc_state, > old_plane_state, new_plane_state); ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 3/6] drm/i915/cursor: Handle secondary cursor state 2026-08-21 4:47 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg 2026-08-21 4:47 ` [PATCH 1/6] drm/i915/cursor: Check joiner cursor commit status Nemesa Garg 2026-08-21 4:47 ` [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane Nemesa Garg @ 2026-08-21 4:47 ` Nemesa Garg 2026-08-27 9:45 ` Borah, Chaitanya Kumar 2026-08-21 4:47 ` [PATCH 4/6] drm/i915/cursor: Program secondary cursor planes Nemesa Garg ` (4 subsequent siblings) 7 siblings, 1 reply; 22+ messages in thread From: Nemesa Garg @ 2026-08-21 4:47 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: chaitanya.kumar.borah, Nemesa Garg In joiner mode the fast path cursor update must handle secondary pipes. Iterate over all joined pipes uniformly to duplicate plane state, run check_plane(), pin the framebuffer and on success swap in the new plane state for each secondary cursor. Track every successfully prepared pipe in a joined_pipe_state[] array of struct intel_cursor_joiner_state so that later frontbuffer, unpin and error-cleanup paths treat primary and secondaries uniformly, and ensures the primary's pinned framebuffer is released if a secondary fails partway through. v2: Use intel_crtc_joined_pipe_mask(). [Ville] Add locking mechanism. [Ville] v3: Drop the per-pipe fastpath mutex array. [sashiko] v4: Fold parallel arrays into struct intel_cursor_joiner_state joined_pipe_state[]. unify primary/secondary in a single loop. use bare check_plane(). [Chaitanya] v5: Fix secondary uapi.crtc to each pipe's own crtc. Rename intel_cursor_pipe to intel_cursor_joiner_state and joined[] to joined_pipe_state[]. [Chaitanya] v6: Mirror primary uapi into secondary hw state, don't set uapi.crtc. [sashiko] Assisted-by: Claude:claude-sonnet-4.6 Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> --- drivers/gpu/drm/i915/display/intel_cursor.c | 153 ++++++++++++++------ 1 file changed, 105 insertions(+), 48 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c index db4eaa74fc58..9cb8b0a8537c 100644 --- a/drivers/gpu/drm/i915/display/intel_cursor.c +++ b/drivers/gpu/drm/i915/display/intel_cursor.c @@ -842,6 +842,7 @@ intel_cursor_joiner_commits_idle(struct intel_display *display, static void intel_cursor_fastpath_update_plane_state(struct intel_plane_state *plane_state, + const struct intel_plane_state *from_plane_state, struct drm_framebuffer *fb, struct intel_crtc *hw_crtc, int crtc_x, int crtc_y, @@ -849,20 +850,34 @@ intel_cursor_fastpath_update_plane_state(struct intel_plane_state *plane_state, u32 src_x, u32 src_y, u32 src_w, u32 src_h) { - drm_atomic_set_fb_for_plane(&plane_state->uapi, fb); - - plane_state->uapi.src_x = src_x; - plane_state->uapi.src_y = src_y; - plane_state->uapi.src_w = src_w; - plane_state->uapi.src_h = src_h; - plane_state->uapi.crtc_x = crtc_x; - plane_state->uapi.crtc_y = crtc_y; - plane_state->uapi.crtc_w = crtc_w; - plane_state->uapi.crtc_h = crtc_h; - - intel_plane_copy_uapi_to_hw_state(NULL, plane_state, plane_state, hw_crtc); + /* + * Only the primary owns its uapi state; a secondary mirrors it, so + * its uapi.crtc/fb stay NULL and hw.crtc comes from hw_crtc. + */ + if (plane_state == from_plane_state) { + drm_atomic_set_fb_for_plane(&plane_state->uapi, fb); + + plane_state->uapi.src_x = src_x; + plane_state->uapi.src_y = src_y; + plane_state->uapi.src_w = src_w; + plane_state->uapi.src_h = src_h; + plane_state->uapi.crtc_x = crtc_x; + plane_state->uapi.crtc_y = crtc_y; + plane_state->uapi.crtc_w = crtc_w; + plane_state->uapi.crtc_h = crtc_h; + } + + intel_plane_copy_uapi_to_hw_state(NULL, plane_state, from_plane_state, hw_crtc); } +struct intel_cursor_joiner_state { + struct intel_plane *plane; + struct intel_crtc *crtc; + struct intel_crtc_state *crtc_state; + struct intel_plane_state *old_plane_state; + struct intel_plane_state *new_plane_state; +}; + static int intel_legacy_cursor_update(struct drm_plane *_plane, struct drm_crtc *_crtc, @@ -878,11 +893,13 @@ intel_legacy_cursor_update(struct drm_plane *_plane, struct intel_display *display = to_intel_display(plane); struct intel_plane_state *old_plane_state = to_intel_plane_state(plane->base.state); - struct intel_plane_state *new_plane_state; + struct intel_plane_state *new_plane_state = NULL; struct intel_crtc_state *crtc_state = to_intel_crtc_state(crtc->base.state); - struct intel_crtc_state *new_crtc_state; struct intel_vblank_evade_ctx evade; + struct intel_cursor_joiner_state joined_pipe_state[I915_MAX_PIPES] = {}; + struct intel_crtc *pipe_crtc; + int num_pipes = 0; int ret; /* @@ -928,38 +945,69 @@ intel_legacy_cursor_update(struct drm_plane *_plane, if (!intel_cursor_joiner_commits_idle(display, crtc_state)) goto slow; - new_plane_state = to_intel_plane_state(intel_plane_duplicate_state(&plane->base)); - if (!new_plane_state) - return -ENOMEM; - - new_crtc_state = to_intel_crtc_state(intel_crtc_duplicate_state(&crtc->base)); - if (!new_crtc_state) { - ret = -ENOMEM; - goto out_free; - } + /* + * Iterate over all joined pipes (primary and secondary) uniformly. + * The joined pipe mask includes both the primary pipe and all + * secondary joiner pipes, allowing us to handle them all the same way. + */ + for_each_intel_crtc_in_pipe_mask(display, pipe_crtc, + intel_crtc_joined_pipe_mask(crtc_state)) { + struct intel_cursor_joiner_state *j = &joined_pipe_state[num_pipes]; + + j->plane = intel_crtc_get_plane(pipe_crtc, PLANE_CURSOR); + j->crtc = pipe_crtc; + j->crtc_state = to_intel_crtc_state(pipe_crtc->base.state); + j->old_plane_state = to_intel_plane_state(j->plane->base.state); + j->new_plane_state = + to_intel_plane_state(intel_plane_duplicate_state(&j->plane->base)); + + if (!j->new_plane_state) { + ret = -ENOMEM; + goto out_free; + } - intel_cursor_fastpath_update_plane_state(new_plane_state, fb, - crtc, - crtc_x, crtc_y, crtc_w, crtc_h, - src_x, src_y, src_w, src_h); + intel_cursor_fastpath_update_plane_state(j->new_plane_state, + joined_pipe_state[0].new_plane_state, + fb, pipe_crtc, + crtc_x, crtc_y, + crtc_w, crtc_h, + src_x, src_y, + src_w, src_h); + + ret = j->plane->check_plane(j->crtc_state, j->new_plane_state); + if (ret) { + intel_plane_destroy_state(&j->plane->base, + &j->new_plane_state->uapi); + goto out_free; + } - ret = intel_plane_atomic_check_with_state(crtc_state, new_crtc_state, - old_plane_state, new_plane_state); - if (ret) - goto out_free; + ret = intel_plane_pin_fb(j->new_plane_state, j->old_plane_state); + if (ret) { + intel_plane_destroy_state(&j->plane->base, + &j->new_plane_state->uapi); + goto out_free; + } - ret = intel_plane_pin_fb(new_plane_state, old_plane_state); - if (ret) - goto out_free; + num_pipes++; + } - intel_frontbuffer_flush(to_intel_frontbuffer(new_plane_state->hw.fb), + new_plane_state = joined_pipe_state[0].new_plane_state; + intel_frontbuffer_flush(to_intel_frontbuffer(joined_pipe_state[0].new_plane_state->hw.fb), ORIGIN_CURSOR_UPDATE); - intel_frontbuffer_track(to_intel_frontbuffer(old_plane_state->hw.fb), - to_intel_frontbuffer(new_plane_state->hw.fb), - plane->frontbuffer_bit); - /* Swap plane state */ - plane->base.state = &new_plane_state->uapi; + for (int i = 0; i < num_pipes; i++) + intel_frontbuffer_track(to_intel_frontbuffer(joined_pipe_state[i].old_plane_state->hw.fb), + to_intel_frontbuffer(joined_pipe_state[i].new_plane_state->hw.fb), + joined_pipe_state[i].plane->frontbuffer_bit); + + for (int i = 0; i < num_pipes; i++) { + joined_pipe_state[i].plane->base.state = &joined_pipe_state[i].new_plane_state->uapi; + + if (joined_pipe_state[i].new_plane_state->uapi.visible) + joined_pipe_state[i].crtc_state->active_planes |= BIT(PLANE_CURSOR); + else + joined_pipe_state[i].crtc_state->active_planes &= ~BIT(PLANE_CURSOR); + } /* * We cannot swap crtc_state as it may be in use by an atomic commit or @@ -971,7 +1019,6 @@ intel_legacy_cursor_update(struct drm_plane *_plane, * planes atomically. If the cursor was part of the atomic update then * we would have taken the slowpath. */ - crtc_state->active_planes = new_crtc_state->active_planes; intel_vblank_evade_init(crtc_state, crtc_state, &evade); @@ -1004,6 +1051,10 @@ intel_legacy_cursor_update(struct drm_plane *_plane, intel_psr_unlock(crtc_state); + /* + * Schedule or immediately unpin old framebuffers. + * Protect against concurrent access. + */ if (old_plane_state->ggtt_vma != new_plane_state->ggtt_vma) { drm_vblank_work_init(&old_plane_state->unpin_work, &crtc->base, intel_cursor_unpin_work); @@ -1012,18 +1063,24 @@ intel_legacy_cursor_update(struct drm_plane *_plane, drm_crtc_accurate_vblank_count(&crtc->base) + 1, false); - old_plane_state = NULL; + joined_pipe_state[0].old_plane_state = NULL; } else { intel_plane_unpin_fb(old_plane_state); } out_free: - if (new_crtc_state) - intel_crtc_destroy_state(&crtc->base, &new_crtc_state->uapi); - if (ret) - intel_plane_destroy_state(&plane->base, &new_plane_state->uapi); - else if (old_plane_state) - intel_plane_destroy_state(&plane->base, &old_plane_state->uapi); + if (ret) { + for (int i = 0; i < num_pipes; i++) { + intel_plane_unpin_fb(joined_pipe_state[i].new_plane_state); + intel_plane_destroy_state(&joined_pipe_state[i].plane->base, + &joined_pipe_state[i].new_plane_state->uapi); + } + } else { + for (int i = 0; i < num_pipes; i++) + if (joined_pipe_state[i].old_plane_state) + intel_plane_destroy_state(&joined_pipe_state[i].plane->base, + &joined_pipe_state[i].old_plane_state->uapi); + } return ret; slow: -- 2.25.1 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH 3/6] drm/i915/cursor: Handle secondary cursor state 2026-08-21 4:47 ` [PATCH 3/6] drm/i915/cursor: Handle secondary cursor state Nemesa Garg @ 2026-08-27 9:45 ` Borah, Chaitanya Kumar 0 siblings, 0 replies; 22+ messages in thread From: Borah, Chaitanya Kumar @ 2026-08-27 9:45 UTC (permalink / raw) To: Nemesa Garg, intel-gfx, intel-xe On 8/21/2026 10:17 AM, Nemesa Garg wrote: > In joiner mode the fast path cursor update must handle > secondary pipes. Iterate over all joined pipes uniformly > to duplicate plane state, run check_plane(), pin the > framebuffer and on success swap in the new plane state > for each secondary cursor. > > Track every successfully prepared pipe in a joined_pipe_state[] array > of struct intel_cursor_joiner_state so that later frontbuffer, unpin > and error-cleanup paths treat primary and secondaries uniformly, > and ensures the primary's pinned framebuffer is released if a > secondary fails partway through. > > v2: Use intel_crtc_joined_pipe_mask(). [Ville] > Add locking mechanism. [Ville] > v3: Drop the per-pipe fastpath mutex array. [sashiko] > v4: Fold parallel arrays into struct intel_cursor_joiner_state joined_pipe_state[]. > unify primary/secondary in a single loop. > use bare check_plane(). [Chaitanya] > v5: Fix secondary uapi.crtc to each pipe's own crtc. > Rename intel_cursor_pipe to intel_cursor_joiner_state and > joined[] to joined_pipe_state[]. [Chaitanya] > v6: Mirror primary uapi into secondary hw state, don't set uapi.crtc. [sashiko] > LGTM Reviewed-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com> > Assisted-by: Claude:claude-sonnet-4.6 > Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> > --- > drivers/gpu/drm/i915/display/intel_cursor.c | 153 ++++++++++++++------ > 1 file changed, 105 insertions(+), 48 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c > index db4eaa74fc58..9cb8b0a8537c 100644 > --- a/drivers/gpu/drm/i915/display/intel_cursor.c > +++ b/drivers/gpu/drm/i915/display/intel_cursor.c > @@ -842,6 +842,7 @@ intel_cursor_joiner_commits_idle(struct intel_display *display, > > static void > intel_cursor_fastpath_update_plane_state(struct intel_plane_state *plane_state, > + const struct intel_plane_state *from_plane_state, > struct drm_framebuffer *fb, > struct intel_crtc *hw_crtc, > int crtc_x, int crtc_y, > @@ -849,20 +850,34 @@ intel_cursor_fastpath_update_plane_state(struct intel_plane_state *plane_state, > u32 src_x, u32 src_y, > u32 src_w, u32 src_h) > { > - drm_atomic_set_fb_for_plane(&plane_state->uapi, fb); > - > - plane_state->uapi.src_x = src_x; > - plane_state->uapi.src_y = src_y; > - plane_state->uapi.src_w = src_w; > - plane_state->uapi.src_h = src_h; > - plane_state->uapi.crtc_x = crtc_x; > - plane_state->uapi.crtc_y = crtc_y; > - plane_state->uapi.crtc_w = crtc_w; > - plane_state->uapi.crtc_h = crtc_h; > - > - intel_plane_copy_uapi_to_hw_state(NULL, plane_state, plane_state, hw_crtc); > + /* > + * Only the primary owns its uapi state; a secondary mirrors it, so > + * its uapi.crtc/fb stay NULL and hw.crtc comes from hw_crtc. > + */ > + if (plane_state == from_plane_state) { > + drm_atomic_set_fb_for_plane(&plane_state->uapi, fb); > + > + plane_state->uapi.src_x = src_x; > + plane_state->uapi.src_y = src_y; > + plane_state->uapi.src_w = src_w; > + plane_state->uapi.src_h = src_h; > + plane_state->uapi.crtc_x = crtc_x; > + plane_state->uapi.crtc_y = crtc_y; > + plane_state->uapi.crtc_w = crtc_w; > + plane_state->uapi.crtc_h = crtc_h; > + } > + > + intel_plane_copy_uapi_to_hw_state(NULL, plane_state, from_plane_state, hw_crtc); > } > > +struct intel_cursor_joiner_state { > + struct intel_plane *plane; > + struct intel_crtc *crtc; > + struct intel_crtc_state *crtc_state; > + struct intel_plane_state *old_plane_state; > + struct intel_plane_state *new_plane_state; > +}; > + > static int > intel_legacy_cursor_update(struct drm_plane *_plane, > struct drm_crtc *_crtc, > @@ -878,11 +893,13 @@ intel_legacy_cursor_update(struct drm_plane *_plane, > struct intel_display *display = to_intel_display(plane); > struct intel_plane_state *old_plane_state = > to_intel_plane_state(plane->base.state); > - struct intel_plane_state *new_plane_state; > + struct intel_plane_state *new_plane_state = NULL; > struct intel_crtc_state *crtc_state = > to_intel_crtc_state(crtc->base.state); > - struct intel_crtc_state *new_crtc_state; > struct intel_vblank_evade_ctx evade; > + struct intel_cursor_joiner_state joined_pipe_state[I915_MAX_PIPES] = {}; > + struct intel_crtc *pipe_crtc; > + int num_pipes = 0; > int ret; > > /* > @@ -928,38 +945,69 @@ intel_legacy_cursor_update(struct drm_plane *_plane, > if (!intel_cursor_joiner_commits_idle(display, crtc_state)) > goto slow; > > - new_plane_state = to_intel_plane_state(intel_plane_duplicate_state(&plane->base)); > - if (!new_plane_state) > - return -ENOMEM; > - > - new_crtc_state = to_intel_crtc_state(intel_crtc_duplicate_state(&crtc->base)); > - if (!new_crtc_state) { > - ret = -ENOMEM; > - goto out_free; > - } > + /* > + * Iterate over all joined pipes (primary and secondary) uniformly. > + * The joined pipe mask includes both the primary pipe and all > + * secondary joiner pipes, allowing us to handle them all the same way. > + */ > + for_each_intel_crtc_in_pipe_mask(display, pipe_crtc, > + intel_crtc_joined_pipe_mask(crtc_state)) { > + struct intel_cursor_joiner_state *j = &joined_pipe_state[num_pipes]; > + > + j->plane = intel_crtc_get_plane(pipe_crtc, PLANE_CURSOR); > + j->crtc = pipe_crtc; > + j->crtc_state = to_intel_crtc_state(pipe_crtc->base.state); > + j->old_plane_state = to_intel_plane_state(j->plane->base.state); > + j->new_plane_state = > + to_intel_plane_state(intel_plane_duplicate_state(&j->plane->base)); > + > + if (!j->new_plane_state) { > + ret = -ENOMEM; > + goto out_free; > + } > > - intel_cursor_fastpath_update_plane_state(new_plane_state, fb, > - crtc, > - crtc_x, crtc_y, crtc_w, crtc_h, > - src_x, src_y, src_w, src_h); > + intel_cursor_fastpath_update_plane_state(j->new_plane_state, > + joined_pipe_state[0].new_plane_state, > + fb, pipe_crtc, > + crtc_x, crtc_y, > + crtc_w, crtc_h, > + src_x, src_y, > + src_w, src_h); > + > + ret = j->plane->check_plane(j->crtc_state, j->new_plane_state); > + if (ret) { > + intel_plane_destroy_state(&j->plane->base, > + &j->new_plane_state->uapi); > + goto out_free; > + } > > - ret = intel_plane_atomic_check_with_state(crtc_state, new_crtc_state, > - old_plane_state, new_plane_state); > - if (ret) > - goto out_free; > + ret = intel_plane_pin_fb(j->new_plane_state, j->old_plane_state); > + if (ret) { > + intel_plane_destroy_state(&j->plane->base, > + &j->new_plane_state->uapi); > + goto out_free; > + } > > - ret = intel_plane_pin_fb(new_plane_state, old_plane_state); > - if (ret) > - goto out_free; > + num_pipes++; > + } > > - intel_frontbuffer_flush(to_intel_frontbuffer(new_plane_state->hw.fb), > + new_plane_state = joined_pipe_state[0].new_plane_state; > + intel_frontbuffer_flush(to_intel_frontbuffer(joined_pipe_state[0].new_plane_state->hw.fb), > ORIGIN_CURSOR_UPDATE); > - intel_frontbuffer_track(to_intel_frontbuffer(old_plane_state->hw.fb), > - to_intel_frontbuffer(new_plane_state->hw.fb), > - plane->frontbuffer_bit); > > - /* Swap plane state */ > - plane->base.state = &new_plane_state->uapi; > + for (int i = 0; i < num_pipes; i++) > + intel_frontbuffer_track(to_intel_frontbuffer(joined_pipe_state[i].old_plane_state->hw.fb), > + to_intel_frontbuffer(joined_pipe_state[i].new_plane_state->hw.fb), > + joined_pipe_state[i].plane->frontbuffer_bit); > + > + for (int i = 0; i < num_pipes; i++) { > + joined_pipe_state[i].plane->base.state = &joined_pipe_state[i].new_plane_state->uapi; > + > + if (joined_pipe_state[i].new_plane_state->uapi.visible) > + joined_pipe_state[i].crtc_state->active_planes |= BIT(PLANE_CURSOR); > + else > + joined_pipe_state[i].crtc_state->active_planes &= ~BIT(PLANE_CURSOR); > + } > > /* > * We cannot swap crtc_state as it may be in use by an atomic commit or > @@ -971,7 +1019,6 @@ intel_legacy_cursor_update(struct drm_plane *_plane, > * planes atomically. If the cursor was part of the atomic update then > * we would have taken the slowpath. > */ > - crtc_state->active_planes = new_crtc_state->active_planes; > > intel_vblank_evade_init(crtc_state, crtc_state, &evade); > > @@ -1004,6 +1051,10 @@ intel_legacy_cursor_update(struct drm_plane *_plane, > > intel_psr_unlock(crtc_state); > > + /* > + * Schedule or immediately unpin old framebuffers. > + * Protect against concurrent access. > + */ > if (old_plane_state->ggtt_vma != new_plane_state->ggtt_vma) { > drm_vblank_work_init(&old_plane_state->unpin_work, &crtc->base, > intel_cursor_unpin_work); > @@ -1012,18 +1063,24 @@ intel_legacy_cursor_update(struct drm_plane *_plane, > drm_crtc_accurate_vblank_count(&crtc->base) + 1, > false); > > - old_plane_state = NULL; > + joined_pipe_state[0].old_plane_state = NULL; > } else { > intel_plane_unpin_fb(old_plane_state); > } > > out_free: > - if (new_crtc_state) > - intel_crtc_destroy_state(&crtc->base, &new_crtc_state->uapi); > - if (ret) > - intel_plane_destroy_state(&plane->base, &new_plane_state->uapi); > - else if (old_plane_state) > - intel_plane_destroy_state(&plane->base, &old_plane_state->uapi); > + if (ret) { > + for (int i = 0; i < num_pipes; i++) { > + intel_plane_unpin_fb(joined_pipe_state[i].new_plane_state); > + intel_plane_destroy_state(&joined_pipe_state[i].plane->base, > + &joined_pipe_state[i].new_plane_state->uapi); > + } > + } else { > + for (int i = 0; i < num_pipes; i++) > + if (joined_pipe_state[i].old_plane_state) > + intel_plane_destroy_state(&joined_pipe_state[i].plane->base, > + &joined_pipe_state[i].old_plane_state->uapi); > + } > return ret; > > slow: ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 4/6] drm/i915/cursor: Program secondary cursor planes 2026-08-21 4:47 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg ` (2 preceding siblings ...) 2026-08-21 4:47 ` [PATCH 3/6] drm/i915/cursor: Handle secondary cursor state Nemesa Garg @ 2026-08-21 4:47 ` Nemesa Garg 2026-08-27 9:46 ` Borah, Chaitanya Kumar 2026-08-21 4:47 ` [PATCH 5/6] drm/i915/cursor: Schedule cursor unpin per joined pipe Nemesa Garg ` (3 subsequent siblings) 7 siblings, 1 reply; 22+ messages in thread From: Nemesa Garg @ 2026-08-21 4:47 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: chaitanya.kumar.borah, Nemesa Garg Iterate over all joined pipes when arming/disabling the cursor plane so secondary pipes are updated together with the primary. The pin, check and state duplication for secondary pipes was already prepared in the previous commit; this converts the update_arm pass to a loop over the joined_pipe_state[] array. Because the whole loop runs inside a single primary vblank-evade, sample intel_crtc_get_vblank_counter() per pipe around each arm and emit a drm_err() if the counter ticks during that pipe's own programming. v2: Check primary and secondary pipe together. [Ville] v3: Use struct intel_cursor_joiner_state. [Ville] v4: Add per-pipe vblank straddle detection around the arm loop. [Chaitanya] v5: Move straddle check outside the loop to cover all pipes together. Sample vblank counter from primary pipe only. Move drm_err() after local_irq_enable(). [Chaitnaya] Assisted-by: Claude:claude-sonnet-4.6 Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> --- drivers/gpu/drm/i915/display/intel_cursor.c | 33 +++++++++++++++++---- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c index 9cb8b0a8537c..f5625dabc8f6 100644 --- a/drivers/gpu/drm/i915/display/intel_cursor.c +++ b/drivers/gpu/drm/i915/display/intel_cursor.c @@ -13,6 +13,7 @@ #include <drm/drm_vblank.h> #include "intel_atomic.h" +#include "intel_crtc.h" #include "intel_cursor.h" #include "intel_cursor_regs.h" #include "intel_de.h" @@ -900,6 +901,7 @@ intel_legacy_cursor_update(struct drm_plane *_plane, struct intel_cursor_joiner_state joined_pipe_state[I915_MAX_PIPES] = {}; struct intel_crtc *pipe_crtc; int num_pipes = 0; + u32 start_vbl_count, end_vbl_count; int ret; /* @@ -1040,15 +1042,36 @@ intel_legacy_cursor_update(struct drm_plane *_plane, local_irq_disable(); } - if (new_plane_state->uapi.visible) { - intel_plane_update_noarm(NULL, plane, crtc_state, new_plane_state); - intel_plane_update_arm(NULL, plane, crtc_state, new_plane_state); - } else { - intel_plane_disable_arm(NULL, plane, crtc_state); + /* + * Joiner pipes are vblank-synchronized, so sampling only the primary + * pipe is sufficient to detect a straddle across all joined pipes. + * The vblank evasion above also operates on the primary pipe only. + */ + start_vbl_count = intel_crtc_get_vblank_counter(joined_pipe_state[0].crtc); + + for (int i = 0; i < num_pipes; i++) { + if (joined_pipe_state[i].new_plane_state->uapi.visible) { + intel_plane_update_noarm(NULL, joined_pipe_state[i].plane, + joined_pipe_state[i].crtc_state, + joined_pipe_state[i].new_plane_state); + intel_plane_update_arm(NULL, joined_pipe_state[i].plane, + joined_pipe_state[i].crtc_state, + joined_pipe_state[i].new_plane_state); + } else { + intel_plane_disable_arm(NULL, joined_pipe_state[i].plane, joined_pipe_state[i].crtc_state); + } } + end_vbl_count = intel_crtc_get_vblank_counter(joined_pipe_state[0].crtc); + local_irq_enable(); + if (start_vbl_count != end_vbl_count) + drm_err(display->drm, + "Atomic update failure on pipe %c (start=%u end=%u)\n", + pipe_name(joined_pipe_state[0].crtc->pipe), + start_vbl_count, end_vbl_count); + intel_psr_unlock(crtc_state); /* -- 2.25.1 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH 4/6] drm/i915/cursor: Program secondary cursor planes 2026-08-21 4:47 ` [PATCH 4/6] drm/i915/cursor: Program secondary cursor planes Nemesa Garg @ 2026-08-27 9:46 ` Borah, Chaitanya Kumar 0 siblings, 0 replies; 22+ messages in thread From: Borah, Chaitanya Kumar @ 2026-08-27 9:46 UTC (permalink / raw) To: Nemesa Garg, intel-gfx, intel-xe On 8/21/2026 10:17 AM, Nemesa Garg wrote: > Iterate over all joined pipes when arming/disabling the cursor plane so > secondary pipes are updated together with the primary. The pin, check > and state duplication for secondary pipes was already prepared in the > previous commit; this converts the update_arm pass to a loop over the > joined_pipe_state[] array. > > Because the whole loop runs inside a single primary vblank-evade, > sample intel_crtc_get_vblank_counter() per pipe around each arm and > emit a drm_err() if the counter ticks during that pipe's own > programming. > > v2: Check primary and secondary pipe together. [Ville] > v3: Use struct intel_cursor_joiner_state. [Ville] > v4: Add per-pipe vblank straddle detection around the arm loop. [Chaitanya] > v5: Move straddle check outside the loop to cover all pipes together. > Sample vblank counter from primary pipe only. > Move drm_err() after local_irq_enable(). [Chaitnaya] > LGTM, except my name ;) Reviewed-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com> > Assisted-by: Claude:claude-sonnet-4.6 > Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> > --- > drivers/gpu/drm/i915/display/intel_cursor.c | 33 +++++++++++++++++---- > 1 file changed, 28 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c > index 9cb8b0a8537c..f5625dabc8f6 100644 > --- a/drivers/gpu/drm/i915/display/intel_cursor.c > +++ b/drivers/gpu/drm/i915/display/intel_cursor.c > @@ -13,6 +13,7 @@ > #include <drm/drm_vblank.h> > > #include "intel_atomic.h" > +#include "intel_crtc.h" > #include "intel_cursor.h" > #include "intel_cursor_regs.h" > #include "intel_de.h" > @@ -900,6 +901,7 @@ intel_legacy_cursor_update(struct drm_plane *_plane, > struct intel_cursor_joiner_state joined_pipe_state[I915_MAX_PIPES] = {}; > struct intel_crtc *pipe_crtc; > int num_pipes = 0; > + u32 start_vbl_count, end_vbl_count; > int ret; > > /* > @@ -1040,15 +1042,36 @@ intel_legacy_cursor_update(struct drm_plane *_plane, > local_irq_disable(); > } > > - if (new_plane_state->uapi.visible) { > - intel_plane_update_noarm(NULL, plane, crtc_state, new_plane_state); > - intel_plane_update_arm(NULL, plane, crtc_state, new_plane_state); > - } else { > - intel_plane_disable_arm(NULL, plane, crtc_state); > + /* > + * Joiner pipes are vblank-synchronized, so sampling only the primary > + * pipe is sufficient to detect a straddle across all joined pipes. > + * The vblank evasion above also operates on the primary pipe only. > + */ > + start_vbl_count = intel_crtc_get_vblank_counter(joined_pipe_state[0].crtc); > + > + for (int i = 0; i < num_pipes; i++) { > + if (joined_pipe_state[i].new_plane_state->uapi.visible) { > + intel_plane_update_noarm(NULL, joined_pipe_state[i].plane, > + joined_pipe_state[i].crtc_state, > + joined_pipe_state[i].new_plane_state); > + intel_plane_update_arm(NULL, joined_pipe_state[i].plane, > + joined_pipe_state[i].crtc_state, > + joined_pipe_state[i].new_plane_state); > + } else { > + intel_plane_disable_arm(NULL, joined_pipe_state[i].plane, joined_pipe_state[i].crtc_state); > + } > } > > + end_vbl_count = intel_crtc_get_vblank_counter(joined_pipe_state[0].crtc); > + > local_irq_enable(); > > + if (start_vbl_count != end_vbl_count) > + drm_err(display->drm, > + "Atomic update failure on pipe %c (start=%u end=%u)\n", > + pipe_name(joined_pipe_state[0].crtc->pipe), > + start_vbl_count, end_vbl_count); > + > intel_psr_unlock(crtc_state); > > /* ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 5/6] drm/i915/cursor: Schedule cursor unpin per joined pipe 2026-08-21 4:47 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg ` (3 preceding siblings ...) 2026-08-21 4:47 ` [PATCH 4/6] drm/i915/cursor: Program secondary cursor planes Nemesa Garg @ 2026-08-21 4:47 ` Nemesa Garg 2026-08-27 9:46 ` Borah, Chaitanya Kumar 2026-08-21 4:47 ` [PATCH 6/6] drm/i915/cursor: Allow joiner cursor fast path update Nemesa Garg ` (2 subsequent siblings) 7 siblings, 1 reply; 22+ messages in thread From: Nemesa Garg @ 2026-08-21 4:47 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: chaitanya.kumar.borah, Nemesa Garg Convert the primary-only vblank unpin block into a loop over the joined_pipe_state[] array so each pipe's old cursor framebuffer is scheduled for unpin (or unpinned inline when unchanged) independently. All unpin work is armed on the primary crtc's vblank (&crtc->base), consistent with the single primary vblank evasion used above. v4: Split from the update_arm loop conversion. [Chaitanya] Assisted-by: Claude:claude-sonnet-4.6 Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> --- drivers/gpu/drm/i915/display/intel_cursor.c | 26 ++++++++++----------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c index f5625dabc8f6..dedb6f87359c 100644 --- a/drivers/gpu/drm/i915/display/intel_cursor.c +++ b/drivers/gpu/drm/i915/display/intel_cursor.c @@ -894,7 +894,6 @@ intel_legacy_cursor_update(struct drm_plane *_plane, struct intel_display *display = to_intel_display(plane); struct intel_plane_state *old_plane_state = to_intel_plane_state(plane->base.state); - struct intel_plane_state *new_plane_state = NULL; struct intel_crtc_state *crtc_state = to_intel_crtc_state(crtc->base.state); struct intel_vblank_evade_ctx evade; @@ -993,7 +992,6 @@ intel_legacy_cursor_update(struct drm_plane *_plane, num_pipes++; } - new_plane_state = joined_pipe_state[0].new_plane_state; intel_frontbuffer_flush(to_intel_frontbuffer(joined_pipe_state[0].new_plane_state->hw.fb), ORIGIN_CURSOR_UPDATE); @@ -1078,17 +1076,19 @@ intel_legacy_cursor_update(struct drm_plane *_plane, * Schedule or immediately unpin old framebuffers. * Protect against concurrent access. */ - if (old_plane_state->ggtt_vma != new_plane_state->ggtt_vma) { - drm_vblank_work_init(&old_plane_state->unpin_work, &crtc->base, - intel_cursor_unpin_work); - - drm_vblank_work_schedule(&old_plane_state->unpin_work, - drm_crtc_accurate_vblank_count(&crtc->base) + 1, - false); - - joined_pipe_state[0].old_plane_state = NULL; - } else { - intel_plane_unpin_fb(old_plane_state); + for (int i = 0; i < num_pipes; i++) { + struct intel_plane_state *old = joined_pipe_state[i].old_plane_state; + + if (old->ggtt_vma != joined_pipe_state[i].new_plane_state->ggtt_vma) { + drm_vblank_work_init(&old->unpin_work, &crtc->base, + intel_cursor_unpin_work); + drm_vblank_work_schedule(&old->unpin_work, + drm_crtc_accurate_vblank_count(&crtc->base) + 1, + false); + joined_pipe_state[i].old_plane_state = NULL; + } else { + intel_plane_unpin_fb(old); + } } out_free: -- 2.25.1 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH 5/6] drm/i915/cursor: Schedule cursor unpin per joined pipe 2026-08-21 4:47 ` [PATCH 5/6] drm/i915/cursor: Schedule cursor unpin per joined pipe Nemesa Garg @ 2026-08-27 9:46 ` Borah, Chaitanya Kumar 0 siblings, 0 replies; 22+ messages in thread From: Borah, Chaitanya Kumar @ 2026-08-27 9:46 UTC (permalink / raw) To: Nemesa Garg, intel-gfx, intel-xe On 8/21/2026 10:17 AM, Nemesa Garg wrote: > Convert the primary-only vblank unpin block into a loop over the > joined_pipe_state[] array so each pipe's old cursor framebuffer is scheduled for > unpin (or unpinned inline when unchanged) independently. All unpin > work is armed on the primary crtc's vblank (&crtc->base), consistent > with the single primary vblank evasion used above. > > v4: Split from the update_arm loop conversion. [Chaitanya] > If it is possible to do so cleanly, I would prefer to squash this change with patch 3 for the sake of completion. Not a blocker though. LGTM Reviewed-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com> > Assisted-by: Claude:claude-sonnet-4.6 > Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> > --- > drivers/gpu/drm/i915/display/intel_cursor.c | 26 ++++++++++----------- > 1 file changed, 13 insertions(+), 13 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c > index f5625dabc8f6..dedb6f87359c 100644 > --- a/drivers/gpu/drm/i915/display/intel_cursor.c > +++ b/drivers/gpu/drm/i915/display/intel_cursor.c > @@ -894,7 +894,6 @@ intel_legacy_cursor_update(struct drm_plane *_plane, > struct intel_display *display = to_intel_display(plane); > struct intel_plane_state *old_plane_state = > to_intel_plane_state(plane->base.state); > - struct intel_plane_state *new_plane_state = NULL; > struct intel_crtc_state *crtc_state = > to_intel_crtc_state(crtc->base.state); > struct intel_vblank_evade_ctx evade; > @@ -993,7 +992,6 @@ intel_legacy_cursor_update(struct drm_plane *_plane, > num_pipes++; > } > > - new_plane_state = joined_pipe_state[0].new_plane_state; > intel_frontbuffer_flush(to_intel_frontbuffer(joined_pipe_state[0].new_plane_state->hw.fb), > ORIGIN_CURSOR_UPDATE); > > @@ -1078,17 +1076,19 @@ intel_legacy_cursor_update(struct drm_plane *_plane, > * Schedule or immediately unpin old framebuffers. > * Protect against concurrent access. > */ > - if (old_plane_state->ggtt_vma != new_plane_state->ggtt_vma) { > - drm_vblank_work_init(&old_plane_state->unpin_work, &crtc->base, > - intel_cursor_unpin_work); > - > - drm_vblank_work_schedule(&old_plane_state->unpin_work, > - drm_crtc_accurate_vblank_count(&crtc->base) + 1, > - false); > - > - joined_pipe_state[0].old_plane_state = NULL; > - } else { > - intel_plane_unpin_fb(old_plane_state); > + for (int i = 0; i < num_pipes; i++) { > + struct intel_plane_state *old = joined_pipe_state[i].old_plane_state; > + > + if (old->ggtt_vma != joined_pipe_state[i].new_plane_state->ggtt_vma) { > + drm_vblank_work_init(&old->unpin_work, &crtc->base, > + intel_cursor_unpin_work); > + drm_vblank_work_schedule(&old->unpin_work, > + drm_crtc_accurate_vblank_count(&crtc->base) + 1, > + false); > + joined_pipe_state[i].old_plane_state = NULL; > + } else { > + intel_plane_unpin_fb(old); > + } > } > > out_free: ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 6/6] drm/i915/cursor: Allow joiner cursor fast path update 2026-08-21 4:47 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg ` (4 preceding siblings ...) 2026-08-21 4:47 ` [PATCH 5/6] drm/i915/cursor: Schedule cursor unpin per joined pipe Nemesa Garg @ 2026-08-21 4:47 ` Nemesa Garg 2026-08-27 9:46 ` Borah, Chaitanya Kumar 2026-08-21 5:49 ` ✓ i915.CI.BAT: success for Enable joiner cursor fast updates (rev6) Patchwork 2026-08-21 9:05 ` ✗ i915.CI.Full: failure " Patchwork 7 siblings, 1 reply; 22+ messages in thread From: Nemesa Garg @ 2026-08-21 4:47 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: chaitanya.kumar.borah, Nemesa Garg The legacy cursor path forced all joiner updates to the slow path by checking joiner_pipes. Drop the condition so that joiner cursor updates can use the fast path. v4: Trimmed to only the joiner_pipes gate drop. [Chaitanya] Assisted-by: Claude:claude-sonnet-4.6 Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> --- drivers/gpu/drm/i915/display/intel_cursor.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c index dedb6f87359c..fbf0c9e143a1 100644 --- a/drivers/gpu/drm/i915/display/intel_cursor.c +++ b/drivers/gpu/drm/i915/display/intel_cursor.c @@ -909,13 +909,10 @@ intel_legacy_cursor_update(struct drm_plane *_plane, * PSR2 selective fetch also requires the slow path as * PSR2 plane and transcoder registers can only be updated during * vblank. - * - * FIXME joiner fastpath would be good */ if (!crtc_state->hw.active || intel_crtc_needs_modeset(crtc_state) || - intel_crtc_needs_fastset(crtc_state) || - crtc_state->joiner_pipes) + intel_crtc_needs_fastset(crtc_state)) goto slow; /* -- 2.25.1 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH 6/6] drm/i915/cursor: Allow joiner cursor fast path update 2026-08-21 4:47 ` [PATCH 6/6] drm/i915/cursor: Allow joiner cursor fast path update Nemesa Garg @ 2026-08-27 9:46 ` Borah, Chaitanya Kumar 0 siblings, 0 replies; 22+ messages in thread From: Borah, Chaitanya Kumar @ 2026-08-27 9:46 UTC (permalink / raw) To: Nemesa Garg, intel-gfx, intel-xe On 8/21/2026 10:17 AM, Nemesa Garg wrote: > The legacy cursor path forced all joiner updates to the > slow path by checking joiner_pipes. > Drop the condition so that joiner cursor updates can use > the fast path. > > v4: Trimmed to only the joiner_pipes gate drop. [Chaitanya] > LGTM Reviewed-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com> > Assisted-by: Claude:claude-sonnet-4.6 > Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> > --- > drivers/gpu/drm/i915/display/intel_cursor.c | 5 +---- > 1 file changed, 1 insertion(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c > index dedb6f87359c..fbf0c9e143a1 100644 > --- a/drivers/gpu/drm/i915/display/intel_cursor.c > +++ b/drivers/gpu/drm/i915/display/intel_cursor.c > @@ -909,13 +909,10 @@ intel_legacy_cursor_update(struct drm_plane *_plane, > * PSR2 selective fetch also requires the slow path as > * PSR2 plane and transcoder registers can only be updated during > * vblank. > - * > - * FIXME joiner fastpath would be good > */ > if (!crtc_state->hw.active || > intel_crtc_needs_modeset(crtc_state) || > - intel_crtc_needs_fastset(crtc_state) || > - crtc_state->joiner_pipes) > + intel_crtc_needs_fastset(crtc_state)) > goto slow; > > /* ^ permalink raw reply [flat|nested] 22+ messages in thread
* ✓ i915.CI.BAT: success for Enable joiner cursor fast updates (rev6) 2026-08-21 4:47 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg ` (5 preceding siblings ...) 2026-08-21 4:47 ` [PATCH 6/6] drm/i915/cursor: Allow joiner cursor fast path update Nemesa Garg @ 2026-08-21 5:49 ` Patchwork 2026-08-21 9:05 ` ✗ i915.CI.Full: failure " Patchwork 7 siblings, 0 replies; 22+ messages in thread From: Patchwork @ 2026-08-21 5:49 UTC (permalink / raw) To: Nemesa Garg; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 1876 bytes --] == Series Details == Series: Enable joiner cursor fast updates (rev6) URL : https://patchwork.freedesktop.org/series/165273/ State : success == Summary == CI Bug Log - changes from CI_DRM_19027 -> Patchwork_165273v6 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/index.html Participating hosts (40 -> 38) ------------------------------ Missing (2): bat-dg2-13 fi-snb-2520m Known issues ------------ Here are the changes found in Patchwork_165273v6 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@core_debugfs@read-all-entries: - bat-adlp-6: [PASS][1] -> [DMESG-WARN][2] ([i915#15673]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/bat-adlp-6/igt@core_debugfs@read-all-entries.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/bat-adlp-6/igt@core_debugfs@read-all-entries.html #### Possible fixes #### * igt@core_auth@basic-auth: - bat-adlp-6: [DMESG-WARN][3] ([i915#15673]) -> [PASS][4] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/bat-adlp-6/igt@core_auth@basic-auth.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/bat-adlp-6/igt@core_auth@basic-auth.html [i915#15673]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15673 Build changes ------------- * Linux: CI_DRM_19027 -> Patchwork_165273v6 CI-20190529: 20190529 CI_DRM_19027: 75140c4ee9ad250b2524ff5bfffd7f9fe4bb6012 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_9066: 9066 Patchwork_165273v6: 75140c4ee9ad250b2524ff5bfffd7f9fe4bb6012 @ git://anongit.freedesktop.org/gfx-ci/linux == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/index.html [-- Attachment #2: Type: text/html, Size: 2564 bytes --] ^ permalink raw reply [flat|nested] 22+ messages in thread
* ✗ i915.CI.Full: failure for Enable joiner cursor fast updates (rev6) 2026-08-21 4:47 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg ` (6 preceding siblings ...) 2026-08-21 5:49 ` ✓ i915.CI.BAT: success for Enable joiner cursor fast updates (rev6) Patchwork @ 2026-08-21 9:05 ` Patchwork 7 siblings, 0 replies; 22+ messages in thread From: Patchwork @ 2026-08-21 9:05 UTC (permalink / raw) To: Nemesa Garg; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 79514 bytes --] == Series Details == Series: Enable joiner cursor fast updates (rev6) URL : https://patchwork.freedesktop.org/series/165273/ State : failure == Summary == CI Bug Log - changes from CI_DRM_19027_full -> Patchwork_165273v6_full ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with Patchwork_165273v6_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_165273v6_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_165273v6_full: ### IGT changes ### #### Possible regressions #### * igt@kms_atomic_transition@plane-all-modeset-transition@pipe-b-hdmi-a-2: - shard-rkl: NOTRUN -> [ABORT][1] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-b-hdmi-a-2.html * igt@kms_busy@basic-hang: - shard-rkl: [PASS][2] -> [ABORT][3] +2 other tests abort [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-4/igt@kms_busy@basic-hang.html [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-5/igt@kms_busy@basic-hang.html * igt@kms_flip@dpms-vs-vblank-race-interruptible@c-hdmi-a1: - shard-tglu: [PASS][4] -> [ABORT][5] +1 other test abort [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-tglu-9/igt@kms_flip@dpms-vs-vblank-race-interruptible@c-hdmi-a1.html [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-2/igt@kms_flip@dpms-vs-vblank-race-interruptible@c-hdmi-a1.html * igt@kms_sequence@get-idle: - shard-glk: [PASS][6] -> [INCOMPLETE][7] +1 other test incomplete [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-glk4/igt@kms_sequence@get-idle.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk5/igt@kms_sequence@get-idle.html Known issues ------------ Here are the changes found in Patchwork_165273v6_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_basic@multigpu-create-close: - shard-tglu: NOTRUN -> [SKIP][8] ([i915#7697]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-8/igt@gem_basic@multigpu-create-close.html * igt@gem_ccs@block-copy-compressed: - shard-tglu: NOTRUN -> [SKIP][9] ([i915#3555] / [i915#9323]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-5/igt@gem_ccs@block-copy-compressed.html * igt@gem_ccs@large-ctrl-surf-copy: - shard-tglu: NOTRUN -> [SKIP][10] ([i915#13008]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-8/igt@gem_ccs@large-ctrl-surf-copy.html * igt@gem_create@create-ext-cpu-access-big: - shard-tglu: NOTRUN -> [SKIP][11] ([i915#6335]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-8/igt@gem_create@create-ext-cpu-access-big.html * igt@gem_eio@kms: - shard-rkl: [PASS][12] -> [ABORT][13] ([i915#16837]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-3/igt@gem_eio@kms.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-2/igt@gem_eio@kms.html * igt@gem_exec_balancer@parallel-balancer: - shard-tglu: NOTRUN -> [SKIP][14] ([i915#4525]) +1 other test skip [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-5/igt@gem_exec_balancer@parallel-balancer.html * igt@gem_exec_balancer@parallel-bb-first: - shard-tglu-1: NOTRUN -> [SKIP][15] ([i915#4525]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@gem_exec_balancer@parallel-bb-first.html * igt@gem_exec_reloc@basic-write-read: - shard-rkl: NOTRUN -> [SKIP][16] ([i915#3281]) +6 other tests skip [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-5/igt@gem_exec_reloc@basic-write-read.html * igt@gem_lmem_swapping@parallel-random-verify: - shard-tglu-1: NOTRUN -> [SKIP][17] ([i915#4613]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@gem_lmem_swapping@parallel-random-verify.html * igt@gem_lmem_swapping@random-engines: - shard-glk: NOTRUN -> [SKIP][18] ([i915#4613]) +1 other test skip [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk4/igt@gem_lmem_swapping@random-engines.html * igt@gem_lmem_swapping@smem-oom: - shard-tglu: NOTRUN -> [SKIP][19] ([i915#4613]) +4 other tests skip [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-8/igt@gem_lmem_swapping@smem-oom.html - shard-rkl: NOTRUN -> [SKIP][20] ([i915#4613]) [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-5/igt@gem_lmem_swapping@smem-oom.html * igt@gem_media_vme: - shard-rkl: NOTRUN -> [SKIP][21] ([i915#284]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-8/igt@gem_media_vme.html * igt@gem_pwrite@basic-exhaustion: - shard-tglu-1: NOTRUN -> [WARN][22] ([i915#2658]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@gem_pwrite@basic-exhaustion.html * igt@gem_pxp@hw-rejects-pxp-context: - shard-tglu: NOTRUN -> [SKIP][23] ([i915#13398]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-5/igt@gem_pxp@hw-rejects-pxp-context.html * igt@gem_tiled_partial_pwrite_pread@writes-after-reads: - shard-rkl: NOTRUN -> [SKIP][24] ([i915#3282]) +1 other test skip [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-8/igt@gem_tiled_partial_pwrite_pread@writes-after-reads.html * igt@gem_userptr_blits@coherency-unsync: - shard-rkl: NOTRUN -> [SKIP][25] ([i915#3297]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-8/igt@gem_userptr_blits@coherency-unsync.html * igt@gem_userptr_blits@readonly-unsync: - shard-tglu-1: NOTRUN -> [SKIP][26] ([i915#3297]) [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@gem_userptr_blits@readonly-unsync.html * igt@gem_workarounds@suspend-resume: - shard-glk11: NOTRUN -> [INCOMPLETE][27] ([i915#13356] / [i915#14586]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk11/igt@gem_workarounds@suspend-resume.html * igt@gen9_exec_parse@basic-rejected: - shard-tglu: NOTRUN -> [SKIP][28] ([i915#2527] / [i915#2856]) [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-4/igt@gen9_exec_parse@basic-rejected.html * igt@gen9_exec_parse@bb-secure: - shard-tglu-1: NOTRUN -> [SKIP][29] ([i915#2527] / [i915#2856]) +1 other test skip [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@gen9_exec_parse@bb-secure.html * igt@gen9_exec_parse@shadow-peek: - shard-rkl: NOTRUN -> [SKIP][30] ([i915#2527]) +2 other tests skip [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-8/igt@gen9_exec_parse@shadow-peek.html * igt@i915_module_load@fault-injection@intel_connector_register: - shard-tglu: NOTRUN -> [ABORT][31] ([i915#15342]) +1 other test abort [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-8/igt@i915_module_load@fault-injection@intel_connector_register.html * igt@i915_module_load@fault-injection@uc_fw_rsa_data_create: - shard-tglu: NOTRUN -> [SKIP][32] ([i915#15479]) +4 other tests skip [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-8/igt@i915_module_load@fault-injection@uc_fw_rsa_data_create.html * igt@i915_pm_freq_api@freq-suspend: - shard-rkl: NOTRUN -> [SKIP][33] ([i915#8399]) +1 other test skip [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@i915_pm_freq_api@freq-suspend.html - shard-tglu-1: NOTRUN -> [SKIP][34] ([i915#8399]) +1 other test skip [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@i915_pm_freq_api@freq-suspend.html * igt@i915_pm_rc6_residency@media-rc6-accuracy: - shard-tglu: NOTRUN -> [SKIP][35] ([i915#16080] / [i915#16166]) [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-4/igt@i915_pm_rc6_residency@media-rc6-accuracy.html * igt@i915_pm_rc6_residency@rc6-idle: - shard-tglu: NOTRUN -> [SKIP][36] ([i915#14498]) [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-5/igt@i915_pm_rc6_residency@rc6-idle.html * igt@kms_async_flips@async-flip-suspend-resume: - shard-glk10: NOTRUN -> [INCOMPLETE][37] ([i915#12761]) [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk10/igt@kms_async_flips@async-flip-suspend-resume.html * igt@kms_async_flips@async-flip-suspend-resume@pipe-a-hdmi-a-2: - shard-glk10: NOTRUN -> [INCOMPLETE][38] ([i915#12761] / [i915#14995]) [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk10/igt@kms_async_flips@async-flip-suspend-resume@pipe-a-hdmi-a-2.html - shard-rkl: [PASS][39] -> [INCOMPLETE][40] ([i915#12761]) [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-1/igt@kms_async_flips@async-flip-suspend-resume@pipe-a-hdmi-a-2.html [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-3/igt@kms_async_flips@async-flip-suspend-resume@pipe-a-hdmi-a-2.html * igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels: - shard-tglu: NOTRUN -> [SKIP][41] ([i915#1769] / [i915#3555]) +1 other test skip [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-5/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html * igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-b-hdmi-a-1: - shard-tglu: NOTRUN -> [ABORT][42] ([i915#16837] / [i915#16844] / [i915#16857]) +1 other test abort [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-4/igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-b-hdmi-a-1.html * igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels: - shard-glk11: NOTRUN -> [SKIP][43] ([i915#1769]) [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk11/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html * igt@kms_big_fb@4-tiled-16bpp-rotate-0: - shard-rkl: NOTRUN -> [SKIP][44] ([i915#5286]) +3 other tests skip [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-5/igt@kms_big_fb@4-tiled-16bpp-rotate-0.html * igt@kms_big_fb@4-tiled-64bpp-rotate-0: - shard-tglu-1: NOTRUN -> [SKIP][45] ([i915#5286]) +1 other test skip [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_big_fb@4-tiled-64bpp-rotate-0.html * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-async-flip: - shard-tglu: NOTRUN -> [SKIP][46] ([i915#5286]) +5 other tests skip [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-4/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html * igt@kms_big_fb@linear-64bpp-rotate-90: - shard-rkl: NOTRUN -> [SKIP][47] ([i915#3638]) [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@kms_big_fb@linear-64bpp-rotate-90.html * igt@kms_big_fb@yf-tiled-16bpp-rotate-270: - shard-rkl: NOTRUN -> [SKIP][48] +39 other tests skip [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-8/igt@kms_big_fb@yf-tiled-16bpp-rotate-270.html * igt@kms_big_fb@yf-tiled-8bpp-rotate-270: - shard-tglu: NOTRUN -> [SKIP][49] +75 other tests skip [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-5/igt@kms_big_fb@yf-tiled-8bpp-rotate-270.html * igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][50] ([i915#14544] / [i915#6095]) +1 other test skip [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-2.html * igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][51] ([i915#14098] / [i915#14544] / [i915#6095]) [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs@pipe-c-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][52] ([i915#14098] / [i915#6095]) +35 other tests skip [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-7/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-2.html * igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-1: - shard-dg2: NOTRUN -> [SKIP][53] ([i915#10307] / [i915#6095]) +44 other tests skip [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-dg2-4/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-1.html * igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-1: - shard-tglu-1: NOTRUN -> [SKIP][54] ([i915#6095]) +24 other tests skip [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-1.html * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs: - shard-tglu-1: NOTRUN -> [SKIP][55] ([i915#12805]) [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html * igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc: - shard-glk11: NOTRUN -> [SKIP][56] +123 other tests skip [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk11/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc.html * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-1: - shard-tglu: NOTRUN -> [SKIP][57] ([i915#6095]) +59 other tests skip [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-8/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-1.html * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-d-hdmi-a-1: - shard-dg2: NOTRUN -> [SKIP][58] ([i915#6095]) +15 other tests skip [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-dg2-4/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-d-hdmi-a-1.html * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs: - shard-rkl: NOTRUN -> [SKIP][59] ([i915#12313]) [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-8/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs.html * igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-2: - shard-glk10: NOTRUN -> [SKIP][60] +48 other tests skip [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk10/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-2.html * igt@kms_ccs@missing-ccs-buffer-yf-tiled-ccs@pipe-b-hdmi-a-1: - shard-dg1: NOTRUN -> [SKIP][61] ([i915#6095]) +187 other tests skip [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-dg1-15/igt@kms_ccs@missing-ccs-buffer-yf-tiled-ccs@pipe-b-hdmi-a-1.html * igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs: - shard-tglu-1: NOTRUN -> [SKIP][62] ([i915#12313]) [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs.html * igt@kms_ccs@random-ccs-data-y-tiled-ccs@pipe-b-hdmi-a-1: - shard-rkl: NOTRUN -> [SKIP][63] ([i915#6095]) +61 other tests skip [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-5/igt@kms_ccs@random-ccs-data-y-tiled-ccs@pipe-b-hdmi-a-1.html * igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-d-hdmi-a-1: - shard-dg2: NOTRUN -> [SKIP][64] ([i915#10307] / [i915#10434] / [i915#6095]) +3 other tests skip [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-dg2-4/igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-d-hdmi-a-1.html * igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-1: - shard-dg2: NOTRUN -> [SKIP][65] ([i915#13781]) +3 other tests skip [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-dg2-4/igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-1.html * igt@kms_chamelium_audio@dp-audio-edid: - shard-rkl: NOTRUN -> [SKIP][66] ([i915#11151] / [i915#7828]) [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@kms_chamelium_audio@dp-audio-edid.html * igt@kms_chamelium_color_pipeline@plane-lut1d: - shard-tglu: NOTRUN -> [SKIP][67] ([i915#16471]) [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-5/igt@kms_chamelium_color_pipeline@plane-lut1d.html * igt@kms_chamelium_color_pipeline@plane-lut1d-lut1d: - shard-tglu-1: NOTRUN -> [SKIP][68] ([i915#16471]) [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_chamelium_color_pipeline@plane-lut1d-lut1d.html * igt@kms_chamelium_hpd@hdmi-hpd-for-each-pipe: - shard-tglu-1: NOTRUN -> [SKIP][69] ([i915#11151] / [i915#7828]) +3 other tests skip [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_chamelium_hpd@hdmi-hpd-for-each-pipe.html * igt@kms_chamelium_hpd@vga-hpd-without-ddc: - shard-tglu: NOTRUN -> [SKIP][70] ([i915#11151] / [i915#7828]) +8 other tests skip [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-8/igt@kms_chamelium_hpd@vga-hpd-without-ddc.html * igt@kms_content_protection@atomic-hdcp14: - shard-tglu-1: NOTRUN -> [SKIP][71] ([i915#15865]) [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_content_protection@atomic-hdcp14.html * igt@kms_content_protection@dp-mst-type-0: - shard-rkl: NOTRUN -> [SKIP][72] ([i915#15330] / [i915#3116]) +1 other test skip [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@kms_content_protection@dp-mst-type-0.html - shard-tglu-1: NOTRUN -> [SKIP][73] ([i915#15330] / [i915#3116] / [i915#3299]) [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_content_protection@dp-mst-type-0.html * igt@kms_content_protection@lic-type-1: - shard-rkl: NOTRUN -> [SKIP][74] ([i915#15865]) [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-8/igt@kms_content_protection@lic-type-1.html * igt@kms_cursor_crc@cursor-offscreen-512x512: - shard-rkl: NOTRUN -> [SKIP][75] ([i915#13049]) [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-5/igt@kms_cursor_crc@cursor-offscreen-512x512.html * igt@kms_cursor_crc@cursor-onscreen-32x32: - shard-tglu-1: NOTRUN -> [SKIP][76] ([i915#3555]) +2 other tests skip [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_cursor_crc@cursor-onscreen-32x32.html * igt@kms_cursor_crc@cursor-onscreen-512x512: - shard-tglu: NOTRUN -> [SKIP][77] ([i915#13049]) +1 other test skip [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-8/igt@kms_cursor_crc@cursor-onscreen-512x512.html * igt@kms_cursor_crc@cursor-onscreen-64x21@pipe-a-hdmi-a-2: - shard-rkl: NOTRUN -> [FAIL][78] ([i915#13566]) [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-7/igt@kms_cursor_crc@cursor-onscreen-64x21@pipe-a-hdmi-a-2.html * igt@kms_cursor_crc@cursor-rapid-movement-512x512: - shard-tglu-1: NOTRUN -> [SKIP][79] ([i915#13049]) [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html * igt@kms_cursor_crc@cursor-sliding-64x21@pipe-a-hdmi-a-1: - shard-tglu: [PASS][80] -> [FAIL][81] ([i915#13566]) +1 other test fail [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-tglu-9/igt@kms_cursor_crc@cursor-sliding-64x21@pipe-a-hdmi-a-1.html [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-10/igt@kms_cursor_crc@cursor-sliding-64x21@pipe-a-hdmi-a-1.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy: - shard-rkl: NOTRUN -> [SKIP][82] ([i915#4103]) +1 other test skip [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-5/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html - shard-tglu: NOTRUN -> [SKIP][83] ([i915#4103]) [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-8/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html * igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot: - shard-tglu-1: NOTRUN -> [SKIP][84] ([i915#9067]) [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions: - shard-tglu-1: NOTRUN -> [SKIP][85] ([i915#4103]) [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html * igt@kms_dither@fb-8bpc-vs-panel-6bpc: - shard-tglu: NOTRUN -> [SKIP][86] ([i915#1769] / [i915#3555] / [i915#3804]) [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-5/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html * igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1: - shard-tglu: NOTRUN -> [SKIP][87] ([i915#3804]) [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-5/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1.html * igt@kms_dp_link_training@non-uhbr-mst: - shard-tglu: NOTRUN -> [SKIP][88] ([i915#13749]) [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-4/igt@kms_dp_link_training@non-uhbr-mst.html * igt@kms_dp_link_training@uhbr-sst: - shard-tglu-1: NOTRUN -> [SKIP][89] ([i915#13748]) [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_dp_link_training@uhbr-sst.html * igt@kms_dsc@dsc-with-bpc-formats-ultrajoiner: - shard-tglu: NOTRUN -> [SKIP][90] ([i915#16361]) [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-8/igt@kms_dsc@dsc-with-bpc-formats-ultrajoiner.html * igt@kms_dsc@dsc-with-output-formats-bigjoiner: - shard-rkl: NOTRUN -> [SKIP][91] ([i915#16361]) +2 other tests skip [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-8/igt@kms_dsc@dsc-with-output-formats-bigjoiner.html * igt@kms_dsc@dsc-with-output-formats-with-bpc-bigjoiner: - shard-tglu-1: NOTRUN -> [SKIP][92] ([i915#16361]) +1 other test skip [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_dsc@dsc-with-output-formats-with-bpc-bigjoiner.html * igt@kms_fbcon_fbt@psr-suspend: - shard-rkl: NOTRUN -> [SKIP][93] ([i915#16680]) [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-8/igt@kms_fbcon_fbt@psr-suspend.html * igt@kms_feature_discovery@display-2x: - shard-tglu: NOTRUN -> [SKIP][94] ([i915#16081]) [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-5/igt@kms_feature_discovery@display-2x.html * igt@kms_feature_discovery@dsc: - shard-tglu-1: NOTRUN -> [SKIP][95] ([i915#16600]) [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_feature_discovery@dsc.html * igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible: - shard-tglu: NOTRUN -> [SKIP][96] ([i915#9934]) [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-8/igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible.html * igt@kms_flip@2x-modeset-vs-vblank-race-interruptible: - shard-tglu: NOTRUN -> [SKIP][97] ([i915#3637] / [i915#9934]) +2 other tests skip [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-8/igt@kms_flip@2x-modeset-vs-vblank-race-interruptible.html * igt@kms_flip@2x-plain-flip-interruptible: - shard-tglu-1: NOTRUN -> [SKIP][98] ([i915#3637] / [i915#9934]) +9 other tests skip [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_flip@2x-plain-flip-interruptible.html * igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible: - shard-rkl: NOTRUN -> [SKIP][99] ([i915#9934]) +4 other tests skip [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling: - shard-tglu-1: NOTRUN -> [SKIP][100] ([i915#15643]) +1 other test skip [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html - shard-dg2: NOTRUN -> [SKIP][101] ([i915#15643] / [i915#5190]) [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-dg2-8/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling: - shard-tglu: NOTRUN -> [SKIP][102] ([i915#15643]) +4 other tests skip [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-5/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling: - shard-rkl: NOTRUN -> [SKIP][103] ([i915#15643]) +2 other tests skip [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-8/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-gtt: - shard-rkl: NOTRUN -> [SKIP][104] ([i915#1825]) +5 other tests skip [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-shrfb-msflip-blt: - shard-glk: [PASS][105] -> [SKIP][106] +2 other tests skip [105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-glk8/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-shrfb-msflip-blt.html [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk4/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-shrfb-msflip-blt.html * igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-spr-indfb-draw-mmap-cpu: - shard-rkl: NOTRUN -> [SKIP][107] ([i915#15989]) +6 other tests skip [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-5/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-spr-indfb-draw-mmap-cpu.html * igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-shrfb-pgflip-blt: - shard-tglu-1: NOTRUN -> [SKIP][108] +48 other tests skip [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-shrfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@fbchdr-suspend: - shard-glk11: NOTRUN -> [INCOMPLETE][109] ([i915#16056] / [i915#16593]) [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk11/igt@kms_frontbuffer_tracking@fbchdr-suspend.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-pgflip-blt: - shard-tglu: NOTRUN -> [SKIP][110] ([i915#15102]) +32 other tests skip [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-8/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-wc: - shard-glk: NOTRUN -> [SKIP][111] +210 other tests skip [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk4/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbcpsr-tiling-4: - shard-tglu: NOTRUN -> [SKIP][112] ([i915#5439]) [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-8/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-pri-shrfb-draw-mmap-cpu: - shard-tglu-1: NOTRUN -> [SKIP][113] ([i915#15102]) +23 other tests skip [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-pri-shrfb-draw-mmap-cpu.html * igt@kms_frontbuffer_tracking@hdr-1p-offscreen-pri-indfb-draw-blt: - shard-tglu-1: NOTRUN -> [SKIP][114] ([i915#15989]) +8 other tests skip [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_frontbuffer_tracking@hdr-1p-offscreen-pri-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@hdr-1p-primscrn-shrfb-pgflip-blt: - shard-tglu: NOTRUN -> [SKIP][115] ([i915#15989]) +17 other tests skip [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-8/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-shrfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@hdr-1p-primscrn-spr-indfb-draw-mmap-gtt: - shard-rkl: [PASS][116] -> [SKIP][117] ([i915#15989]) +3 other tests skip [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-6/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-spr-indfb-draw-mmap-gtt.html [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-spr-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@pipe-fbc-rte: - shard-rkl: NOTRUN -> [SKIP][118] ([i915#9766]) [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html - shard-tglu-1: NOTRUN -> [SKIP][119] ([i915#9766]) [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt: - shard-rkl: NOTRUN -> [SKIP][120] ([i915#15102]) +19 other tests skip [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt.html * igt@kms_hdmi_inject@inject-audio: - shard-tglu-1: NOTRUN -> [SKIP][121] ([i915#13030]) [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_hdmi_inject@inject-audio.html * igt@kms_hdr@static-toggle: - shard-rkl: NOTRUN -> [SKIP][122] ([i915#16644] / [i915#3555] / [i915#8228]) [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-8/igt@kms_hdr@static-toggle.html * igt@kms_hdr@static-toggle-dpms: - shard-tglu: NOTRUN -> [SKIP][123] ([i915#3555] / [i915#8228]) [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-5/igt@kms_hdr@static-toggle-dpms.html * igt@kms_joiner@invalid-modeset-ultra-joiner: - shard-rkl: NOTRUN -> [SKIP][124] ([i915#15458]) [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-8/igt@kms_joiner@invalid-modeset-ultra-joiner.html * igt@kms_pipe_stress@stress-xrgb8888-xtiled: - shard-glk: NOTRUN -> [DMESG-FAIL][125] ([i915#118]) [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk1/igt@kms_pipe_stress@stress-xrgb8888-xtiled.html * igt@kms_pipe_stress@stress-xrgb8888-yftiled: - shard-glk10: NOTRUN -> [DMESG-WARN][126] ([i915#118]) [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk10/igt@kms_pipe_stress@stress-xrgb8888-yftiled.html * igt@kms_plane@pixel-format-4-tiled-dg2-mc-ccs-modifier-source-clamping: - shard-tglu-1: NOTRUN -> [SKIP][127] ([i915#15709]) [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_plane@pixel-format-4-tiled-dg2-mc-ccs-modifier-source-clamping.html * igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier: - shard-tglu: NOTRUN -> [SKIP][128] ([i915#15709]) +2 other tests skip [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-4/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier.html * igt@kms_plane@pixel-format-x-tiled-modifier@pipe-b-plane-5: - shard-rkl: NOTRUN -> [SKIP][129] ([i915#16386]) +3 other tests skip [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@kms_plane@pixel-format-x-tiled-modifier@pipe-b-plane-5.html * igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier: - shard-rkl: NOTRUN -> [SKIP][130] ([i915#15709]) +2 other tests skip [130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-8/igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier.html * igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier@pipe-a-plane-7: - shard-tglu: NOTRUN -> [SKIP][131] ([i915#16386]) +1 other test skip [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-5/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier@pipe-a-plane-7.html * igt@kms_plane@pixel-format-y-tiled-modifier@pipe-b-plane-7: - shard-tglu-1: NOTRUN -> [SKIP][132] ([i915#16386]) +3 other tests skip [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_plane@pixel-format-y-tiled-modifier@pipe-b-plane-7.html * igt@kms_plane_multiple@tiling-4: - shard-tglu-1: NOTRUN -> [SKIP][133] ([i915#14259]) [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_plane_multiple@tiling-4.html * igt@kms_plane_multiple@tiling-yf: - shard-tglu: NOTRUN -> [SKIP][134] ([i915#14259]) [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-5/igt@kms_plane_multiple@tiling-yf.html * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-d: - shard-tglu-1: NOTRUN -> [SKIP][135] ([i915#15329]) +8 other tests skip [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-d.html * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation: - shard-rkl: NOTRUN -> [SKIP][136] ([i915#15329] / [i915#3555]) [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation.html - shard-tglu-1: NOTRUN -> [SKIP][137] ([i915#15329] / [i915#3555]) [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation.html * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b: - shard-rkl: NOTRUN -> [SKIP][138] ([i915#15329]) +2 other tests skip [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b.html * igt@kms_pm_backlight@fade: - shard-rkl: NOTRUN -> [SKIP][139] ([i915#12343] / [i915#5354]) [139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-8/igt@kms_pm_backlight@fade.html * igt@kms_pm_dc@dc5-psr: - shard-tglu: NOTRUN -> [SKIP][140] ([i915#15948]) [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-5/igt@kms_pm_dc@dc5-psr.html * igt@kms_pm_rpm@modeset-non-lpsp-stress: - shard-dg2: [PASS][141] -> [SKIP][142] ([i915#15073]) [141]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-dg2-1/igt@kms_pm_rpm@modeset-non-lpsp-stress.html [142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-dg2-4/igt@kms_pm_rpm@modeset-non-lpsp-stress.html - shard-rkl: NOTRUN -> [SKIP][143] ([i915#15073]) [143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-5/igt@kms_pm_rpm@modeset-non-lpsp-stress.html - shard-tglu: NOTRUN -> [SKIP][144] ([i915#15073]) [144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-8/igt@kms_pm_rpm@modeset-non-lpsp-stress.html * igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait: - shard-rkl: [PASS][145] -> [SKIP][146] ([i915#15073]) [145]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-3/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html [146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-8/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html - shard-dg1: [PASS][147] -> [SKIP][148] ([i915#15073]) [147]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-dg1-16/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html [148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-dg1-15/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html * igt@kms_pm_rpm@package-g7: - shard-tglu: NOTRUN -> [SKIP][149] ([i915#15403]) [149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-5/igt@kms_pm_rpm@package-g7.html * igt@kms_pm_rpm@system-suspend-idle: - shard-dg2: [PASS][150] -> [INCOMPLETE][151] ([i915#14419]) [150]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-dg2-6/igt@kms_pm_rpm@system-suspend-idle.html [151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-dg2-7/igt@kms_pm_rpm@system-suspend-idle.html * igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-sf: - shard-rkl: NOTRUN -> [SKIP][152] ([i915#11520]) +2 other tests skip [152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-8/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-sf.html * igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf: - shard-glk11: NOTRUN -> [SKIP][153] ([i915#11520]) +2 other tests skip [153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk11/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf.html * igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-sf: - shard-glk: NOTRUN -> [SKIP][154] ([i915#11520]) +3 other tests skip [154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk4/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-sf.html * igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area: - shard-glk10: NOTRUN -> [SKIP][155] ([i915#11520]) [155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk10/igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area.html * igt@kms_psr2_sf@pr-overlay-primary-update-sf-dmg-area: - shard-tglu: NOTRUN -> [SKIP][156] ([i915#11520]) +5 other tests skip [156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-4/igt@kms_psr2_sf@pr-overlay-primary-update-sf-dmg-area.html * igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb: - shard-tglu-1: NOTRUN -> [SKIP][157] ([i915#11520]) +3 other tests skip [157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html * igt@kms_psr2_su@frontbuffer-xrgb8888: - shard-rkl: NOTRUN -> [SKIP][158] ([i915#9683]) [158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-8/igt@kms_psr2_su@frontbuffer-xrgb8888.html * igt@kms_psr@fbc-psr-cursor-plane-move: - shard-rkl: NOTRUN -> [SKIP][159] ([i915#1072] / [i915#9732]) +9 other tests skip [159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-5/igt@kms_psr@fbc-psr-cursor-plane-move.html * igt@kms_psr@psr-sprite-mmap-cpu: - shard-tglu-1: NOTRUN -> [SKIP][160] ([i915#9732]) +9 other tests skip [160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_psr@psr-sprite-mmap-cpu.html * igt@kms_psr@psr2-cursor-plane-onoff: - shard-tglu: NOTRUN -> [SKIP][161] ([i915#9732]) +14 other tests skip [161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-5/igt@kms_psr@psr2-cursor-plane-onoff.html * igt@kms_rotation_crc@multiplane-rotation-cropping-bottom: - shard-glk: NOTRUN -> [INCOMPLETE][162] ([i915#15500] / [i915#16184]) [162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk4/igt@kms_rotation_crc@multiplane-rotation-cropping-bottom.html * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270: - shard-tglu: NOTRUN -> [SKIP][163] ([i915#5289]) +1 other test skip [163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-5/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html * igt@kms_scaling_modes@scaling-mode-full: - shard-tglu: NOTRUN -> [SKIP][164] ([i915#3555]) +5 other tests skip [164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-5/igt@kms_scaling_modes@scaling-mode-full.html * igt@kms_selftest@drm_framebuffer: - shard-glk10: NOTRUN -> [ABORT][165] ([i915#13179]) +1 other test abort [165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk10/igt@kms_selftest@drm_framebuffer.html * igt@kms_setmode@basic-clone-single-crtc: - shard-rkl: NOTRUN -> [SKIP][166] ([i915#3555]) +4 other tests skip [166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-5/igt@kms_setmode@basic-clone-single-crtc.html * igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-2: - shard-glk: NOTRUN -> [INCOMPLETE][167] ([i915#12276]) +3 other tests incomplete [167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk1/igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-2.html * igt@kms_vrr@max-min: - shard-tglu-1: NOTRUN -> [SKIP][168] ([i915#9906]) [168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-1/igt@kms_vrr@max-min.html * igt@kms_vrr@negative-basic: - shard-rkl: NOTRUN -> [SKIP][169] ([i915#3555] / [i915#9906]) [169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-5/igt@kms_vrr@negative-basic.html - shard-tglu: NOTRUN -> [SKIP][170] ([i915#3555] / [i915#9906]) [170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-8/igt@kms_vrr@negative-basic.html * igt@perf_pmu@rc6-suspend: - shard-rkl: [PASS][171] -> [ABORT][172] ([i915#15131]) [171]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-5/igt@perf_pmu@rc6-suspend.html [172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-1/igt@perf_pmu@rc6-suspend.html * igt@prime_vgem@fence-write-hang: - shard-rkl: NOTRUN -> [SKIP][173] ([i915#3708]) [173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-8/igt@prime_vgem@fence-write-hang.html #### Possible fixes #### * igt@gem_exec_big@single: - shard-mtlp: [FAIL][174] ([i915#15871]) -> [PASS][175] [174]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-mtlp-3/igt@gem_exec_big@single.html [175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-mtlp-1/igt@gem_exec_big@single.html * igt@gem_exec_suspend@basic-s0: - shard-dg2: [INCOMPLETE][176] ([i915#13356]) -> [PASS][177] +1 other test pass [176]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-dg2-4/igt@gem_exec_suspend@basic-s0.html [177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-dg2-8/igt@gem_exec_suspend@basic-s0.html * igt@gem_workarounds@suspend-resume-fd: - shard-rkl: [INCOMPLETE][178] ([i915#13356]) -> [PASS][179] [178]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-6/igt@gem_workarounds@suspend-resume-fd.html [179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@gem_workarounds@suspend-resume-fd.html * igt@i915_suspend@forcewake: - shard-rkl: [INCOMPLETE][180] ([i915#4817]) -> [PASS][181] +1 other test pass [180]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-3/igt@i915_suspend@forcewake.html [181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-8/igt@i915_suspend@forcewake.html * igt@kms_atomic_transition@plane-toggle-modeset-transition@pipe-b-hdmi-a-1: - shard-tglu: [ABORT][182] ([i915#16844]) -> [PASS][183] +1 other test pass [182]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-tglu-7/igt@kms_atomic_transition@plane-toggle-modeset-transition@pipe-b-hdmi-a-1.html [183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-4/igt@kms_atomic_transition@plane-toggle-modeset-transition@pipe-b-hdmi-a-1.html * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc: - shard-rkl: [INCOMPLETE][184] ([i915#15582]) -> [PASS][185] [184]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-4/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc.html [185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-5/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc.html * igt@kms_cursor_crc@cursor-sliding-64x21@pipe-a-hdmi-a-1: - shard-rkl: [FAIL][186] ([i915#13566]) -> [PASS][187] +2 other tests pass [186]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-8/igt@kms_cursor_crc@cursor-sliding-64x21@pipe-a-hdmi-a-1.html [187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-2/igt@kms_cursor_crc@cursor-sliding-64x21@pipe-a-hdmi-a-1.html * igt@kms_frontbuffer_tracking@hdr-1p-offscreen-pri-indfb-draw-pwrite: - shard-rkl: [SKIP][188] ([i915#15989]) -> [PASS][189] +5 other tests pass [188]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-2/igt@kms_frontbuffer_tracking@hdr-1p-offscreen-pri-indfb-draw-pwrite.html [189]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@kms_frontbuffer_tracking@hdr-1p-offscreen-pri-indfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@hdr-2p-primscrn-indfb-msflip-blt: - shard-glk: [SKIP][190] -> [PASS][191] +2 other tests pass [190]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-glk1/igt@kms_frontbuffer_tracking@hdr-2p-primscrn-indfb-msflip-blt.html [191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk8/igt@kms_frontbuffer_tracking@hdr-2p-primscrn-indfb-msflip-blt.html * igt@kms_hdmi_inject@inject-audio: - shard-mtlp: [SKIP][192] ([i915#15725]) -> [PASS][193] [192]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-mtlp-1/igt@kms_hdmi_inject@inject-audio.html [193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-mtlp-6/igt@kms_hdmi_inject@inject-audio.html * igt@kms_pipe_crc_basic@bad-source: - shard-dg1: [DMESG-WARN][194] ([i915#4423]) -> [PASS][195] +1 other test pass [194]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-dg1-15/igt@kms_pipe_crc_basic@bad-source.html [195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-dg1-19/igt@kms_pipe_crc_basic@bad-source.html * igt@kms_pm_rpm@dpms-lpsp: - shard-dg2: [SKIP][196] ([i915#15073]) -> [PASS][197] [196]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-dg2-1/igt@kms_pm_rpm@dpms-lpsp.html [197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-dg2-4/igt@kms_pm_rpm@dpms-lpsp.html - shard-rkl: [SKIP][198] ([i915#15073]) -> [PASS][199] +1 other test pass [198]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-4/igt@kms_pm_rpm@dpms-lpsp.html [199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-5/igt@kms_pm_rpm@dpms-lpsp.html * igt@kms_pm_rpm@modeset-lpsp: - shard-dg1: [SKIP][200] ([i915#15073]) -> [PASS][201] +2 other tests pass [200]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-dg1-13/igt@kms_pm_rpm@modeset-lpsp.html [201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-dg1-15/igt@kms_pm_rpm@modeset-lpsp.html #### Warnings #### * igt@api_intel_bb@object-reloc-keep-cache: - shard-rkl: [SKIP][202] ([i915#14544] / [i915#8411]) -> [SKIP][203] ([i915#8411]) [202]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-6/igt@api_intel_bb@object-reloc-keep-cache.html [203]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@api_intel_bb@object-reloc-keep-cache.html * igt@gem_eio@kms: - shard-dg1: [ABORT][204] ([i915#16853]) -> [ABORT][205] ([i915#16837]) [204]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-dg1-18/igt@gem_eio@kms.html [205]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-dg1-17/igt@gem_eio@kms.html * igt@gem_exec_reloc@basic-write-read-active: - shard-rkl: [SKIP][206] ([i915#14544] / [i915#3281]) -> [SKIP][207] ([i915#3281]) +2 other tests skip [206]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-6/igt@gem_exec_reloc@basic-write-read-active.html [207]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@gem_exec_reloc@basic-write-read-active.html * igt@gem_userptr_blits@readonly-unsync: - shard-rkl: [SKIP][208] ([i915#14544] / [i915#3297]) -> [SKIP][209] ([i915#3297]) [208]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-6/igt@gem_userptr_blits@readonly-unsync.html [209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@gem_userptr_blits@readonly-unsync.html * igt@i915_query@query-topology-known-pci-ids: - shard-rkl: [SKIP][210] ([i915#16109]) -> [SKIP][211] ([i915#14544] / [i915#16109]) [210]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-2/igt@i915_query@query-topology-known-pci-ids.html [211]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@i915_query@query-topology-known-pci-ids.html * igt@i915_query@query-topology-unsupported: - shard-rkl: [SKIP][212] ([i915#16079]) -> [SKIP][213] ([i915#14544] / [i915#16079]) [212]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-2/igt@i915_query@query-topology-unsupported.html [213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@i915_query@query-topology-unsupported.html * igt@kms_addfb_basic@invalid-smem-bo-on-discrete: - shard-rkl: [SKIP][214] ([i915#12454] / [i915#12712]) -> [SKIP][215] ([i915#12454] / [i915#12712] / [i915#14544]) [214]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-2/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html [215]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html * igt@kms_async_flips@async-flip-suspend-resume: - shard-rkl: [ABORT][216] ([i915#15132]) -> [INCOMPLETE][217] ([i915#12761]) [216]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-1/igt@kms_async_flips@async-flip-suspend-resume.html [217]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-3/igt@kms_async_flips@async-flip-suspend-resume.html * igt@kms_atomic_transition@plane-all-modeset-transition@pipe-b-hdmi-a-1: - shard-tglu: [ABORT][218] ([i915#16837]) -> [ABORT][219] ([i915#16837] / [i915#16844]) +1 other test abort [218]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-tglu-6/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-b-hdmi-a-1.html [219]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-7/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-b-hdmi-a-1.html * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-async-flip: - shard-rkl: [SKIP][220] ([i915#5286]) -> [SKIP][221] ([i915#14544] / [i915#5286]) +1 other test skip [220]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-2/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html [221]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html * igt@kms_big_fb@x-tiled-32bpp-rotate-270: - shard-rkl: [SKIP][222] ([i915#3638]) -> [SKIP][223] ([i915#14544] / [i915#3638]) +1 other test skip [222]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-2/igt@kms_big_fb@x-tiled-32bpp-rotate-270.html [223]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@kms_big_fb@x-tiled-32bpp-rotate-270.html * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip: - shard-rkl: [SKIP][224] -> [SKIP][225] ([i915#14544]) +19 other tests skip [224]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-2/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html [225]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html * igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs: - shard-rkl: [SKIP][226] ([i915#14098] / [i915#6095]) -> [SKIP][227] ([i915#14098] / [i915#14544] / [i915#6095]) [226]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-2/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs.html [227]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs.html * igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs: - shard-rkl: [SKIP][228] ([i915#14098] / [i915#14544] / [i915#6095]) -> [SKIP][229] ([i915#14098] / [i915#6095]) +3 other tests skip [228]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-6/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs.html [229]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs.html * igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2: - shard-rkl: [SKIP][230] ([i915#14544] / [i915#6095]) -> [SKIP][231] ([i915#6095]) +3 other tests skip [230]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-6/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html [231]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1: - shard-glk: [INCOMPLETE][232] ([i915#14694] / [i915#15582]) -> [INCOMPLETE][233] ([i915#15582]) +1 other test incomplete [232]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-glk3/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1.html [233]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk6/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1.html * igt@kms_cdclk@mode-transition: - shard-rkl: [SKIP][234] ([i915#3742]) -> [SKIP][235] ([i915#14544] / [i915#3742]) [234]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-2/igt@kms_cdclk@mode-transition.html [235]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@kms_cdclk@mode-transition.html * igt@kms_chamelium_frames@hdmi-crc-fast: - shard-rkl: [SKIP][236] ([i915#11151] / [i915#7828]) -> [SKIP][237] ([i915#11151] / [i915#14544] / [i915#7828]) +1 other test skip [236]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-2/igt@kms_chamelium_frames@hdmi-crc-fast.html [237]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@kms_chamelium_frames@hdmi-crc-fast.html * igt@kms_chamelium_frames@hdmi-crc-single: - shard-rkl: [SKIP][238] ([i915#11151] / [i915#14544] / [i915#7828]) -> [SKIP][239] ([i915#11151] / [i915#7828]) [238]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-6/igt@kms_chamelium_frames@hdmi-crc-single.html [239]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@kms_chamelium_frames@hdmi-crc-single.html * igt@kms_content_protection@suspend-resume: - shard-rkl: [SKIP][240] ([i915#15865]) -> [SKIP][241] ([i915#14544] / [i915#15865]) [240]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-2/igt@kms_content_protection@suspend-resume.html [241]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@kms_content_protection@suspend-resume.html * igt@kms_cursor_crc@cursor-rapid-movement-max-size: - shard-rkl: [SKIP][242] ([i915#3555]) -> [SKIP][243] ([i915#14544] / [i915#3555]) [242]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-2/igt@kms_cursor_crc@cursor-rapid-movement-max-size.html [243]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@kms_cursor_crc@cursor-rapid-movement-max-size.html * igt@kms_dp_link_training@uhbr-sst: - shard-rkl: [SKIP][244] ([i915#13748] / [i915#14544]) -> [SKIP][245] ([i915#13748]) [244]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-6/igt@kms_dp_link_training@uhbr-sst.html [245]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@kms_dp_link_training@uhbr-sst.html * igt@kms_dsc@dsc-basic-bigjoiner: - shard-rkl: [SKIP][246] ([i915#16361]) -> [SKIP][247] ([i915#14544] / [i915#16361]) [246]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-2/igt@kms_dsc@dsc-basic-bigjoiner.html [247]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@kms_dsc@dsc-basic-bigjoiner.html * igt@kms_dsc@dsc-with-bpc-formats-bigjoiner: - shard-rkl: [SKIP][248] ([i915#14544] / [i915#16361]) -> [SKIP][249] ([i915#16361]) [248]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-6/igt@kms_dsc@dsc-with-bpc-formats-bigjoiner.html [249]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@kms_dsc@dsc-with-bpc-formats-bigjoiner.html * igt@kms_flip@2x-flip-vs-blocking-wf-vblank: - shard-rkl: [SKIP][250] ([i915#14544] / [i915#9934]) -> [SKIP][251] ([i915#9934]) [250]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-6/igt@kms_flip@2x-flip-vs-blocking-wf-vblank.html [251]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@kms_flip@2x-flip-vs-blocking-wf-vblank.html * igt@kms_flip@2x-flip-vs-panning: - shard-rkl: [SKIP][252] ([i915#9934]) -> [SKIP][253] ([i915#14544] / [i915#9934]) +3 other tests skip [252]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-2/igt@kms_flip@2x-flip-vs-panning.html [253]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@kms_flip@2x-flip-vs-panning.html * igt@kms_flip@flip-vs-suspend-interruptible: - shard-glk: [INCOMPLETE][254] ([i915#12745] / [i915#4839] / [i915#6113]) -> [INCOMPLETE][255] ([i915#12314] / [i915#12745] / [i915#4839] / [i915#6113]) [254]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-glk2/igt@kms_flip@flip-vs-suspend-interruptible.html [255]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk5/igt@kms_flip@flip-vs-suspend-interruptible.html * igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1: - shard-glk: [INCOMPLETE][256] ([i915#12745]) -> [INCOMPLETE][257] ([i915#12314] / [i915#12745]) [256]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-glk2/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1.html [257]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-glk5/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1.html * igt@kms_force_connector_basic@force-load-detect: - shard-mtlp: [SKIP][258] -> [SKIP][259] ([i915#15672]) [258]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-mtlp-2/igt@kms_force_connector_basic@force-load-detect.html [259]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-mtlp-1/igt@kms_force_connector_basic@force-load-detect.html * igt@kms_frontbuffer_tracking@fbc-tiling-4: - shard-rkl: [SKIP][260] ([i915#5439]) -> [SKIP][261] ([i915#14544] / [i915#5439]) [260]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-2/igt@kms_frontbuffer_tracking@fbc-tiling-4.html [261]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-tiling-4.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-gtt: - shard-rkl: [SKIP][262] ([i915#14544] / [i915#15102]) -> [SKIP][263] ([i915#15102]) +2 other tests skip [262]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-gtt.html [263]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-cpu: - shard-dg1: [SKIP][264] ([i915#4423]) -> [SKIP][265] [264]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-dg1-16/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-cpu.html [265]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-dg1-18/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-cpu.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-cpu: - shard-rkl: [SKIP][266] ([i915#14544]) -> [SKIP][267] +10 other tests skip [266]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-cpu.html [267]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-cpu.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-gtt: - shard-rkl: [SKIP][268] ([i915#14544] / [i915#1825]) -> [SKIP][269] ([i915#1825]) [268]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-gtt.html [269]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-gtt: - shard-dg1: [SKIP][270] ([i915#15990] / [i915#4423] / [i915#8708]) -> [SKIP][271] ([i915#15990] / [i915#8708]) [270]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-dg1-16/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-gtt.html [271]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-dg1-18/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-spr-indfb-move: - shard-rkl: [SKIP][272] ([i915#15102]) -> [SKIP][273] ([i915#14544] / [i915#15102]) +11 other tests skip [272]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-2/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-spr-indfb-move.html [273]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-spr-indfb-move.html * igt@kms_joiner@basic-force-ultra-joiner: - shard-rkl: [SKIP][274] ([i915#15458]) -> [SKIP][275] ([i915#14544] / [i915#15458]) [274]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-2/igt@kms_joiner@basic-force-ultra-joiner.html [275]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@kms_joiner@basic-force-ultra-joiner.html * igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping: - shard-rkl: [SKIP][276] ([i915#15709]) -> [SKIP][277] ([i915#14544] / [i915#15709]) [276]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-2/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping.html [277]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping.html * igt@kms_pm_dc@dc6-dpms: - shard-tglu: [FAIL][278] ([i915#16479]) -> [SKIP][279] ([i915#15128]) [278]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-tglu-9/igt@kms_pm_dc@dc6-dpms.html [279]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-tglu-6/igt@kms_pm_dc@dc6-dpms.html * igt@kms_pm_dc@dc6-psr: - shard-rkl: [SKIP][280] ([i915#15948]) -> [SKIP][281] ([i915#14544] / [i915#15948]) [280]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-2/igt@kms_pm_dc@dc6-psr.html [281]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@kms_pm_dc@dc6-psr.html * igt@kms_pm_lpsp@kms-lpsp: - shard-rkl: [SKIP][282] ([i915#9340]) -> [SKIP][283] ([i915#3828]) [282]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-4/igt@kms_pm_lpsp@kms-lpsp.html [283]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-5/igt@kms_pm_lpsp@kms-lpsp.html - shard-dg1: [SKIP][284] ([i915#9340]) -> [SKIP][285] ([i915#3828]) [284]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-dg1-16/igt@kms_pm_lpsp@kms-lpsp.html [285]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-dg1-15/igt@kms_pm_lpsp@kms-lpsp.html * igt@kms_psr2_sf@fbc-pr-primary-plane-update-sf-dmg-area: - shard-rkl: [SKIP][286] ([i915#11520]) -> [SKIP][287] ([i915#11520] / [i915#14544]) +1 other test skip [286]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-2/igt@kms_psr2_sf@fbc-pr-primary-plane-update-sf-dmg-area.html [287]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@kms_psr2_sf@fbc-pr-primary-plane-update-sf-dmg-area.html * igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb: - shard-rkl: [SKIP][288] ([i915#11520] / [i915#14544]) -> [SKIP][289] ([i915#11520]) [288]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-6/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html [289]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html * igt@kms_psr@fbc-psr2-cursor-mmap-cpu: - shard-rkl: [SKIP][290] ([i915#1072] / [i915#14544] / [i915#9732]) -> [SKIP][291] ([i915#1072] / [i915#9732]) +2 other tests skip [290]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-6/igt@kms_psr@fbc-psr2-cursor-mmap-cpu.html [291]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@kms_psr@fbc-psr2-cursor-mmap-cpu.html * igt@kms_psr@psr2-sprite-mmap-cpu: - shard-rkl: [SKIP][292] ([i915#1072] / [i915#9732]) -> [SKIP][293] ([i915#1072] / [i915#14544] / [i915#9732]) +5 other tests skip [292]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-2/igt@kms_psr@psr2-sprite-mmap-cpu.html [293]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-6/igt@kms_psr@psr2-sprite-mmap-cpu.html * igt@kms_vrr@flipline: - shard-rkl: [SKIP][294] ([i915#14544] / [i915#15243] / [i915#3555]) -> [SKIP][295] ([i915#15243] / [i915#3555]) [294]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19027/shard-rkl-6/igt@kms_vrr@flipline.html [295]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_165273v6/shard-rkl-4/igt@kms_vrr@flipline.html [i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307 [i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434 [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072 [i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151 [i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520 [i915#118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/118 [i915#12276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12276 [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#12454]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12454 [i915#12712]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12712 [i915#12745]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12745 [i915#12761]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12761 [i915#12805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12805 [i915#13008]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13008 [i915#13030]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13030 [i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049 [i915#13179]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13179 [i915#13356]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13356 [i915#13398]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13398 [i915#13566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13566 [i915#13748]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13748 [i915#13749]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13749 [i915#13781]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13781 [i915#14098]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14098 [i915#14259]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14259 [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#14586]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14586 [i915#14694]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14694 [i915#14995]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14995 [i915#15073]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15073 [i915#15102]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15102 [i915#15128]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15128 [i915#15131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15131 [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#15403]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15403 [i915#15458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15458 [i915#15479]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15479 [i915#15500]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15500 [i915#15582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15582 [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#15865]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15865 [i915#15871]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15871 [i915#15948]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15948 [i915#15989]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15989 [i915#15990]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15990 [i915#16056]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16056 [i915#16079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16079 [i915#16080]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16080 [i915#16081]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16081 [i915#16109]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16109 [i915#16166]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16166 [i915#16184]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16184 [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#16680]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16680 [i915#16837]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16837 [i915#16844]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16844 [i915#16853]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16853 [i915#16857]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16857 [i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769 [i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825 [i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527 [i915#2658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2658 [i915#284]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/284 [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#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#3804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3804 [i915#3828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3828 [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103 [i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423 [i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525 [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613 [i915#4817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4817 [i915#4839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4839 [i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190 [i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286 [i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289 [i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354 [i915#5439]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5439 [i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095 [i915#6113]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6113 [i915#6335]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6335 [i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697 [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#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#9340]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9340 [i915#9683]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9683 [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732 [i915#9766]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9766 [i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906 [i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934 Build changes ------------- * Linux: CI_DRM_19027 -> Patchwork_165273v6 CI-20190529: 20190529 CI_DRM_19027: 75140c4ee9ad250b2524ff5bfffd7f9fe4bb6012 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_9066: 9066 Patchwork_165273v6: 75140c4ee9ad250b2524ff5bfffd7f9fe4bb6012 @ 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_165273v6/index.html [-- Attachment #2: Type: text/html, Size: 102147 bytes --] ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 0/6] Enable joiner cursor fast updates @ 2026-08-18 8:42 Nemesa Garg 2026-08-18 8:42 ` [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane Nemesa Garg 0 siblings, 1 reply; 22+ messages in thread From: Nemesa Garg @ 2026-08-18 8:42 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: chaitanya.kumar.borah, Nemesa Garg This series enables the cursor fast path for joiner mode and adds the missing secondary-plane handling to keep updates correct and synchronized. Nemesa Garg (6): drm/i915/cursor: Check joiner cursor commit status drm/i915/cursor: Add helper to update cursor plane drm/i915/cursor: Handle secondary cursor state drm/i915/cursor: Program secondary cursor planes drm/i915/cursor: Schedule cursor unpin per joined pipe drm/i915/cursor: Allow joiner cursor fast path update drivers/gpu/drm/i915/display/intel_cursor.c | 274 +++++++++++++++----- 1 file changed, 205 insertions(+), 69 deletions(-) -- 2.25.1 ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane 2026-08-18 8:42 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg @ 2026-08-18 8:42 ` Nemesa Garg 0 siblings, 0 replies; 22+ messages in thread From: Nemesa Garg @ 2026-08-18 8:42 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: chaitanya.kumar.borah, Nemesa Garg Move cursor fast path plane state update into helper function. The target hw.crtc is passed as a parameter so a later patch can reuse the helper for joiner secondary pipes, where hw.crtc points at the secondary being programmed while uapi.crtc stays on the primary. v4: Drop uapi.crtc assignment from the helper. [Chaitanya] Assisted-by: Claude:claude-sonnet-4.6 Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> --- drivers/gpu/drm/i915/display/intel_cursor.c | 39 ++++++++++++++------- 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c index bc1e58d5c4c5..db4eaa74fc58 100644 --- a/drivers/gpu/drm/i915/display/intel_cursor.c +++ b/drivers/gpu/drm/i915/display/intel_cursor.c @@ -840,6 +840,29 @@ intel_cursor_joiner_commits_idle(struct intel_display *display, return true; } +static void +intel_cursor_fastpath_update_plane_state(struct intel_plane_state *plane_state, + struct drm_framebuffer *fb, + struct intel_crtc *hw_crtc, + int crtc_x, int crtc_y, + unsigned int crtc_w, unsigned int crtc_h, + u32 src_x, u32 src_y, + u32 src_w, u32 src_h) +{ + drm_atomic_set_fb_for_plane(&plane_state->uapi, fb); + + plane_state->uapi.src_x = src_x; + plane_state->uapi.src_y = src_y; + plane_state->uapi.src_w = src_w; + plane_state->uapi.src_h = src_h; + plane_state->uapi.crtc_x = crtc_x; + plane_state->uapi.crtc_y = crtc_y; + plane_state->uapi.crtc_w = crtc_w; + plane_state->uapi.crtc_h = crtc_h; + + intel_plane_copy_uapi_to_hw_state(NULL, plane_state, plane_state, hw_crtc); +} + static int intel_legacy_cursor_update(struct drm_plane *_plane, struct drm_crtc *_crtc, @@ -915,18 +938,10 @@ intel_legacy_cursor_update(struct drm_plane *_plane, goto out_free; } - drm_atomic_set_fb_for_plane(&new_plane_state->uapi, fb); - - new_plane_state->uapi.src_x = src_x; - new_plane_state->uapi.src_y = src_y; - new_plane_state->uapi.src_w = src_w; - new_plane_state->uapi.src_h = src_h; - new_plane_state->uapi.crtc_x = crtc_x; - new_plane_state->uapi.crtc_y = crtc_y; - new_plane_state->uapi.crtc_w = crtc_w; - new_plane_state->uapi.crtc_h = crtc_h; - - intel_plane_copy_uapi_to_hw_state(NULL, new_plane_state, new_plane_state, crtc); + intel_cursor_fastpath_update_plane_state(new_plane_state, fb, + crtc, + crtc_x, crtc_y, crtc_w, crtc_h, + src_x, src_y, src_w, src_h); ret = intel_plane_atomic_check_with_state(crtc_state, new_crtc_state, old_plane_state, new_plane_state); -- 2.25.1 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH 0/6] Enable joiner cursor fast updates
@ 2026-07-06 11:56 Nemesa Garg
2026-07-06 11:56 ` [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane Nemesa Garg
0 siblings, 1 reply; 22+ messages in thread
From: Nemesa Garg @ 2026-07-06 11:56 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Nemesa Garg
This series enables the cursor fast path for joiner mode
and adds the missing secondary-plane handling to keep updates
correct and synchronized.
Nemesa Garg (6):
drm/i915/cursor: Check joiner cursor commit status
drm/i915/cursor: Add helper to update cursor plane
drm/i915/cursor: Handle secondary cursor state
drm/i915/cursor: Program secondary cursor planes
drm/i915/cursor: Schedule cursor unpin per joined pipe
drm/i915/cursor: Allow joiner cursor fast path update
drivers/gpu/drm/i915/display/intel_cursor.c | 274 +++++++++++++++-----
1 file changed, 204 insertions(+), 70 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 22+ messages in thread* [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane 2026-07-06 11:56 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg @ 2026-07-06 11:56 ` Nemesa Garg 0 siblings, 0 replies; 22+ messages in thread From: Nemesa Garg @ 2026-07-06 11:56 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: Nemesa Garg Move cursor fast path plane state update into helper function. The target hw.crtc is passed as a parameter so a later patch can reuse the helper for joiner secondary pipes, where hw.crtc points at the secondary being programmed while uapi.crtc stays on the primary. v4: Drop uapi.crtc assignment from the helper. [Chaitanya] Assisted-by: Claude:claude-sonnet-4.6 Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> --- drivers/gpu/drm/i915/display/intel_cursor.c | 39 ++++++++++++++------- 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c index af7fc1f888c4..632f7a0a5a63 100644 --- a/drivers/gpu/drm/i915/display/intel_cursor.c +++ b/drivers/gpu/drm/i915/display/intel_cursor.c @@ -841,6 +841,29 @@ intel_cursor_joiner_commits_idle(struct intel_display *display, return true; } +static void +intel_cursor_fastpath_update_plane_state(struct intel_plane_state *plane_state, + struct drm_framebuffer *fb, + struct intel_crtc *hw_crtc, + int crtc_x, int crtc_y, + unsigned int crtc_w, unsigned int crtc_h, + u32 src_x, u32 src_y, + u32 src_w, u32 src_h) +{ + drm_atomic_set_fb_for_plane(&plane_state->uapi, fb); + + plane_state->uapi.src_x = src_x; + plane_state->uapi.src_y = src_y; + plane_state->uapi.src_w = src_w; + plane_state->uapi.src_h = src_h; + plane_state->uapi.crtc_x = crtc_x; + plane_state->uapi.crtc_y = crtc_y; + plane_state->uapi.crtc_w = crtc_w; + plane_state->uapi.crtc_h = crtc_h; + + intel_plane_copy_uapi_to_hw_state(NULL, plane_state, plane_state, hw_crtc); +} + static int intel_legacy_cursor_update(struct drm_plane *_plane, struct drm_crtc *_crtc, @@ -916,18 +939,10 @@ intel_legacy_cursor_update(struct drm_plane *_plane, goto out_free; } - drm_atomic_set_fb_for_plane(&new_plane_state->uapi, fb); - - new_plane_state->uapi.src_x = src_x; - new_plane_state->uapi.src_y = src_y; - new_plane_state->uapi.src_w = src_w; - new_plane_state->uapi.src_h = src_h; - new_plane_state->uapi.crtc_x = crtc_x; - new_plane_state->uapi.crtc_y = crtc_y; - new_plane_state->uapi.crtc_w = crtc_w; - new_plane_state->uapi.crtc_h = crtc_h; - - intel_plane_copy_uapi_to_hw_state(NULL, new_plane_state, new_plane_state, crtc); + intel_cursor_fastpath_update_plane_state(new_plane_state, fb, + crtc, + crtc_x, crtc_y, crtc_w, crtc_h, + src_x, src_y, src_w, src_h); ret = intel_plane_atomic_check_with_state(crtc_state, new_crtc_state, old_plane_state, new_plane_state); -- 2.25.1 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH 0/6] Enable joiner cursor fast updates
@ 2026-06-08 6:26 Nemesa Garg
2026-06-08 6:26 ` [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane Nemesa Garg
0 siblings, 1 reply; 22+ messages in thread
From: Nemesa Garg @ 2026-06-08 6:26 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Nemesa Garg
This series enables the cursor fast path for joiner mode
and adds the missing secondary-plane handling to keep updates
correct and synchronized.
Nemesa Garg (6):
drm/i915/cursor: Check joiner cursor commit status
drm/i915/cursor: Add helper to update cursor plane
drm/i915/cursor: Handle secondary cursor state
drm/i915/cursor: Sync joiner secondary cursor state
drm/i915/cursor: Program secondary cursor planes
drm/i915/cursor: Allow joiner cursor fast path update
drivers/gpu/drm/i915/display/intel_cursor.c | 281 ++++++++++++++++----
1 file changed, 235 insertions(+), 46 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 22+ messages in thread* [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane 2026-06-08 6:26 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg @ 2026-06-08 6:26 ` Nemesa Garg 2026-07-01 16:26 ` Borah, Chaitanya Kumar 0 siblings, 1 reply; 22+ messages in thread From: Nemesa Garg @ 2026-06-08 6:26 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: Nemesa Garg Move cursor fast path plane state update into helper function. Assisted-by: Claude:claude-sonnet-4.6 Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> --- drivers/gpu/drm/i915/display/intel_cursor.c | 41 +++++++++++++++------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c index f8b24865c93a..38234c6292ec 100644 --- a/drivers/gpu/drm/i915/display/intel_cursor.c +++ b/drivers/gpu/drm/i915/display/intel_cursor.c @@ -849,6 +849,31 @@ intel_cursor_joiner_commits_idle(struct intel_display *display, return true; } +static void +intel_cursor_fastpath_update_plane_state(struct intel_plane_state *plane_state, + struct drm_framebuffer *fb, + struct drm_crtc *uapi_crtc, + struct intel_crtc *hw_crtc, + int crtc_x, int crtc_y, + unsigned int crtc_w, unsigned int crtc_h, + u32 src_x, u32 src_y, + u32 src_w, u32 src_h) +{ + drm_atomic_set_fb_for_plane(&plane_state->uapi, fb); + + plane_state->uapi.crtc = uapi_crtc; + plane_state->uapi.src_x = src_x; + plane_state->uapi.src_y = src_y; + plane_state->uapi.src_w = src_w; + plane_state->uapi.src_h = src_h; + plane_state->uapi.crtc_x = crtc_x; + plane_state->uapi.crtc_y = crtc_y; + plane_state->uapi.crtc_w = crtc_w; + plane_state->uapi.crtc_h = crtc_h; + + intel_plane_copy_uapi_to_hw_state(NULL, plane_state, plane_state, hw_crtc); +} + static int intel_legacy_cursor_update(struct drm_plane *_plane, struct drm_crtc *_crtc, @@ -928,18 +953,10 @@ intel_legacy_cursor_update(struct drm_plane *_plane, goto out_free; } - drm_atomic_set_fb_for_plane(&new_plane_state->uapi, fb); - - new_plane_state->uapi.src_x = src_x; - new_plane_state->uapi.src_y = src_y; - new_plane_state->uapi.src_w = src_w; - new_plane_state->uapi.src_h = src_h; - new_plane_state->uapi.crtc_x = crtc_x; - new_plane_state->uapi.crtc_y = crtc_y; - new_plane_state->uapi.crtc_w = crtc_w; - new_plane_state->uapi.crtc_h = crtc_h; - - intel_plane_copy_uapi_to_hw_state(NULL, new_plane_state, new_plane_state, crtc); + intel_cursor_fastpath_update_plane_state(new_plane_state, fb, + &crtc->base, crtc, + crtc_x, crtc_y, crtc_w, crtc_h, + src_x, src_y, src_w, src_h); ret = intel_plane_atomic_check_with_state(crtc_state, new_crtc_state, old_plane_state, new_plane_state); -- 2.25.1 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane 2026-06-08 6:26 ` [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane Nemesa Garg @ 2026-07-01 16:26 ` Borah, Chaitanya Kumar 2026-07-06 8:40 ` Garg, Nemesa 0 siblings, 1 reply; 22+ messages in thread From: Borah, Chaitanya Kumar @ 2026-07-01 16:26 UTC (permalink / raw) To: Nemesa Garg, intel-gfx, intel-xe On 6/8/2026 11:56 AM, Nemesa Garg wrote: > Move cursor fast path plane state update into helper > function. > Not a pure move. > Assisted-by: Claude:claude-sonnet-4.6 > Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> > --- > drivers/gpu/drm/i915/display/intel_cursor.c | 41 +++++++++++++++------ > 1 file changed, 29 insertions(+), 12 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c > index f8b24865c93a..38234c6292ec 100644 > --- a/drivers/gpu/drm/i915/display/intel_cursor.c > +++ b/drivers/gpu/drm/i915/display/intel_cursor.c > @@ -849,6 +849,31 @@ intel_cursor_joiner_commits_idle(struct intel_display *display, > return true; > } > > +static void > +intel_cursor_fastpath_update_plane_state(struct intel_plane_state *plane_state, > + struct drm_framebuffer *fb, > + struct drm_crtc *uapi_crtc, > + struct intel_crtc *hw_crtc, > + int crtc_x, int crtc_y, > + unsigned int crtc_w, unsigned int crtc_h, > + u32 src_x, u32 src_y, > + u32 src_w, u32 src_h) > +{ > + drm_atomic_set_fb_for_plane(&plane_state->uapi, fb); > + > + plane_state->uapi.crtc = uapi_crtc; The original inline block didn't set uapi.crtc. > + plane_state->uapi.src_x = src_x; > + plane_state->uapi.src_y = src_y; > + plane_state->uapi.src_w = src_w; > + plane_state->uapi.src_h = src_h; > + plane_state->uapi.crtc_x = crtc_x; > + plane_state->uapi.crtc_y = crtc_y; > + plane_state->uapi.crtc_w = crtc_w; > + plane_state->uapi.crtc_h = crtc_h; > + > + intel_plane_copy_uapi_to_hw_state(NULL, plane_state, plane_state, hw_crtc); > +} > + > static int > intel_legacy_cursor_update(struct drm_plane *_plane, > struct drm_crtc *_crtc, > @@ -928,18 +953,10 @@ intel_legacy_cursor_update(struct drm_plane *_plane, > goto out_free; > } > > - drm_atomic_set_fb_for_plane(&new_plane_state->uapi, fb); > - > - new_plane_state->uapi.src_x = src_x; > - new_plane_state->uapi.src_y = src_y; > - new_plane_state->uapi.src_w = src_w; > - new_plane_state->uapi.src_h = src_h; > - new_plane_state->uapi.crtc_x = crtc_x; > - new_plane_state->uapi.crtc_y = crtc_y; > - new_plane_state->uapi.crtc_w = crtc_w; > - new_plane_state->uapi.crtc_h = crtc_h; > - > - intel_plane_copy_uapi_to_hw_state(NULL, new_plane_state, new_plane_state, crtc); > + intel_cursor_fastpath_update_plane_state(new_plane_state, fb, > + &crtc->base, crtc, > + crtc_x, crtc_y, crtc_w, crtc_h, > + src_x, src_y, src_w, src_h); I guess the idea was to mirror intel_plane_copy_uapi_to_hw_state(), where a joiner secondary has uapi.crtc == primary but hw.crtc == secondary. But even that seems to be mishandled in the patch that adds the caller for secondary pipes. More on it later. I would suggest explain the two-crtc signature in the commit message otherwise it's looks unmotivated here. == Chaitanya > > ret = intel_plane_atomic_check_with_state(crtc_state, new_crtc_state, > old_plane_state, new_plane_state); ^ permalink raw reply [flat|nested] 22+ messages in thread
* RE: [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane 2026-07-01 16:26 ` Borah, Chaitanya Kumar @ 2026-07-06 8:40 ` Garg, Nemesa 0 siblings, 0 replies; 22+ messages in thread From: Garg, Nemesa @ 2026-07-06 8:40 UTC (permalink / raw) To: Borah, Chaitanya Kumar, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org > -----Original Message----- > From: Borah, Chaitanya Kumar <chaitanya.kumar.borah@intel.com> > Sent: Wednesday, July 1, 2026 9:56 PM > To: Garg, Nemesa <nemesa.garg@intel.com>; intel-gfx@lists.freedesktop.org; > intel-xe@lists.freedesktop.org > Subject: Re: [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane > > > > On 6/8/2026 11:56 AM, Nemesa Garg wrote: > > Move cursor fast path plane state update into helper function. > > > > Not a pure move. > > > Assisted-by: Claude:claude-sonnet-4.6 > > Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> > > --- > > drivers/gpu/drm/i915/display/intel_cursor.c | 41 +++++++++++++++------ > > 1 file changed, 29 insertions(+), 12 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c > > b/drivers/gpu/drm/i915/display/intel_cursor.c > > index f8b24865c93a..38234c6292ec 100644 > > --- a/drivers/gpu/drm/i915/display/intel_cursor.c > > +++ b/drivers/gpu/drm/i915/display/intel_cursor.c > > @@ -849,6 +849,31 @@ intel_cursor_joiner_commits_idle(struct > intel_display *display, > > return true; > > } > > > > +static void > > +intel_cursor_fastpath_update_plane_state(struct intel_plane_state > *plane_state, > > + struct drm_framebuffer *fb, > > + struct drm_crtc *uapi_crtc, > > + struct intel_crtc *hw_crtc, > > + int crtc_x, int crtc_y, > > + unsigned int crtc_w, unsigned int > crtc_h, > > + u32 src_x, u32 src_y, > > + u32 src_w, u32 src_h) > > +{ > > + drm_atomic_set_fb_for_plane(&plane_state->uapi, fb); > > + > > + plane_state->uapi.crtc = uapi_crtc; > > The original inline block didn't set uapi.crtc. > > + plane_state->uapi.src_x = src_x; > > + plane_state->uapi.src_y = src_y; > > + plane_state->uapi.src_w = src_w; > > + plane_state->uapi.src_h = src_h; > > + plane_state->uapi.crtc_x = crtc_x; > > + plane_state->uapi.crtc_y = crtc_y; > > + plane_state->uapi.crtc_w = crtc_w; > > + plane_state->uapi.crtc_h = crtc_h; > > + > > + intel_plane_copy_uapi_to_hw_state(NULL, plane_state, plane_state, > > +hw_crtc); } > > + > > static int > > intel_legacy_cursor_update(struct drm_plane *_plane, > > struct drm_crtc *_crtc, > > @@ -928,18 +953,10 @@ intel_legacy_cursor_update(struct drm_plane > *_plane, > > goto out_free; > > } > > > > - drm_atomic_set_fb_for_plane(&new_plane_state->uapi, fb); > > - > > - new_plane_state->uapi.src_x = src_x; > > - new_plane_state->uapi.src_y = src_y; > > - new_plane_state->uapi.src_w = src_w; > > - new_plane_state->uapi.src_h = src_h; > > - new_plane_state->uapi.crtc_x = crtc_x; > > - new_plane_state->uapi.crtc_y = crtc_y; > > - new_plane_state->uapi.crtc_w = crtc_w; > > - new_plane_state->uapi.crtc_h = crtc_h; > > - > > - intel_plane_copy_uapi_to_hw_state(NULL, new_plane_state, > new_plane_state, crtc); > > + intel_cursor_fastpath_update_plane_state(new_plane_state, fb, > > + &crtc->base, crtc, > > + crtc_x, crtc_y, crtc_w, crtc_h, > > + src_x, src_y, src_w, src_h); > > I guess the idea was to mirror intel_plane_copy_uapi_to_hw_state(), > where a joiner secondary has uapi.crtc == primary but hw.crtc == secondary. > But even that seems to be mishandled in the patch that adds the caller for > secondary pipes. More on it later. > Yes, that's the intent - hw_crtc is passed separately so the caller can keep uapi.crtc == primary while hw.crtc tracks the pipe being programmed. Will address the secondary handling with your follow-up. > I would suggest explain the two-crtc signature in the commit message > otherwise it's looks unmotivated here. > Ack. > == > Chaitanya > > > > > ret = intel_plane_atomic_check_with_state(crtc_state, new_crtc_state, > > old_plane_state, > new_plane_state); ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 0/6] Enable joiner cursor fast updates
@ 2026-04-28 14:16 Nemesa Garg
2026-04-28 14:16 ` [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane Nemesa Garg
0 siblings, 1 reply; 22+ messages in thread
From: Nemesa Garg @ 2026-04-28 14:16 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Nemesa Garg
This series enables the cursor fast path for joiner mode
and adds the missing secondary-plane handling to keep updates
correct and synchronized.
Nemesa Garg (6):
drm/i915/cursor: Check joiner cursor commit status
drm/i915/cursor: Add helper to update cursor plane
drm/i915/cursor: Handle secondary cursor state
drm/i915/cursor: Sync joiner secondary cursor state
drm/i915/cursor: Program secondary cursor planes
drm/i915/cursor: Allow joiner cursor fast path update
drivers/gpu/drm/i915/display/intel_cursor.c | 284 ++++++++++++++++----
1 file changed, 230 insertions(+), 54 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 22+ messages in thread* [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane 2026-04-28 14:16 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg @ 2026-04-28 14:16 ` Nemesa Garg 0 siblings, 0 replies; 22+ messages in thread From: Nemesa Garg @ 2026-04-28 14:16 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: Nemesa Garg Move cursor fast path plane state update into helper function. Assisted-by: Claude:claude-sonnet-4.6 Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> --- drivers/gpu/drm/i915/display/intel_cursor.c | 41 +++++++++++++++------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c index f4db795448bf..5871881d93b4 100644 --- a/drivers/gpu/drm/i915/display/intel_cursor.c +++ b/drivers/gpu/drm/i915/display/intel_cursor.c @@ -819,6 +819,31 @@ intel_cursor_joiner_commits_idle(struct intel_display *display, return true; } +static void +intel_cursor_fastpath_update_plane_state(struct intel_plane_state *plane_state, + struct drm_framebuffer *fb, + struct drm_crtc *uapi_crtc, + struct intel_crtc *hw_crtc, + int crtc_x, int crtc_y, + unsigned int crtc_w, unsigned int crtc_h, + u32 src_x, u32 src_y, + u32 src_w, u32 src_h) +{ + drm_atomic_set_fb_for_plane(&plane_state->uapi, fb); + + plane_state->uapi.crtc = uapi_crtc; + plane_state->uapi.src_x = src_x; + plane_state->uapi.src_y = src_y; + plane_state->uapi.src_w = src_w; + plane_state->uapi.src_h = src_h; + plane_state->uapi.crtc_x = crtc_x; + plane_state->uapi.crtc_y = crtc_y; + plane_state->uapi.crtc_w = crtc_w; + plane_state->uapi.crtc_h = crtc_h; + + intel_plane_copy_uapi_to_hw_state(plane_state, plane_state, hw_crtc); +} + static int intel_legacy_cursor_update(struct drm_plane *_plane, struct drm_crtc *_crtc, @@ -892,18 +917,10 @@ intel_legacy_cursor_update(struct drm_plane *_plane, goto out_free; } - drm_atomic_set_fb_for_plane(&new_plane_state->uapi, fb); - - new_plane_state->uapi.src_x = src_x; - new_plane_state->uapi.src_y = src_y; - new_plane_state->uapi.src_w = src_w; - new_plane_state->uapi.src_h = src_h; - new_plane_state->uapi.crtc_x = crtc_x; - new_plane_state->uapi.crtc_y = crtc_y; - new_plane_state->uapi.crtc_w = crtc_w; - new_plane_state->uapi.crtc_h = crtc_h; - - intel_plane_copy_uapi_to_hw_state(new_plane_state, new_plane_state, crtc); + intel_cursor_fastpath_update_plane_state(new_plane_state, fb, + &crtc->base, crtc, + crtc_x, crtc_y, crtc_w, crtc_h, + src_x, src_y, src_w, src_h); ret = intel_plane_atomic_check_with_state(crtc_state, new_crtc_state, old_plane_state, new_plane_state); -- 2.25.1 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH 0/6] Enable joiner cursor fast updates
@ 2026-04-22 7:37 Nemesa Garg
2026-04-22 7:37 ` [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane Nemesa Garg
0 siblings, 1 reply; 22+ messages in thread
From: Nemesa Garg @ 2026-04-22 7:37 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Nemesa Garg
This series enables the cursor fast path for joiner mode
and adds the missing secondary-plane handling to keep updates
correct and synchronized.
Nemesa Garg (6):
drm/i915/cursor: Check joiner cursor commit status
drm/i915/cursor: Add helper to update cursor plane
drm/i915/cursor: Handle secondary cursor state
drm/i915/cursor: Sync joiner secondary cursor state
drm/i915/cursor: Program secondary cursor planes
drm/i915/cursor: Allow joiner cursor fast path update
drivers/gpu/drm/i915/display/intel_cursor.c | 184 ++++++++++++++++++--
1 file changed, 168 insertions(+), 16 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 22+ messages in thread* [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane 2026-04-22 7:37 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg @ 2026-04-22 7:37 ` Nemesa Garg 0 siblings, 0 replies; 22+ messages in thread From: Nemesa Garg @ 2026-04-22 7:37 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: Nemesa Garg Move cursor fast path plane state update into helper function. Assisted-by: Claude:claude-sonnet-4.6 Signed-off-by: Nemesa Garg <nemesa.garg@intel.com> --- drivers/gpu/drm/i915/display/intel_cursor.c | 41 +++++++++++++++------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c index 609915c798ba..5752ac637a8e 100644 --- a/drivers/gpu/drm/i915/display/intel_cursor.c +++ b/drivers/gpu/drm/i915/display/intel_cursor.c @@ -822,6 +822,31 @@ intel_cursor_joiner_commits_idle(struct intel_display *display, return true; } +static void +intel_cursor_fastpath_update_plane_state(struct intel_plane_state *plane_state, + struct drm_framebuffer *fb, + struct drm_crtc *uapi_crtc, + struct intel_crtc *hw_crtc, + int crtc_x, int crtc_y, + unsigned int crtc_w, unsigned int crtc_h, + u32 src_x, u32 src_y, + u32 src_w, u32 src_h) +{ + drm_atomic_set_fb_for_plane(&plane_state->uapi, fb); + + plane_state->uapi.crtc = uapi_crtc; + plane_state->uapi.src_x = src_x; + plane_state->uapi.src_y = src_y; + plane_state->uapi.src_w = src_w; + plane_state->uapi.src_h = src_h; + plane_state->uapi.crtc_x = crtc_x; + plane_state->uapi.crtc_y = crtc_y; + plane_state->uapi.crtc_w = crtc_w; + plane_state->uapi.crtc_h = crtc_h; + + intel_plane_copy_uapi_to_hw_state(plane_state, plane_state, hw_crtc); +} + static int intel_legacy_cursor_update(struct drm_plane *_plane, struct drm_crtc *_crtc, @@ -895,18 +920,10 @@ intel_legacy_cursor_update(struct drm_plane *_plane, goto out_free; } - drm_atomic_set_fb_for_plane(&new_plane_state->uapi, fb); - - new_plane_state->uapi.src_x = src_x; - new_plane_state->uapi.src_y = src_y; - new_plane_state->uapi.src_w = src_w; - new_plane_state->uapi.src_h = src_h; - new_plane_state->uapi.crtc_x = crtc_x; - new_plane_state->uapi.crtc_y = crtc_y; - new_plane_state->uapi.crtc_w = crtc_w; - new_plane_state->uapi.crtc_h = crtc_h; - - intel_plane_copy_uapi_to_hw_state(new_plane_state, new_plane_state, crtc); + intel_cursor_fastpath_update_plane_state(new_plane_state, fb, + &crtc->base, crtc, + crtc_x, crtc_y, crtc_w, crtc_h, + src_x, src_y, src_w, src_h); ret = intel_plane_atomic_check_with_state(crtc_state, new_crtc_state, old_plane_state, new_plane_state); -- 2.25.1 ^ permalink raw reply related [flat|nested] 22+ messages in thread
end of thread, other threads:[~2026-08-27 9:46 UTC | newest] Thread overview: 22+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-08-21 4:47 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg 2026-08-21 4:47 ` [PATCH 1/6] drm/i915/cursor: Check joiner cursor commit status Nemesa Garg 2026-08-27 9:45 ` Borah, Chaitanya Kumar 2026-08-21 4:47 ` [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane Nemesa Garg 2026-08-27 9:45 ` Borah, Chaitanya Kumar 2026-08-21 4:47 ` [PATCH 3/6] drm/i915/cursor: Handle secondary cursor state Nemesa Garg 2026-08-27 9:45 ` Borah, Chaitanya Kumar 2026-08-21 4:47 ` [PATCH 4/6] drm/i915/cursor: Program secondary cursor planes Nemesa Garg 2026-08-27 9:46 ` Borah, Chaitanya Kumar 2026-08-21 4:47 ` [PATCH 5/6] drm/i915/cursor: Schedule cursor unpin per joined pipe Nemesa Garg 2026-08-27 9:46 ` Borah, Chaitanya Kumar 2026-08-21 4:47 ` [PATCH 6/6] drm/i915/cursor: Allow joiner cursor fast path update Nemesa Garg 2026-08-27 9:46 ` Borah, Chaitanya Kumar 2026-08-21 5:49 ` ✓ i915.CI.BAT: success for Enable joiner cursor fast updates (rev6) Patchwork 2026-08-21 9:05 ` ✗ i915.CI.Full: failure " Patchwork -- strict thread matches above, loose matches on Subject: below -- 2026-08-18 8:42 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg 2026-08-18 8:42 ` [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane Nemesa Garg 2026-07-06 11:56 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg 2026-07-06 11:56 ` [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane Nemesa Garg 2026-06-08 6:26 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg 2026-06-08 6:26 ` [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane Nemesa Garg 2026-07-01 16:26 ` Borah, Chaitanya Kumar 2026-07-06 8:40 ` Garg, Nemesa 2026-04-28 14:16 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg 2026-04-28 14:16 ` [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane Nemesa Garg 2026-04-22 7:37 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg 2026-04-22 7:37 ` [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane Nemesa Garg
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox