When it comes to game settings, it’s true that Linux gamers are not as experienced as Windows guys. Oh, you don’t believe me ? Okay then, please raise your hand if you know the above terms: AA, MSAA, AF, Vsync, Tessellation. Just in case you are not sure what’s about, I strongly recommend you to continue reading.
So first question… what’s VSync ?
Vsync or VSync To Black is a video setting option that can be either enabled or disabled. It synchronizes your monitor’s Refresh Rate (I mean the frequency, like 50Hz, 60Hz etc) with a 3D application frame rate, eg a PC Game.
Simply put, when VSync option is turned on, it doesn’t let your frame rate go above your monitor’s refresh rate.
Why is that?
Because of better stability, smooth motion, no flickering or tearing. That’s why you need to enable VSync in GNOME3 (if you have AMD, I think they call it TearFree or something like that).
Adaptive VSync a combination of these two states. If it works well in practise then great, but it looks average to me. As far as I can tell, all it does is turn vsync off when your framerate goes down, which would mean you still get the dreaded mouse lag due to backbuffering, and you can still theoretically get stutters. So for instance if a game frame rate is fluctuating between 80-40 FPS with vsync off. Then with vsync on it will be either 60 or 30, manifesting as stutter. Adaptive technology will stop the stuttering BUT possibility introducing tearing at frames under 60. FYI adaptive VSync is not supported in Linux — yet!
Overall, VSync makes a game look better, but will probably make it run slower. How much slower? It depends upon your monitor’s refresh rate and your hardware. So if your monitor refresh rate operates at 60Hz, then your game shoudn’t go beyond that value. Even if you GPU is capable of 120 or 500 or 1000 FPS (lol), you will see only 60FPS. Let’s run Unigine Heaven Benchmark and see if it works…
Vsync does more than just ‘limit framerate’, it backbuffers frames twice for comparison and checks whether it should send another out, meaning there is dead time in between the draw and display (which is where mouse lag comes from). Even setting your fps to 59 on a 60hz monitor will produce tearing.
The only real way to not see tearing as much with vsync off is to use a 120hz monitor. Simply put, just use an old fat CRT monitor.
I am testing with Ubuntu 12.04 LTS using nVIDIA GPU (GeForce GTX465). My CPU is an old CoreDuo, meaning that you are going to see differences among these desktop environments. Notice that if you use a modern quadcore or octacore CPU there is no difference at all. But yet, we are Linux guys, old fashioned hardware people, so this hardware is in common with the most our readers. Or not ? Just let me know in the comments 😉
- Unity 3D
- Unity 2D
- Gnome Shell
- Gnome Classic (no effects)
- Gnome Classic (with effects)
- Cinnamon 2D
- KDE Plasma
1.Maximum FPS (not the average)
[toggle title=”Default Settings”]
Monitor Refresh Rate: 60 Hz
Anisotropy Filtering: 4x
[toggle title=”Low Settings”]
Monitor Refresh Rate: 60 Hz
Anisotropy Filtering: No
As you can see the two charts are identical but they have different settings, meaning that whatever settings you have or GPU, you cannot score more than 60 FPS (ok 61,62,63 are insignificant and are treated likewise), simply because my monitor operates at 60 Hz.
[toggle title=”Extreme Settings”]
Monitor Refresh Rate: 60 Hz
Anisotropy Filtering: 16x
Oh great! A different chart! Here the values are bellow 60FPS, simply because the card is not capable or scoring that value. I need a better GPU in order to run Unigine at Extreme settings. It’s obvious.
As you can see there’s a HUGE difference in between VSync OFF and VSync On both at Low Settings. So my GPU is able to score 157 max FPS using Gnome shell and 126 FPS using Unity 3D. That’s a performance comparison.
Again you see that there is a HUGE difference bettwen VSync Off and VSync On both using Default Settings. So my GPU scores 92 FPS using Ubuntu 2D and 77 FPS Using Gnome Classic with Effects. However more the stress, less less delta-performance among the desktop environments.
Pay attention here, that values are lower than 60 FPS, meaning that my GPU is incapable of scoring 60FPS at extreme settings. That’s why this chart is identically the same with VSync ON. There is not 60FPS simply because you can’t reach that value in the first place.
2. Average FPS (overall performance)
Maximum FPS is just a peak value. What matters the most in a game, is the average of all these values, maximum, minimum etc. Sum them up and divide. Let’s see the VSync impact on that one.
As you can see the average FPS is not 60. It’s crucial to understand that 60 evaluates only to the maximum value with VSync enabled. Now, we are measuring the average portion and as long as it is above 30-40 FPS you can safely consider your game as playable. As a result, Unity 3D scores 28 FPS… sad but true.
Disabling the VSync we get a 40 FPS boost. However, Unity 3D and Gnome Classic with Effects sucks. But if you are using Unity 3D you MUST disable VSync now, so improve your gaming experience from 28 FPS (VSync Enabled) up to 48 FPS (VSync Off).
Hmmm, so average FPS is the same at Low and Default. Can you understand why? my GPU is strong enough and surpasses the default settings BUT having VSync Enabled I drop the performance to 60FPS — which is the same wall with Low Settings.
As it was expected, by the time I turned VSync off, the FPS were increased.Unity3D-wise it sucks a lot. That compiz shit is outrageous…
Finally, the Extreme Settings chart! Here my GPU cries a river. Simply put, it’s not that strong so that a 24 FPS Max Average — not playable at all. Let’s see what happens if I disable VSync.
Bingo! Nothing else matters since the GPU is not capable of reaching 60 FPS.
When your hardware is strong enough and you can score more than 60 FPS, then you can enable VSync. You may ask “why should I drop my performance from 110 FPS to 60 FPS ? “. Well, if you have any tearing problems, that’s the solution. For example when I was playing PES2012 the football pitch was flipping even having 130 FPS. Then, I turned the VSync on and… voila, 60FPS (lower than before but playable) and better game experience without artifacts, flipping or tearing problems.
Average FPS > 60 = Disable VSync to score higher FPS (better performance). But if you experience tearing problems it’s also fine to leave it enabled (but drop down to 60 FPS — still fine and playable)
Average FPS < 60 = Doesn’t make any difference.