Originally Posted by Stephen Warren
For VDPAU, to guarantee tear-free presentation on all monitors at once, you need to make sure that VDPAU is using the overlay-based presentation queue and not the blit-based presentation queue. See the Appendix H (VDPAU) in the README for details on when each is used. When in blit mode, if using TwinView, sync-to-vblank can only work on one monitor at a time. You can set an environment variable to select which. Again, this is describe in more detail in the README.
I don't care about "all monitors at once". Getting the TV to work as the secondary monitor is good enough for me. Also, Appendix H is not really meant for end users. Shouldn't there be something more user-friendly somewhere?
Well, I switched SMPlayer to use VDPAU and ran "nvidia-xconfig --no-composite", and now the tear seems to be gone, and there is also correct syncing on all monitors. I'm not sure what are the implications of disabling the composite, though.
Another option could be to switch to "gl2", but I don't know if that is possible. It looks like OpenGL's "Sync to VBlank" only cares about the primary monitor, while my TV has to be secondary. The monitor has no tear with "gl2". So, is it possible to sync OpenGL to the secondary monitor?
Then there's the thing that the card doesn't work well in Windows either, or that putting the card in other computers that were fine before results in tearing, while putting other cards in my computer makes the tearing disappear (without disabling Composite). To me this strongly suggest that there's a driver, or perhaps hardware, issue. I'm glad that VDPAU works, but why don't the other modes work as well with this particular card?