Kodi Community Forum
[LINUX] HOW-TO use VAAPI HW Acceleration on AMD Zacate (Fusion) platform - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Support (https://forum.kodi.tv/forumdisplay.php?fid=33)
+--- Forum: General Support (https://forum.kodi.tv/forumdisplay.php?fid=111)
+---- Forum: Linux (https://forum.kodi.tv/forumdisplay.php?fid=52)
+---- Thread: [LINUX] HOW-TO use VAAPI HW Acceleration on AMD Zacate (Fusion) platform (/showthread.php?tid=99154)



- tjones - 2011-10-26

Another successful 10.04.3 64b install with the splitted desktop stuffs.

It turns out the composite disable xorg.conf edit is for better h264 playback. Dropped my cpu usage from 40-50% to ~30%.

Another tidbit of info. When sync to display was enabled on my system I was left with an X11 cursor stuck in the middle of my screen. The solution is to either disable hwcursor completely or replace it with swcursor in your /etc/X11/xorg.conf

http://www.x.org/archive/X11R6.8.1/doc/ati5.html

My xorg.conf device section looks like this.

Code:
Section "Device"
        Identifier  "aticonfig-Device[0]-0"
        Driver      "fglrx"
        BusID       "PCI:0:1:0"
        Option      "SWCursor" "true"
EndSection

sync to display now works flawlessly and I still have a cursor.

I've been working out the kinks on 10.04 with the 3.0 kernel as well as experimenting with debian wheezy but I'm still not ready to post any of that yet.

@Hack_kid if you send me a pm I will give you my complete install notes line for line. I'm sure the rest of the viewers of this thread have seen enough of my reporting.

@Journeym I found it easiest to use the "apt-get build-dep xbmc" line for xbmc dependencies. Just add-apt-repository ppa:team-xbmc/unstable and then apt-get update, apt-get build-dep xbmc. Note your sources *.list must contain a deb-src entry as stated in my 10.04 notes I left a couple posts back.

@kobik Are you using an ssh login? fglrxinfo and vainfo do not report correctly over ssh. If so use a local terminal to check them.


- Journeym - 2011-10-26

tjones Wrote:@Journeym I found it easiest to use the "apt-get build-dep xbmc" line for xbmc dependencies. Just add-apt-repository ppa:team-xbmc/unstable and then apt-get update, apt-get build-dep xbmc. Note your sources *.list must contain a deb-src entry as stated in my 10.04 notes I left a couple posts back.
It's not working. Lucid 10.04, tried change to natty (/etc/apt/sources.list.d/team-xbmc*.list), same results.
Code:
mc@mc:~$ sudo apt-get build-dep xbmc
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to find a source package for xbmc

Actually, here i can see depends only for hardy and jauntry, is this link actual?
http://ppa.launchpad.net/team-xbmc/xbmc-ppa-build-depends/ubuntu/dists/


- tjones - 2011-10-26

Does your /etc/apt/sources.list.d/team-xbmc*.list look like this for 10.04.3?

Code:
deb http://ppa.launchpad.net/team-xbmc/unstable/ubuntu lucid main
deb-src http://ppa.launchpad.net/team-xbmc/unstable/ubuntu lucid main

Originally after the add-apt-repository ppa:team-xbmc/unstable it looks like:

Code:
deb http://ppa.launchpad.net/team-xbmc/unstable/ubuntu lucid main

And you'll recieve the no source package found error. After adding the deb-src line and then sudo apt-get update it should be able to find a source package. I've done this several times over the past week with 10.04.3 installs and have had no issues after the edit and then sudo apt-get update.

Here is the terminal output from my last 10.04.3 install after the build-dep command. You could try using this dependency list for 10.04.3. It might work it might not since I have already installed an openbox desktop environment fglrx and splitted desktop vaapi before these xbmc dependencies. For fglrx dependencies I used
Code:
sudo apt-get build-dep fglrx-installer
then
Code:
sudo apt-get install dkms ia32libs
. You might want to make sure those are included as well so you don't miss any build packages I may have installed.


Code:
pinker@pinker-E350:~/vaapi$ sudo apt-get build-dep xbmc
Reading package lists... Done
Building dependency tree      
Reading state information... Done
Note, selecting libglew1.5-dev instead of libglew-dev
Note, selecting libjpeg62-dev instead of libjpeg-dev
Note, selecting libsamplerate0-dev instead of libsamplerate-dev
Note, selecting libfontconfig1-dev instead of libfontconfig-dev
Note, selecting libsdl1.2-dev instead of libsdl-dev
The following NEW packages will be installed:
  autoconf automake autotools-dev cmake cmake-data comerr-dev cpp-4.3 curl
  emacsen-common esound-clients esound-common fp-compiler fp-ide fp-units-base
  fp-units-db fp-units-fcl fp-units-fv fp-units-gfx fp-units-gnome1
  fp-units-gtk fp-units-gtk2 fp-units-math fp-units-misc fp-units-multimedia
  fp-units-net fp-units-rtl fp-utils fpc g++-4.3 gawk gcc-4.3 gcc-4.3-base gdc
  gdc-4.3 gperf krb5-multidev liba52-0.7.4 liba52-0.7.4-dev libaa1 libaa1-dev
  libasound2-dev libass-dev libass4 libatk1.0-dev libaudio-dev
  libaudiofile-dev libaudiofile0 libavahi-client-dev libavahi-common-dev
  libavcodec-dev libavcodec52 libavfilter-dev libavfilter0 libavformat-dev
  libavformat52 libavutil-dev libavutil49 libbluetooth-dev
  libboost-date-time1.40-dev libboost-date-time1.40.0 libboost-dev
  libboost-serialization1.40-dev libboost-serialization1.40.0
  libboost-thread-dev libboost-thread1.40-dev libboost-thread1.40.0
  libboost1.40-dev libbz2-dev libcaca-dev libcaca0 libcairo2-dev libcdio-dev
  libcrystalhd-dev libcrystalhd3 libcurl3 libcurl4-gnutls-dev libcwiid-dev
  libcwiid1 libdbus-1-dev libdca-dev libdca0 libdirectfb-dev libdirectfb-extra
  libdts-dev libenca-dev libenca0 libesd0 libesd0-dev libexpat1-dev
  libflac-dev libflac8 libfontconfig1-dev libfreetype6-dev libfribidi-dev
  libgcrypt11-dev libgl1-mesa-dev libglew1.5 libglew1.5-dev libglib2.0-dev
  libglu1-mesa libglu1-mesa-dev libgnutls-dev libgpg-error-dev libgsm1
  libgssrpc4 libgtk2.0-dev libhal-dev libhal-storage-dev libice-dev libicu42
  libidn11-dev libiso9660-7 libiso9660-dev libjasper-dev libjpeg62-dev
  libkadm5clnt-mit7 libkadm5srv-mit7 libkdb5-4 libkrb5-dev libldap2-dev
  libltdl-dev liblzo2-2 liblzo2-dev libmad0 libmad0-dev libmicrohttpd-dev
  libmicrohttpd5 libmikmod2 libmikmod2-dev libmodplug-dev libmodplug0c2
  libmpeg2-4 libmpeg2-4-dev libmysqlclient-dev libmysqlclient16
  libncurses5-dev libogg-dev libogg0 liboil0.3 libpango1.0-dev libpcre3-dev
  libpcrecpp0 libphobos-4.3-dev libpixman-1-dev libplist-dev libpng12-dev
  libpostproc-dev libpostproc51 libpthread-stubs0 libpthread-stubs0-dev
  libpulse-browse0 libpulse-dev libpulse-mainloop-glib0 libpulse0 librtmp-dev
  librtmp0 libsamplerate0 libsamplerate0-dev libschroedinger-1.0-0
  libsdl-image1.2 libsdl-image1.2-dev libsdl-mixer1.2 libsdl-mixer1.2-dev
  libsdl1.2-dev libsdl1.2debian libsdl1.2debian-alsa libslang2-dev libsm-dev
  libsmbclient-dev libsmpeg-dev libsmpeg0 libsndfile1 libspeex1 libsqlite3-dev
  libssl-dev libstdc++6-4.3-dev libswscale-dev libswscale0 libsysfs-dev
  libtasn1-3-dev libtheora0 libtiff4-dev libtiffxx0c2 libtool libvdpau-dev
  libvdpau1 libvorbis-dev libvorbis0a libvorbisenc2 libvorbisfile3 libx11-dev
  libxau-dev libxcb-render-util0-dev libxcb-render0-dev libxcb1-dev
  libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev
  libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxml2-dev libxml2-utils
  libxmu-dev libxmu-headers libxrandr-dev libxrender-dev libxt-dev libyajl-dev
  libyajl1 m4 mesa-common-dev mysql-common python-dev python-imaging
  python2.6-dev unzip x11proto-composite-dev x11proto-core-dev
  x11proto-damage-dev x11proto-fixes-dev x11proto-input-dev x11proto-kb-dev
  x11proto-randr-dev x11proto-render-dev x11proto-xext-dev
  x11proto-xinerama-dev xtrans-dev yasm zip zlib1g-dev
The following packages will be upgraded:
  libdbus-1-3 libgssapi-krb5-2 libk5crypto3 libkrb5-3 libkrb5support0
  libpng12-0
6 upgraded, 234 newly installed, 0 to remove and 31 not upgraded.
Need to get 130MB of archives.
After this operation, 561MB of additional disk space will be used.



- tjones - 2011-10-26

While I going over my failed 11.10 build notes from last week I came across this. It is from a 11.10 attempt with ubuntu libva.

##./boostrap fine no errors, ./configure --enable-vaapi no errors, make -j2 lots of libavcodec "warnings" typically waWunused-but-set-variable, XBMC built successfully.

This was occurring enough in the terminal output that I made note of it at the time. I haven't noticed such warnings in my 10.04 compiles.

So perhaps the real issue with a native 11.10 compile isn't the ubuntu libva but the current ubuntu libavcodec53 or libavcodec-dev.

For now I'm leaving 11.10 alone but if anybody attempts a compile on a native 11.10 system perhaps you could log the "make -j2" output. In hindsight I really wish I did that now.


- Journeym - 2011-10-26

Thanks!
Now it worked.
Now i need to complile xbmc, like written in Robotica post?


- Journeym - 2011-10-26

configure gives me
Code:
checking for main in -lGL... no
configure: error: Could not find a required library. Please see the README for your platform.
What is this lGL?


- tjones - 2011-10-26

Try another apt-get build-dep xbmc and see if it missed anything. Is this on a lucid system?

If you are using 64b make sure you installed ia32-libs. These should be installed before the proprietary fglrx driver anyway.

Check to see if libltdl7 libltdl-dev are installed as well.
Code:
sudo apt-get install libltdl7 libltdl-dev ia32-libs

Then try cleaning your xbmc git and start from the beginning.

http://book.git-scm.com/4_undoing_in_git_-_reset,_checkout_and_revert.html

Code:
cd ~/xbmc
git reset --hard HEAD


I've been doing it like this on 10.04 w/o the blueray or prefix.
Code:
cd ~/xbmc
./bootstrap
./configure --enable-vaapi
make -j2
sudo make install



- c00kiemonster - 2011-10-28

I'm considering buying a AMD Fusion based motherboard (ASUS E35M1-I Deluxe) for use as a Ubuntu/XBMC box.

Then I found this thread detailing the trouble of getting VAAPI to work in XBMC. That put a dampener on things, as I have little energy to go to such lengths to make it all work. As much as I like Linux and its capabilities, I hate having to spend an exorbitant amount of time and effort to make it all come together. If it doesn't work out of the box, I'm not interested.

So my obvious question: will the new version of XBMC (Eden I believe it is called) correct this, will VAAPI work out of the box in newer versions of XBMC?

A follow up question: are we talking about a general VAAPI support, or is VAAPI support for AMD Fusion motherboards different from other VAAPI supported platforms?


- Hack_kid - 2011-10-28

all general vaapi


- Robotica - 2011-10-28

VAAPI is queit new and not so mature in XBMC. So bugs can be VAAPI specific or brand specific (communication with the driver). For Fushion (but also for the other uses AMD & Intel proc) VAAPI is quite good supported. But talking optimization (like happened to VDPAU) could be improved for comming years.....

Don't judge VAAPI (AMD Fushion) support on info in this topic: Nowadays it's much more easy to get everything up and running and from Eden and on you won't know the difference (in ease) with VDPAU.

To get a headstart you can use openelec & if you won't to start with another distro there is a topic which has the simple tutorial...

Sp price- & specwize there is no reason not to be AMD Fushion over ION/ATOM, even on Linux.

Succes!


- kobik - 2011-10-28

WytRaven Wrote:Linux is soooo not forgiving you for lacking knowledge... Sad

Been looking for a solution and anything I tried didn't help.
Will you be kind and share a little of this precious knowledge Smile
What could Iv'e been do wrong?
How can I fix this?


- c00kiemonster - 2011-10-29

Robotica Wrote:VAAPI is queit new and not so mature in XBMC. So bugs can be VAAPI specific or brand specific (communication with the driver). For Fushion (but also for the other uses AMD & Intel proc) VAAPI is quite good supported. But talking optimization (like happened to VDPAU) could be improved for comming years.....

Don't judge VAAPI (AMD Fushion) support on info in this topic: Nowadays it's much more easy to get everything up and running and from Eden and on you won't know the difference (in ease) with VDPAU.

To get a headstart you can use openelec & if you won't to start with another distro there is a topic which has the simple tutorial...

Sp price- & specwize there is no reason not to be AMD Fushion over ION/ATOM, even on Linux.

Succes!

Thanks for the info. I am (was) running a ION based Ubuntu/XBMC box before, but that motherboard seems to have given up on things. It seems like the AMD Fusion support is maturing nicely so I will probably choose it over ION2 (which doesn't really seem to be much improved from its first generation).


- User 89733 - 2011-10-30

Hi,

I have been using VAAPI with Zacate for quite some time and I got this crash: http://trac.xbmc.org/attachment/ticket/12160/xbmc_crashlog-20111029_215533.log (http://trac.xbmc.org/ticket/12160#comment:4)

My drivers are a bit outdated:
OpenGL renderer string: AMD Radeon HD 6300 series Graphics
OpenGL version string: 4.1.10665 Compatibility Profile Context
Also I don't use Unity and I am using xbmc-pvr (last version).


- tjones - 2011-10-30

c00kiemonster Wrote:Thanks for the info. I am (was) running a ION based Ubuntu/XBMC box before, but that motherboard seems to have given up on things. It seems like the AMD Fusion support is maturing nicely so I will probably choose it over ION2 (which doesn't really seem to be much improved from its first generation).


My AMD E350 is the ASUS E35M1-I Deluxe you are considering, no regrets so far. I really like this board. It's expensive yes but it is a modern board with no compromises using mini itx (the built in wifi is atheros another bonus). I've read that you may want your memory to be at 1600mhz to make the best out of the amd graphics. This board only supports up to 1333mhz w/o overclocking the fsb the last time I checked. Perhaps the latest bios 1202 has resolved this I haven't played around with upping my 1.5v cas7 1333mhz yet.

I also own an ion2 platform there is no contest between the two imo. Although the Ion2 has 512mb discrete memory the system is limited to ddr2 and lower memory support. The E350 apparently benchmarks better than atom on all things except javascript. Memory support alone places the E350 above the atom/ion platforms. Final note the E350 ASUS E35M1-I Deluxe board I'm using is dead silent with passive cooling unlike my lenovo q150 ion2 with it's discrete gpu fan.


- c00kiemonster - 2011-11-02

tjones Wrote:My AMD E350 is the ASUS E35M1-I Deluxe you are considering, no regrets so far. I really like this board. It's expensive yes but it is a modern board with no compromises using mini itx (the built in wifi is atheros another bonus). I've read that you may want your memory to be at 1600mhz to make the best out of the amd graphics. This board only supports up to 1333mhz w/o overclocking the fsb the last time I checked. Perhaps the latest bios 1202 has resolved this I haven't played around with upping my 1.5v cas7 1333mhz yet.

I also own an ion2 platform there is no contest between the two imo. Although the Ion2 has 512mb discrete memory the system is limited to ddr2 and lower memory support. The E350 apparently benchmarks better than atom on all things except javascript. Memory support alone places the E350 above the atom/ion platforms. Final note the E350 ASUS E35M1-I Deluxe board I'm using is dead silent with passive cooling unlike my lenovo q150 ion2 with it's discrete gpu fan.

Which OS are you running?