Re: Vsync problems and compositing issues
Yes, it is a big pain, I agree. This is my layman's terms understanding of how nvidia-composite-vsync-etc works.. It took me about 2 years to finally get it all straight.
- Composite needs to be disabled in order to get rid of tearing problems. New driver versions seem to be improved but they are still not 100% vs simply disabling compositing and not using things like Compiz.
- You'll have tearing problems when using more than one monitor. You need to use the environment variables to specify which monitor to sync to when using windowed apps, and even this is a not always a sure thing. The best bet is to use metamodes to switch monitors off and on when using fullscreen apps, especially with OpenGL fullscreen apps (SDLMAME, various games, graphics demos in Wine, etc).
- Don't use any options in your xorg.conf in an attempt to "fix" problems, it will only make things worse with contemporary X versions. Notable examples include "triplebuffer" and "useevents", these options caused me no end of problems with intermittent tearing, stuttering, and CPU spikes until I just got rid of them and followed my advice above. The only important thing to have is a metamode line (if you have more than one monitor).
- Use VDPAU for video playback, it's excellent. Use it in combination with the environment variable to specify the device to sync to. It's great, no tearing and almost no CPU usage.
- If you use a distro like Ubuntu which has a lot of apps running by default, look at your CPU usage history and start disabling stuff you don't need. Also in the case of desktop "widgets" under whatever environment you use, turn this stuff off completely or reduce its polling time (CPU monitors, hard drive monitors, temp monitors, etc). These widgets take up a ton of CPU time and can cause stuttering and performance problems.
- Dump your screensaver program. There's no point to screensavers anymore and in some cases they keep polling the system and lead to performance problems.