
XBMC and VDPAU headaches
News, Technical ·Sunday May 23, 2010 @ 06:42 EDT (link)
I upgraded XBMC from source control recently and all the background textures (overlays?) were gone—the Confluence skin looked like the sample but but without any of the shading behind the menus, weather info, or dialog boxes. Menus and movie info were quite hard to read with the text superimposed on other text or the background image without any contrast.
First I checked if it was the nVidia OpenGL, by switching temporarily to the (much slower) X11 OpenGL, but it had the same issue. I debugged around the code a bit to ensure the textures in question were being loaded, and they were.
Then I figured I'd play a movie anyway, but XBMC crashed in VDPAU code. It looked like it was trying to detect the graphics card or support, and eventually on a hunch I went to verify if my card actually support VDPAU and/or VAAPI. It turns out VAAPI uses VDPAU as a backend on nVidia cards (as in the crash callstack) and my particular card does not in fact support VDPAU. So it gracelessly decides that crashing is a robust solution: bit of a fail.
I uninstalled the VDPAU (libvdpau) and VAAPI (libva) packages and rebuilt the dependencies (primarily MythTV, Transcode, and XBMC), and as it happens the background overlays came back too, which made me happy, even though it was rather a long aggravating process. (To top it off, the machine I was using to debug—the machine I am typing on—also had some issues: D-Bus problems, KDE sync dependency hell, KDM ignoring keyboard and mouse input—the last was fixed by re-installing evdev). What a mess!
Does this mean Linux sucks? No, but it means if you want to run a source-based distro (Gentoo) and upgrade it frequently and to the bleeding edge, a little expertise is required. But nobody has to run a source-based distro (there are plenty of binary distros) nor use leading-edge packages. But where's the fun in that?
Books finished: The Path of Daggers.