we all know that Valve has influenced Linux graphics driver development a lot in the past in a good way. Thanks for that!

During my Serious Sam 3 testing I have noticed that for my GTX 580 the 310.19 NVIDIA driver is missing a feature which the latest windows driver has, that is heavily impacting gaming performance called "adaptive V Sync".

On Linux and a monitor with 60 Hz refresh rate the game (or any game basically) will always try to display either 30 FPS when you are below 60 FPS output or of course 60 FPS when the card would drive it way beyond that. The goal is to have the frames always aligned with the refresh rate to eliminate screen tearing.

The problem with that is 1. it doesn't do a good job at this, because you will see tearing when it is capped at 30 FPS 2. when you would normally have around 50 FPS average, it will get reduced to 30 FPS which is a noticeable difference in first person shooters and it will change between 60 and 30 quite often when the graphics load changes during gameplay which is noticeable to the player.

So any person would rather have a >30 but <60 FPS average than 30 FPS when you'll get some tearing eitherway. If you have > 60 FPS all the time enabling V Sync in Linux is not an issue. You'll have fluid 60 FPS gameplay and no tearing. This is the case in TF2 where I get between 200 and 300 FPS.

So what does the the Windows driver do different? It just limits everything over 60 FPS to prevent tearing but doesn't limit performance when below 60 FPS so you won't have frequent FPS jumps from 30 to 60 which cause stuttering.

I believe not a lot of people will think about if they are better off without V Sync the way it is now when they play a game. On Windows there is really no reason not to not enable V Sync.But when they do it on Linux, they might feel their gaming experience being worse than it needs to be and this affects all games.

Short version: Nvidia should implement adaptive vsync in Linux. I agree, it's a great feature in Windows. Not really a 'problem' with their Linux vsync implementation though, as it's operating as vsync should... they just need to bring more of their advanced features over to Linux.