Plex not using Intel Quick Sync for 4K HEVC content

@CaptainRedHat

Would you mind conducting a quick regression test for me?

Downgrade to this version and see how HW transcoding behaves.

@ChuckPa

Still no dice. Logs attached.

Plex Media Server Logs_2021-03-02_17-34-28.zip (4.6 MB)

@CaptainRedHat

Good… Thank you. That was what I expected.

Are you feeling ambitious ?

I ask because:

  1. Intel , due to events, didn’t get CometLake support packages into Ubuntu 20.04
  2. The packages are not yet “beta” quality. They are integration/developer but probably usable in most cases.
  3. They might work perfectly but might also cause a kernel panic.
  4. Are you wiling to try it?

Sure I can give it a shot!

@CaptainRedHat

Here we go – time to ride the wild software :rofl:

At the bottom of this page are the Intel packages in their current state (pre-production)

you want to downloand and install:

intel-gmmlib_20.2.4_amd64.deb109 KB

intel-igc-core_1.0.4879_amd64.deb18.1 MB

intel-igc-opencl_1.0.4879_amd64.deb27.2 MB

intel-level-zero-gpu_1.0.17813_amd64.deb1.1 MB

intel-ocloc_20.36.17813_amd64.deb187 KB

intel-opencl_20.36.17813_amd64.deb1010 KB

PMS hardware should engage properly (PMS build 4079)

@ChuckPa It looks like that worked. Even my original versions of those movies do hardware transcoding as expected. I actually installed the latest version of drivers through the Ubuntu PPA they list in their documentation. The latest version lists the OpenCL drivers as Production on everything except Elkhart Lake. Level Zero is still Pre-release.

sudo add-apt-repository ppa:intel-opencl/intel-opencl
sudo apt update
sudo apt install libze-intel-gpu  libigdgmm11 libigc intel-opencl-icd

Here are my logs from the successful hw transcode after installing the drivers:

Plex Media Server Logs_2021-03-02_20-26-58.zip (2.2 MB)

3 Likes

@CaptainRedHat

Please take one of your bigger vidoes,

Start playing it.
Every 20 seconds or so, Lower the bitrate in Plex /Web

Repeat that about 10 (?) times.

Download those logs and attach please.

I am requesting because I see:

Mar 02, 2021 20:25:17.064 [0x7f3ab57fa700] DEBUG - Request: [192.168.1.47:36474 (Allowed Network (WAN))] GET /video/:/transcode/universal/dash/v6vs561779adrqjjoz0t47td/0/initial.mp4 (12 live) TLS GZIP Signed-in
Mar 02, 2021 20:25:17.066 [0x7f3a9e7fc700] DEBUG - Request: [192.168.1.47:36476 (Allowed Network (WAN))] GET /video/:/transcode/universal/dash/v6vs561779adrqjjoz0t47td/0/0.m4s (12 live) TLS GZIP Signed-in
Mar 02, 2021 20:25:17.066 [0x7f3a9e7fc700] DEBUG - [Transcode/v6vs561779adrqjjoz0t47td] Asked for segment 0 from session.
Mar 02, 2021 20:25:17.111 [0x7f3ab6ffd700] ERROR - [Transcoder] [AVHWDeviceContext @ 0x1d556c0] No matching devices found.
Mar 02, 2021 20:25:17.615 [0x7f3ab6ffd700] DEBUG - [Transcode] Transcoder segment range: 0 - 0 (0)
Mar 02, 2021 20:25:17.654 [0x7f3ab77fe700] DEBUG - [Transcode] Exists("/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Cache/Transcode/Sessions/plex-transcode-v6vs561779adrqjjoz0t47td-6a4f80ec-d2ae-4276-8728-9e3fea157392/init-stream1.m4s") => 1
Mar 02, 2021 20:25:17.654 [0x7f3ab77fe700] DEBUG - Content-Length of /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Cache/Transcode/Sessions/plex-transcode-v6vs561779adrqjjoz0t47td-6a4f80ec-d2ae-4276-8728-9e3fea157392/init-stream1.m4s is 741 (of total: 741).

The AVHWDeviceContext is reporting error but may be harmless in these drivers.

Also, please run dpkg and report the exact versions of the libraries you got.

@ChuckPa

Here you go!

Plex Media Server Logs_2021-03-02_21-27-02.zip (4.9 MB)

Here are the versions i have installed:

ii  intel-opencl-icd                     21.08.19096-1~ppa1~focal1             amd64        Intel graphics compute runtime for OpenCL
ii  libigc                               1.0.6087-1~ppa1~focal1                amd64        Intel(R) Graphics Compiler
ii  libigdgmm11:amd64                    20.3.2-2~ppa1~focal1                  amd64        Intel Graphics Memory Management Library -- shared library
ii  libze-intel-gpu                      21.08.19096-1~ppa1~focal1             amd64        Intel(R) Graphics Compute Runtime for oneAPI Level Zero.

@CaptainRedHat

Thank you Sir!

scampers off to make some packaging improvements

@CaptainRedHat

Seem to be missing two packages.

Can you explain?

Where did you get the PPA reference?

What is the https translation of that?

I found it on release page. It says “Other installation procedures are described here” The page it links to is this: compute-runtime/DISTRIBUTIONS.md at master · intel/compute-runtime · GitHub which describes how to set up a repo for each component so that you can get updates. The webpage for the ppa is here: Intel(R) Graphics Compute Runtime : “Intel Compute Runtime” team.

I think I didn’t install the libze-loader package. I’ll do that.

I just wanted to chime in that this fixed 4K HEVC HDR hardware transcoding for me on a NUC10i7FNH1 running Ubuntu 20.04. I had actually posted a thread on these forums this morning (I deleted it), but I came across this thread via Reddit.

Update:

Just to let everyone know… I’m doing the updating work in the package.
I’ve got a mechanism which looks like it will also work for Xeon processors.

It knows the differences between Need & Have as well as can intelligently parse its own CPU ID info.

  1. Parse CPU
  2. Decide what’s needed. (Need)
  3. Check what’s installed (Have)
  4. Flag & Communicate to postinst

I’m getting close to having something we can play with.
it’s going to be rough – no sugarcoating it.
I would like to be able to have us run the preinst script and check if it’s accurately reporting the machine state.

I will be upgrading my system in the very near future (motherboard is in the mail) to an i5-10600K if you need any testers.

Very much will be in need of as many different CPUs & configs as I can get.

This will be for both RPM and DEB based systems.

Currently running Debian Buster with 5.10 kernel

I’m on Ubuntu 20.04 LTS, but I can install Fedora 33 or CentOS 8 on a spare SSD if needed.

I am on Fedora 33.

Here’s the link to the sandbox I created for this effort.

@ChuckPa

Not to thread jack too much, does the fix listed above work for 11th gen? I have an I7 11700 and I’m having the exact same issues described. HW transcoding works with everything but 4k HEVC.

Is this a Plex issue, driver issue, or both?

@maasi --and to everyone following along,

I’ve been doing a lot of research.

Killer points here:

  1. Kernel 5.11.11 or better – and stable – (which the i915 does not yet appear to be for the -11xxxx)
  2. RPM users will need compile themselves from Intel Compute Runtime GITHUB
  3. RPM users - also the equiv of ocl-icd-opencl1 debian package.

What we’re seeing is where this COVID “thing” has squashed development.
Normally development is on par with the hardware.
That isn’t happening / hasn’t happened this time.

The Linux kernel is the hold up , primarily it looks like the i915 driver needs more refinement when dealing with the -10xxx and -11xxx CPUs

From what I can see, which a user is testing for me, it looks like the [drm] modules are triggering a perceived GPU hang (vcs1).

Either a semaphore is failing or interrupts are being dropped.

Personally, I’m running a Hades Canyon NUC8-i7-HVK , ESXi, and it’s flawless.

The real question comes down to: “Why would you want to transcode that beautiful 4K HDR image anyway?” :thinking: (disk space is cheaper)