Just finished compiling and testing these on the amd-staging-drm-next branch, as they did not patch cleanly on the latest 5.9 mainline kernel.
(Also big thanks to Michael for the heads up, and EQ@amd for the patches!)
I can confirm Zero RPM is working on my RX 480:
It did, however, introduce flickering issues on my multi-monitor setup (two 24" 144hz FreeSync screens) when overclocking the video card. Without overclocking, no flickering issues.
Running sudo cat /sys/kernel/debug/dri/0/amdgpu_pm_info showed VDDGFX fluctuating between 800 mV to 975 mV, and SCLK and MCLK both set to 300.
By running the following commands I was able to fix the flickering by changing the mclk value to a higher clock, and then setting it back to 300 with a fixed 975 mV. It appears 800 mV is too low of a setting for dual-monitors at 300/300.
rocm-smi --setmlevel 0 2200 1075 --autorespond y
sleep 2
rocm-smi --setmlevel 0 300 975 --autorespond y
Not sure why that works. (the "sleep 2" command was necessary; sleep 1 or omitting sleep doesn't allow the change to "settle in" if used in a startup script). Interesting to note that both rocm-smi commands above are necessary to fix the flickering. Simply setting mclk to 300 with 975 mV does not fix it. Also, if I don't use 2200 but use 600 (just something higher than 300), the flickering comes back after a few seconds. So I'm a bit stumped why this workaround fixes the flickering, but it does.
So after the above, I have no other problems with the patches.
A couple other things:
Prior to these patches coming out, --setmlevel via rocm-smi did not work in changing the mclk frequencies.
Also prior to these patches, although I was able to overclock my memory (say to 2200, stock is 2000), it was stuck on that frequency and no longer able to scale down (say to 300Mhz) which resulted in using far more power at idle or light use than I needed, as shown below:
Last thing I want to mention, using Feral GameMode's config to set a script to run at game start and game stop, I can set the mclk to 2200 (overclocked value) and 300 (powersave value) to save on power when idle and still enjoy the overclocking when gaming. Probably too much tinkering for the average user, but wanted to mention it.
(Also big thanks to Michael for the heads up, and EQ@amd for the patches!)
I can confirm Zero RPM is working on my RX 480:
It did, however, introduce flickering issues on my multi-monitor setup (two 24" 144hz FreeSync screens) when overclocking the video card. Without overclocking, no flickering issues.
Running sudo cat /sys/kernel/debug/dri/0/amdgpu_pm_info showed VDDGFX fluctuating between 800 mV to 975 mV, and SCLK and MCLK both set to 300.
By running the following commands I was able to fix the flickering by changing the mclk value to a higher clock, and then setting it back to 300 with a fixed 975 mV. It appears 800 mV is too low of a setting for dual-monitors at 300/300.
rocm-smi --setmlevel 0 2200 1075 --autorespond y
sleep 2
rocm-smi --setmlevel 0 300 975 --autorespond y
Not sure why that works. (the "sleep 2" command was necessary; sleep 1 or omitting sleep doesn't allow the change to "settle in" if used in a startup script). Interesting to note that both rocm-smi commands above are necessary to fix the flickering. Simply setting mclk to 300 with 975 mV does not fix it. Also, if I don't use 2200 but use 600 (just something higher than 300), the flickering comes back after a few seconds. So I'm a bit stumped why this workaround fixes the flickering, but it does.
So after the above, I have no other problems with the patches.
A couple other things:
Prior to these patches coming out, --setmlevel via rocm-smi did not work in changing the mclk frequencies.
Also prior to these patches, although I was able to overclock my memory (say to 2200, stock is 2000), it was stuck on that frequency and no longer able to scale down (say to 300Mhz) which resulted in using far more power at idle or light use than I needed, as shown below:
Last thing I want to mention, using Feral GameMode's config to set a script to run at game start and game stop, I can set the mclk to 2200 (overclocked value) and 300 (powersave value) to save on power when idle and still enjoy the overclocking when gaming. Probably too much tinkering for the average user, but wanted to mention it.
Comment