Originally posted by pal666
View Post
Announcement
Collapse
No announcement yet.
AMDGPU To Allow Memory Re-Clocking Soon For Multi-Monitor Setups
Collapse
X
-
And there is some work left:
Comment
-
A month later...
...finally had time to try 5.4rc1 @ Ubutnu, and f*ing finally I am able to enable OverDriveCode:ppfeaturemask=0xfffd7fff
Code:amdgpu.dcfeaturemask=2
Thank you @adg5f, thank you AMD.
Now, just some thoughts here. I wonder if somehow the driver could calculate the "least common multiple" of refresh rates of all monitors, what would become "safe" vblank period for all monitors, and only allow MCLK change at these particular moments. For example, suppose we have one 60Hz monitor and another 144Hz monitor. LCM for 60 & 144 would be 720, meaning that every 720 refreshes on both monitors, vblank should align, allowing to change MCLK without visible impact...
Comment
-
Originally posted by Zgembo View PostA month later...
...finally had time to try 5.4rc1 @ Ubutnu, and f*ing finally I am able to enable OverDriveCode:ppfeaturemask=0xfffd7fff
Code:amdgpu.dcfeaturemask=2
I'm using this flags:
Code:amdgpu.dcfeaturemask=2
Code:ppfeaturemask=0xffff ffff
I'll try with your boot parameters and latest 'amd-staging-drm-next', too.
Are you really running with 'echo auto > /sys/class/drm/card0/device/power_dpm_force_performance_level'?
And please send 'cat /sys/kernel/debug/dri/0/amdgpu_pm_info'
Oh, which gfx card are you running? - RX580, 8 GB, here.
Thank you @adg5f, thank you AMD.
Now, just some thoughts here. I wonder if somehow the driver could calculate the "least common multiple" of refresh rates of all monitors, what would become "safe" vblank period for all monitors, and only allow MCLK change at these particular moments. For example, suppose we have one 60Hz monitor and another 144Hz monitor. LCM for 60 & 144 would be 720, meaning that every 720 refreshes on both monitors, vblank should align, allowing to change MCLK without visible impact...
Comment
-
Originally posted by nuetzel View PostAre you really running with 'echo auto > /sys/class/drm/card0/device/power_dpm_force_performance_level'?
Originally posted by nuetzel View PostAnd please send 'cat /sys/kernel/debug/dri/0/amdgpu_pm_info'Code:# cat /sys/kernel/debug/dri/0/amdgpu_pm_info Clock Gating Flags Mask: 0x3fbcf Graphics Medium Grain Clock Gating: On Graphics Medium Grain memory Light Sleep: On Graphics Coarse Grain Clock Gating: On Graphics Coarse Grain memory Light Sleep: On Graphics Coarse Grain Tree Shader Clock Gating: Off Graphics Coarse Grain Tree Shader Light Sleep: Off Graphics Command Processor Light Sleep: On Graphics Run List Controller Light Sleep: On Graphics 3D Coarse Grain Clock Gating: Off Graphics 3D Coarse Grain memory Light Sleep: Off Memory Controller Light Sleep: On Memory Controller Medium Grain Clock Gating: On System Direct Memory Access Light Sleep: Off System Direct Memory Access Medium Grain Clock Gating: On Bus Interface Medium Grain Clock Gating: Off Bus Interface Light Sleep: On Unified Video Decoder Medium Grain Clock Gating: On Video Compression Engine Medium Grain Clock Gating: On Host Data Path Light Sleep: On Host Data Path Medium Grain Clock Gating: On Digital Right Management Medium Grain Clock Gating: Off Digital Right Management Light Sleep: Off Rom Medium Grain Clock Gating: On Data Fabric Medium Grain Clock Gating: Off Address Translation Hub Medium Grain Clock Gating: Off Address Translation Hub Light Sleep: Off GFX Clocks and Power: 1000 MHz (MCLK) 329 MHz (SCLK) 500 MHz (PSTATE_SCLK) 1000 MHz (PSTATE_MCLK) 800 mV (VDDGFX) 33.162 W (average GPU) GPU Temperature: 39 C GPU Load: 0 % MEM Load: 0 % UVD: Disabled VCE: Disabled
Originally posted by nuetzel View PostOh, which gfx card are you running? - RX580, 8 GB, here.
Now, you mentioned that it doesn't work for you, I did dome double checking... It works for me, but under some very specific conditions.
This may be the thing that matter, I have identical 1080p monitors, but they are connected via different means; primary via DisplayPort, secondary via DVI-D.- I still see flicker on Ubuntu login screen (but hardly, this thing ain't graphically intensive at all, rarely boosts MCLK)
- When I login into Wayland session, my secondary monitor does mode switch for some reason, and then re-clocking works smooth as silk. It only goes bad after screen-lock loop (see below), but can be fixed again by setting, applying, un-setting & re-appllying "Adjust for TV" (underscan) in "Display Settings" (sorry, have no clue what would be xrandr equivalent for Wayland for changing the modes in cli).
- When I login into X session, there is no mode change, but I get heavy flicker! However, for some strange reason, if I do
Code:xrandr --output DVI-D-0 --mode 1680x1050 --right-of DisplayPort-0; xrandr --output DVI-D-0 --mode 1920x1080 --right-of DisplayPort-0
Unfortunately, my card only has one of each port type, so I can't check if same problem happens when monitors are connected via same ports (perhaps you could try?). I guess this kernel feature is rather young, but rather important for some of us, we shall do some bug reports upstream...Last edited by Zgembo; 06 October 2019, 12:48 AM.
- Likes 1
Comment
-
Ubuntu 19.10 5.4.3-050403-generic + 5.5-rc1
wish mine would stop running the memory flat out ( its manually edited bios putting to a speed that gives it a chance to not roast @ 90 deg all day )
I know if I manually edit the bios and drop it to 150mhz its 12w , and if it gets really hot I unplug the second monitor and it runs @ 10w but that means every time I want to play a game I need to switch bios
/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="amdgpu.dcfeaturemask=2 amdgpu.ppfeaturemask=0xfffd7fff amdgpu.ppfeaturemask=0xffffffff amdgpu.dc=1 amdgpu.cik_support=1 radeon.cik_support=0 radeon.si_support=0 amdgpu.si_support=1"
sudo cat /sys/kernel/debug/dri/0/amdgpu_pm_info
Clock Gating Flags Mask: 0x0
Graphics Medium Grain Clock Gating: Off
Graphics Medium Grain memory Light Sleep: Off
Graphics Coarse Grain Clock Gating: Off
Graphics Coarse Grain memory Light Sleep: Off
Graphics Coarse Grain Tree Shader Clock Gating: Off
Graphics Coarse Grain Tree Shader Light Sleep: Off
Graphics Command Processor Light Sleep: Off
Graphics Run List Controller Light Sleep: Off
Graphics 3D Coarse Grain Clock Gating: Off
Graphics 3D Coarse Grain memory Light Sleep: Off
Memory Controller Light Sleep: Off
Memory Controller Medium Grain Clock Gating: Off
System Direct Memory Access Light Sleep: Off
System Direct Memory Access Medium Grain Clock Gating: Off
Bus Interface Medium Grain Clock Gating: Off
Bus Interface Light Sleep: Off
Unified Video Decoder Medium Grain Clock Gating: Off
Video Compression Engine Medium Grain Clock Gating: Off
Host Data Path Light Sleep: Off
Host Data Path Medium Grain Clock Gating: Off
Digital Right Management Medium Grain Clock Gating: Off
Digital Right Management Light Sleep: Off
Rom Medium Grain Clock Gating: Off
Data Fabric Medium Grain Clock Gating: Off
Address Translation Hub Medium Grain Clock Gating: Off
Address Translation Hub Light Sleep: Off
GFX Clocks and Power:
1000 MHz (MCLK)
798 MHz (SCLK)
662 MHz (PSTATE_SCLK)
800 MHz (PSTATE_MCLK)
900 mV (VDDGFX)
74.162 W (average GPU)
GPU Temperature: 73 C
GPU Load: 0 %
MEM Load: 0 %
UVD: Disabled
VCE: Disabled
This is mine idle @ night
xrandr
Screen 0: minimum 320 x 200, current 2560 x 1024, maximum 16384 x 16384
DP-1 disconnected (normal left inverted right x axis y axis)
DVI-D-1 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm x 301mm
1280x1024 60.02*+ 75.02
DVI-D-2 connected primary 1280x1024+1280+0 (normal left inverted right x axis y axis) 376mm x 301mm
1280x1024 60.02*+ 75.02
Last edited by MasterCATZ; 14 December 2019, 06:36 AM.
Comment
Comment