AMD self panel refresh

Hello amd users!
I am searching people who have amd laptops and have tried the latest kernel( 5.5 Rc2)
Have you got better power usage in your laptops? do you know what is psr?

I have a HP laptop with a Ryzen 2500U and I've seen some gains with kernel 5.5 compared to 5.4 or 4.19. With 4.19 the battery life was at about 6 hours, with some applications open it was more like 5.5h, sometimes 5h. With kernels 5.1 - 5.4 that got a bit better by about half an hour.
If I have nothing open at all then the new battery life is about 7.5 hours. Once I use applications though (like Okular for example, just viewing some pdfs) then there doesn't seem to be much of a difference anymore. Using Firefox writing this results in about 5.5 hours, it changes a bit over time but should be about right (with WiFi on, so not bad at all, just not much at all compared to the improvements I've heard about with PSR)

Edit: now I actually charged the thing completely full (the numbers from before were calculated from the estimation for about 50%) and it looks like it's now more than 7 hours of actual usage, with WiFi on and multiple applications (Dolphin, Firefox & Okular) open.

can you tell me the output of cat /sys/kernel/debug/dri/0/state please?if you have more GPU's try with 0 and 1.
And can you give me the numbers of the power usage from powertop with linux 5.4 and 5.5 when idling? I am very curious of the power usage of your ryzen..
mine ryzen( asus fx505dy is so bad at powwer usage in linux.. more than 10 hours in windows and less than 4 in linux..

  1. to sum up in the PD, you are very happy with the new numbers beacuse your laptop is during more than before, no?

can you tell me the output of cat /sys/kernel/debug/dri/0/state please?

Finally someone who could tell me a way to check if PSR is actually active... It doesn't seem to be after all.

sudo cat /sys/kernel/debug/dri/0/state

plane[40]: plane-0
        crtc=(null)
        fb=0
        crtc-pos=0x0+0+0
        src-pos=0.000000x0.000000+0.000000+0.000000
        rotation=1
        normalized-zpos=0
        color-encoding=ITU-R BT.601 YCbCr
        color-range=YCbCr limited range
plane[43]: plane-1
        crtc=(null)
        fb=0
        crtc-pos=0x0+0+0
        src-pos=0.000000x0.000000+0.000000+0.000000
        rotation=1
        normalized-zpos=0
        color-encoding=ITU-R BT.601 YCbCr
        color-range=YCbCr limited range
plane[46]: plane-2
        crtc=(null)
        fb=0
        crtc-pos=0x0+0+0
        src-pos=0.000000x0.000000+0.000000+0.000000
        rotation=1
        normalized-zpos=0
        color-encoding=ITU-R BT.601 YCbCr
        color-range=YCbCr limited range
plane[49]: plane-3
        crtc=crtc-0
        fb=77
                allocated by = Xorg
                refcount=2
                format=XR24 little-endian (0x34325258)
                modifier=0x0
                size=1920x1080
                layers:
                        size[0]=1920x1080
                        pitch[0]=7680
                        offset[0]=0
                        obj[0]:
                                name=0
                                refcount=3
                                start=001079db
                                size=9109504
                                imported=no
        crtc-pos=1920x1080+0+0
        src-pos=1920.000000x1080.000000+0.000000+0.000000
        rotation=1
        normalized-zpos=0
        color-encoding=ITU-R BT.601 YCbCr
        color-range=YCbCr limited range
plane[52]: plane-4
        crtc=(null)
        fb=0
        crtc-pos=0x0+0+0
        src-pos=0.000000x0.000000+0.000000+0.000000
        rotation=1
        normalized-zpos=0
        color-encoding=ITU-R BT.601 YCbCr
        color-range=YCbCr limited range
plane[55]: plane-5
        crtc=(null)
        fb=0
        crtc-pos=0x0+0+0
        src-pos=0.000000x0.000000+0.000000+0.000000
        rotation=1
        normalized-zpos=0
        color-encoding=ITU-R BT.601 YCbCr
        color-range=YCbCr limited range
plane[57]: plane-6
        crtc=(null)
        fb=0
        crtc-pos=0x0+0+0
        src-pos=0.000000x0.000000+0.000000+0.000000
        rotation=1
        normalized-zpos=0
        color-encoding=ITU-R BT.601 YCbCr
        color-range=YCbCr limited range
plane[59]: plane-7
        crtc=(null)
        fb=0
        crtc-pos=0x0+0+0
        src-pos=0.000000x0.000000+0.000000+0.000000
        rotation=1
        normalized-zpos=0
        color-encoding=ITU-R BT.601 YCbCr
        color-range=YCbCr limited range
plane[61]: plane-8
        crtc=(null)
        fb=0
        crtc-pos=0x0+0+0
        src-pos=0.000000x0.000000+0.000000+0.000000
        rotation=1
        normalized-zpos=0
        color-encoding=ITU-R BT.601 YCbCr
        color-range=YCbCr limited range
crtc[56]: crtc-0
        enable=1
        active=1
        self_refresh_active=0
        planes_changed=1
        mode_changed=0
        active_changed=0
        connectors_changed=0
        color_mgmt_changed=0
        plane_mask=8
        connector_mask=1
        encoder_mask=1
        mode: "": 0 140240 1920 1968 2000 2124 1080 1083 1089 1100 0x0 0x9
crtc[58]: crtc-1
        enable=0
        active=0
        self_refresh_active=0
        planes_changed=0
        mode_changed=0
        active_changed=0
        connectors_changed=0
        color_mgmt_changed=0
        plane_mask=0
        connector_mask=0
        encoder_mask=0
        mode: "": 0 0 0 0 0 0 0 0 0 0 0x0 0x0
crtc[60]: crtc-2
        enable=0
        active=0
        self_refresh_active=0
        planes_changed=0
        mode_changed=0
        active_changed=0
        connectors_changed=0
        color_mgmt_changed=0
        plane_mask=0
        connector_mask=0
        encoder_mask=0
        mode: "": 0 0 0 0 0 0 0 0 0 0 0x0 0x0
crtc[62]: crtc-3
        enable=0
        active=0
        self_refresh_active=0
        planes_changed=0
        mode_changed=0
        active_changed=0
        connectors_changed=0
        color_mgmt_changed=0
        plane_mask=0
        connector_mask=0
        encoder_mask=0
        mode: "": 0 0 0 0 0 0 0 0 0 0 0x0 0x0
connector[64]: eDP-1
        crtc=crtc-0
        self_refresh_aware=0
connector[69]: HDMI-A-1
        crtc=(null)
        self_refresh_aware=0
connector[73]: DP-1
        crtc=(null)
        self_refresh_aware=0

I'm gonna give you some power values after my laptop's done updating (with kernel 5.5rc6 then) but I can say that I am rather satisfied with my battery life. It's not nearly the advertised 10 hours from HP but it's not like that on Windows either and it's enough for me 99% of the time.
It's 6.34W right now with pamac downloading udpates over WiFi and Firefox running, brightness at like 30% or so.

So a bit to my surprise (as despite there being no PSR I did have a battery life improvement with 5.5. Perhaps patches were backported) energy consumption in 5.4.11 and 5.5rc6 is the same, pretty much exactly 5W with WiFi disabled and screen brightness to minimum. It will be higher if you have a hard drive in your system (power usage on idle was like over 6W when I still had my HDD). Those 5W would result in a theoretical battery life of 8.5h in my case.
Btw, did you try disabling or resetting baloo / file search? If you have a lot of not indexed files and/or the file index is somehow corrupted then it will use all the battery it can.

I don't know if this is the way to check it after all, I have search so much and try so much to find it.. But it is nothing 100 percent secure because I have been investigating myself the files one by one

It can be enabled after all but not telling there bexcause it is not the place to see it.. The consumption fells to be good.. yeah.. for me the asus was giving very bad values.. I have returned it because I needed to have Linux not that way..

yeah, disabled baloo with kinfo center the last time, not any help, my laptop had a nvme drive of 512 GB and the Apst( If i remember well) enabled and working good ( I suppose..)
I couldn't bisect my problem of comsumption, I am thinking that the problem was the dGPU amd RX 560.. That is suppose to be disable when not in use, but I think is not true in all laptops, at least the 5.5Rc2 had a bug that the dGPU won't power off and the compsumption was almost the same.. so weird. 2 possibilities, 1, 5.5 had a big big improvement in battery terms that mitigate the compsumption of the dGPU( 6-7 W with no app running) or the GPU didn't get off never in linux.

Yeah I've heard that GPU switching was/is a rather big problem in X. It supposedly will be one of the things Wayland will improve on.

1 Like

PSR is said to only have a power saving benefit of 0.5W roughly according to fedora developer blog post. If wattage can get pretty low while running that can make a difference, but if you're trying 10x that or more already, then the battery savings are perhaps less.

PSR also afaik only benefits when the display isn't updating any content at all, so basically when you're not doing anything and using the laptop, no running ksysguard with graph etc. I'm not sure how soon it triggers, so it's possible that it still might benefit if the screen isn't updating at a high frequency(some still frames)?

There's also PSR2, but I'm not sure if the upcoming PSR support for AMD covers that. PSR2 is improved version which will do the same for static content, but you can have some small parts of the screen update without affecting the rest of the screen(so the remainder of the display benefits from PSR), such as a blinking cursor or the time updating to the next minute.

Forum kindly sponsored by