Fix ATI vsync & video tearing issue once and for all!

NOTE: ATI’s most recent drivers now include a no tearing option in the driver control panel. Enabling it there is now the preferred method.

Two of the linux machines that I use both have ATI graphics cards from the 4xxx series in them. They work well enough for what I do, very casual gaming, lots of video watching, but one thing has always bothered me to no end: video tearing. I assumed that this was due to vsync being off by default (probably for performance sake) but even after installing the proprietary drivers in the new Ubuntu 10.04 and trying to force it on I still could not get the issue to resolve itself. After some long googling I found what seems to be a solution, at least in my case. I’ll walk you through what I did.

Before you continue read this: In order to fix this issue on my computers I had to trash xorg.conf and start over. If you are afraid you are going to ruin yourself, or if you have a custom setup already, please be very careful and read before doing what I suggest or don’t continue at all. Be sure to make a backup!

1 ) Install the ATI proprietary drivers and restart so that they can take effect.

2 ) Make a backup of your xorg.conf file. Do this by opening a terminal and copying it to a backup location. For example I ran the following code:

sudo cp /etc/X11/xorg.conf /etc/X11/backup.xorg.conf

3 ) Remove your existing (original) xorg.conf file:

sudo rm /etc/X11/xorg.conf

4 ) Generate a new default xorg.conf file using aticonfig (that’s two dashes below):

sudo aticonfig –initial

5 ) Enable video syncing (again two dashes before each command):

sudo aticonfig –sync-video=on –vs=on

6 ) If possible also enable full anti-aliasing:

sudo aticonfig –fsaa=on –fsaa-samples=4

7 ) Restart now so that your computer will load the new xorg.conf file.

8 ) Open up Catalyst Control Center and under 3D -> More Settings make sure the slider under Wait for vertical refresh is set to Always On.

That should be it. Please note that this trick may not work with all media players either (I noticed Totem seemed to still have some issues). One other thing I tried in VLC was to change the video output to be OpenGL which seemed to help a lot.

Good luck!



