GPU artifcats since xf86-video-amdgpu-21.0.0 (bisected)
Since xf86-video-amdgpu-21.0.0
, a corruption is seen in some fullscreen games. It's also seen when logging out of the desktop session or switching focus between fullscreen games.
It reproduces consistently in Brutal Legend (Steam), in what appears like every frame:
I bisected it to the following commit:
git bisect start
# bad: [0d68a91dce88eeacd15bf1159ddc6200a01b1f2e] Bump version for the 21.0.0 release
git bisect bad 0d68a91dce88eeacd15bf1159ddc6200a01b1f2e
# good: [b467d2569a003da05ad222b0dc095bee5eec450a] Bump version for the 19.1.0 release
git bisect good b467d2569a003da05ad222b0dc095bee5eec450a
# good: [e2cd67abb4aa8b5c942b46dd66dac091b9fad7ad] Bail from amdgpu_pixmap_get_handle with ShadowFB
git bisect good e2cd67abb4aa8b5c942b46dd66dac091b9fad7ad
# bad: [442efe73dd579dc36445a3b232937abbed9d2fbb] Make drmmode_crtc_scanout_create/destroy static
git bisect bad 442efe73dd579dc36445a3b232937abbed9d2fbb
# bad: [e923642bae6077f71a8f251fe885342757737224] gitlab CI: update to use the latest CI templates
git bisect bad e923642bae6077f71a8f251fe885342757737224
# bad: [0732f81a2c67354ddfa7a495bee6b0997c6ef244] glamor: Make pixmap scanout compatible if its dimensions are
git bisect bad 0732f81a2c67354ddfa7a495bee6b0997c6ef244
# good: [cb27a5b1120266e4baaa3eb784ff041977ded43f] Handle NULL fb_ptr in pixmap_get_fb
git bisect good cb27a5b1120266e4baaa3eb784ff041977ded43f
# first bad commit: [0732f81a2c67354ddfa7a495bee6b0997c6ef244] glamor: Make pixmap scanout compatible if its dimensions are
commit 0732f81a2c67354ddfa7a495bee6b0997c6ef244 (HEAD, refs/bisect/bad)
Author: Michel Dänzer <mdaenzer@redhat.com>
Date: Tue Apr 21 10:54:47 2020 +0200
glamor: Make pixmap scanout compatible if its dimensions are
Namely, if its dimensions match those of the screen pixmap (enough that
it could stand in for it). When that's the case, the pixmap may end up
being scanned out directly due to page flipping via the Present
extension, e.g. with xfwm4 --vblank=xpresent .
v2:
* Use AMDGPU_CREATE_PIXMAP_SCANOUT instead of second-guessing in
amdgpu_alloc_pixmap_bo, fixes corruption when resizing from smaller
to larger virtual size via RandR.
Closes: https://gitlab.freedesktop.org/xorg/driver/xf86-video-amdgpu/-/issues/10
OS: Fedora 34 (GNOME 40, Xorg session)
GPU: RX 580
Mesa: 21.1.4 (Running on Flatpak)
Kernel: 5.13.10-200.fc34
Log from 0732f81a: Xorg.0.log
Edited by Dor Askayo