You are not logged in.

#1 2020-10-02 00:54:35

potuz
Member
Registered: 2009-10-23
Posts: 112

picom taking 100 cpu on dpms

I just posted in https://bbs.archlinux.org/viewtopic.php?id=259462 and I am not sure it's related but after the last update whenever dpms turns off the monitor picom takes 100% of a cpu. I can check this via ssh only at the moment.

I'm running with ssdm + i3 only.

Is anyone seeing this here?

Offline

#2 2020-10-02 05:58:54

seth
Member
Registered: 2012-09-03
Posts: 49,992

Re: picom taking 100 cpu on dpms

From the other thread I'd infer that you cannot check the picom behavior after ending the DPMS?
picom likely goes wild because there's no vblank signal, you can probably verify this by disabling vblank and enforcing a refresh rate in the picom config.

Also take sddm out of the equation (try eg. xinit)

Offline

#3 2020-10-02 10:02:03

potuz
Member
Registered: 2009-10-23
Posts: 112

Re: picom taking 100 cpu on dpms

Thanks, that's good advice, I can actually, cause unplugging the monitor and plugging it back also brings it on. I'll test this soon.

Offline

#4 2020-10-23 23:43:04

sylvite
Member
Registered: 2014-03-16
Posts: 16

Re: picom taking 100 cpu on dpms

I'm seeing this same CPU spike issue, but not the "monitor doesn't turn on" issue you're seeing in the other thread.

When I run picom with the xrender backend, the CPU spikes as soon as I call `xset dpms force off`. (no screensaver or locker involved)
If I run it with the glx backend, this issue doesn't occur.

I too see the CPU spike by ssh'ing into this system from another and running htop.
As soon as I use the keyboard, the CPU drops to normal, and the system works fine (and both the laptop and external monitors turn on fine).

I've tried changing picom's --refresh-rate to manually match my monitors-- no difference.
I've tried turning on/off picom's --xrender-sync-fence setting-- no difference.
I've tried running picom with --log-level TRACE --log-file .... The only logs that occur after forcing the monitor off are no different from logs that occur before running the xset command. (various "Damage serial" events)

Using nvidia-dkms 455.28-1, i3-gaps, and xinit (no display manager).
(If there's no other likely cause, I can try downgrading nvidia-dkms, but I'd like to hold off on that unless there's no other option. glx backend seems to be working mostly fine.)

Last edited by sylvite (2020-10-23 23:55:41)

Offline

#5 2020-10-24 00:16:11

potuz
Member
Registered: 2009-10-23
Posts: 112

Re: picom taking 100 cpu on dpms

I'm glad that someone is looking to solve this. I'm so busy and not willing to look into this that I just removed picom from my i3 config file and forgot about it. Please let me know if you manage to solve this

Offline

#6 2020-10-24 05:33:22

sylvite
Member
Registered: 2014-03-16
Posts: 16

Re: picom taking 100 cpu on dpms

More info:

$ picom --backend glx --no-vsync      # ok
$ picom --backend glx --vsync         # ok
$ picom --backend xrender --no-vsync  # ok
$ picom --backend xrender --vsync     # cpu spike

So it seems to be only with the combination of xrender and vsync that the cpu spike occurs.
I'm content to either use glx or disable vsync, so for my use case this is solved.

Offline

#7 2020-10-28 02:12:53

sdahdah
Member
Registered: 2020-10-28
Posts: 1

Re: picom taking 100 cpu on dpms

I seem to have a similar problem with picom and dpms. I'm using Intel graphics with the `xf86-video-intel` driver (DRI 3 disabled).

Starting picom with `--experimental-backends` fixed the problem for me.

My full picom command is

picom --backend glx --vsync --no-use-damage --experimental-backends &

Offline

Board footer

Powered by FluxBB