Artifacts introduced in Kernel 6.8.0 and later when Gamescope isn’t compositing on certain display modesets
Brief summary of the problem:
Some commit or series of commits between kernels 6.7 and 6.8 in what I believe to be drm/amd seems to cause the internal display of the Steam Deck OLED (Galileo revision) to artifact, particularly while:
- launching games within gamescope-session while using a recent version of gamescope (this type of artifacting is the least consistent to repro)
- opening the side menus repeatedly (this seems more consistent than 1, especially with D3D12 titles)
- invoking the cursor repeatedly by holding one of the Deck's front menu buttons and moving it around, and then letting it hide itself again (very consistent for me, especially prone on D3D12 titles)
I'm including one picture here in the summary for reference of what the artifacting looks like when it happens in point 1 above (Manor Lords, kernel 6.8.2)
The issue only started after Linux 6.8 was released, and HDR no longer needed a large patchset to enable in the kernel. I have tried kernels 6.7.0 -> 6.7.12 with the large 0001-amd-hdr.patch (6.7)
I linked below and have been unable to replicate the issue. I have been able to replicate the issues on kernels 6.8.0-rc3 -> 6.8.9 with the smaller 0001-amd-hdr.patch(6.8)
patch. There is also steamdeck-oled-hw-quirks.patch
which patches some of the remaining hardware display quirks. Additionally this issue has potentially been replicated by another user on 6.5.0-valve3, the latest tag of linux-integration which just recently merged some 6.8/6.9 drm amd commits. I have not confirmed this for myselff.
Hardware description:
- CPU: AMD Custom APU 0932 (Vangogh platform, Steam Deck OLED/Galileo)
- GPU: Advanced Micro Devices, Inc. [AMD/ATI] Sephiroth [AMD Custom GPU 0405] [1002:1435] (rev ae)
- System Memory: 16GB
- Display(s): Internal OLED Display
- Type of Display Connection: eDP
System information:
- Distro name and Version: Nobara 39 (Fedora) and SteamOS 3.7 (the current version on SteamOS Main)
- Kernel version:
- for Nobara: 6.7.0 -> 6.7.12 are GOOD, 6.8.0-rc2 -> 6.8.9 are BAD (see below for patches used)
- for SteamOS: 6.5.0-valve3 which has commits from 6.8 drm/amd may be BAD (no extra patches)
- Custom kernel: tested with vanilla kernel plus following patches below:
- Nobara 6.7 patches 0001-amd-hdr.patch (6.7) and steamdeck-oled-hw-quirks.patch(6.7)
- Nobara 6.8 patches 0001-amd-hdr.patch(6.8) and steamdeck-oled-hw-quirks(6.8)
- AMD official driver version: N/A
How to reproduce the issue:
- Pick a D3D12 game (I used this list and tested Hades 2 for the most part, but also Jusant and Manor Lords).
- Launch the game, and get through any initial logo/loading screens.
- Once in the game's menu, try toggling the side Steam menus in gamescope-session repeatedly
- Try invoking steam's cursor over the game by holding either of two front menu buttons on the Steam Deck
- On 6.8 kernels and later, you should be seeing artifacting like documented in videos 1 and 2 below by now.
Attached files:
Screenshots/video files
- kernel 6.8.2, side menu artifacting is documented in video 1
- kernel 6.8.2, artifacting after cursor invocation is documented in video 2
- kernel 6.7.6, no artifacting documented like in either of the above examples in video 3
Log files (for system lockups / game freezes / crashes)
Honestly, I saw nothing in my dmesg/journal/gamescope/proton logs that raised any red flags. I'm happy to share any logs from any kernel upon request.