Skip to content
yshui edited this page Mar 6, 2020 · 12 revisions

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

xrender backend

None of the vsync methods work. If you get vsync with one of the vsync methods, that's probably because you are lucky, not because the vsync method is working as intended.

The only way to possibly get vsync with xrender backend is to use the new experimental xrender backend, which you can do by passing --experimental-backends flag to compton.

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

Use vsync = opengl-swc. This is the only option that can work. It should work if you have a reasonable graphic driver. opengl-mswc is an alias to opengl-swc.

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.

Clone this wiki locally