Announcement

Collapse
No announcement yet.

Mesa Gallium3D Pipe-Video Has Landed

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

  • Mesa Gallium3D Pipe-Video Has Landed

    Phoronix: Mesa Gallium3D Pipe-Video Has Landed

    As expected, Christian K?nig has pushed the Gallium3D pipe-video work into the mainline Mesa repository, which will be one of the big features to be introduced in Mesa 7.12/8.0 release, not the forthcoming Mesa 7.11...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    so I'm a noob...

    How do I use this? Is it usable? mplayer -vo vdpau complains that it can't find libvdpau_nvidia.so even though I'm running r600g

    Comment


    • #3
      I think you'll need to set VDPAU_DRIVER

      Originally posted by sgcb View Post
      mplayer -vo vdpau complains that it can't find libvdpau_nvidia.so even though I'm running r600g
      I'm no expert, but I think libvdpau is hardcoded to use the "nvidia" back-end unless you override it by setting the VDPAU_DRIVER environment variable.

      I think you want to try something like:
      Code:
      $ VDPAU_DRIVER=r600 vdpauinfo

      Comment


      • #4
        you need to set an environment variable:
        Code:
        VDPAU_DRIVER=r600 mplayer

        Comment


        • #5
          On gentoo

          The x11 overlay contains a 'live' ebuild media-libs/mesa-9999, but it doesn't (yet?) set the proper flags. You need to add
          myconf+="--enable-xvmc --enable-vdpau"
          just before the econf line
          (then, don't forget to update the manifest using 'repoman manifest').

          With those settings i now have some new files installed on my r600 system:
          /usr/lib64/libXvMCr600.so*
          /usr/lib64/libXvMCsoftpipe.so*
          /usr/lib64/vdpau/libvdpau_r600.so*
          /usr/lib64/vdpau/libvdpau_softpipe.so*

          As said previously, you need to set the env var VDPAU_DRIVER to your card (here : 'r600').
          vdpauinfo and mplayer wont see the vdpau stuff until i also set
          LD_LIBRARY_PATH=/usr/lib64/vdpau

          With all of this, i have the following results
          • vdpauinfo fails with "Failed to open VDPAU backend libvdpau_r600.so: cannot open shared object file: No such file or directory"
          • mplayer -vo vdpau manages to display the video, but it has lot of problems, such as printing "[vdpau] Error when calling vdp_output_surface_put_bits_indexed: No backend implementation could be loaded.", having a green line at the bottom of the video, and using as much CPU as usual. So i guess it's a failure too, but i wonder about the green line.. ?
          • using mplayer -vo xvmc fails with "vo_xvmc: No X-Video MotionCompensation Extension on :0"

          Comment


          • #6
            Right, VDPAU_DRIVER=r600 is working here as well, thanks As long as the linker can see libvdpau_r600.so which is installed to /usr/local/lib/vdpau on my system.

            This looks pretty good. Also I've noticed that changing to fullscreen does not keep the original source video's aspect like other video output drivers. Instead, video is stretched to cover the entire screen. And I too am seeing the vdp_output_surface_put_bits_indexed and vdp_output_surface_render_output_surface errors orzel mentions.

            Regardless, Christian K?nig is one awesome dude for all his work on the open source graphics stack!

            Comment


            • #7
              Does that mean that R300 will get VDPAU, too?

              Comment


              • #8
                Is there a blog post or wiki page anywhere that goes over the current status of this?

                As in, which codecs does it support? What are the limitations? Does it provide full h.264L5 support? h.263? Does it fall back to using the CPU in certain cases? What kind of performance does it provide?

                This might be a good topic for Phoronix to handle, but it's a fairly large subject so it might be too much for Michael.

                Comment


                • #9
                  Thank you Chris! I will definitely buy Llano because of you.
                  I skimmed through r600_shader.c and I saw virtually no R{678}00 optimization. Just directly TGSI to metal translation. After you video work, maybe AMD is just needs to optimize shaders a little bit.

                  Comment


                  • #10
                    Autogenerated configure scripts and makefiles are all fun and stuff, but only when it works.
                    Code:
                    make[3]: *** No rule to make target `../../../../src/gallium/drivers/softpipe/libsoftpipe.a', needed by `../../../../lib/egl/egl_gallium.so'.  Stop.
                    Code:
                    pkgname=mesa-full-r600g
                    pkgver=20110714
                    _realver=7.12
                    pkgrel=1
                    pkgdesc="Full Mesa 3D graphics library with all its components, built from the git master branch (mesa 7.12). Compiles mesa for r600g (gallium)."
                    arch=(i686 x86_64)
                    url="http://mesa3d.org/"
                    license=('LGPL')
                    depends=('libdrm-git' 'dri2proto>=2.1' 'glproto>=1.4.10' 'libxxf86vm' 'libxdamage' 'expat>=2.0.1' 'libxmu' 'talloc' 'llvm')
                    makedepends=('pkgconfig' 'imake' 'xorg-server-devel')
                    optdepends=('llvm: "configure" tests for its presence and compiles with some additional "-D" macros if found')
                    provides=("libgl=${_realver}" "mesa=${_realver}" "freeglut=${_realver}" "glut=${_realver}" "ati-dri=${_realver}")
                    replaces=('libgl' 'mesa' 'freeglut' 'glut' 'ati-dri')
                    conflicts=('libgl' 'mesa' 'freeglut' 'glut' 'ati-dri' 'mesa-full')
                    
                    _gitroot="git://anongit.freedesktop.org/git/mesa/mesa"
                    _gitname="mesa"
                    
                    build() {
                       msg "Connecting to git.freedesktop.org GIT server...."
                    
                       if [ -d $startdir/src/$_gitname ] ; then
                          cd $_gitname && git pull origin
                          msg "The local files are updated."
                       else
                          git clone $_gitroot
                       fi
                    
                       msg "GIT checkout done or server timeout"
                       msg "Starting make..."
                    
                       rm -rf $startdir/src/$_gitname-build
                       cp -rH $startdir/src/$_gitname $startdir/src/$_gitname-build
                       cd ${srcdir}/${_gitname}-build
                    
                       cd "${startdir}/src/mesa-build"
                       ./autogen.sh --prefix=/usr \
                       --with-dri-drivers=r600 \
                       --with-gallium-drivers=r600 \
                       --with-dri-driverdir=/usr/lib/xorg/modules/dri \
                       --enable-glx-tls \
                       --enable-xcb \
                       --enable-egl \
                       --enable-gallium-egl \
                       --enable-gallium-llvm \
                       --enable-glu \
                       --enable-gles1 \
                       --enable-gles2 \
                       --enable-glut \
                       --enable-glw \
                       --enable-openvg \
                       --enable-xa \
                       --enable-xorg \
                       --enable-osmesa \
                       --enable-texture-float \
                       --enable-shared-glapi \
                       --enable-shared-dricore \
                       --enable-gbm \
                       --enable-gallium-gbm \
                       --enable-xvmc \
                       --enable-vdpau \
                       --enable-gallium-g3dvl || return 1
                    
                       make || return 1
                       make DESTDIR="${pkgdir}" install || return 1
                    
                       install -m755 -d "${pkgdir}/usr/lib/xorg/modules/extensions"
                       ln -sf libglx.xorg ${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so || return 1
                    }
                    *Sigh*
                    It's beginning at mesa too...

                    Comment

                    Working...
                    X