Skip to content
Konstantin Kharlamov edited this page Apr 14, 2020 · 12 revisions

Here is a document explaining what is the best way to get vsync with picom.

xrender backend

Set vsync = true will enable vsync on the new experimental xrender backend, which you can enable by passing --experimental-backends flag to the compositor. On the old xrender backend, vsync might work if you are lucky, but no guarantees.

The new xrender backend uses the Present extension for vsync. This (seems to) work with most of the open source drivers.

Present extension test results

Driver Results
modeset Error: Failed to get GBM bo for flip to new front
(Fixed in Xorg 1.21)
Intel Works
AMDGPU Reported to work on GCN 1.0+
NVIDIA Not supported

glx backend

Simply set vsync = true. It should work if you have a reasonable graphic driver.

Exceptions

Vsync probably won't work very well with multiple monitors. If you have two monitors with different refresh rates, vsync definitely won't work.

There might be solutions, like create one window for each monitor and render to them separately. No idea if anything will work at the moment.