power saving too agressive on RX 6800, causes stuttering with fps limiters
Brief summary of the problem:
The RX 6800 doesn't sustain GPU clock in a sufficient manner, causing Hitman 2 with DXVK to show bad frame time consistency when an fps limiter such as libstrangle or mangohud is used. The issue goes away by forcing max GPU clock via echo high > power_dpm_force_performance_level
. It is not related to VRAM clock switching, as the the driver doesn't allow VRAM downclocking with that display/EDID at all (which btw. is not great either, as the Windows driver does allow it).
Frame time consistency with default GPU downclocking when GPU load is below a certain threshold ( non-flat graph = bad, stuter is noticeable, it can also be worse than what is seen in the screenshot):
Comparable scene with maximum GPU clock forced ( flat frame time graph = good, it's flat all the time; please don't mind the different fps limit, the issue happens with all kinds of limits that cause GPU load to fall below a certain threshold):
I haven't observed this issue with RX 5700 XT GPU (though 1440p resolution, opposed to 2160p on the RX 6800) and it also doesn't seem to be an issue with the RX 6800 on Windows. It's btw. not specific in any way to vsync, the above screenshots where both with vsync off (though VRR was active).
So my conclusion is that the parameters that define when to clock up/hold high clock aren't set aggressive enough in amdgpu Linux kernel driver for the RX 6800 (no custom amdgpu.ppfeaturemask mask defined).
Hardware description:
- CPU: Ryzen R5 3600X (with performance CPU clock governor)
- GPU: RX 6800 reference design
- System Memory: 32GB
- Display(s): 1x 2160p 60Hz
- Type of Diplay Connection: DP
System information:
- Distro name and Version: Arch
- Kernel version: Linux 5.11/5.10
- both recent mesa git-master and amdvlk-pro 20.45
- above 4G Decoding is disabled
How to reproduce the issue:
Set an fps limit in e.g. Hitman 2 Steam Proton (strangle 55 %command%) and provoke different GPU loads (e.g. low load by looking at the sky).