issues with vdpau on 2 kubuntu setups

hi everybody,
i have some problems with accelerated video on my 2 machine both running with kubuntu 12.10 64bit

first one is on a core2duo laptop with 7600go gpu. i have made a fresh install of kubuntu and vdpau is not installed. vdpauinfo returns nothing and obviously mplayer gives an error on opening vdpau object. i tried nvidia-current 304.43, nvidia experimental 304.48 and even 310.14 from xorg-edgers. even tried to remove all vdpau related libraries before reinstalling driver with no luck. i am now back to regular nvidia-current after a ppa purge of xorg-edgers because 310.14 didn’t even recognise the gpu.

next is my desktop with i7 cpu and 660ti gpu. it was updated from kub 12.04 to 12.10. Here vdpau works fine with kmplayer/mplayer (flawless, i’d say) and with some minor glitches with vlc (some tearing, but i reckon it’s not nvidia driver related) but not at all with flashplugin (11.2.202.238 64bit installed via flash-aid plugin for firefox). video info on youtube returns sw decoding and sw rendering, no matter what combination of “use hw accel” tickbox and mms.cfg i use. looks like it just can’t find vdpau libs. unluckily i wasn’t even able to find a way to save flash output for debugging. i have tried with every 3xx driver i could find and now am using 310.14 from xorg-edgers repo.

it seems to me that the problem on both systems is related to the libraries paths, but i am really unable to sort it out. even tried to create some symlink between the different paths in /usr/lib to no avail.

any help would be appreciated

thnx in advance

The GeForce Go 7600 doesn’t support VDPAU. There’s a column in the “Supported NVIDIA GPU Products” appendix in the README that lists the VDPAU features. A dash means VDPAU is not supported:
[url]http://http.download.nvidia.com/XFree86/Linux-x86/304.60/README/supportedchips.html[/url]

GPUs prior to the GeForce 8 series became legacy in the 310 driver series, which is why it didn’t recognize your GeForce Go 7600. See the section labeled, “The 304.xx driver supports the following set of GPUs:” in the 310.14 README for a list of which GPUs are legacy in that series:
[url]http://http.download.nvidia.com/XFree86/Linux-x86/310.14/README/supportedchips.html[/url]

For your GeForce 660 Ti, does vdpauinfo work and report that accelerated video is supported? If so, you might want to seek help from your distribution to figure out why Flash is not working.

oh, so for the laptop it’s mostly lazyness on my part, but i guess i didn’t realize how old it got :)

fore the 660ti, yes vdpau is working. vdpauinfo return this, among all:
Information string: NVIDIA VDPAU Driver Shared Library 310.14 Tue Oct 9 12:17:03 PDT 2012

even trying mplayer -vo vdpau -vc ffh264vdpau SAMPLE.mkv (a h264 hd matrioska file)
gives this in his output
Selected video codec: [ffh264vdpau] vfm: ffmpeg (FFmpeg H.264 (VDPAU))

so yes vdpau is working properly except for flasplugin

if you can still spare some moments for me i’d like to understand where the driver installer puts the 64 bit libraries, because this is the situation in my system:

in usr/libs i have a some vdpau libraries but i also have some in usr/libs/x86_64-linux-gnu. i am afraid there can be some conflicts (this system went through some distribution upgrades and drivers from 295 series on)
btw i already asked for help in ubuntuforums but couldn’t get any

thnx for your help

Are you installing the driver from the .run package, or through your Linux distribution’s package manager? If you have a /usr/lib/x86_64-linux-gnu, then I would expect distribution-provided packages to put libraries in there. On Ubuntu (and Kubuntu, presumably) the .run package will default to putting 32-bit libraries in /usr/lib32 and 64-bit libraries in /usr/lib.

You can tell which version you’re using with “readlink /usr/lib/libvdpau.so.1”. If it points at a libvdpau.so.310.14, then that came from the NVIDIA driver. If it points at libvdpau.so.1.0.0, then it came from the open-source vdpau package. At some point, I want to stop including libvdpau in the .run package to avoid this sort of confusion. but that hasn’t happened yet. It shouldn’t really matter whether you’re using libvdpau from the .run package or from the distribution, since they should be functionally equivalent.

i have always installed the drivers from the ubuntu repos (310.14 is from a ppa called xorg-edgers)
i checked the symlinks in etc/lib and libvdpau.1.0 was pointing to libvdpau.1.0.0, changed it to the nvidia310.14 one and did an ldconfig just to see.
but all in all i reckon vdpau is working so the problem seems to be something like a wrong call from flashplugin, if only i could find a way to get the trace.

btw i remember that both hardware decoding and rendering worked with flashplugin when i switched from 304.43 to 304.48 (on the official ubuntu repo they were labelled nvidia-current and nvidia-experimental) and stopped when i switched to 310.14 (changing repo to the aforementioned xorg-edgers ppa). even rolling back did not fix it.

oh, on a side note there’s a strange behaviour of nvidia drivers with modesetting and Plymouth (the ubuntu init loading screen), it is broken in every other release: 304.43 didn’t work, 304.48 was ok, 310.14 is again broken. i have no idea if this depends on the ubuntu maintainers or the sh installer. it is just cosmetic and there are fixes, but maybe it is useful for you to know

ok i solved it.

had the chance to compare a laptop with 9600M gpu and kubuntu 12.10 64 bit with 310.14 drivers where flashplugin was working with HW acceleration.
turned out we had totally different libs
in /usr/libs i had:
libvdpau.so
libvdpau.so.1 (link to nvidia_vdpau.so.1 somewhere)
libvdpau.so.1.0.o
libvdpau_nvidia.so.1 (link to libvdpau.so)

the laptop in /usr/libs only had:
libvdpau_nvidia.so (link to /etc/alternatives/x86_64-linux-gnu_libvdpau_nvidia.so)

so i just deleted all the vdpau files in my /usr/lib and created the same symlink the laptop had and did a ldconfig.

now also flashplugin has full acceleration, and mplayer is still working perfectly

ps how do i tag this thread as solved?