After AMD proprietary department did not care for XvBA for more than 2 years now and no AMD driver since 12.10 was really usable, we got into contact with the AMD OSS devs. Within just 2 weeks, we got more working than we ever hoped with the oss radeon vdpau in comparison to fglrx binary blob xvba implementation. As it now made a whole lot of fun working with AMD hardware, we have dropped XvBA completely (it is parked in fernetmentas xvba branch).
What you get
- Bitstream Audio (including DTS-HD, TrueHD, LPCM 7.1)
- max resolution: 2048 x 1152
- mpeg2, mpeg4, h264, vc1 advanced accleration
- Bob and Temporal deinterlacing via vdpau
Known issues for now
- h264 decoding performance is currently limited to max 36fps (E350 - was 50fps on xvba)
- If xbmc is hanging on exit, disable the service version check addon from within xbmc.
- some HD7xxx and HD8xxx gpus have artifacts in the menus (see bugreport here: https://bugs.freedesktop.org/show_bug.cgi?id=63997 )
- mpeg-2 is broken on some cards. Kernel / mesa fault. It is already filed upstream. In doubt, contact: libgradev.
-1.) Hardware Requirements / Software Requirements
UVD 2.2 or higher See here: http://en.wikipedia.org/wiki/Unified_Vid...abled_GPUs
Ubuntu Saucy mini iso installed x64.
0.) Basic Installation and script tuning
After the mini iso is installed, continue with the following steps:
sudo apt-get update
sudo apt-get install ssh python-software-properties software-properties-common udisks upower xorg alsa-utils mesa-utils git-core librtmp0 lirc libmad0 lm-sensors libmpeg2-4 avahi-daemon libnfs1 consolekit
sudo apt-get dist-upgrade
Allow every user (everyone) to start X11
sudo dpkg-reconfigure x11-common
Create the xbmc user and it add it the relevant groups. If you have created the xbmc user during installation only do the usermod part.
sudo adduser xbmc
sudo usermod -a -G cdrom,audio,video,plugdev,users,dialout,dip xbmc
To use the following upstart procedure you need to create two files, therefore you have to do both steps A _and_ B:
A) Put the following file as to /etc/init/xbmc.conf to later start xbmc session, don't forget to check the next script B, too:
# starts XBMC on startup by using xinit.
# by default runs as xbmc, to change edit below.
author "Matt Filetto"
start on (filesystem and stopped udevtrigger)
stop on runlevel 
# tell upstart to respawn the process if abnormal exit
respawn limit 10 5
exec su -c "xinit /home/xbmc/startxbmc.sh :0" $USER
# the following two are to get an idea, if you want to user a window manager
# exec su -c "xinit /usr/bin/fluxbox :0" $USER
B) Create /home/xbmc/startxbmc.sh with the following content:
# this is not needed anymore with the kernel in this thread
# it might still be needed for vanilla 3.12 kernels
# the following command should not be needed anymore with my version 0.3 from above
# xrandr --output HDMI-0 --set audio auto
# xrandr -r 50
exec /usr/bin/xbmc --standalone
edit /etc/security/limits.conf and add before the end. remember xbmc is the username, not the application. This will allow your user to get the audio thread a bit more priority.
xbmc - nice -1
Last thing is missing some permissions to shutdown, suspend the computer, therefore create the file /etc/polkit-1/localauthority/50-local.d/custom-actions.pkla with the following content (don't introduce line breaks, especially the Action= line must be exactly one line (especially no linebreaks or auto ".." in freedesktop.udisks.*), verify this):
[Actions for xbmc user]
1.) Installation of the wsnipex repository which includes all relevant mesa patches - this is a copied version of a specific oibaf ppa version that was known to be working
sudo apt-add-repository ppa:wsnipex/mesa
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install libg3dvl-mesa vdpauinfo linux-firmware
If you get errors when installing (e.g. wayland problem). You have to run sudo dpkg -i --force-all for all the problematic packages in /var/lib followed by sudo apt-get -f install ( see, e.g. here: http://forum.xbmc.org/showthread.php?tid...pid1520014 )
2.) Installation of the repository and the new packages
sudo apt-add-repository ppa:wsnipex/xbmc-fernetmenta-master
sudo apt-get update
sudo apt-get install xbmc xbmc-bin
3.) Update your kernel to a version >= 3.12.0
Remember to wget both files wget file1 file2
wget https://dl.dropboxusercontent.com/u/55728161/linux-image-3.12.0%2B_4.0_amd64.deb https://dl.dropboxusercontent.com/u/55728161/linux-headers-3.12.0%2B_4.0_amd64.deb
sudo dpkg -i *3.12.0*deb
Check my linux fork on github
howto: conservative for this howto - mostly Anssis HDA patch
experimental: Some stuff cherry-picked by Christian
Edit /etc/default/grub so that GRUB_CMDLINE_LINUX_DEFAULT reads like, if you find "nomodeset" in that line or vga=normal, remove those.
GRUB_CMDLINE_LINUX_DEFAULT="radeon.audio=1 radeon.dpm=1 clocksource=hpet hpet=enable quiet splash"
If you get reproducable freezes, when you plugin a monitor after adding the above options, remove radeon.audio=1 again.
Reboot of the system
We are done now with installing. We will reboot now, remember to make the following settings within xbmc in step 4. It could also be good to disable the RSS Reader to save some processing power.
4.) XBMC settings
Vertical Sync: Always on
Prefer VDPAU Mixer: ON
Adjust Refreshrate to match video: On
Sync Playback to Display: On
Sync Method: Video Clock (Drop/Dupe)
advancedsettings.xml in /home/xbmc/.xbmc/userdata/advancedsettings.xml should contain (don't create that file / directory as root - use the xbmc user):
<cputempcommand>sensors|sed -ne "s/Core 0: \+[-+]\([0-9]\+\).*/\1 C/p"</cputempcommand>
<gputempcommand>sensors|sed -ne "s/temp1: \+[-+]\([0-9]\+\).*/\1 C/p"</gputempcommand>
<delay>175</delay> <!-- set to zero or adjust if audio seems out of sync with 24p movies -->
We need full debug logs that show the issue. We don't look at cut out logfiles, as most of the time, the important part is missing. Additionally get us the output of dmesg, Xorg.0.log and vdpauinfo. Don't post the logs inline, don't use google drive or something, just post links to known pastebins. Set xbmc into debugging mode, redo what is causing errors and afterwards do:
sudo apt-get install pastebinit
dmesg | pastebinit
cat ~/.xbmc/temp/xbmc.log | pastebinit
cat /var/log/Xorg.0.log | pastebinit
DISPLAY=:0 vdpauinfo | pastebinit
dpkg -l |grep mesa | pastebinit
glxinfo | grep -i interop should display something like:
Quote:GL_NV_packed_depth_stencil, GL_NV_texture_barrier, GL_NV_vdpau_interop
GL_NV_texture_env_combine4, GL_NV_texture_rectangle, GL_NV_vdpau_interop
Relevant output from qvdpauinfo:
AMD E-350 Processor
VDPAU API version : 1
VDPAU implementation : G3DVL VDPAU Driver Shared Library version 1.0
FATAL: get_bits failed : No backend implementation could be loaded.!!
MPEG DECODING (1920x1080): 59 frames/s
MPEG DECODING (1280x720): 92 frames/s
H264 DECODING (1920x1080): 38 frames/s
H264 DECODING (1280x720): 70 frames/s
VC1 DECODING (1440x1080): 85 frames/s
MPEG4 DECODING (1920x1080): 54 frames/s
MIXER WEAVE (1920x1080): 275 frames/s
MIXER BOB (1920x1080): 439 fields/s
Audio trouble shooting
Check if you audio device is muted
You can use alsamixer -c0 or alsamixer -c1 to do it manually, or use something like:
amixer set 'IEC958',0 unmute
This howto does not install pulseaudio out of a very good reason. We don't support it in xbmc, yet.
If DTS-HD / TrueHD does not work or your kernel complains about broken edid, consider the following:
Download: https://dl.dropboxusercontent.com/u/5572...arantz.bin and save it to /lib/firmware/edid
You have to create the /lib/firmware/edid directory. Make 100% sure, the file has exact 256 Byte after download, if not redownload it.
afterwards edit /etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT="drm_kms_helper.edid_firmware=HDMI-A-1:edid/marantz.bin radeon.audio=1 radeon.dpm=1 clocksource=hpet hpet=enable quiet splash"
Bitstream audio still not working
Some receivers deny Bitstream Audio for everything not 60hz. In that case disable Adjust Refreshrate to match Video and also set the Sync Playback to Display to Audio Clock.
Out of historical reasons, you can join #xbmc-xvba for discussing this howto. The channel name shall make us remember forever, that best hardware is worth nothing, if there are no drivers for it :-)