Unstable performance (periodic and repeating patterns of fps change) and changing VDDGFX
@baryluk
Submitted by Witold Baryluk Assigned to Default DRI bug account
Link to original bug (#111987)
Description
AMD Radeon Fury X.
Linux debian 5.2.0-3-amd64 #1 (closed) SMP Debian 5.2.17-1 (2019-09-26) x86_64 GNU/Linux
ii xserver-xorg-video-radeon 1:19.0.1-1 amd64 X.Org X server -- AMD/ATI Radeon display driver
ii xserver-xorg-video-amdgpu 19.0.1-1 amd64 X.Org X server -- AMDGPU display driver
ii xserver-xorg-video-radeon 1:19.0.1-1 amd64 X.Org X server -- AMD/ATI Radeon display driver
ii libdrm-radeon1:amd64 2.4.99-1
amd64 Userspace interface to radeon-specific kernel DRM services -- runtime
ii libdrm-amdgpu1:amd64 2.4.99-1 amd64 Userspace interface to amdgpu-specific kernel DRM services -- runtime
I was able to reproduce the issue in few titles:
Overwatch (64-bit Windows game) with various Wine and DXVK versions, as well when using Wine OpenGL renderer.
Talos (native 64 bit Linux game) with Vulkan renderer.
Tested with both Mesa 19.2.1-1 with LLVM 9 from Debian, and custom compiled Mesa 19.3.0-devel with LLVM 10 and ACO backend compilers.
If I setup the game to render constantly same things on screen (I do that by simply going to a corner of the map, and looking at the ground or a corner, where there is minimal amount of geometry and variability), I initially get very high and stable frame rate, of lets say 105 FPS (plus minus 1 FPS). However, if I wait long enough there are periodic (not sporadic, but actually periodic, and exactly repeatable) situations where FPS drops. During that period the GPU load increases from 30% to 100%, sometimes with one or two intermediate steps (depends on the game and setup).
I also notice that the GPU VDD is changing during these period.
I eliminated all other sources of variability. Nothing running in background.
Reported GPU temperature is stable at <32 deg C, and during testing is stable and flat.
Sometimes, if I keep the game running long enough, it will stabilize and stop doing that. But sometimes if I wait long enough it will reenter this behaviour back. Most of the time the behaviour is extremaly repetitive and predictable. Not random.
Please see attached frametime graph (captured with modified Mesa vulkan overlay) for Talos and Overatch.