Adjusting memory speed according to display

Deucher, Alexander Alexander.Deucher at amd.com
Fri Aug 12 16:34:53 UTC 2016


You have to be root to make changes to the sysfs files.  To force the clocks low or high or auto (dynamically adjust based on load) or manual (select individual clock levels):

echo XXX > /sys/class/drm/card0/device/power_dpm_force_performance_level
where XXX is low or high or auto or manual

To manually select clock levels from the available clocks use the pp_dpm_sclk and mclk files.  Read the files back to get the current setting.  First select manual using the above command, then select the clock levels to enable.  E.g.,

echo 4 > /sys/class/drm/card0/device/pp_dpm_sclk

Will manually select the 4th clock level for sclk.

Alex

From: Jarkko Korpi [mailto:jarkko_korpi at hotmail.com]
Sent: Friday, August 12, 2016 10:25 AM
To: Deucher, Alexander
Cc: amd-gfx at lists.freedesktop.org
Subject: Re: Adjusting memory speed according to display


Can you give me correct command to manually set up clocks high or low? ARCH based quides are usully really good, but not all the commands it suggests dont work. I get no permission errors. Most likely I am trying the wrong directory/gpu. I got intel skylake 6600K, which has integrated intel gpu.



It's hard to remember the exact locations of directories so I made myself a script that prints the output of current clocks.


cat /sys/class/drm/card0/device/pp_dpm_sclk
cat /sys/class/drm/card0/device/pp_dpm_mclk
cat /sys/class/drm/card0/device/power_dpm_state


These lines work just fine. So I assume the ati is card0. It's also used via DP.



Also lowering the voltage or speed of memory would help a bit. But either of these is manually adjustable?

________________________________
From: Deucher, Alexander <Alexander.Deucher at amd.com<mailto:Alexander.Deucher at amd.com>>
Sent: Friday, August 12, 2016 2:08 PM
To: 'Jarkko Korpi'; amd-gfx at lists.freedesktop.org<mailto:amd-gfx at lists.freedesktop.org>
Subject: RE: Adjusting memory speed according to display


You have to set up the display to send audio data over HDMI.  The audio is embedded in the stream.  You have to set up the video stream to use audio.  You need to raise the memory clocks to provide the necessary bandwidth for multiple display and dynamic mclk switching is not supported with multiple displays enabled because the switches are done during the vertical blanking period.  If you have multiple displays with different timing, the blanking periods do not match so glitch free switching is not possible.



If you want more control, you can use the sysfs files to either manually force the clocks low or high or manually  enable only specific clock levels for sclk and mclk.



Alex



From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf Of Jarkko Korpi
Sent: Thursday, August 11, 2016 9:45 PM
To: amd-gfx at lists.freedesktop.org<mailto:amd-gfx at lists.freedesktop.org>
Subject: Adjusting memory speed according to display



I have rx480 which I connect into 1920x1080 pc screen via DP and audio into external amplifier via HDMI. This causes rx480 to raise the memory speed to 2000 while doing really simple tasks like watching youtube. I really dont need thatkind of speed for memory. And I am not aware that it's possible to change between 300mhz 2000mhz memory speeds, but gpu supports this in steps which would be really great for memory too. I only need the audio data submited to the amplifier. Is it possible somehow to form a patch that it somehow recognizes my amplifier and understands that I am sending audio that I dont need/want it to max the memory speed? I would be really happy for such patch for personal use. If it's too hacky to be merged into upstream.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20160812/ff10d6a2/attachment-0001.html>


More information about the amd-gfx mailing list