Kernel 6.3.10 amdgpu drm regression causes incorrect layer order in gamescope session
Brief summary of the problem:
The following commits in kernel 6.3.10 cause invalid layer ordering inside a gamescope session:
b0cb56fc6e3096c9da04c30d9b501da84dae2b4f drm/amd/display: fix the system hang while disable PSR 1ca399f127e0a372537625b1d462ed586f5d9139 drm/amd/display: Add wrapper to call planes and stream update da2d907e051d591717d00e28e67ab341b961fd05 drm/amd/display: Use dc_update_planes_and_stream
Normally while running a gamescope session (such as on the steam deck via SteamOS, or ChimeraOS, or HoloISO) when you enable the Performance Overlay (mangohud) normally it is displayed above all all other layers like this:
Instead, with these commits introduced basically it's placing the game on top of the overlay (and steam's overlay controls as well)
What I mean by "invalid layer ordering" in the problem description is better displayed by the video below:
I first validated 6.3.9 does not have this problem, then begain bisecting. All 3 have to be reverted. I tried just the last one and also tried just the first two, neither fixed it until all 3 were reverted.
How to reproduce the issue:
Reproducing the issue requires having a functional steam gamescope-session installation and attempting to enable the performance overlay inside that session. Unfortunately the other distributions that have this are all immutable and do not ship with 6.3.10 kernel (SteamOS, HoloISO, ChimeraOS).
The following Nobara SteamDeck edition ISO can be used:
Any AMD gpu that uses the amdgpu driver should be able to reproduce the issue. The ISO provided comes with affected kernel 6.3.10-200. If you switch to desktop mode then update the system it should upgrade to 6.3.10-203, which I've reverted the commits in and fixes the issue.
Package sources for both: