Kodi Community Forum
Intel VAAPI howto with Leia v18 nightly based on Ubuntu 18.04 server - 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: Intel VAAPI howto with Leia v18 nightly based on Ubuntu 18.04 server (/showthread.php?tid=231955)



RE: New Era: VAAPI with EGL interoperation - fritsch - 2015-11-01

If you get a heavy log for us - also welcome - Basically I am interested in the "size" of the error.


RE: New Era: VAAPI with EGL interoperation - trsqr - 2015-11-01

Am I more off-topic than average, if I'll ask here regarding the situation with VP9 decoding in Linux with Intel hardware?

https://github.com/01org/intel-hybrid-driver has a libva-intel-hybrid-driver that supposedly includes some VP9 decoding aids, but it's unclear to me how this relates to libva-intel-driver.


RE: New Era: VAAPI with EGL interoperation - fritsch - 2015-11-01

It's not unclear. Intel's libva-intel-driver can load this hybrid driver.

Problem is: Only Broadwell and Braswell are supported and it needs an ffmpeg hwaccel, which is not yet done.


RE: New Era: VAAPI with EGL interoperation - trsqr - 2015-11-01

(2015-11-01, 13:49)fritsch Wrote: It's not unclear.

Obviously not for you, hence me asking here. Big Grin

(2015-11-01, 13:49)fritsch Wrote: Intel's libva-intel-driver can load this hybrid driver.

Problem is: Only Broadwell and Braswell are supported and it needs an ffmpeg hwaccel, which is not yet done.

Ok, thanks! I've got IVB, HSW, BDW and BSW hanging around here, so that's not a problem. In short, ffmpeg is the missing link at this point - and then probably Kodi needs a minor update as well? Are you aware of any application that would support it (not talking about Kodi usage here)?


RE: New Era: VAAPI with EGL interoperation - fritsch - 2015-11-01

Nope - libyami most ikely and also gstreamer. This hybrid stuff sucks heavily as it's too slow for 4k UHD content ... if you google "chrome vp9 intel" you will see what I mean - even on windows.
I decided not to care for this hybrid stuff anymore as we will get full hw support with next gen in ~ 6 months.

E.g. see: http://www.howtogeek.com/227940/why-youtube-in-chrome-and-firefox-is-draining-your-laptop%E2%80%99s-battery-and-how-to-fix-it/ and https://code.google.com/p/chromium/issues/detail?id=399960#c33 - totally worthless on current hw generations.


RE: New Era: VAAPI with EGL interoperation - trsqr - 2015-11-01

(2015-11-01, 13:59)fritsch Wrote: E.g. see: http://www.howtogeek.com/227940/why-youtube-in-chrome-and-firefox-is-draining-your-laptop%E2%80%99s-battery-and-how-to-fix-it/ and https://code.google.com/p/chromium/issues/detail?id=399960#c33 - totally worthless on current hw generations.

Is the issue that the VP9 hybrid decoding is not implemented on Macs (not in Apple's interests as that would only move users from Safari to Chrome) or that it is implemented but still sucks? Also that Mac bug report for Chrome has been opened before any BDW Macs were released, so there cannot be any HW-assisted decoding there. Anyhow, I'm interested how much impact the hybrid decoding has - ie. if pure CPU decoding consumes 100% of the BDW/BSW CPU, how much would less would the CPU usage be with the GPU-assisted mode.

Not saying that it should be implemented in Kodi/ffmpeg, but just out of academic interest.


RE: New Era: VAAPI with EGL interoperation - fritsch - 2015-11-01

"Academice interest" - then you should get your hands dirty right now and contact btbn in #ffmpeg channel and ask what is missing.

If you follow the above links you see that also performance for hybrid units especially for the famous 4k content is not enough.


RE: New Era: VAAPI with EGL interoperation - fritsch - 2015-11-01

Kernel 4.4+ is required or audio EDID information won't be copied
As I needed edid overwriting myself today here is a short howto on how to boot completely without TV / AVR but having correct EDID information. This will work for intel and radeon:

# Find out the connected port
Code:
fritsch@bsw:~$ cat /sys/class/drm/card0-HDMI-A-1/status
connected
Could be HDMI-A-2 on your setup and so on. On my system it is HDMI-A-1 - you need to remove the card0- when working with this strange later on. If yours differs you need to alter all HDMI-A-1 in the following steps to your matching ones.

In my case it's HDMI-A-1 continue to change /etc/default/grub to look like:
Code:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=HDMI-A-1:1920x1080@50D drm_kms_helper.edid_firmware=HDMI-A-1:edid/edid.bin"

This will do two things a) it sets my default resolution to 1920x1080@50 and activate the digital output with D - which is not a typo, but written correctly directly behind the @50 which is my target refreshrate as I use LiveTV most of the time. Second is for loading a firmware to overwrite the edid that we will capture now

Before doing this make sure that you booted the whole system with AVR / TV on correctly and everything is working as you want it as we need to copy the edid in a working environment
Code:
sudo mkdir -p /lib/firmware/edid
sudo cp /sys/class/drm/card0-HDMI-A-1/edid /lib/firmware/edid/edid.bin

Now we need to make a little hack and also convince ubuntu to load this edid.bin in initramfs. Create /etc/initramfs-tools/hooks/include-edid-data file and write into it:
Code:
#!/bin/sh

PREREQ="udev"
prereqs()
{
   echo "$PREREQ"
}

case $1 in
prereqs)
   prereqs
   exit 0
   ;;
esac

. /usr/share/initramfs-tools/hook-functions
# Begin real processing below this line

if [ ! -e "${DESTDIR}/lib/firmware/edid" ]; then
    mkdir -p "${DESTDIR}/lib/firmware/edid"
fi

if [ -r "/lib/firmware/edid/edid.bin" ]; then
   cp "/lib/firmware/edid/edid.bin" "${DESTDIR}/lib/firmware/edid/"
fi

manual_add_modules i915 radeon
exit 0

Now make it executable:
Code:
sudo chmod +x /etc/initramfs-tools/hooks/include-edid-data

We are nearly done, finish with
Code:
sudo update-initramfs -u
sudo update-grub
sudo reboot

Now enjoy.

For OpenELEC you need to follow: http://wiki.openelec.tv/index.php/Configuring_a_Custom_xorg.conf#tab=Intel instead


RE: New Era: VAAPI with EGL interoperation - Roby77 - 2015-11-01

Interesting i will give a try to see if it resolve my recent black screen problem


RE: New Era: VAAPI with EGL interoperation - BigL-New - 2015-11-01

Thank you guys for great work!

I've upgraded my beebox to wily and installed 4.3-rc7 kernel along with newest intel driver. Suprisingly colors have gone nuts - i had to swith off limited colors to return to good looking image.
Now i see that it can be because passththrough mode is not supported on this kernel. xrandr shows:

Broadcast RGB: Automatic
supported: Automatic, Full, Limited 16:235

Is it correct?


RE: New Era: VAAPI with EGL interoperation - fritsch - 2015-11-01

No. As now said 150 times ... this passsthrough patch is not in 4.3-rc7 and it will never be anywhere upstream. Cause they intel folks don't like the passthrough approach.

If you cannot build your own kernel, use Full and set kodi to limited.


RE: New Era: VAAPI with EGL interoperation - fritsch - 2015-11-01

Here is what I currently run: http://fritsch.fruehberger.net/kernel/?C=M;O=D - no support at all.


RE: New Era: VAAPI with EGL interoperation - -zero- - 2015-11-01

I had problems with ubuntu 15.10 and kodi.
I had to create a symlink for libcurl.so.4 otherwise kodi was not aware of it.

sudo ln -s /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 /usr/lib/x86_64-linux-gnu/libcurl.so.4

This was not necessary with ubuntu 15.04.


RE: New Era: VAAPI with EGL interoperation - -zero- - 2015-11-01

@fritsch

There is a mistake in your description about the edid for ubuntu.

Instead of:
sudo cp /sys/class/drm/card0-HDMI-A-1/edid /lib/firmware/edid.bin

it should be:
sudo cp /sys/class/drm/card0-HDMI-A-1/edid /lib/firmware/edid/edid.bin

And for the GRUB_CMDLINE_LINUX_DEFAULT line there is a missing " at the end.


RE: New Era: VAAPI with EGL interoperation - fritsch - 2015-11-01

@-zero-: Thanks very much - you are correct - Fixed.