PLEX doesn't do HW Transcoding on Fedora 30 (ver 5.6) running on Intel i9-9900 (SGC SonicTransporter)

You can use these 30 sec video files for quick tests.

Jellyfish Bitrate Test Files

I’m using the jellyfish-55-mbps-hd-h264.mkv to check HW transcoding.

Chuck:

Perhaps this is unrelated but is there a way to force the video files to “Direct Play”?

I have “Direct Play”, “Direct Stream”, and “Use alternate streaming protocol for video playback” checked off.

When playing from my LG OLED65B7P TV (Plex App in WebOS) or even my WIN10 PC (PLEX APP), sometimes the Dashboard shows the video/audio file playing “Direct Play” and other times, it shows “Transcode” - without the (hw).

This occurs when playing the same test files (jellyfish).

Is this an unrelated issue or part of the same problem?

hi @agillis1970 Just been reading back over this thread.

The key to Plex Media Server being able to utilise the QSV hardware to transcode is dependant on the following;

  1. The presence of the /dev/dri/renderD128 device on the system
  2. Access to the /dev/dri path (and entires under it) is granted to the “Plex Media Server” plex user (normally the /dev/dri path is owned by the video group on Fedora and the Plex installer added the plex user to this video group as a member.)
  3. (Optional) to support HDR tone mapping in hardware, we need to know the path to where Fedora has the Intel OpenCL libraries (we current look in /lib64 /usr/lib64 and /usr/local/lib64 on Fedora

If /dev/dri doesn’t exist then something’s wrong with the kernel or hardware. It could be a misconfiguration in either kernel or bios. Either way, not something Plex can do anything about as this is at the OS level.

I’m having issues with Fedora 33 and HW transcoding with HDR tonemapping. When I turn off tonemapping it works fine but when I turn it on it uses the CPU.

[root@localhost lib64]# ldconfig -p | grep libOpenCL
libOpenCL.so.1 (libc6,x86-64) => /lib64/libOpenCL.so.1
libOpenCL.so (libc6,x86-64) => /lib64/libOpenCL.so

The libraries are there, so why isn’t the server using them?

It won’t work. Plex is not supporting RPM with HDR tonemapping

If you look in the above referenced thread where I replied further –

If you can help me, I’ll do the work but we need identify the RPM versions of the Debian packages.

Do they exist in the RPM repos somewhere?

====================
EDIT

I looked at rpmfind

  • libOpenCL is available for x86_64 (required) – the icd bindings
  • beignet is available for x86_64 (required)

If these map to the Debian/Ubuntu counterparts,
Intel KabyLake (-7xxxx) and CoffeeLake (-8xxx) will work.

For Tiger (-9xxx), Comet (-10xxx), and Rocket (-11xxx), the Intel Compute Runtime is required because the interface to the QSV ASIC changed.

Can anyone advise & educate me?

Did you ever get this sorted? I switched to docker but now I’m having issues with that not doing HW transcoding. Any ideas here.

@88fingerslukee

I had made 1 version of PMS with the new packaging but finding all the packages to support HW tonemapping didn’t yield any fruit.

I’m still pursuing a solution here for this.

What issues are you having with Docker? It should run normally, all tone mapping operational, provided you’re not using a bleeding-edge processor.

Yeah, I’m running an 11th gen i7. That must be the issue.

As for my issue with the SGC SonicTransporter, the problem has not been resolved. It’s a strange issue that seems unique to this
version of Linux.

@88fingerslukee

10th gen and up need the Intel Compute Runtime in order for hw tone mapping to work (That’s on Intel).

Finding a RPM of their deb packages would be what you need.

if it’s not working in the docker image (which is Ubuntu) I’m thinking they haven’t gotten that far yet?

Plex in docker has full HW (transcoding & tone mapping support) if your CPU is compatible and you pass through the UHD630 ASIC.

I ran it for several months last year.

Please tell me which CPU is in use and if you have a Nvidia GPU ?

I can give you a working container definition if you wish.

no Nvidia GPU. Running the Intel Core i7-1165G7. I’m currently using the hotio image.

I think you might be out of luck because CoffeeLake and above CPUs currently require the Intel Compute Runtime package.

The problem is it is currently only packaged for Debian/Ubuntu (apt packaging).

If you can pull it apart (not difficult) and manually install the files, you should be able to run.

the hotio image is an Ubuntu image. I tried installing the deb packages (from here Releases · intel/compute-runtime · GitHub)
from inside the container but it’s not working.

Any thoughts?

here’s a question, what packages do I actually need installed for Ubuntu to conceivably do HW transcoding for my Tiger Lake cpu?

@88fingerslukee

Anything -9xxx or above, which includes the new -xxxxG series CPUs, needs it.

As long as you have QSV ASIC visible in /dev/dri/renderD128, you get hardware transcoding.

When you want HW tone mapping, you need these libraries because tone mapping is done using OpenCL in the actual GPU.

Original release used Beignet and long-established OpenCL libraries.

Then Intel changed how to access the GPU to do tone mapping. That’s why everything is broken. They now require their Intel Compute Runtime (not Beignet).

Thank you, I get that. I’m not sure how to have Plex use it though. As stated, I have installed the Intel Compute Runtime packages inside the container but it still doesn’t seem to be working. Is there something else that I need to do to the OS or the application to make it use the proper libraries?

Found the issue