Warning: amdgpu: [drm] [PLANE:70:plane-5] async flip with non-fast update when playing games
Michel Dänzer told me in mesa/mesa#9397 (closed) that my report on Mesa is more likely a Kernel issue, hence I am reporting it here, too. While benchmarking Total War: Troy (Epic Games Store) on my custom Kernel 6.4.4 that includes this Kernel patch from Simon Ser, I now see the following dmesg output:
[20. Jul 18:28] amdgpu 0000:05:00.0: amdgpu: [drm] [PLANE:70:plane-5] async flip with non-fast update
More details on my Kernel along with the patches used can be found in my Github repo.
The patch description points to a problem with VSYNC: Silently degrading async flips to vsync is not the expected behavior from a uAPI point-of-view. Xorg expects async flips to fail if unsupported, to be able to fall back to a blit. i915 already behaves this way. This patch aligns amdgpu with uAPI expectations and returns a failure when an async flip is not possible.
This corresponds with some stuttering especially in the second benchmark test in Total War:Troy (which is called "campaign_benchmark" and accessible via the advanced video options menu) which runs at very high frame rates above 120 fps most of the time in 1080p at 120 Hz on my HP X27q monitor. I have seen this dmesg entry with both Total War: Troy (DX11, VSYNC OFF) and Sniper Elite 5 (Vulkan, VSYNC ON), but it is probably affecting other games just as well.
System:
Host: klx99 Kernel: 6.4.4-4.1-cachyos-lto arch: x86_64 bits: 64
Desktop: KDE Plasma v: 5.27.6 Distro: CachyOS
Machine:
Type: Desktop System: LENOVO product: GAMING TF v: N/A
Mobo: Lenovo model: X99-TF Gaming v: G368J V1.1
serial: <superuser required> UEFI: American Megatrends v: CX99DE26
date: 10/10/2020
CPU:
Info: 18-core model: Intel Xeon E5-2696 v3 bits: 64 type: MT MCP cache:
L2: 4.5 MiB
Graphics:
Device-1: AMD Navi 21 [Radeon RX 6950 XT] driver: amdgpu v: kernel
Display: x11 server: X.Org v: 21.1.99 with: Xwayland v: 23.1.2 driver: X:
loaded: amdgpu unloaded: modesetting dri: radeonsi gpu: amdgpu
resolution: 2560x1440
API: OpenGL v: 4.6 Mesa 23.3.0-devel (git-75990e5564) renderer: AMD
Radeon RX 6950 XT (navi21 LLVM 15.0.7 DRM 3.52 6.4.4-4.1-cachyos-lto)
These are my X11 settings in /usr/share/X11/xorg.conf.d/10-amdgpu.conf:
Section "OutputClass"
Identifier "AMDgpu"
MatchDriver "amdgpu"
Driver "amdgpu"
Option "DRI" "3"
Option "VariableRefresh" "true"
Option "TearFree" "true"
EndSection