ACK/Cmnt: [SRU][R][PATCH v2 0/2] amdgpu: Fix garbled display when switching workspaces

Andrei Gherzan andrei.gherzan at canonical.com
Thu Sep 10 10:40:53 UTC 2026


On 26/09/08 06:52PM, Aaron Ma via kernel-team wrote:
> BugLink: https://bugs.launchpad.net/bugs/2166730
> 
> SRU Justification:
> 
> [ Impact ]
> On AMD systems with DCN graphics, garbled display artifacts and horizontal flickering occur when switching workspaces or playing video.
> 
> This is caused by a race condition where a page flip completion event is delivered to userspace before the hardware has latched the flip. Userspace then renders to the active display buffer, causing visual corruption. PSR and Replay features widen this window.
> 
> [ Fix ]
> Backport upstream commits:
> - 48ab86360af1 ("drm/amd/display: check GRPH_FLIP status before sending event"):
>   - Arm flip completion only after hardware programming completes.
>   - Query hardware flip-pending status directly via dc_get_flip_pending_on_otg().
>   - Only deliver completion in the VUPDATE_NO_LOCK handler once hardware confirms the flip is complete.
>   - Optimistically send the event immediately if hardware latched during programming.
> - 8419331e64d9 ("drm/amd/display: Exit idle optimizations before programming"):
>   - Grab reference on vblank counter prior to workqueue flush and hardware programming to exit PSR/IPS idle optimizations cleanly.
> 
> [ Test Plan ]
> 1. On an AMD system with DCN graphics, switch repeatedly between workspaces and play video.
> 2. Without the fix: Garbled display artifacts appear frequently.
> 3. With the fix: Workspaces switch smoothly with no screen corruption.
> 
> [ Where problems could occur ]
> Changes affect the amdgpu display page flip completion and idle optimization paths. If flip status is misreported, page flip events could be delayed or missed, causing frame drops or stutter.
> 

Try to keep a short summary for each patchset version. In this case, a summary
of the changes between v1 and v2.

Thanks for these backports!

> Leo Li (2):
>   drm/amd/display: check GRPH_FLIP status before sending event
>   drm/amd/display: Exit idle optimizations before programming
> 
>  .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 243 +++++++++++++-----
>  drivers/gpu/drm/amd/display/dc/core/dc.c      |  45 ++++
>  drivers/gpu/drm/amd/display/dc/dc.h           |   1 +
>  3 files changed, 230 insertions(+), 59 deletions(-)

Acked-by: Andrei Gherzan <andrei.gherzan at canonical.com>

-- 
Andrei Gherzan
gpg: rsa4096/D4D94F67AD0E9640
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20260910/9f119d40/attachment.sig>


More information about the kernel-team mailing list