Radeon RX 5600M low shader clocks on Dell G5 15 SE
Brief summary of the problem:
The RX 5600M dedicated GPU on my Dell G5 15 SE does not reach its full game clock when running a GPU load.
I can force the max clock of 1750MHz using echo high > /sys/class/drm/card0/device/power_dpm_force_performance_level
and I can confirm the clocks in mangohud, GALLIUM_HUD and through the hwmon sysfs while something like glxgears or vkcube is running. But once I load game or benchmark like Unigine Heaven or any Proton+DXVK game the shader clock ramps down to 400MHz and bounces between 400MHz and 800MHz depending on GPU load. The integrated Vega GPU does not show any clock speed problems and runs at a constant 1500MHz regardless of GPU load.
Hardware description:
- CPU: Ryzen 5 4600H with Radeon Graphics
- GPU: Radeon RX 5600M 6GB
- System Memory: 8GB DDR4 3200MHz dual channel
- Display(s): Dell G5 15 SE built in display (60Hz no freesync capabilites)
- Type of Diplay Connection: eDP
System infomration:
- Distro name and Version: openSUSE Tumbleweed
- Kernel version: 5.8.0-1
- Custom kernel: 5.8.0-1 openSUSE Tumbleweed standard kernel
- AMD package version: No Package (Mesa 20.1.4)
How to reproduce the issue:
Run any intensive 3D application or game and watch the shader clocks in either an overlay or through the hwmon interface. Forcing any power state besides low (auto, high, profile_standard, profile_peak) does nothing while the game/benchmark is running. The shader clock stays between 400MHz and 500MHz regardless of which performance mode is selected. Selecting low sets the shader clock to 300MHz. On high or profile_peak modes the shader clock jumps back up to 1750MHz once the 3D application is closed.