All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Thomas Zimmermann" <tzimmermann@suse.de>
Cc: linux-hyperv@vger.kernel.org
Subject: Re: [PATCH v4 06/10] drm/damage-helper: Test src coord in drm_atomic_helper_check_plane_damage()
Date: Sat, 30 May 2026 19:09:07 +0000	[thread overview]
Message-ID: <20260530190907.8CC991F00893@smtp.kernel.org> (raw)
In-Reply-To: <20260530185716.65688-7-tzimmermann@suse.de>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Accessor functions `drm_plane_get_damage_clips()` and `drm_plane_get_damage_clips_count()` return outdated partial clips instead of forcing a full update when `ignore_damage_clips` is set, causing drivers to skip full plane updates during modesets and `src` coordinate changes.
--

commit 18363d38b23996b07f12d04823d811d72b0f24d4
Author: Thomas Zimmermann <tzimmermann@suse.de>

drm/damage-helper: Test src coord in drm_atomic_helper_check_plane_damage()

This commit updates drm_atomic_helper_check_plane_damage() to evaluate if
the source coordinates change across atomic commits. If they do, it sets the
ignore_damage_clips flag in the plane state to force a full update, and
removes this check from drm_atomic_helper_damage_iter_init().

> diff --git a/drivers/gpu/drm/drm_damage_helper.c b/drivers/gpu/drm/drm_damage_helper.c
> index 945fac8dc27b6..f492a59edbeb5 100644
> --- a/drivers/gpu/drm/drm_damage_helper.c
> +++ b/drivers/gpu/drm/drm_damage_helper.c

[ ... ]

> @@ -67,19 +68,23 @@ static void convert_clip_rect_to_rect(const struct drm_clip_rect *src,
>   * &drm_plane_state.src as damage.
>   */
>  void drm_atomic_helper_check_plane_damage(struct drm_atomic_commit *state,
> -					  struct drm_plane_state *plane_state)
> +					  const struct drm_plane_state *old_plane_state,
> +					  struct drm_plane_state *new_plane_state)
>  {
>  	struct drm_crtc_state *crtc_state;
>  
> -	if (plane_state->crtc) {
> +	if (!drm_rect_equals(&new_plane_state->src, &old_plane_state->src))
> +		new_plane_state->ignore_damage_clips = true;
> +

[Severity: High]
Will this cause display corruption in drivers that manually read the damage
clips?

The accessors drm_plane_get_damage_clips_count() and
__drm_plane_get_damage_clips() in drivers/gpu/drm/drm_plane.c do not check
the ignore_damage_clips flag. 

If a driver calls them directly, such as AMDGPU in fill_dc_dirty_rects():

    num_clips = drm_plane_get_damage_clips_count(new_plane_state);
    clips = drm_plane_get_damage_clips(new_plane_state);

won't it receive the stale or partial user-provided damage clips instead of
performing a full update when the src coordinates change or during a full
modeset? 

> +	if (new_plane_state->crtc) {
>  		crtc_state = drm_atomic_get_new_crtc_state(state,
> -							   plane_state->crtc);
> +							   new_plane_state->crtc);
>  
>  		if (WARN_ON(!crtc_state))
>  			return;
>  
>  		if (drm_atomic_crtc_needs_modeset(crtc_state))
> -			plane_state->ignore_damage_clips = true;
> +			new_plane_state->ignore_damage_clips = true;
>  	}
>  }

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260530185716.65688-1-tzimmermann@suse.de?part=6

  reply	other threads:[~2026-05-30 19:09 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-30 18:53 [PATCH v4 00/10] drm: Improve logic behind damage handling Thomas Zimmermann
2026-05-30 18:53 ` [PATCH v4 01/10] drm/damage-helper: Do not alter damage clips on modeset, but ignore them Thomas Zimmermann
2026-05-30 19:10   ` sashiko-bot
2026-06-01 10:16   ` Javier Martinez Canillas
2026-05-30 18:53 ` [PATCH v4 02/10] drm/atomic-helpers: Evaluate plane damage after atomic_check Thomas Zimmermann
2026-05-30 19:08   ` sashiko-bot
2026-06-01 10:19   ` Javier Martinez Canillas
2026-05-30 18:53 ` [PATCH v4 03/10] drm/ingenic: Remove calls to drm_atomic_helper_check_plane_damage() Thomas Zimmermann
2026-05-30 19:05   ` sashiko-bot
2026-06-01 10:20   ` Javier Martinez Canillas
2026-05-30 18:53 ` [PATCH v4 04/10] drm/appletbdrm: Allocate request/response buffers in begin_fb_access Thomas Zimmermann
2026-05-30 19:09   ` sashiko-bot
2026-06-01 10:21   ` Javier Martinez Canillas
2026-05-30 18:53 ` [PATCH v4 05/10] drm/atomic_helper: Do not evaluate plane damage before atomic_check Thomas Zimmermann
2026-06-01 10:22   ` Javier Martinez Canillas
2026-05-30 18:53 ` [PATCH v4 06/10] drm/damage-helper: Test src coord in drm_atomic_helper_check_plane_damage() Thomas Zimmermann
2026-05-30 19:09   ` sashiko-bot [this message]
2026-06-01 10:27   ` Javier Martinez Canillas
2026-05-30 18:53 ` [PATCH v4 07/10] drm/damage-helper: Remove old state from drm_atomic_helper_damage_iter_init() Thomas Zimmermann
2026-06-01 10:28   ` Javier Martinez Canillas
2026-06-01 14:01   ` Hamza Mahfooz
2026-05-30 18:53 ` [PATCH v4 08/10] drm/damage-helper: Remove old state from drm_atomic_helper_damage_merged() Thomas Zimmermann
2026-05-30 19:16   ` sashiko-bot
2026-06-01 10:29   ` Javier Martinez Canillas
2026-05-30 18:53 ` [PATCH v4 09/10] drm/damage-helper: Rename state parameters in damage helpers Thomas Zimmermann
2026-06-01 10:29   ` Javier Martinez Canillas
2026-05-30 18:53 ` [PATCH v4 10/10] drm/vmwgfx: Remove unused field struct vmwgfx_du_update_plane.old_state Thomas Zimmermann
2026-06-01 10:30   ` Javier Martinez Canillas
2026-05-30 19:19 ` ✗ Fi.CI.BUILD: failure for drm: Improve logic behind damage handling (rev3) Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260530190907.8CC991F00893@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=linux-hyperv@vger.kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=tzimmermann@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.