Announcement

Collapse
No announcement yet.

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

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

  • Originally posted by rjwaldren View Post
    What exactly does that mean? Will MPEG2/4 see any benefit from XvBA in the near term or at all? Most of my use (>95% by percentage of play time) is MPEG2.
    The UVD only supports H.264 and VC-1 at VLD level. MPEG-2 is supported but at the IDCT level. Supporting other codecs would require offload to the GPU through shader programs.

    Back to the code itself... Is any effort going into integrating it into project mainlines - libva, FFMPEG, Mplayer, MythTV, VLC etc? I realize acceptance is project dependant but are the sources being marketed to them or is it destined to stay in the SDS tree for some long closed development cycle.
    Sources to what? The sources to xvba-video will remain closed as long as the XvBA API is private. Besides, the public version of xvba-video has reduced features wrt. private versions we develop for our own (embedded) solutions. We don't have the sources to the XvBA driver though I would be very happy to have and everybody knows it...

    Comment


    • Originally posted by evanjfraser View Post
      After using Kano's install script, running mplayer -vo vaapi -va vaapi <filename> gives the following error, and there's no video displayed (just audio).

      libva: libva version 0.31.0-sds3
      libva: va_getDriverName() returns 0
      libva: Trying to open /usr/local/lib/va/drivers/fglrx_drv_video.so
      libva: va_openDriver() returns -1
      [vo_vaapi] vaInitialize(): unknown libva error
      This means fglrx_drv_video.so was not found in /usr/local/lib/va/drivers/ or is not the right binary (32-/64-bit mismatch) -- please check your installation.

      Comment


      • an what about:
        Code:
        ben@Obi-Wan ~ $ vainfo 
        libva: libva version 0.31.0-sds3
        libva: va_getDriverName() returns 0
        libva: Trying to open /usr/lib64/va/drivers/fglrx_drv_video.so
        libva error: dlopen of /usr/lib64/va/drivers/fglrx_drv_video.so failed: /usr/lib64/va/drivers/fglrx_drv_video.so: wrong ELF class: ELFCLASS32
        libva: va_openDriver() returns -1
        vaInitialize failed with error code -1 (unknown libva error),exit
        what does wrong ELF class: ELFCLASS32 mean?

        Comment


        • Originally posted by Vighy View Post
          an what about:
          Code:
          ben@Obi-Wan ~ $ vainfo 
          libva: libva version 0.31.0-sds3
          libva: va_getDriverName() returns 0
          libva: Trying to open /usr/lib64/va/drivers/fglrx_drv_video.so
          libva error: dlopen of /usr/lib64/va/drivers/fglrx_drv_video.so failed: /usr/lib64/va/drivers/fglrx_drv_video.so: wrong ELF class: ELFCLASS32
          libva: va_openDriver() returns -1
          vaInitialize failed with error code -1 (unknown libva error),exit
          what does wrong ELF class: ELFCLASS32 mean?
          ah! I found: it's the ebuild that just installs 32bit binary of xvba-video! ahh!

          Comment


          • Originally posted by Vighy View Post
            an what about:
            Code:
            ben@Obi-Wan ~ $ vainfo 
            libva: libva version 0.31.0-sds3
            libva: va_getDriverName() returns 0
            libva: Trying to open /usr/lib64/va/drivers/fglrx_drv_video.so
            libva error: dlopen of /usr/lib64/va/drivers/fglrx_drv_video.so failed: /usr/lib64/va/drivers/fglrx_drv_video.so: wrong ELF class: ELFCLASS32
            libva: va_openDriver() returns -1
            vaInitialize failed with error code -1 (unknown libva error),exit
            what does wrong ELF class: ELFCLASS32 mean?
            fglrx_drv_video.so is a 32-bit binary whereas the 64-bit one is expected. BTW, I never really tested the 64-bit binaries, so it does interest me to know whether they work or not.

            Comment


            • Originally posted by gbeauche View Post
              The UVD only supports H.264 and VC-1 at VLD level. MPEG-2 is supported but at the IDCT level. Supporting other codecs would require offload to the GPU through shader programs.

              Sources to what?
              Since mplayer uses the XvBA library for XvMC I assumed that passing MPEG2 to hardware more closely tied to the the recent developments than it is - I'm no developer though. As for the sources - I was more interested in what if any response there is to submission of your Mplayer, libva patches upstream. I know you won't be releasing the driver sources and we'll have to wait through the trickle down.

              I do plan on testing what the new driver can do though.

              Bridgman, XvMC works in mplayer but the performance is only marginally better than Xv in my experience and still has the Xv washout. GL beats them both for playback quality, IMO, and is roughly on par for CPU usage. <-All use too much

              I'll probably just get a cheap NV9xxx card (along with it's hassles) until ATI vid accel support matures on the OSS side. I always give ATI the first shot... But my NV6100IGP generally is less of a hassle than my HD4850 under linux. The power of the HD4850 is much greater but when it comes to 1080p video or 1080i OTA streams they both suck. It's a great card under win7 though.

              Comment


              • Originally posted by gbeauche View Post
                fglrx_drv_video.so is a 32-bit binary whereas the 64-bit one is expected. BTW, I never really tested the 64-bit binaries, so it does interest me to know whether they work or not.
                I'm on 64-bit Fedora 11 with Radeon HD 2400 XT and I get:
                Code:
                vainfo
                libva: libva version 0.31.0-sds3
                libva: va_getDriverName() returns 0
                libva: Trying to open /usr/local/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.5.1
                vainfo: Supported profile and entrypoints
                xvba_video: XVBA_CreateContext(): status 11
                xvba_video: XVBA_CreateContext(): status 11
                xvba_video: XVBA_CreateContext(): status 11
                X Error of failed request:  BadLength (poly request too large or internal Xlib length error)
                  Major opcode of failed request:  35 (X_AllowEvents)
                  Serial number of failed request:  14
                  Current serial number in output stream:  14

                Comment


                • Originally posted by gbeauche View Post
                  fglrx_drv_video.so is a 32-bit binary whereas the 64-bit one is expected. BTW, I never really tested the 64-bit binaries, so it does interest me to know whether they work or not.
                  no they don't!

                  mplayer crashes 1-2 sec after launched.
                  And while trying to take a snapshot of what shows in that window for a while (because it shows something scrambled) it crashed my Xorg

                  the error it gives is:
                  Code:
                  xvba_video: XVBA_CreateDecode(): status 2
                  [vo_vaapi] vaCopySurfaceGLX(): unknown libva error
                  xvba_video: XVBA_CreateDecode(): status 2
                  [vo_vaapi] vaCopySurfaceGLX(): unknown libva error
                  xvba_video: error: Assertion failed in file xvba_decode.c at line 774
                  vainfo (just in case):
                  Code:
                  vainfo 
                  libva: libva version 0.31.0-sds3
                  libva: va_getDriverName() returns 0
                  libva: Trying to open /usr/lib64/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.5.1
                  vainfo: Supported profile and entrypoints
                        VAProfileMPEG2Simple            :	VAEntrypointIDCT
                        VAProfileMPEG2Main              :	VAEntrypointIDCT
                        VAProfileH264High               :	VAEntrypointVLD
                        VAProfileVC1Advanced            :	VAEntrypointVLD
                  and libva is the last (4 nov 2009) 0.31.0+1-sds7

                  if you need something, just tell me.

                  Comment


                  • Originally posted by rjwaldren View Post
                    Bridgman, XvMC works in mplayer but the performance is only marginally better than Xv in my experience and still has the Xv washout.
                    Yeah, the consensus here a year or so ago seemed to be that with modern CPUs there wasn't really much need for MPEG2 acceleration anyways. It's really the combination of high bitrate H.264/VC-1 and single-threaded software decoders that makes hardware decode acceleration so attractive right now

                    Comment


                    • Originally posted by Vighy View Post
                      And while trying to take a snapshot of what shows in that window for a while (because it shows something scrambled) it crashed my Xorg
                      I don't think you can take any snapshot anyway. I mean, I pretty doubt the backing store is active so you would get some black or white content instead.

                      the error it gives is:
                      Code:
                      xvba_video: XVBA_CreateDecode(): status 2
                      [vo_vaapi] vaCopySurfaceGLX(): unknown libva error
                      xvba_video: XVBA_CreateDecode(): status 2
                      [vo_vaapi] vaCopySurfaceGLX(): unknown libva error
                      xvba_video: error: Assertion failed in file xvba_decode.c at line 774
                      It could be that your system deviates too much from an AMD officially supported distribution. I also got that with some Debian/lenny mixture, though some other people have better success than me there.

                      BTW, it's simpler to test step by step. e.g. please download
                      http://splitted-desktop.com/~gbeauch...wdecode-demos/

                      And run e.g. vaapi_h264 --glx (double dash glx)

                      Comment


                      • Originally posted by gbeauche View Post
                        fglrx_drv_video.so is a 32-bit binary whereas the 64-bit one is expected. BTW, I never really tested the 64-bit binaries, so it does interest me to know whether they work or not.
                        First off, I'm on Debian testing x86_64 with a HD4850. I installed these:

                        ati-driver-installer-9-10-x86.x86_64.run
                        libva1_0.31.0-1+sds7_amd64.deb
                        xvba-video_0.5.1-1_amd64.deb

                        The first issue was that the ati installer didn't put the 64-bit libAMDXvBA.so.1 and libXvBAW.so.1 in /usr/lib/, just the 32-bit ones in /usr/lib32/. Makes sense since it's commented out in the installer:

                        #[WL} Remove 64bit support for Maximus as it is not currently ready
                        #cp -R arch/${ArchDir}/usr/X11R6/lib64/libAMDXvBA*.* \
                        # ${TmpDrvFilesDir}/${ATI_XLIB_64}
                        #cp -R arch/${ArchDir}/usr/X11R6/lib64/libXvBAW*.* \
                        # ${TmpDrvFilesDir}/${ATI_XLIB_64}
                        (I mailed you, gbeauche, about this too)

                        After putting those files in place, this was the output I received from vainfo:

                        remco@mirage:~$ vainfo
                        libva: libva version 0.31.0-sds3
                        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.5.1
                        vainfo: Supported profile and entrypoints
                        xvba_video: XVBA_CreateContext(): status 11
                        X Error of failed request: BadRequest (invalid request code or no such operation)
                        Major opcode of failed request: 0 ()
                        Serial number of failed request: 12
                        Current serial number in output stream: 12
                        Not good I'd say. Then I though I'd install an earlier version of xvba_video. When I tried 0.4.3 I got this:

                        remco@mirage:~$ vainfo
                        libva: libva version 0.31.0-sds3
                        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.4.3
                        vainfo: Supported profile and entrypoints
                        VAProfileMPEG2Simple : VAEntrypointIDCT
                        VAProfileMPEG2Main : VAEntrypointIDCT
                        VAProfileH264Baseline : VAEntrypointVLD
                        VAProfileH264Main : VAEntrypointVLD
                        VAProfileH264High : VAEntrypointVLD
                        VAProfileVC1Simple : VAEntrypointVLD
                        VAProfileVC1Main : VAEntrypointVLD
                        VAProfileVC1Advanced : VAEntrypointVLD
                        Nice, I thought, so I compiled mplayer-vaapi, which ran through after I linked the src dir from libva_0.31.0-1+sds7.tar.gz in /usr/includes as vm.

                        But running that mplayer against any file just gives me this:

                        Error opening/initializing the selected video_out (-vo) device.
                        Also vaapi is not in the list I get when running ./mplayer -vo help

                        If you need more info, let me know. I would really like that hardware acceleration

                        [edit]

                        Just tried to compile hwdecode-demos:

                        checking for XvBA... no
                        Last edited by RemcoL; 11-05-2009, 05:55 PM.

                        Comment


                        • I hope this stuff will be actually useful and not like Xv support where the colors are totally wrong and makes the whole totally useless...

                          Comment


                          • Until now the libamdxvba1 package was not installed with my script on karmic. I added an on the fly sed hack to remove the libstdc++5 depend. So it is not needed to fetch that package from jaunty anymore. Live testing with kubuntu is the biggest crap however - until somebody could tell me how to disable that stupid crash protection which results in not running kwin at all...

                            Comment


                            • For good measure, I checked the sha1sums of libAMDXvBA.so.1 from various sources:

                              a59c147c1c77ae68a5bb96388004b5900a932852 ati-9.9/libAMDXvBA.so.1.0
                              cf5d44a6593a5e2b6a82fd8c751b5914f833b135 ati-9.10/libAMDXvBA.so.1
                              7f1157d4f4d0642900f15b79feaa8198a6b3ec2d karmic/libAMDXvBA.so.1.0

                              That the first two are different is no surprise, but where does the karmic one come from? Not that it mattered for me, it doesn't work with the karmic version either.

                              Comment


                              • karmic has got a prerelease of the 9-10 driver, version 8.660, the final is 8.661 which is required.

                                Comment

                                Working...
                                X