jonaburg / picom

A lightweight compositor for X11 (previously a compton fork)
Other
956 stars 99 forks source link

Frame rate actually very low (around 15 fps) #29

Open xlucn opened 3 years ago

xlucn commented 3 years ago

I don't know how to get fps for picom in a proper way, but I recorded desktop in 60fps and set a long transition length. What I see is for each window move, the video has played for 3 to 4 (more towards 4) frames. So my estimation is the fps picom's animation is only around 15. Could it get somewhere about 4x faster?

https://user-images.githubusercontent.com/12032219/103174362-7631b800-489c-11eb-83a2-8941335301f4.mp4

xlucn commented 3 years ago

On another machine I got around 30 fps, which is quite enough. Don't know why.

jonaburg commented 3 years ago

This could be for a few reasons, but what values do you have for the following variables in your picom.conf?

transition-length, transition-pow-(all of them)

xlucn commented 3 years ago

I don't think those parameters are the problem, since I have tried both default and some slow motion parameters (probably length 1000 and pow-* 0.9) on two of my Arch Linux laptops, only one of it has low fps.

I just tested again with no config --config /dev/null, the one that has the issue now has even lower fps ~ 8. I might restart the laptop later and see if it is still like this.

jonaburg commented 3 years ago

I see, thanks for confirming that. It may be similar to an issue I see on another machine of mine where the animations will slow over time (over the course of a few days the smoothing gets this slower FPS like motion that you're describing). I don't really know what's the source of it yet since I haven't been able to identify where this leak occurs, and under what scenarios besides uptime. does it happen in both backends? xrender and glx?

xlucn commented 3 years ago

does it happen in both backends? xrender and glx?

Both, actually xrender backend is even slower now

Just a thought, I might later try the commit which only this animation patch is added, just to be sure that the issue is brought by that part of the code.

jonaburg commented 3 years ago

I've heard, but haven't tested or verified, that Ibhagwan's patch actually is the source of the performance leak over time. Just to note, a reboot always solves my problem when it happens to me, what about you?

xlucn commented 3 years ago

The reason I thought of that is now just running picom in xrender backend not doing anything causes cpu to go 30% - 70% (of one core), even have core dump if without --experimental-backends. I don't quite believe a simple (I saw the animation patch was only 200+ lines of code) animation can do all that.

Just to note, a reboot always solves my problem when it happens to me, what about you?

Not rebooted yet, I have some programs running, have to reboot later. But I think this issue should better be solved without rebooting.

xlucn commented 3 years ago

Actually the animation patch is indeed causing the other problems (like the core dump, on both my laptops) but I don't have the expertise to debug it. Not sure if the fps issue is related.

51fdb8bcaafc4e1261a644873358031c37e09f83 is the first bad commit
commit 51fdb8bcaafc4e1261a644873358031c37e09f83
Author: blackcapcoder <mailhph@gmail.com>
Date:   Sat Oct 7 15:22:37 2017 +0200

If I have more time I might look more into the slow fps issue, although it will be quite hard for me to find any clue