How do I stop video tearing? (Nvidia prop driver, non-compositing window manager)
Posted
by
Chan-Ho Suh
on Ask Ubuntu
See other posts from Ask Ubuntu
or by Chan-Ho Suh
Published on 2012-04-26T05:37:17Z
Indexed on
2012/10/15
21:50 UTC
Read the original article
Hit count: 218
I have that problem which seemingly afflicts many using the proprietary Nvidia driver:
Video tearing: fine horizontal lines (usually near the top of my display) when there is a lot of panning or action in the video.
(Note: switching back to the default nouveau driver is not an option, as its seemingly nonexistent power-management drains my battery several times faster)
I've tried Totem, Parole, and VLC, and tearing occurs with all of them. The best result has been to use X11 output
in VLC, but there is still tearing with relatively moderate action.
Hardware: MacBook Air 3,2 -- which has an Nvidia GeForce 320M.
There are two common fixes for tearing with Nvidia prop drivers:
Turn off compositing, since Nvidia proprietary drivers don't usually play nice with compositing window managers on Linux (Compiz is an exception I'm aware of). But I use an extremely lightweight window manager (Awesome window manager) which is not even capable of compositing (or any cool effects). I also have this problem in Xfce, where I have compositing disabled.
Enabling sync to VBlank. To enable this, I set the option in
nvidia-settings
and then autostart it asnvidia-settings -l
with my other autostart programs. This seems to work, because when I runglxgears
, I get:$ glxgears Running synchronized to the vertical refresh. The framerate should be approximately the same as the monitor refresh rate. 303 frames in 5.0 seconds = 60.500 FPS 300 frames in 5.0 seconds = 59.992 FPS
And when I check the refresh rate using
nvidia-settings
:$ nvidia-settings -q RefreshRate Attribute 'RefreshRate' (wampum:0.0; display device: DFP-2): 60.00 Hz.
All this suggests sync to VBlank is enabled. As I understand it, this is precisely designed to stop tearing, and a lot of people's problem is even getting something like
glxgears
to output the correct info. I don't understand why it's not working for me.
xorg.conf: http://paste.ubuntu.com/992056/
Example of observed tearing::
© Ask Ubuntu or respective owner