Bug 54893 - __vaDriverInit_0_33 missing from vdpau_driver.c
Summary: __vaDriverInit_0_33 missing from vdpau_driver.c
Status: NEW
Alias: None
Product: libva
Classification: Unclassified
Component: vdpau (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Gwenole Beauchesne
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-09-13 21:42 UTC by Ami Fischman
Modified: 2012-09-14 16:46 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

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.