Announcement

Collapse
No announcement yet.

AMDGPU To Allow Memory Re-Clocking Soon For Multi-Monitor Setups

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • MasterCATZ
    replied
    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.

    Leave a comment:


  • aufkrawall
    replied
    Fluid 144Hz in browsers work without issues on Polaris/Vega + Compton/Picom/TearFree if CPU clock governor doesn't screw you. It's not a real mystery, is it?

    Leave a comment:


  • make_adobe_on_Linux!
    replied
    $2000 bounty of interest for Linux @ 144hz+
    https://forums.blurbusters.com/viewt...=3842&start=30

    Leave a comment:


  • Zgembo
    replied
    Originally posted by nuetzel View Post
    Are you really running with 'echo auto > /sys/class/drm/card0/device/power_dpm_force_performance_level'?
    yes, confirmed.

    Originally posted by nuetzel View Post
    And 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 Post
    Oh, which gfx card are you running? - RX580, 8 GB, here.
    Sapphire RX570 ITX 4GB.
    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.
    1. I still see flicker on Ubuntu login screen (but hardly, this thing ain't graphically intensive at all, rarely boosts MCLK)
    2. 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).
    3. 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
      the flicker goes away! If i just turn output on and off, flicker is still there. Only lowering resolution from native 1080p and then reverting it back fixes the issue. Also, after a screen-lock loop (both monitors go power-safe off, then on on key input), flicker comes back, but is fixable with the above forced resolution mode switch.
    I've compared all xrandr mode and setting details for 1080p mode before forced switch and after, I don't see any difference in monitor modes, regardless the fact if I get MCLK re-clocking flicker or not. It must be something wrong with how kernel sets the 1080p mode on one of my monitors, in a way that vblanks are not in sync, probably due to different connector types... But then why forcing mode changes via xrandr and "Display Settings" fixes the thing?
    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.

    Leave a comment:


  • nuetzel
    replied
    Originally posted by Zgembo View Post
    A month later...
    ...finally had time to try 5.4rc1 @ Ubutnu, and f*ing finally I am able to enable OverDrive
    Code:
    ppfeaturemask=0xfffd7fff
    and with
    Code:
    amdgpu.dcfeaturemask=2
    in place, no moar flicker on MCLK changes!!! Two identical FHD 60Hz monitors here.
    Wow, I've running 'amd-staging-drm-next' #bc344f1322e1 (drm/amdgpu/dm/mst: Use ->atomic_best_encoder) which should incorporate all this stuff but it still flicker on MCLK changes.

    I'm using this flags:
    Code:
    amdgpu.dcfeaturemask=2
    (for 2 or more identical monitors)
    Code:
    ppfeaturemask=0xffff ffff
    (unlock access to adjust clocks and voltages)

    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...
    As Alex stated severall times: Hardware only can save power with identical monitors.
    Last edited by nuetzel; 04 October 2019, 03:57 PM. Reason: Added RX580.

    Leave a comment:


  • Zgembo
    replied
    A month later...
    ...finally had time to try 5.4rc1 @ Ubutnu, and f*ing finally I am able to enable OverDrive
    Code:
    ppfeaturemask=0xfffd7fff
    and with
    Code:
    amdgpu.dcfeaturemask=2
    in place, no moar flicker on MCLK changes!!! Two identical FHD 60Hz monitors 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...

    Leave a comment:


  • nuetzel
    replied
    And there is some work left:

    https://bugs.freedesktop.org/show_bug.cgi?id=110865

    Leave a comment:


  • Solid State Brain
    replied
    Among other things, with the latest improvements do GPU fans now turn off automatically at low temperature?

    Leave a comment:


  • aufkrawall
    replied
    Originally posted by pal666 View Post
    can vrr(freesync) be used to align them?
    I think the Nvidia Windows driver does that.

    Leave a comment:


  • betam4x
    replied
    Originally posted by ernstp View Post
    Windows user have been complaining a lot about this, they will be envious!
    Maybe AMD users will, but my NVIDIA card downclocks the memory just fine...with 2 Freesync 4k displays no less.

    Leave a comment:

Working...
X