Hardware Decode on Ubuntu 18.04.2 w/Coffee Lake

Server Version#: 1.15.0.659
Player Version#: Latest Roku

New build here… i7-8700 on an Asus Prime Z390-A motherboard. I’m intending to use the onboard Intel UHD 630 graphics. I loaded up Ubuntu 18.04.2 LTS with HWE support. This installer dropped kernel 4.18.15 on the system. I’ve also tried 4.18.20, and 4.20.10 and didn’t get much of anywhere. Any suggestions or help would be appreciated.

I’ve read a bunch of threads and here seems to be some common info asked for:

tm@r6 : /dev/dri $ ls -la /dev/dri
total 0
drwxr-xr-x 3 root root 100 Feb 18 22:46 .
drwxr-xr-x 20 root root 4040 Feb 18 22:46
drwxr-xr-x 2 root root 80 Feb 18 22:46 by-path
crw-rw---- 1 root video 226, 0 Feb 18 22:46 card0
crw-rw---- 1 root video 226, 128 Feb 18 22:46 renderD128

tm@r6:/dev/dri$ sudo vainfo
error: XDG_RUNTIME_DIR not set in the environment.
error: can’t connect to X server!
libva info: VA-API version 1.1.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_1
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.1 (libva 2.1.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Coffee Lake - 2.1.0
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileH264MultiviewHigh : VAEntrypointVLD
VAProfileH264MultiviewHigh : VAEntrypointEncSlice
VAProfileH264StereoHigh : VAEntrypointVLD
VAProfileH264StereoHigh : VAEntrypointEncSlice
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileVP8Version0_3 : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointEncSlice
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointEncSlice
VAProfileVP9Profile2 : VAEntrypointVLD

Plex Media Server Logs_2019-02-18_23-21-17.zip (278.1 KB)

Here are some logs from PMS…

So I’ve gotten myself a little more familiar here. What I’m seeing is encoding happening in hardware (yay). Decoding however is not. What would cause that, and why would it also follow the same behavior in Windows?

I was able to resolve this issue, here are my notes:

  1. Windows was having the same issue, leading me to hardware/BIOS settings
  2. Hardware encoding was working, out of the of the box on 18.04 w/HWE and 18.10, you don’t need to adjust the kernel. This was mostly a vocabulary thing on my part once I understood that PMS asks the API for each path what to do independently (decode vs encode)

Then I found this thread: Plex hardware HEVC decoding not working with Quicksync (Multiple Graphics Adapters)

and ultimately my solutions here: What's the status of Hardware Acceleration on headless Windows machines with RDP?

I realized that the display attached to the system was my TV, but when I was doing testing I was flipping that same RokuTV to another source in which case the HDMI signal to the server would drop. When the test would run, I’d get encode only, that is until I used a different client to test and left the TV set to the server’s HDMI source and voila… hardware encoding and decoding.

tl;dr: If you’re going to run Windows headless using onboard Intel UHD graphics, go get an HDMI dummy cable so the display think it’s initialized all the time. If you’re going to run Linux headless on the same hardware, you may see the same issues, I’m not reverting back to Linux at this point. I’d imagine that using a dedicated GPU could change this behavior considerably.

1 Like

@ChuckPa

Before I close the book on this and leave Windows 10 running: If I drop Ubuntu with a GUI back on this thing, what are the odds I’ll get decode as well?

If you’re running headless, and keep an HDMI dummy plug in the HDMI output, you’ll be fine.
I had forgotten that point myself (it’s been a long time since I put it on my server).

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.