23 Comments

  1. what abaout the tearing with dragging windows? doesn’t seem to be effected. i tried, windows dragging still tearing.

  2. squiddy :
    what abaout the tearing with dragging windows? doesn’t seem to be effected. i tried, windows dragging still tearing.

    Try turning compiz off and see if that fixes it. Compiz is known to have other issues that prevent it from refreshing correctly. If all else fails google Compiz and ccsm and look for the vblanking option (I think that’s what its called).

    Good luck!

  3. squiddy :
    doesn’t help. this tearing thing really hard to kill

    I’d like to help but I just don’t see any tearing in my setup. Sorry!

  4. Funnily enough I (well probably others before me but I couldn’t find anything searching the net) came up with a similar fix only yesterday and I found your post while testing if my blog registers keywords (it doesn’t).

    At any rate my solution is to actually use Compiz and then force vsync on in the ATI settings. I think you’re seeing better results with VLC output set to OpenGL since you have switched compiz off right? My reasoning behind this is that vsync only works for 3D so somehow we need to get the desktop to be in 3D and not 2D, now is there anything in Linux that can do this? Why yes, Compiz! Since our desktop is now a texture in a 3D environment we can take full benefit of the forced vsync.

    The tearing issue might go away by itself if and when ATI decides to include video decoding in their driver which may very well be the root cause of the problem. But for now and what its worth as far as I can tell most of my tearing is gone. If nothing else the picture is much calmer and relaxing to watch. I’m running Ubuntu 10.04 LTS with a HD 4350 @1920×1080 and the compiz quality settings at max. I use Totem for DVDs and XBMC for everything else and it seems to work well enough in both.

    Have a good one!

  5. I recently installed Ubuntu 10 amd64 lucid. I’ve used VLC media player in Windows for a while, so I installed it in Linux, too. Unfortunately, I noticed horizontal tearing in some scenes while playing HD videos. My Asus motherboard has integrated ATI Radeon 4200 graphics. So, a quick Google search led me to this page. I didn’t want to edit my configuration file, because I know how easy it is to botch. Been there. I experimented with some settings in VLC and ATI Catalyst while playing with Compiz and Metacity.

    My solution was to set video output to OpenGL in the VLC video preferences (Tools>Preferences>Video). In Catalyst I set “Wait for vertical refresh” to “On, unless application specifies” (3D>More Settings). Finally, I turned OFF all Visual Effects (Gnome tool bar: System>Preferences>Appearance>Visual Effects). As much as I like Compiz eye candy, its OpenGL rendering interferes with both Blender 3D and, apparently, VLC too. Using these settings, I no longer have tearing issues while playing high definition video with lots of action.

  6. I’m running 10.10 with a 5670 and had the same trouble. Tried your steps but couldn’t get them to work so for anyone else having trouble you can try what I ended up doing. I switched to mplayer with the ATI drivers, disabled Compiz (Visual Effects->None) and put the following in ~/.mplayer/conf.

    vo=gl
    vsync=yes

  7. Ubuntu 11.04 and ATI 11.6 driver. This sadly does nothing for my setup, I still get horrid tearing in video and 3D (games and general compiz effects). I have enabled Vsync Always ON which does nothing also.. The only way to get it to stop is to enable the new ‘Tear Free’ option in control centre which gets rid of tearing at the cost of smooth playback of video and tv. I am not sure what is worse, the tearing or the jerkiness where there was once tearing. Disappointed.

  8. You know you’re in for some great advice when it starts with “1. Install proprietary drivers”…

    Sigh.

  9. Just FYI, the control center has a no tearing page, that enables vsync as well as other things to help minimize tearing.. should use that.

  10. Pytte :

    Just FYI, the control center has a no tearing page, that enables vsync as well as other things to help minimize tearing.. should use that.

    That is correct. Or rather that is now correct. This post was written prior to ATi fixing the problem themselves.

  11. This worked for my Ubuntu 11.10 tearing issue. I have an ATI Radeon HD 4650 card and the tearing was really sucking. When I watched videos in VLC, it was very sluggish. Also, if I ran $ fgl_glxgears , the framerate was way down.

    After I applied the fix found in this article. It fixed it totally. Good find man! We should post this in the Ubuntu forums.

  12. You need not to do any of this confusing sudo stuff all you have to do is this, and it works perfectly and a lot easier. Follow instructions below.

    Yes I finally have a solution for you it took a bit of digging, you have to use compiz settings manager. Go to Utilty–>workarounds(make sure this box is checked) then go to “don’t wait for video sync” check the box, then go to “force full screen redraws” now check this box.

    Also some other things you could do is in the ccsm go to “OpenGL” click on the texture tab put best then go to “Composite” tab(in the generl settings screen whre you found the Opengl tab) and uncheck “detect rate” then crank up the refresh rate to anything higher than it’s default that is set at 50, I set mine to anything beyond 60. This solved all my problems. Hope this helped. 🙂

  13. no option in the drivers, the shit does not work and i get bunch off fglrx errors on a black screen. BUUUUUL SHIT.

  14. Hey :

    –sync-video
    –vs
    –initial

    It’s two dashes, not one.

    That is actually what is written above – the blog’s formatting makes it look like one instead of two.

  15. I need help 🙁
    Ubuntu 12.04 and tried amd 13.1/13.2/13.3 and even repo drivers. I cannot see tear free option in Display options. (Only if I run amdconfig –initial)

    If I remove xorg.conf and reboot my pc, I can see tear free option and voila! All works great but the problem is, it always use my Integrated gpu and I cannot switch to discrete gpu.

    My card: HD radeon 6600 and 6700 series dual graphics (HP laptop)

    How can I see tear free option after amdconfig –intial?

  16. @Alex
    go to etc/ati
    sudo kate/gedit/nano amdpcsdb
    And add:
    EnableTearFreeDesktop=V1
    In [AMDPCSROOT/SYSTEM/DDX] section.
    Do the same with amdpcsdb.default.
    Restart.

3 Trackbacks / Pingbacks

  1. Tweets that mention Fix ATI vsync & video tearing issue once and for all! | The Linux Experiment -- Topsy.com
  2. Links 8/5/2010: Wine 1.1.44 is Out, RHEL 6 Beta Reviewed | Techrights
  3. 3d graphics on Linux | bobbyratliff

Leave a Reply

Your email address will not be published.


*