[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#656719: [PATCH v4 1/3] Add Gallium VDPAU and XvMC driver support (#656719)



From: Fabio Pedretti <fabio.ped@libero.it>
Date: Sun, 29 Jan 2012 21:00:57 +0100

Since version 8.0 Mesa provides XvMC and VDPAU Gallium3D video
acceleration drivers.

Fabio’s patch sent to the Debian BTS [1] is adapted

1. to comment

       ln -s build/dri/$(DEB_HOST_MULTIARCH)/gallium/XvMCConfig /etc/X11/XvMCConfig

   overwriting `/etc/X11/XvMCConfig` already shipped by `libxvmc1`,
2. to not install `/etc/XvMCConfig` which should go under `/etc/X11/`
3. and removing a line from `not_installed`.

Item 2 probably has to be solved by some kind of `update-alternatives`
to work when this package in deinstalled again.

Using `mplayer -vo xvmc -vc ffmpeg12mc dvd.mpeg2` does not work for me
since MPlayer does not find `libXvMCr600.so.1`.

        $ mplayer -vo xvmc -vc ffmpeg12mc dvd.mpeg2
        MPlayer svn r34540 (Debian), built with gcc-4.7 (C) 2000-2012 MPlayer Team
        […]
        MPEG-PS file format detected.
        VIDEO:  MPEG2  720x576  (aspect 3)  25.000 fps  7500.0 kbps (937.5 kbyte/s)
        vo_xvmc: X-Video extension 2.2
        vo_xvmc: X-Video MotionCompensation Extension version 1.1
        ==========================================================================
        Forced video codec: ffmpeg12mc
        Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
        libavcodec version 53.35.0 (external)
        Mismatching header version 53.32.2
        [VD_FFMPEG] XVMC-accelerated MPEG-2.
        [VD_FFMPEG] XVMC-accelerated MPEG-2.
        Selected video codec: [ffmpeg12mc] vfm: ffmpeg (FFmpeg MPEG-1/2 (XvMC) - deprecated, just use ffmpeg12)
        ==========================================================================
        ==========================================================================
        Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
        AUDIO: 48000 Hz, 2 ch, s16le, 384.0 kbit/25.00% (ratio: 48000->192000)
        Selected audio codec: [ffac3] afm: ffmpeg (FFmpeg AC-3)
        ==========================================================================
        AO: [pulse] 48000Hz 2ch s16le (2 bytes per sample)
        Starting playback...
        [VD_FFMPEG] Trying pixfmt=0.
        [VD_FFMPEG] XVMC-accelerated MPEG-2.
        vo_xvmc: Found matching surface with id=32315659 on 63 port at 0 adapter
        Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
        VO: [xvmc] 720x576 => 1024x576 MPEG1/2 Motion Compensation and IDCT
        vo_xvmc: Found matching surface with id=32315659 on 63 port at 0 adapter
        vo_xvmc: Using Xv Adaptor #0 (Radeon Textured Video)
        vo_xvmc: Port 63 grabed
        XvMCWrapper: Could not load hardware specific XvMC library "libXvMCr600.so.1".
        libXvMCr600.so.1: cannot open shared object file: No such file or directory
        vo_xvmc: XvMCCreateContext failed with error 2
        […]

The libraries are installed correctly though.

        $ more /etc/X11/XvMCConfig
        libXvMCr600.so.1
        $ ls -l /usr/lib/dri/libXvMCr6*
        lrwxrwxrwx 1 root root      16 Jun 24 11:07 /usr/lib/dri/libXvMCr600.so -> libXvMCr600.so.1
        lrwxrwxrwx 1 root root      18 Jun 24 11:07 /usr/lib/dri/libXvMCr600.so.1 -> libXvMCr600.so.1.0
        -rw-r--r-- 1 root root 1067180 Jun 24 11:10 /usr/lib/dri/libXvMCr600.so.1.0

No file `NEWS.Debian` is provided since the support is still work in progress.

[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=656719
---
 debian/changelog                |    7 +++++++
 debian/control                  |   22 ++++++++++++++++++++++
 debian/libg3dvl-mesa.install.in |    3 +++
 debian/not-installed            |    4 +++-
 debian/rules                    |    5 ++++-
 5 files changed, 39 insertions(+), 2 deletions(-)
 create mode 100644 debian/libg3dvl-mesa.install.in

diff --git a/debian/changelog b/debian/changelog
index 0eb66a1..a6900df 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+mesa (8.0.3-2) UNRELEASED; urgency=low
+
+  * Enable Gallium VDPAU and XvMC driver support on at least
+    Radeon r300+ and r600+. (Closes: #656719) (LP: #1002224)
+
+ -- Fabio Pedretti <fabio.ped@libero.it>  Mon, 21 May 2012 12:46:40 +0300
+
 mesa (8.0.3-1) unstable; urgency=low
 
   [ Robert Hooker ]
diff --git a/debian/control b/debian/control
index ec59840..a9fcdd3 100644
--- a/debian/control
+++ b/debian/control
@@ -32,6 +32,8 @@ Build-Depends:
  bison,
  llvm-2.9-dev [amd64 i386 kfreebsd-amd64 kfreebsd-i386],
  libwayland-dev (>= 0.85.0) [linux-any],
+ libvdpau-dev (>= 0.4.1) [linux-any],
+ libxvmc-dev (>= 1.0.6) [linux-any],
 Vcs-Git: git://git.debian.org/git/pkg-xorg/lib/mesa
 Vcs-Browser: http://git.debian.org/?p=pkg-xorg/lib/mesa.git
 Homepage: http://mesa3d.sourceforge.net/
@@ -803,4 +805,24 @@ Description: Mesa OpenGL utility library -- development files
  For a complete description of GLU, please look at the libglu1-mesa
  package.
 
+Package: libg3dvl-mesa
+Section: libs
+Architecture: linux-any
+Depends:
+ ${shlibs:Depends},
+ ${misc:Depends},
+Description: xvmc and vdpau Gallium3D video acceleration drivers
+
+Package: libg3dvl-mesa-dbg
+Section: debug
+Priority: extra
+Architecture: linux-any
+Depends:
+ libg3dvl-mesa (= ${binary:Version}),
+ ${misc:Depends},
+Description: xvmc and vdpau Gallium3D video acceleration drivers
+ .
+ This package contains the debugging symbols for the g3dvl libraries.
+
+
 # vim: tw=0
diff --git a/debian/libg3dvl-mesa.install.in b/debian/libg3dvl-mesa.install.in
new file mode 100644
index 0000000..3edf4cc
--- /dev/null
+++ b/debian/libg3dvl-mesa.install.in
@@ -0,0 +1,3 @@
+build/dri/${DEB_HOST_MULTIARCH}/gallium/libvdpau_* usr/lib/vdpau
+build/dri/${DEB_HOST_MULTIARCH}/gallium/libXvMC* usr/lib/dri
+build/dri/${DEB_HOST_MULTIARCH}/gallium/XvMCConfig usr/lib
diff --git a/debian/not-installed b/debian/not-installed
index afbf7dc..3ce6d56 100644
--- a/debian/not-installed
+++ b/debian/not-installed
@@ -18,7 +18,9 @@ NOT_INSTALLED := \
 	usr/include/GL/glx_mangle.h \
 	usr/include/GL/vms_x_fix.h \
 	usr/include/GL/wglext.h \
-	usr/include/GL/wmesa.h
+	usr/include/GL/wmesa.h \
+	dri/usr/*/libXvMC* \
+	dri/usr/lib/*/vdpau/
 
 # Architecture-specific additional files:
 NOT_INSTALLED_i386 = \
diff --git a/debian/rules b/debian/rules
index 3bf3702..c1999da 100755
--- a/debian/rules
+++ b/debian/rules
@@ -119,6 +119,7 @@ confflags-dri = \
 	--enable-glx-tls \
 	--enable-shared-glapi \
 	--enable-texture-float \
+	--enable-gallium-g3dvl \
 	--enable-xa \
 	$(confflags_DIRECT_RENDERING) \
 	$(confflags_EGL) \
@@ -214,6 +215,8 @@ $(STAMP_DIR)/stamp:
 $(QUILT_STAMPFN): $(STAMP_DIR)/stamp
 
 build: build-stamp
+	# XvMCConfig configuration file:
+	echo "ln -s build/dri/$(DEB_HOST_MULTIARCH)/gallium/XvMCConfig /etc/X11/XvMCConfig"
 
 build-stamp: $(BUILD_STAMPS)
 	>$@
@@ -294,7 +297,7 @@ binary-arch: install
 
 	# Also get rid of other files which aren't installed. Do not
 	# use -f to ensure we notice disappearing files:
-	set -e; for file in $(NOT_INSTALLED); do rm debian/tmp/$$file; done
+	set -e; for file in $(NOT_INSTALLED); do rm -r debian/tmp/$$file; done
 	# Files only in git, not in tarballs, OK to use rm -f here:
 	set -e; for file in $(NOT_INSTALLED_EITHER); do rm -f debian/tmp/$$file; done
 	# No need for this .so, libglapi is just a convenience library:
-- 
1.7.10.4

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: