Announcement

Collapse
No announcement yet.

AMD's UVD2-based XvBA Finally Does Something On Linux

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • xvba-video 0.6.8

    A new version of xvba-video, the XvBA backend to VA-API, is now available at:
    http://www.splitted-desktop.com/~gbe...ne/xvba-video/

    Version 0.6.8 - 22.Feb.2010
    * Fix rendering of VA images not a multiple of 16
    * Add support for GL_RGBA textures in vaCreateSurfaceGLX()
    * Optimize rendering of multiple subpictures from a single image

    The first change fixes some garbage, like a 1-pixel green line, at the bottom of some surfaces. This could be visible with MPlayer/VAAPI in SW decoding mode, with video clip dimensions not a multiple of 16 pixels.

    The second change is a workaround for another XvBA bug. An FBO is now used for VA/GLX surfaces bound to a GL_RGBA texture. The resulting application is a few percent slower and more memory is used.

    Comment


    • Originally posted by gbeauche View Post
      A new version of xvba-video, the XvBA backend to VA-API, is now available at:
      http://www.splitted-desktop.com/~gbe...ne/xvba-video/

      Version 0.6.8 - 22.Feb.2010
      * Fix rendering of VA images not a multiple of 16
      * Add support for GL_RGBA textures in vaCreateSurfaceGLX()
      * Optimize rendering of multiple subpictures from a single image

      The first change fixes some garbage, like a 1-pixel green line, at the bottom of some surfaces. This could be visible with MPlayer/VAAPI in SW decoding mode, with video clip dimensions not a multiple of 16 pixels.

      The second change is a workaround for another XvBA bug. An FBO is now used for VA/GLX surfaces bound to a GL_RGBA texture. The resulting application is a few percent slower and more memory is used.
      0.6.6 was the last version that did something with catalyst 10.1 + my hd5650.

      0.6.8 output for hwdecode test:

      Display type 'x11'
      Hardware accelerator 'vaapi'
      [hwdecode_demos] VA display 0xb6c720
      libva: libva version 0.31.0-sds4
      Xlib: extension "XFree86-DRI" missing on display ":0.0".
      libva: va_getDriverName() returns 0
      libva: Trying to open /usr/lib/va/drivers/fglrx_drv_video.so
      libva: va_openDriver() returns 0
      [hwdecode_demos] VA API version 0.31
      [hwdecode_demos] 6 display attributes available
      [hwdecode_demos] VADisplayAttribDirectSurface (get/---) min 0 max 0 value 0x0
      [hwdecode_demos] VADisplayAttribBackgroundColor (get/set) min 0 max 16777215 value 0xffffff
      [hwdecode_demos] VADisplayAttribBrightness (get/set) min -100 max 100 value 0x0
      [hwdecode_demos] VADisplayAttribContrast (get/set) min -100 max 100 value 0x0
      [hwdecode_demos] VADisplayAttribHue (get/set) min -100 max 100 value 0x0
      [hwdecode_demos] VADisplayAttribSaturation (get/set) min -100 max 100 value 0x0
      [hwdecode_demos] Decoded surface size: 320x240
      [hwdecode_demos] 4 profiles available
      [hwdecode_demos] VAProfileMPEG2Simple
      [hwdecode_demos] VAProfileMPEG2Main
      [hwdecode_demos] VAProfileH264High
      [hwdecode_demos] VAProfileVC1Advanced
      [hwdecode_demos] 1 entrypoints available for VAProfileH264High
      [hwdecode_demos] VAEntrypointVLD
      xvba_video: XVBA_CreateGLSharedSurface(): status 11
      [hwdecode_demos] vaPutSurface(): resource allocation failed
      ERROR: display failed

      vainfo:

      [@ src]$ vainfo
      libva: libva version 0.31.0-sds4
      Xlib: extension "XFree86-DRI" missing on display ":0.0".
      libva: va_getDriverName() returns 0
      libva: Trying to open /usr/lib/va/drivers/fglrx_drv_video.so
      libva: va_openDriver() returns 0
      vainfo: VA API version: 0.31
      vainfo: Driver version: Splitted-Desktop Systems XvBA backend for VA API - 0.6.8
      vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple : VAEntrypointIDCT
      VAProfileMPEG2Main : VAEntrypointIDCT
      VAProfileH264High : VAEntrypointVLD
      VAProfileVC1Advanced : VAEntrypointVLD

      Mplayer fails too (-vo vaapi -va vaapi . Simply using -vo vaapi:gl works)

      Comment


      • Okay, ignore it. Reverting to 10.1 makes it working again (same garbled output with -va vaapi, but that's not a surprise with Evergreen). Tested 0.6.8, it gives okay output with mplayer -vo vaapi for a h264 1080p video, cpu decoding.

        Comment


        • MPlayer/VAAPI 2010/02/24

          I have just uploaded a new version at:
          http://www.splitted-desktop.com/~gbe...mplayer-vaapi/

          Note: the GMA500 change requires a new driver that is not available yet.

          Version 2010.02.24
          * Update to MPlayer SVN rev 30589 and FFmpeg SVN rev 21847
          * Fix build with newer VA-API 0.31.0-sds5
          * Fix field display order with interlaced content
          * Fix YUV palette generation
          * Add support for GMA500 "psb" AYUV palette

          Comment


          • Originally posted by krionius View Post
            Okay, ignore it. Reverting to 10.1 makes it working again (same garbled output with -va vaapi, but that's not a surprise with Evergreen). Tested 0.6.8, it gives okay output with mplayer -vo vaapi for a h264 1080p video, cpu decoding.
            As I said earlier, don't expect any fix for 5xxx, even for the next few months...

            Comment


            • I was going to test the latest versions but got this instead

              Code:
              $ vainfo
              libva: libva version 0.31.0-sds5
              Xlib:  extension "XFree86-DRI" missing on display ":0.0".
              libva: va_getDriverName() returns 0
              libva: Trying to open /usr/lib/va/drivers/fglrx_drv_video.so
              libva error: dlopen of /usr/lib/va/drivers/fglrx_drv_video.so failed: libva-0.31.0.4.so.1: cannot open shared object file: No such file or directory
              libva: va_openDriver() returns -1
              vaInitialize failed with error code -1 (unknown libva error),exit
              It's trying to open libva-0.31.0.4.so.1 but only libva-0.31.0.5.so.1 is available.

              Comment


              • Guess I wasn't suppose to pick the latest version of libva.

                With the latest version of everything except libva...

                Using Ubuntu 9.10 (amd64) and fglrx 10.2.

                $ lspci | grep VGA
                01:00.0 VGA compatible controller: ATI Technologies Inc RV630 [Radeon HD 2600XT]

                Everything still seams to work.

                Comment


                • make
                  make all-recursive
                  make[1]: Entering directory `/mnt/data/energyman/linux/libva/libva-0.31.0'
                  Making all in src
                  make[2]: Entering directory `/mnt/data/energyman/linux/libva/libva-0.31.0/src'
                  Making all in x11
                  make[3]: Entering directory `/mnt/data/energyman/linux/libva/libva-0.31.0/src/x11'
                  /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -DLINUX -DIN_LIBVA -I../../src -I/usr/include/drm -g -O2 -MT dri1_util.lo -MD -MP -MF .deps/dri1_util.Tpo -c -o dri1_util.lo dri1_util.c
                  ../../libtool: line 827: X--tag=CC: command not found
                  ../../libtool: line 860: libtool: ignoring unknown tag : command not found
                  ../../libtool: line 827: X--mode=compile: command not found
                  ../../libtool: line 994: *** Warning: inferring the mode of operation is deprecated.: command not found
                  ../../libtool: line 995: *** Future versions of Libtool will require --mode=MODE be specified.: command not found
                  ../../libtool: line 1138: Xgcc: command not found
                  ../../libtool: line 1138: X-DHAVE_CONFIG_H: command not found
                  ../../libtool: line 1138: X-I.: command not found
                  ../../libtool: line 1138: X-I../..: No such file or directory
                  ../../libtool: line 1138: X-DLINUX: command not found
                  ../../libtool: line 1138: X-DIN_LIBVA: command not found
                  ../../libtool: line 1138: X-I../../src: No such file or directory
                  ../../libtool: line 1138: X-I/usr/include/drm: No such file or directory
                  ../../libtool: line 1138: X-g: command not found
                  ../../libtool: line 1138: X-O2: command not found
                  ../../libtool: line 1138: X-MT: command not found
                  ../../libtool: line 1138: Xdri1_util.lo: command not found
                  ../../libtool: line 1138: X-MD: command not found
                  ../../libtool: line 1138: X-MP: command not found
                  ../../libtool: line 1138: X-MF: command not found
                  ../../libtool: line 1138: X.deps/dri1_util.Tpo: No such file or directory
                  ../../libtool: line 1138: X-c: command not found
                  ../../libtool: line 1191: Xdri1_util.lo: command not found
                  ../../libtool: line 1196: libtool: compile: cannot determine name of library object from `': command not found
                  make[3]: *** [dri1_util.lo] Fehler 1
                  make[3]: Leaving directory `/mnt/data/energyman/linux/libva/libva-0.31.0/src/x11'
                  make[2]: *** [all-recursive] Fehler 1
                  make[2]: Leaving directory `/mnt/data/energyman/linux/libva/libva-0.31.0/src'
                  make[1]: *** [all-recursive] Fehler 1
                  make[1]: Leaving directory `/mnt/data/energyman/linux/libva/libva-0.31.0'
                  make: *** [all] Fehler 2

                  so how do you get this to build on a non-debian system?

                  Comment


                  • Originally posted by gbeauche View Post
                    As I said earlier, don't expect any fix for 5xxx, even for the next few months...
                    Yeah, i remember. i'm just testing things as always, if it got fixed ACCIDENTALLY somehow...

                    Comment


                    • xvba-video 0.6.9

                      A new version of xvba-video, the XvBA backend to VA-API, is now available at:
                      http://www.splitted-desktop.com/~gbe...ne/xvba-video/

                      Version 0.6.9 - 26.Feb.2010
                      * Optimize rendering of VA images
                      * Fix detection of window size changes
                      * Fix rendering of multiple surfaces per window
                      * Add support for VA_CLEAR_DRAWABLE to vaPutSurface()

                      This version is built against a VA-API 0.31.0-sds5 implementation, i.e. as provided by libva 0.31.0-1+sds10 packages. I won't build
                      xvba-video against earlier releases, please upgrade libVA.

                      The second change fixes MPlayer going to full-screen mode. Sometimes, the surfaces were not rendered at the right location or with
                      the right size. There was also a minor problem in MPlayer/VAAPI though.

                      The third change is an improvement for a newer Gnash/VAAPI patch. This would simplify rendering and make XVBA_VIDEO_PUTSURFACE_FAST
                      obsolete, which probably no longer works correctly BTW. Welcome to marvellous world of workarounds, they are bound to fail one way or
                      another in the future...

                      Note: even though those fixes look simple, they involved a certain amount of changes so there might be some regressions. Anyhow, the
                      vaPutSurface() implementation should now be complete and another iteration may be needed to optimize it a little.

                      Comment

                      Working...
                      X