Well, let’s start with the conclusion: setting
XV_SYNC_TO_VBLANK has no effect, if a second monitor is attached.
But let’s start at the very beginning: What is tearing? Well, this is how Wikipedia defines it:
Screen tearing is a phenomenon in video where a previously rendered frame overlaps a newly rendered frame, creating a torn look as two parts of an object (such as a wall) don’t line up…
I’m running MyMediaSystem on my living-room and suffer from this annoying tearing. If you suffer from tearing, there’s a simple solution to it. Activate either something like
V-SYNC somewhere in your video driver settings, and the problem is suppose to disappear. You just can start
nvidia-settings and try this with OpenGL, and you’ll see it’s working (If you had tearing problems before). If you try the same with
xv) with the same tool, you might won’t see any changes/improvements.
The problem is, I can’t use OpenGL as output device (
-vo gl), because OpenGL slows my frames per second rate extremely down when watching FullHD (1920×1080) content.
I’ve been looking through the whole Internet twice 😉 , but couldn’t find any solution for it. To be honest, it’s actually not clear to me, which part of my system is affected at all. Is it xv? If you read this, you might think, it’s not xv, but
mplayer, because the explanation is pretty smart. I’ve read also (FIXME), that xv is affected, and it’s a known and confirmed bug in the
Xorg server, or that using VSYNC with composite doesn’t work for some reasons.
I’ve tried this one, but didn’t help.
I’ve read also turning off composite/compiz, and/or TwinView should help.
I’ve tried to set the port for mplayer, like said in this post, with no effect either.
But all suggestions weren’t the right one for me. I had to do three very simple things.
Way of solution
- The first one was to set the
XV_SYNC_TO_VBLANKwith nvidia-settings.See picture to the right.
UPDATE: It turned out, the tearing problem is gone, if you only detach the second monitor. It seams that the
nvidiamodule doesn’t care for these switches (see below) in the
- The second step was to detach my second Monitor (CRT-0, it’s an old Iiyama 20″ HM204DT). Simply unplug the cable,
- and the third step was to simple reboot, so the nvidia module was loaded from scratch (I know, it’s an old Windows habbit).
Ctrl+Alt+F1 for console mode and a
modprobe -r nvidia
should have done the same trick. Yes,
Ctrl+Alt+Backspace wasn’t enough.
I’ve also compared my
/etc/X11/xorg.conf before and after the detachment of my CRT-0, and there were no changes at all. The diff gave me nothing back, what means the files are identical.
I’m on Fedora 8, and for those who might need more info about my system: here it is:
X Window System Version 1.3.0
Release Date: 19 April 2007
X Protocol Version 11, Revision 0, Release 1.3
Build Operating System: Fedora 8 Red Hat, Inc.
Current Operating System: Linux moon 18.104.22.168-69.fc8 #1 SMP Mon Aug 4 14:20:24 EDT 2008 i686
Build Date: 24 July 2008
Build ID: xorg-x11-server 22.214.171.124-47.fc8
(II) NVIDIA dlloader X Driver 173.14.12 Thu Jul 17 18:15:54 PDT 2008
Case closed 🙂