Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Medium] Setting `ignore_damage_clips` silently drops damage updates instead of forcing a full update when MPO is requested. --
--- Patch [1]: Patch "drm/amd/display: Handle struct drm_plane_state.ignore_damage_clips" has been added to the 6.12-stable tree --- commit f3d595b0a2d71acfd337d504cdb933e78875455e Author: [email protected] <[email protected]> drm/amd/display: Handle struct drm_plane_state.ignore_damage_clips The mode-setting pipeline can disable damage clippings for a commit by setting ignore_damage_clips in struct drm_plane_state. This commit updates the DCN code to do a full update if this flag is set. > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > index 8d97f17ffe662..2f00287d2c2ae 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c [ ... ] > @@ -5718,8 +5718,10 @@ static void fill_dc_dirty_rects(struct drm_plane > *plane, > if (new_plane_state->rotation != DRM_MODE_ROTATE_0) > goto ffu; > > - num_clips = drm_plane_get_damage_clips_count(new_plane_state); > - clips = drm_plane_get_damage_clips(new_plane_state); > + if (!new_plane_state->ignore_damage_clips) { > + num_clips = drm_plane_get_damage_clips_count(new_plane_state); > + clips = drm_plane_get_damage_clips(new_plane_state); > + } [Severity: Medium] When ignore_damage_clips is true, num_clips remains 0. Does this silently drop damage updates instead of forcing a full update when MPO is requested? Further down in fill_dc_dirty_rects(), if dm_crtc_state->mpo_requested is true and both the framebuffer ID and bounding box are unchanged (e.g., frontbuffer rendering or property-only updates): if (num_clips) { for (; i < num_clips; clips++) fill_dc_dirty_rect(new_plane_state->plane, &dirty_rects[i], clips->x1, clips->y1, clips->x2 - clips->x1, clips->y2 - clips->y1, &i, false); } else if (fb_changed && !bb_changed) { fill_dc_dirty_rect(new_plane_state->plane, &dirty_rects[i], new_plane_state->crtc_x, new_plane_state->crtc_y, new_plane_state->crtc_w, new_plane_state->crtc_h, &i, false); } flip_addrs->dirty_rect_count = i; return; If fb_changed and bb_changed are false, i remains 0. With num_clips also 0, flip_addrs->dirty_rect_count becomes 0. The update appears to be dropped entirely rather than falling back to a full update via the ffu path. > > if (num_clips && (!amdgpu_damage_clips || (amdgpu_damage_clips < 0 && > is_psr_su))) -- Sashiko AI review ยท https://sashiko.dev/#/patchset/2026072919-worshiper-candied-889c@gregkh?part=1
