Strobe-like, previous-frames flickering, noclip/no-clipping-like effect on Linux-based Framework 13 AMD Ryzen 7040

What could be the reason for many GUI applications (maybe mostly Qt-based?) causing a Doom-like noclip cheat code no-clipping flickering effect?

framework-13-amd-flickering-noclip-small
(above GIF version; better quality MP4 version at imgur )

My hardware:

  • Framework Laptop 13 AMD Ryzen™ 7040 Series

My firmware:

  • latest BIOS 3.05

My operating system:

  • Debian 12 bookworm
  • Linux mylaptop 6.6.13+bpo-rt-amd64 #1 SMP PREEMPT_RT Debian 6.6.13-1~bpo12+1 (2024-02-15) x86_64 GNU/Linux
  • Wayland

I tried all of the following workarounds, none of which resolve the issue:

Does this occur with a live CD of a supported OS ?

(note that this list is out of date, as Ubuntu 24.04 is now supported but not listed)

FYI you can drop amdgpu.sg_display=0 on kernel command line with newer BIOS.

For your reported issue though try a newer mesa.

Dear Mario,
thank you very much for your feedback.
As per your comment, because my Framework 13 AMD laptop uses the latest (as of this writing) BIOS 3.05, I have removed amdgpu.sg_display=0 from the kernel command line.

Regarding using a newer Mesa version:

Debian 12 bookworm (kernel 6.6.13+bpo-rt-amd64, via apt package bookworm-backports/kernel/linux-image-rt-amd64) only provides Mesa up to version 22.3.6 (e.g. via apt package bookworm/mesa-vulkan-drivers).

I therefore built Mesa’s latest version (as of this writing) 24.0.6 on my system. I’m reluctant to install this version system-wide on my system, therefore I chose a custom Mesa installation directory.

Mesa build commands I used
sudo apt update
sudo apt-get build-dep mesa
# will also install outdated Debian bookworm meson version 1.0.1-5, which is not compatible with mesa-24.0.6 build process.
# Therefore get up-to-date meson version from pip, os of this writing meson 1.4.0:
pipx install meson

mkdir -p /opt/build/mesa
mkdir -p /opt/install/mesa

# as mesa-24.0.6 depends on libdrm_intel version >=2.4.119 and as Debian bookworm only provides version 2.4.114,
# build up-to-date libdrm(_intel) version 2.4.120 first, before continuing with mesa build:
git clone --depth 1 --branch libdrm-2.4.120 https://gitlab.freedesktop.org/mesa/drm.git /opt/build/mesa/drm
cd /opt/build/mesa/drm/
meson setup builddir/ -Dprefix=/opt/install/mesa/drm
ninja -C builddir/ install

# sanity-check that built libdrm version is indeed 2.4.120:
PKG_CONFIG_PATH=/opt/install/mesa/drm/lib/x86_64-linux-gnu/pkgconfig/ pkg-config libdrm_intel --modversion
# shall output:
## 2.4.120

# via https://docs.mesa3d.org/meson.html#pkg-config-path
# clone mesa (for disambiguation, here called "mesa-3d"):
git clone --depth 1 --branch mesa-24.0.6 https://gitlab.freedesktop.org/mesa/mesa.git /opt/build/mesa/mesa-3d

# build mesa, and provide meson with pkg_config_path pointing to the previously built up-to-date mesa-drm version,
cd /opt/build/mesa/mesa-3d/
meson setup builddir/ -Dprefix=/opt/install/mesa/mesa-3d -Dpkg_config_path=/opt/install/mesa/drm/lib/x86_64-linux-gnu/pkgconfig/
ninja -C builddir/ install

As per its install documentation, it is possible to test/run/use a custom Mesa installation build selectively by invoking meson devenv -C $MESA_MESON_BUILDDIR <some-command>.

While invoking commands using the custom build will report that the latest Mesa version 24.0.6 in in use, programs flickering with the old Mesa version still flicker with the 24.0.6 version:

meson devenv -C /opt/build/mesa/mesa-3d/builddir glxinfo
## OK
## includes the following output:
## OpenGL core profile version string: 4.6 (Core Profile) Mesa 24.0.6 (git-c659c7e660)


meson devenv -C /opt/build/mesa/mesa-3d/builddir vulkaninfo --summary
## OK
## includes the following output:
##         apiVersion         = 1.3.274
##         driverVersion      = 24.0.6
##         vendorID           = 0x1002
##         deviceID           = 0x15bf
##         deviceType         = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
##         deviceName         = AMD Radeon Graphics (RADV GFX1103_R1)
##         driverID           = DRIVER_ID_MESA_RADV
##         driverName         = radv
##         driverInfo         = Mesa 24.0.6 (git-c659c7e660)
##         conformanceVersion = 1.3.0.0
##         deviceUUID         = 00000000-c100-0000-0000-000000000000
##         driverUUID         = 414d442d-4d45-5341-2d44-525600000000


meson devenv -C /opt/build/mesa/mesa-3d/builddir /usr/lib/x86_64-linux-gnu/qt5/examples/opengl/paintedwindow/paintedwindow
## NOT OK
## "paintedwindow" (Debian apt package "qtbase5-examples") still shows flickering when moving its window or moving another window in front of it.

meson devenv -C /opt/build/mesa/mesa-3d/builddir digikam
## NOT OK
## digiKam (Debian apt package "digikam", version 7.9.0 ( https://packages.debian.org/en/bookworm/digikam )) still shows flickering as soon as "Settings > Configure digiKam..." is selected.

Part of the problem is that I think the compositor isn’t using your new mesa in that approach.

I think you can safely put the mesa in /usr/local for a system wide install and restart your DE and see if it still happens. If it does and you want to go back to an older mesa you can just wipe /usr/local and restart your DE and you should be back to the distro one.

Also, what compositor are you using? If not Mutter or kwin, can you try one of those to rule out this being a compositor bug?