0 Replies Latest reply on Jan 31, 2013 2:19 AM by dhvu

    tearing - cannot get vsync to work properly when rendering through VAAPI (XvBA backend)

    dhvu

      Hello,

      I want to render tear-free VC-1 compressed live video on X11 using the linux version of Catalyst 13.1 (fglrx 9.1.11) and the XvBA backend for VA-API. The chipset is identified as "AMD Radeon HD 6250 Graphics" (Chipset = 0x9804).

      For this I need to enable synchronization of frame buffer flips on the vertical sync in order to avoid tearing. However, so far I did not manage to find the correct settings for the driver to force this vsync behavior. Strangely enough, it works well when playing a pre-recorded movie. Initially I thought it could be overcome by calling vaSyncSurface() before vaBeginPicture(), but this turns out to cause some surfaces not to update properly and insist on showing old content, resulting into completely garbled video. I use vaPutSurface() to make the buffers flip.

       

      I used the following fglrx settings in xorg.conf (and variations of this):

      OpenGLOverlay = on
      OverlayOnCRTC2 = 0
      Capabilities = 0x00000800
      TexturedVideoSync = on

       

      and the following settings in /etc/ati/amdpcsdb:

       

      EnableTearFreeDesktop=V1
      VSyncControl=V3

       

      Could anyone come up with suggestions and/or the correct set of the settings?

      Another possibly interesting fact: glxgears seem to be affected well by vsync settings, since it outputs only 60fps with the above setting.