Hardware Transcoding Broken With Intel 11th Gen Jasper Lake

Server Version#: 1.32.7.7621
Player Version#: 4.116.1

Hi,

I have reason to suspect the drivers Plex are using cause issues with hardware transcoding on Intel 11th Gen Jasper Lake systems.

  • 11th Gen Intel Jasper Lake iGPU / Celeron N5105 processor on a BK-NAS-N5105 motherboard.
  • Plex is running in Docker on Unraid 6.12.4
  • I have added “/dev/dri” as a device to the Plex Docker to enable access to the iGPU
  • On Plex under Settings > Transcoder > Hardware transcoding device -I can see “Auto” and “JaperLake [UHD Graphics]” are options. “Use hardware-accelerated video encoding” is ticked.
  • “ls /dev/dri” in the Plex docker shows: “card0" and "renderD128”
  • I have Plex pass and the server is currently connected to a monitor via HDMI

Hardware transcoding just does not seem to work, there is no “(hw)” indicator in the Plex dashboard during transcoding processes and CPU usage is pretty much at 100%.

Running intel_gpu_top on the host does show the “Plex Transcoder” appear when forcing transcoding, however the GPU just sits idle, so the settings / permissions seem fine.

I have the issue on both the official Plex Docker image and the LinuxServer Docker image. It appears others are also reporting the same with intel 11th Gen Jasper Lake hardware: Help with hardware transcoding in plex on unraid (using intel® celeron® n5095) - Container Support - LinuxServer.io

Have you performed the steps outlined here (the installation of the updated Intel media driver isn’t needed; the important bit is enabling GuC)?

Further reading (point 3 under “Known Issues and Limitations” at the bottom of the page):

The upshot is that for kernels version 5.8 and later HuC loading is disabled by default on JasperLake.

I use HW acceleration on an N5105 with server version 1.32.8.7639 and it works well. There were some recent issues, but I believe that was back in the 1.32.6’ish versions (too lazy to go back and verify at the moment).

1 Like

Thanks for the tip, reading that made something click with what I’d read previously and I’ve managed to get hardware transcoding working with the Plex Docker running on Unraid.

First edit syslinux.cfg on the Unraid USB drive: nano /boot/syslinux/syslinux.cfg

Add the follow where I have shown below “append i915.enable_fbc=1 i915.enable_guc=2” and save the changes.

label Unraid OS
  menu default
  kernel /bzimage
  append i915.enable_fbc=1 i915.enable_guc=2
  append initrd=/bzroot

As the Unraid file system is loaded in to ram we want to create and edit an i915.conf in /boot/config/modprobe.d/ - this will persist though reboots.

nano /boot/config/modprobe.d/i915.conf

Add the following to i915.conf and save: options i915 enable_fbc=1 enable_guc=2

Reboot and the i915.conf will be present in /etc/modprobe.d/i915.conf

Add /dev/dri as a device to the Plex Docker if not already done.

Hardware transcoding will now work:

hwtranscode

You’re welcome, glad you got it working!

I tried this and it didnt work for me.

i5-11600K
RocketLake-S GT1 [UHD Graphics 750]

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