Cinnamon is Linux Mint's flagship desktop environment. Started as a Gnome 3 fork, now it is fully independent. A new announcement was published on Linux Mint's website, featuring performance improvements for the upcoming Cinnamon version to prevent screen tearing from happening. It will be shipped with the next version of Linux Mint.
The announcement states the following:
In continuation with the “snappiness” improvements which came in Cinnamon 3.8, the team is currently looking at VSync, and in particular at CLUTTER_VBLANK which sets Sync to VBlank in Cinnamon.
Although Vsync prevents screen tearing from happening, it also has a performance cost. That cost is visible in Cinnamon when dragging a window with the mouse. As you move the mouse cursor left and right, you can notice that the window which is dragged under it doesn’t move exactly “with it”, but with a slight delay, as if there was some sort of elastic band between the cursor and the window it’s holding.
Removing Vsync removes that delay. Windows drags are then immediate and fully responsive. FPS measures also seem to confirm this observation and higher FPS figures lead us to believe this could have other positive impacts on Cinnamon’s performance.
The problem then is screen tearing.
On modern NVIDIA GPUs we’re able to get rid of screen tearing by using “Force Composition Pipeline” in NVIDIA-Settings. With Vsync disabled in Cinnamon we then enjoy a faster desktop environments with no screen tearing.
The team is currently looking into this and testing on a variety of different setups and graphics cards. There’s no guarantee we’ll find a “one size fits all” solution and be able to ship a Cinnamon 4.0 environment which will be fast and without screen tearing for everybody out of the box. If we can’t we’ll probably make it easier for people to tune their environment, with more information on screen-tearing, performance and the ability to set Vsync in the System Settings.
If you want to test this on your current Cinnamon setup, you can restart cinnamon with:
1 CLUTTER_SHOW_FPS=1 cinnamon --replace
And to restart it without Vsync:
1 CLUTTER_VBLANK=none CLUTTER_SHOW_FPS=1 cinnamon --replace
See if you see a difference in terms of FPS and when you move windows across the screen. Screen tearing, when it happens, is mostly visible in movies or when scrolling lists up and down. Test with non-fullscreen windows (full-screen windows can skip composition in Cinnamon, so that’s a different thing altogether).
Cinnamon 4.0 is currently in development. Its release date is not known yet.