Bug Report: [PowerPlay] MCLK can't be set above 1107MHz on Vega 64

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I experience a bug that prevents me from setting the MCLK of my Vega 64 LC above 1107MHz.

I am using Unigine Superposition 1.1 in "Game"-mode to check the performance by watching the FPS.


Behaviour with a single monitor:

First I set the MCLK to a known stable value below 1108MHz:

$ echo "m 3 1100 950" > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/0000:03:00.0/pp_od_clk_voltage

In Unigine Superposition the FPS increase as expected.

pp_dpm_mclk also confirms the change.

$ watch cat /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/0000:03:00.0/pp_dpm_mclk

0: 167Mhz
1: 500Mhz
2: 800Mhz
3: 1100Mhz *


After that I set the MCLK to a stable value above 1107MHz:

$ echo "m 3 1200 950" > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/0000:03:00.0/pp_od_clk_voltage

In Unigine Superposition the FPS drop drastically.

pp_dpm_mclk indicates that the MCLK is stuck in state 0 (167MHz):

0: 167Mhz *
1: 500Mhz
2: 800Mhz
3: 1200Mhz


Behaviour with multiple monitors that have different refresh rates:

My monitors have different refresh rates. This causes the MCLK to stay in state 3 (945MHz stock) which is the expected behaviour as I understand it.


Now I try to set the MCLK to a value above 1107MHz:

$ echo "m 3 1200 950" > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/0000:03:00.0/pp_od_clk_voltage

The FPS in Unigine Superposition remain the same as they were with 945MHz.

pp_dpm_mclk shows however that the value was set:

0: 167Mhz
1: 500Mhz
2: 800Mhz
3: 1200Mhz *


Then I set the MCLK to a value of 1107MHz or lower:

$ echo "m 3 1100 950" > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/0000:03:00.0/pp_od_clk_voltage

The FPS in Unigine Superposition increase.

pp_dpm_mclk again confirms the set value:

0: 167Mhz
1: 500Mhz
2: 800Mhz
3: 1100Mhz *


Finally I increase MCLK to a known unstable value:

$ echo "m 3 1300 950" > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/0000:03:00.0/pp_od_clk_voltage

The FPS in Unigine Superposition remain the same. I therefore believe the value was not actually applied.

However pp_dpm_mclk shows that it was:

0: 167Mhz
1: 500Mhz
2: 800Mhz
3: 1300Mhz *


amdgpu_pm_info also claims that the value was set:

$ sudo watch cat /sys/kernel/debug/dri/1/amdgpu_pm_info

GFX Clocks and Power:
        1300 MHz (MCLK)
        27 MHz (SCLK)
        1348 MHz (PSTATE_SCLK)
        800 MHz (PSTATE_MCLK)
        825 mV (VDDGFX)
        4.0 W (average GPU)

Again, I think the displayed MCLK is false and the memory still runs at 1100MHz because the performance in Unigine Superposition indicates this and 1300MHz would cause a crash immediately.

A stable value (e.g. 1200MHz) causes the same behaviour. I just chose 1300MHz to be sure.



Tested on these Kernels:

Arch-Linux 5.0.9 (Arch)

Linux 5.1-rc6 (Ubuntu)

Linux 5.0 with amd-staging-drm-next (Ubuntu) (https://github.com/M-Bab/linux-kernel-amdgpu-binaries)

(Same behaviour on every kernel.)


Tested on this hardware:

CPU: Intel i7-8700k

Motherboard: MSI Z370 Gaming Pro Carbon

GPU: Powercolor Vega 64 Liquid Cooled (Memory stable below 1220MHz, tested on Windows 10 with Wattman and Unigine Superposition)


Unigine Superposition "Game"-Mode settings:

Preset: Custom

Fullscreen: Disabled

Resolution: 3840x2160 (4K UHD)

Shaders Quality: Extreme

Textures Quality: High

Vsync: Off

Depth of Field: On

Motion Blur: On


I hope this helps.

Yanik Yiannakis

_______________________________________________
amd-gfx mailing list
amd-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux