No hardware HEVC decode / Intel 630 on Ubuntu

Server Version#: 1.14.0.5470

Hardware decode / encode works fine for H.264 videos, but I can’t seem to get hardware HEVC decoding working on a fresh install of Ubuntu 18.04 and the latest Plex Media Server version w/ Plexpass. Processor is i5-7500 with Intel HD 630 graphics. Incidentally, this also doesn’t work on Windows with the latest Intel drivers.

media info for test video:
Video #1
ID : 1
Format : HEVC
Format/Info : High Efficiency Video Coding
Format profile : Main 10@L5.1@High
Codec ID : V_MPEGH/ISO/HEVC
Duration : 2 h 22 min
Bit rate : 66.3 Mb/s
Width : 3 840 pixels
Height : 2 160 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 (24000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0 (Type 2)
Bit depth : 10 bits
Bits/(Pixel*Frame) : 0.334
Stream size : 65.9 GiB (75%)
HD.MA.TrueHD.7.1.Atmos-FGT
Default : Yes
Forced : No
Color range : Limited
Color primaries : BT.2020
Transfer characteristics : PQ
Matrix coefficients : BT.2020 non-constant
Mastering display color primaries : Display P3
Mastering display luminance : min: 0.0001 cd/m2, max: 1000 cd/m2

vainfo output:
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® Kaby 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

Log info:
Dec 13, 2018 20:10:08.843 [0x7f453a3fd700] DEBUG - Found session GUID of 3B8F7290-55FD-4C85-9E0C-8C2C74C76E08 in session start.
Dec 13, 2018 20:10:08.843 [0x7f453a3fd700] DEBUG - Starting a transcode session 3B8F7290-55FD-4C85-9E0C-8C2C74C76E08 at offset -1.0 (state=3)
Dec 13, 2018 20:10:08.845 [0x7f453a3fd700] DEBUG - TPU: hardware transcoding: enabled, but no hardware decode accelerator found
Dec 13, 2018 20:10:08.845 [0x7f453a3fd700] DEBUG - [Universal] Using local file path instead of URL: [redacted]
Dec 13, 2018 20:10:08.846 [0x7f453a3fd700] DEBUG - TPU: hardware transcoding: zero-copy support not present
Dec 13, 2018 20:10:08.846 [0x7f453a3fd700] DEBUG - TPU: hardware transcoding: final decoder: , final encoder: vaapi

Any ideas?

Would you please obtain a ls -la /dev/dri so we can see how the device nodes came out?
I suspect you’re not getting the CPU’s ASIC showing up as /dev/dri/RenderD128

Thanks for the help. Requested output follows:

root@hera:/# ls -la /dev/dri

total 0

drwxr-xr-x 3 root root 100 Dec 13 17:57 .

drwxr-xr-x 20 root root 4160 Dec 13 17:57

drwxr-xr-x 2 root root 80 Dec 13 17:57 by-path

crw-rw---- 1 root video 226, 0 Dec 13 17:57 card0

crw-rw---- 1 root video 226, 128 Dec 13 17:57 renderD128

root@hera:/# groups plex

plex : plex video

Is this in a VM / container of some type?

No, it’s running on physical hardware.

The only other possibility I can see is nvidia GPU drivers are asseting themselves (you do show valid vainfo output which is consistent with an nvidia card. The lack of renderD129 leads me to believe the motherboard isn’t letting the CPU ASIC show if an external GPU is installed… This would be a BIOS setting.

Is there no possibility this is simply a bug? There is no nvidia GPU in this PC, and H.264 decoding works fine. It’s literally a clean install with PMS and vainfo installed… that’s it.

It’s possible, but I’ve got a Win10 i5-7400 transcoding h264/hevc/hevc10 good.
And a Ubuntu 18.04 i3-8100 transcoding h264/hevc/hevc10 good.

It’s more likely specific to your system or media files, it’s a matter of figuring out what.

@bingo1105

The likelihood of it being a PMS bug is almost absolute zero. PMS relies 100% on the OS presenting the internal GPU (ASIC) at the file system level. I personally have 4 different Quick Sync-capable systems here (NAS, workstations, and Nuc). None of them present these symptoms.

When you state “H.264 decoding works”, are you stating you see the “(hw)” indicator when PMS is decoding video in Now Playing while it’s transcoding?

Yes, that’s exactly what I’m saying. I see the (hw) indication for both encode and decode on other H.264 movies in my collection. And I’m also not saying that there’s nothing specific about this particular file that could be the culprit, but I have no idea what that could be… hence my request for support.

Similar issues here, however i have a P2000 and Core i7-8700.

source media: Jellyfish-140-mbps-4k-uhd-hevc-10bit

Media

  • Video Resolution 4K
  • Duration 0:30
  • Bitrate 180249 kbps
  • Width 3840
  • Height 2160
  • Aspect Ratio 1.78
  • Container MKV
  • Video Frame Rate NTSC
  • Video Profile high

Part

  • Duration 0:30

  • File jellyfish-180-mbps-4k-uhd-h264.mkv

  • Size 645.26 MB

  • Container MKV

  • Video Profile high

  • Codec H264

  • Bitrate 180249 kbps

  • Language English

  • Bit Depth 8

  • Chroma Location left

  • Chroma Subsampling 4:2:0

  • Color Primaries bt709

  • Color Range tv

  • Color Space bt709

  • Color Trc bt709

  • Frame Rate 29.97 fps

  • Height 2160

  • Level 5.1

  • Profile high

  • Ref Frames 3

  • Scan Type progressive

  • Width 3840

  • Display Title 4K (H.264)

Server: Ubuntu 64Bit

root@minibeast:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.1 LTS
Release: 18.04
Codename: bionic

Client: iPhone XS Max, Plex Build 16064

May I have LOGFILES please?

  1. Verify DEBUG logging is enabled in Settings - Server - General
  2. Verify VERBOSE logging is disabled.
  3. Recreate the condition / failure.
  4. Play for 30 seconds longer
  5. Stop playback
  6. Wait 30 seconds for all processes to terminate
  7. Settings - Server - Troubleshooting - Download Logs
  8. Attach the ZIP file it presents you

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