Comment 0 for bug 201342

Revision history for this message
litemotiv (nospam-capstone) wrote : Compiz uses single refreshrate with separate X screens

Binary package hint: compiz

When using 2 separate X screens with Vsync on, Compiz should honor each screen's refreshrate independently. Instead it pushes a single refresh, causing tearing on one of the screens when both screens are not in perfect sync.

Ubuntu Hardy
compiz-core 1:0.7.2-0ubuntu1

Dell XPS M1330 laptop (Intel Core2Duo T7500, 2GB ram, Nvidia 8400M GS, internal monitor and external Dell 2405FPW)

Steps to reproduce:

1) Use a dual-monitor setup with 2 separate X screens
2) Start Compiz with Vsync enabled
3) Move a window around both screens

You will find that screen 0 shows no sign of tearing, screen 1 will show a single large tearline running down the screen, timed at the clock difference between both screens.

A bit more information taken from a post to Nvidia corp.:

[question]
i have a twinview setup with 2 lcd's: nvidia-settings says screen 1 has a 59.99hz refreshrate, screen 2 has 59.95hz.

as a result, with vsync on (without is undoable), one of the screens always has one major tearline running down very slowly. the other one is smooth. depending on which screen i make primary, the other one starts to tear.

so i guess that sort of makes sense, as the screens are slightly out of sync, but isnt there a way to make both screen vsync correctly? i tried running 2 separate x screens but that doesnt seem to be the solution (compiz is still only using 1 global refreshrate).

[answer]
In TwinView, there's only one video memory surface for the screen, so it's only possible to sync to one or the other. To sync to both at the same time, you'd need to wait for the refreshes to line up again, which happens every 1/(59.99 Hz - 59.95 Hz) = 25 seconds = unacceptable. One thing you could try is to use identical mode timings for both screens, if your display devices can handle it.

With two separate X screens, you can swap each one independently so you should be able to get tear-free swaps on both screens. If Compiz can't do it, that sounds like a bug in Compiz.

-AaronP, Nvidia Corporation.