<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Hello,<br>
</p>
<p>I experience a bug that prevents me from setting the MCLK of my
Vega 64 LC above 1107MHz. <br>
</p>
<p>I am using Unigine Superposition 1.1 in "Game"-mode to check the
performance by watching the FPS.</p>
<br>
<p><b>Behaviour with a single monitor:</b></p>
<p>First I set the MCLK to a known stable value below 1108MHz:</p>
<p><i>$ 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
</i><br>
</p>
<p>In Unigine Superposition the FPS increase as expected. <br>
</p>
<p>pp_dpm_mclk also confirms the change.
</p>
<p><i>$ 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</i><br>
</p>
<blockquote>
<p>0: 167Mhz<br>
1: 500Mhz<br>
2: 800Mhz<br>
3: 1100Mhz *</p>
</blockquote>
<p><br>
</p>
<p>After that I set the MCLK to a stable value above 1107MHz:<br>
</p>
<p><i>$ 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
</i><br>
</p>
<p>In Unigine Superposition the FPS drop drastically.<br>
</p>
<p>pp_dpm_mclk indicates that the MCLK is stuck in state 0 (167MHz):<br>
</p>
<blockquote>
<p>0: 167Mhz *<br>
1: 500Mhz<br>
2: 800Mhz<br>
3: 1200Mhz</p>
</blockquote>
<p><br>
</p>
<p><b>Behaviour with multiple monitors that have different refresh
rates:</b><br>
</p>
<p>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.</p>
<p><br>
</p>
<p>Now I try to set the MCLK to a value above 1107MHz:<br>
</p>
<p><i>$ 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
</i></p>
<p>The FPS in Unigine Superposition remain the same as they were
with 945MHz.<br>
</p>
<p>pp_dpm_mclk shows however that the value was set:<br>
</p>
<blockquote>
<p>0: 167Mhz<br>
1: 500Mhz<br>
2: 800Mhz<br>
3: 1200Mhz *<br>
</p>
</blockquote>
<p><br>
</p>
<p>Then I set the MCLK to a value of 1107MHz or lower:<br>
</p>
<p><i>$ 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
</i></p>
<p>The FPS in Unigine Superposition <b>increase</b>.<br>
</p>
<p>pp_dpm_mclk again confirms the set value:<br>
</p>
<blockquote>
<p>0: 167Mhz<br>
1: 500Mhz<br>
2: 800Mhz<br>
3: 1100Mhz *</p>
</blockquote>
<p><br>
</p>
Finally I increase MCLK to a known unstable value:<br>
<p><i>$ 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
</i></p>
<p>The FPS in Unigine Superposition remain the same. I therefore
believe the value was not actually applied.<br>
</p>
<p>However pp_dpm_mclk shows that it was:<br>
</p>
<blockquote>
<p>0: 167Mhz<br>
1: 500Mhz<br>
2: 800Mhz<br>
3: 1300Mhz *</p>
</blockquote>
<p><br>
</p>
<p>amdgpu_pm_info also claims that the value was set:<br>
</p>
<p><i>$ sudo watch cat /sys/kernel/debug/dri/1/amdgpu_pm_info</i><br>
</p>
<blockquote>
<p>GFX Clocks and Power:<br>
1300 MHz (MCLK)<br>
27 MHz (SCLK)<br>
1348 MHz (PSTATE_SCLK)<br>
800 MHz (PSTATE_MCLK)<br>
825 mV (VDDGFX)<br>
4.0 W (average GPU)<br>
</p>
</blockquote>
<p>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.</p>
<p>A stable value (e.g. 1200MHz) causes the same behaviour. I just
chose 1300MHz to be sure.<br>
</p>
<p><br>
</p>
<p><br>
</p>
<p>Tested on these Kernels:</p>
<blockquote>
<p>Arch-Linux 5.0.9 (Arch)<br>
</p>
<p>Linux 5.1-rc6 (Ubuntu)<br>
</p>
<p>Linux 5.0 with amd-staging-drm-next (Ubuntu)
(<a class="moz-txt-link-freetext" href="https://github.com/M-Bab/linux-kernel-amdgpu-binaries">https://github.com/M-Bab/linux-kernel-amdgpu-binaries</a>)<br>
</p>
</blockquote>
<p>(Same behaviour on every kernel.)<br>
</p>
<p><br>
</p>
<p>Tested on this hardware:</p>
<blockquote>
<p>CPU: Intel i7-8700k</p>
<p>Motherboard: MSI Z370 Gaming Pro Carbon<br>
</p>
<p>GPU: Powercolor Vega 64 Liquid Cooled (Memory stable below
1220MHz, tested on Windows 10 with Wattman and Unigine
Superposition)<br>
</p>
</blockquote>
<p><br>
</p>
<p>Unigine Superposition "Game"-Mode settings: <br>
</p>
<blockquote>
<p>Preset: Custom<br>
</p>
<p>Fullscreen: Disabled</p>
<p>Resolution: 3840x2160 (4K UHD)</p>
<p>Shaders Quality: Extreme</p>
<p>Textures Quality: High</p>
<p>Vsync: Off</p>
<p>Depth of Field: On</p>
<p>Motion Blur: On</p>
</blockquote>
<p><br>
</p>
<p>I hope this helps.</p>
<p>Yanik Yiannakis<br>
</p>
</body>
</html>