Bug 54893

Summary: __vaDriverInit_0_33 missing from vdpau_driver.c
Product: libva Reporter: Ami Fischman <fischman>
Component: vdpauAssignee: Gwenole Beauchesne <gb.devel>
Status: NEW --- QA Contact:
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Ami Fischman 2012-09-13 21:42:31 UTC
vdpau_driver.c includes a __vaDriverInit_0_31(), but the current LIBVA_MINOR_VERSION is 33, not 31, causing libva to fail to load vdpau-driver.  Adding the below trampoline seems to make everything work:

VAStatus __vaDriverInit_0_33(void *ctx)
{
    return vdpau_Initialize_Current(ctx);
}
Comment 1 Gwenole Beauchesne 2012-09-14 16:38:04 UTC
Hi, VA_DRIVER_INIT_FUNC is generated from the configure script. So, if you have a current libva stack, with the associated pkg-config files, then it will work out of the box. the This machinery was useful in the past to maintain binary compatibility with older/newer libva versions than vdpau-video was built for.

I will probably drop support for any VA-API < 0.32.0.
Comment 2 Ami Fischman 2012-09-14 16:46:48 UTC
VA_DRIVER_INIT_FUNC in my setup doesn't contain the version number.
I suspect the problem is that I'm not installing libva into system locations, and vdpau-driver's configure script is getting confused.

To repro: 
- ensure there's no /usr/include/va/va_version.h or similarly located installation
- install libva into $HOME:
git clone git://anongit.freedesktop.org/libva
cd libva
./autogen.sh && ./configure --prefix=$HOME/apps/libva && make -j32 && make install

- install vdpau-driver into $HOME:
git clone git://anongit.freedesktop.org/vaapi/vdpau-driver
cd vdpau-driver
export LIBVA_DRIVERS_PATH=$HOME/apps/libva/lib/dri LIBVA_X11_DEPS_CFLAGS=-I$HOME/apps/libva/include LIBVA_X11_DEPS_LIBS=-L$HOME/apps/libva/lib LIBVA_DEPS_CFLAGS=-I$HOME/apps/libva/include LIBVA_DEPS_LIBS=-L$HOME/apps/libva/lib ; ./autogen.sh && ./configure --prefix=$HOME/apps/va --enable-debug && find . -name Makefile |xargs sed -i 'sI/usr/lib/xorg/modules/driversI$HOME/apps/libva/lib/driIg' && make -j32 && make install

The resulting nvidia_drv_video.so file doesn't have the _0_33 function.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.