Closed Hippo0o closed 2 years ago
On nvidia i get similar results. xcompmgr gives me shadows and transparency while it isn't slower than no compositor. picom is noticebly slower in some cases compared to no compositor.
so you basically have single rx580 handling two 2k 120hz monitors? i'm not sure about rx580 performance but that sounds like a problem. what's your overall performance? what if you leave only one monitor?
can you please compare performance between --experimental-backends --backend glx
, --backend glx
, --experimental-backends --backend xrender
, --backend xrender
with your config? which one gives you the best feeling?
Its 1 ultrawide monitor. I can't test the rx580 setup for the next few days since its my pc at work.
But i can say that i testet all of those 4 options and got same results for my above mentioned problems. Especially the resizing lag/stuttering/freezing of said floating window didn't change.
While randomly testing --backend xrender --benchmark 1000
and --backend glx --benchmark 1000
the time difference was ~2sec vs ~1sec. idk if that helps.
I will upload a video of my 2x 1080p 240h,60hz monitor nvidia setup showing an example of what i mean.
Setup: nvidia gtx 970, nvidia-driver 440.64 (main problems equal to above mentioned setup) Monitor settings
xrandr --output DVI-D-0 --mode 1920x1080 --pos 0x0 --rotate left --output DP-0 --primary --mode 1920x1080 --rate 240 --pos 1080x350 --rotate normal
nvidia-settings --assign CurrentMetaMode="DP-0: 1920x1080_240 +1080+350 {ForceCompositionPipeline=On}, DVI-D-0: nvidia-auto-select +0+0 {rotation=left, ForceCompositionPipeline=On}"
https://www.youtube.com/watch?v=PYXiw7ivUa8 testing picom and xcompmgr. Idk why obs stutters with xcompmgr tho. https://www.youtube.com/watch?v=Z3Uh0wj8gtA i made a cheap phone recording to prove xcompmgr being smooth compared to picom.
This could be a bug rather than a performance problem. Unfortunately I don't have a high refresh rate monitor to reproduce this problem.
Can you turn on trace
logging and attach a log file? I will have a look, but don't hold your breath.
logs.tar.gz
i did:
strace picom &> picom.strace
apitrace trace picom
picom --log-level=debug &> picom.log
just dragging a floating glxgears
Can you do --log-level=trace
?
i did try 1 monitor 60hz but results were the same.
please, upload your log to pastebin/hastebin/whateverbin and edit your comment to include link to log instead the log itself.
@Hippo0o I added some more logs, can you fetch the latest next
branch, and attach the --log-level=trace
log again?
using picom-git aur:
$ picom --diagnostics
**Version:** vgit-33a5c
### Extensions:
* Shape: Yes
* XRandR: Yes
* Present: Present
### Misc:
* Use Overlay: Yes* Config file used: None
### Drivers (inaccurate):
NVIDIA
the lag is better but till there
@Hippo0o you are 1 commit behind. can you rebuild and get the trace
log again?
@Hippo0o
its performing a lot better
How much better? Is this still a problem? If it's fine with you, can you upload a new video?
@yshui idk why but its as worse as before again with newer version https://www.youtube.com/watch?v=OfDWSq8d8qU i will reboot and try again i guess.
@yshui i found out why i have to install the picom-git package from aur to have better performance with newest build from git?
when i remove /etc/xdg/picom.conf
which isnt included in the picom-git package it works better
Can you upload a video of the "good" version?
removing
"_GTK_FRAME_EXTENTS@:c",
"_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
from the shadow-exclude
list makes the freezes go away but the window still lags behind the cursor.
Im sure tho that it is the performance increase i mentioned
i did another comparision to xcompmgr https://www.youtube.com/watch?v=3YxxiQUsHwU
@Hippo0o is there any difference between the xrender
and the glx
backends? And does toggling --experimental-backends
make any difference?
@yshui for all the problems i described there is no difference between those options. I also tested the same scenarios on my intel(modesetting) gpu laptop and there were no such problems at all. It runs really well.
Could potentially be an ultra-wide issue, I have similar (albeit less) stuttering on my 2560 x 1080 60 hz panel.
I have the same problem on a simple 1920*1080 screen, amd cpu/gpu Dragging is OK but resizing is really slow.
I also can confirm problem with laggy windows on 1920*1080 and nvidia 1070 on picom 8.1 (and it was on prev versions). It happens when i open some another window with OpenGL context, it could be mpv or Firefox (with toggled on open gl compositing)
options as xrender
or experimental-backends
doesn't give any effect.
I have the same problem on a simple 1920*1080 screen, amd cpu/gpu Dragging is OK but resizing is really slow.
same
Could it be the VRR blacklist?
@billksun At least in my case, I have it properly blacklisted and still experiencing super slow resizing and slow dragging.
Wow, I tested again picom today and it is as fast as xcompmgr now.
I have 3 1440p screens, two at 75 Hz and one at 144 Hz, and when picom
is running I can move around windows at around 20 fps. If I kill the process it will allow me to move around windows at the correct framerate.
I use Nvidia RTX2070 (with official drivers) + X11 + Awesome WM + picom
fork with kawase blue and rounded corners.
--experimental-backends
does not do any difference here, although --experimental-backends
fixes other display issues like flickering windows. Same config works well on my laptop with Intel / 1080p 60Hz.
If I disable blurred backgrounds AND rounded corners, then the problem is fixed. Just one of them does not, although blur and no rounded corners have a slightly better framerate than having both enabled. Could it be shader related? I've tried putting the card in "Maximum performance mode" in the Nvidia X Server Settings app.
Is there anything I should try to change in order to find a cause?
From my recent experience, picom got a lot faster and is mostly on top or on par with xcompmgr as far as i can observe.
Although i still have some issues, picom with --experimental-backends
is really smooth for the most part and i recommend using it.
@asklow I would suggest using the vsync setting from your graphics driver
Platform
Platform: Arch linux amd64 kernel 5.4
GPU, drivers, and screen setup
Radeon RX 580, amdgpu
xrandr --output DisplayPort-2 --primary --mode 5120x1440 --rate 120 --pos 0x0 --rotate normal --set TearFree on
Environment
i3-gaps 4.18
picom version
Configuration:
Expected behavior
xcompmgr like performance
Current Behavior
slower & stuttering
Other details
I noticed a lot of slowdowns and stuttering while dragging floating windows and resizing them. I tried glx and xrender backend with enabling and disabling some glx options. It was worse with vsync enabled which i disabled because i can use the gpu drivers vsync. I also got a similar setup with a nvidia gtx 970, nvidia-lts, ForceCompositionPipeline=On, 1080p 240hz using xrender backend which has the same problems (testing xcompmgr on it later).
I experience stuttering while watching twitch and dragging a transparent window over it. When dragging a transparent terminal over another terminal it lags behind the curser. (glx only) Resizing certain floating windows stutters a lot. I also notice a little stutter while dragging in general (like 60hz window movement on 120hz monitor) Only on nvidia: moving a chrome window with animations/videos in it is stuttering from time to time.
Today i tried xcompmgr and i got no stuttering at all. Overall im not noticing any slowdowns. config used:
xcompmgr -c -C -t-5 -l-5 -r3.3 -o.33