Anyone have been able to HW transcode on an Intel NUC 11 (Iris Xe)?

@Traveler885

It’s supposed to work. The issue with the newer AlderLake CPUs is they aren’t supported in the version of the Intel Media Driver PMS is currently using.

We (Chuck with Engineering & testing hat on) are updating that driver now.

I don’t know which version of PMS it will be available in and I loathe saying “soon” but it’s close.

That’s good news! I just stood up a new PMS on Ubuntu 22.04, and I didn’t want to rebuild it on an older OS. I don’t have an immediate requirement for tone mapping for my usual viewing patterns, so I’ll sit tight and wait for the ‘soon’ release.

Ok so on Ubuntu 22.04 with your dev build I was able to verify N100 transcoding AND HDR tone mapping works. Can’t re-test on my i5-1240P, but I’ll assume HDR tone mapping now works on there since it’s Alder Lake too.

The Intel Media Driver we updated to is the latest from Intel.

If it doesn’t properly support your CPU/GPU then Intel has a problem to resolve.

I had one user report ‘artifacting’ on an i7-1270P (Anime video) for which I’m awaiting a sample to verify it’s Ok on our lab machine.

Apologies in advance if this is a dumb question - a long time Plex user but new to tracking these dev changes. But does this mean that the update to the Intel Media Driver would be in the current Beta channel download for the QNAP NAS builds? I have a newly built TVS-h874 NAS with the i7 processor (i7-12700 12th Gen Alder Lake) and HW transcoding on 4K HDR files was not working on the latest beta package I installed with Tone Mapping turned on (Version 1.32.1.6999).

@mpalensh

The Engineering build with the updated Intel Media Driver is not released yet.

We’re still working on some issues with Android & iOS streaming.

Anything you can test is helpful.

When we get this further along, we’ll have a formal Forum Preview to confirm it works for everyone

This is the build for QTS / QuTS

PlexMediaServer-1.32.2.6997-416face2b-x86_64.qpkg - Google Drive.

Please test everything you can and report back with some logs showing bug and confirmation . :slight_smile:

Thanks.

Thank you!

I will do some more testing with different source files, but on a preliminary basis I can tell you that with the package attached above the HW transcoding is working on QuTS 5.0.1.2376 on the TVS-h874 i7. Consumed in the Windows Chrome web player and the Windows app with no issues. I’ll test some more on iOS, Apple TV, and Shield.

I tested on other players and the HW transcoding looks to be working on each of them.

@ChuckPa I’ve been running this build for a couple of months now without issues; has this been incorporated into the main build so that I can update the server?

@mpalensh

You should be able to go to 1.32.5.7210 and above now without issue.

Keep your existing QPKG file on hand just in case of something I’ve not foreseen.
(you can install on top of 1.32.5 to downgrade it if there are any issues)

Hey I see this error:

more "Library/Application Support/Plex Media Server/Logs/Plex Media Server.log" | grep ERROR
Jul 06, 2023 11:43:06.176 [140712804412216] ERROR - [Req#11d/Transcode/ejqiji9k1dotgua1uqn80qg7/227e7855-3312-4d7d-ab3e-16f19ffb9054] [AVHWDeviceContext @ 0x7efce5160440] No matching devices found.
Jul 06, 2023 11:43:06.704 [140712743557944] ERROR - [Req#14a/Transcode/ejqiji9k1dotgua1uqn80qg7/1691e941-2944-4566-b6fa-23ec3b72bca3] [AVHWDeviceContext @ 0x7fcacc39b900] No matching devices found.

here’s my setup:

Alder Lake CPU: 12400p (intel nuc)
running Promox
with Ubuntu 22.04.2 LTS VM.
running Plex on docker (linux server version).

Logs from Ubuntu VM:

uname -r
6.4.0-060400-generic

.

lspci -vs 06:10.0
06:10.0 VGA compatible controller: Intel Corporation Alder Lake-P Integrated Graphics Controller (rev 0c) (prog-if 00 [VGA controller])
	Subsystem: Intel Corporation Device 3024
	Physical Slot: 16-2
	Flags: bus master, fast devsel, latency 0, IRQ 42
	Memory at c1000000 (64-bit, non-prefetchable) [size=16M]
	Memory at 800000000 (64-bit, prefetchable) [size=512M]
	Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable+ 64bit-
	Kernel driver in use: i915
	Kernel modules: i915

.

dmesg | grep i915
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-6.4.0-060400-generic root=UUID=54a680ef-bb0d-4145-a9a7-80b0fdb22d45 ro quiet splash i915.enable_guc=3 vt.handoff=7
[    0.024009] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-6.4.0-060400-generic root=UUID=54a680ef-bb0d-4145-a9a7-80b0fdb22d45 ro quiet splash i915.enable_guc=3 vt.handoff=7
[    2.161833] i915: loading out-of-tree module taints kernel.
[    2.161865] i915: module verification failed: signature and/or required key missing - tainting kernel
[    2.394411] i915 0000:06:10.0: Running in SR-IOV VF mode
[    2.394709] i915 0000:06:10.0: [drm] GT0: GUC: interface version 0.1.0.0
[    2.395127] i915 0000:06:10.0: [drm] VT-d active for gfx access
[    2.395147] i915 0000:06:10.0: [drm] Using Transparent Hugepages
[    2.396165] i915 0000:06:10.0: [drm] GT0: GUC: interface version 0.1.0.0
[    2.396581] i915 0000:06:10.0: GuC firmware PRELOADED version 1.0 submission:SR-IOV VF
[    2.396583] i915 0000:06:10.0: HuC firmware PRELOADED
[    2.399654] i915 0000:06:10.0: [drm] Protected Xe Path (PXP) protected content support initialized
[    2.399659] i915 0000:06:10.0: [drm] PMU not supported for this GPU.
[    2.399900] [drm] Initialized i915 1.6.0 20201103 for 0000:06:10.0 on minor 1
[    3.120306] i915 0000:06:10.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none

.

ls -al /dev/dri
total 0
drwxr-xr-x   3 root root        120 Jul  6 03:41 .
drwxr-xr-x  19 root root       4160 Jul  6 03:41 ..
drwxr-xr-x   2 root root        100 Jul  6 03:41 by-path
crw-rw----+  1 root video  226,   0 Jul  6 03:41 card0
crw-rw----+  1 root video  226,   1 Jul  6 03:41 card1
crw-rw----+  1 root render 226, 128 Jul  6 03:41 renderD128

Can you hint me what I am doing wrong?

Why did you upgrade the kernel so far ?

The 5.19 kernel is all you need.

The 6.x kernels aren’t 100% stable for media yet.

also confirm PMS is a member of the group which owns /dev/dri
AND
you see renderD128 in there

this is the issue that i have

@talkto98

You’re referring to SR-IOV Virtual GPU use in a container ?

Unfortunately, yes.

Can you think of any other way to implement this.
Plex running as Docker container on Ubuntu VM on a Proxmox with iGPU passthrough?

Hardware transcoding works, but HDR tone mapping doesn’t.

[update July 9 2023, Proxmox 7 & 8]

After spending hours researching and failing to produce reliable results. I recommend installing an LXC using the appropriate script provided by Proxmox VE Helper Scripts | Scripts for Streamlining Your Homelab with Proxmox VE, it will create a privilaged LXC with iGPU/GPU passthrough and install drivers for Intel iGPU, AMD and Nvidia in the container and then configure the correct driver depending on actual HW passed through. If you want to understand and reverse engineer to set it up yourself you can see the scripts in clear text and/or look at the resulting output when running the scripts in verbose mode. You can also look at the resulting <LXC_id.conf> file and do all sorts of lookup commands in the LXC container. For me it works on 10th and 11th gen Intel NUCs running Proxmox 7.x and 8.x. Haven’t tested on my Silver Pentium J5005 based NUC yet but expect it to work there as well as it also uses the Intel i915 iGPU module.

First, This is on a NUC11 or higher machine ?

Yes, I can recommend another way.

  • Get rid of Docker.
  • You’re already in a VM (which is an abstraction of the hardware from the host)
    Don’t abstract it a second time in Docker namespace abstraction

I have Plex, with full HW transcode and tone mapping working in Ubuntu VM on ProxMox without issue.

As I’m learning with LXC and Nvidia GPU passthrough,

  1. All the card drivers must be installed on the host
  2. SR-IOV for Nvidia requires -
  • Additional Nvidia drivers on the host to support SR-IOV
  • Nvidia client-side (non-kernel) installed in the container.
    ** This is because Nvidia tone mapping expects CUDA in the local namespace/context.

iGPU does not have any drivers requirement.
Removing all the tinfoil wrapping is important.

Supplemental:
Why are you using ProxMox (which is a Hypervisor) and not a native Ubuntu host ?

I saw the above post saying HDR tone mapping should work now. I’m running NUC11 with TigerLake-LP GT2 Iris Xe Graphics and Proxmox 8.0.4 with kernel Linux pve-node-03 6.2.16-12-pve. I’ve used the LXC Plex installer script found at https://github.com/tteck/Proxmox/blob/main/install/plex-install.sh and Plex HW transcoding works as long as I leave HDR tone mapping off. If I enable it then I see errors:

Sep 06, 2023 20:39:10.694 [140305287887672] ERROR - [Req#212/Transcode/C85E3D79-8E7F-4939-8E0B-3893A01D983C/f8d45478-2c2a-4b78-b5aa-a4323e895879] [AVHWDeviceContext @ 0x7effe9c98780] Failed to get number of OpenCL platforms: -1001.
Sep 06, 2023 20:39:10.694 [140305281207096] ERROR - [Req#21d/Transcode/C85E3D79-8E7F-4939-8E0B-3893A01D983C/f8d45478-2c2a-4b78-b5aa-a4323e895879] [AVHWDeviceContext @ 0x7effe9c98780] Failed to get number of OpenCL platforms: -1001.
Sep 06, 2023 20:39:10.695 [140305287887672] ERROR - [Req#21e/Transcode/C85E3D79-8E7F-4939-8E0B-3893A01D983C/f8d45478-2c2a-4b78-b5aa-a4323e895879] [Parsed_hwmap_2 @ 0x7effe9a1d7c0] Failed to created derived device context: -19.
Sep 06, 2023 20:39:10.695 [140305281207096] ERROR - [Req#21f/Transcode/C85E3D79-8E7F-4939-8E0B-3893A01D983C/f8d45478-2c2a-4b78-b5aa-a4323e895879] [Parsed_hwmap_2 @ 0x7effe9a1d7c0] Failed to configure output pad on Parsed_hwmap_2
Sep 06, 2023 20:39:10.695 [140305287887672] ERROR - [Req#220/Transcode/C85E3D79-8E7F-4939-8E0B-3893A01D983C/f8d45478-2c2a-4b78-b5aa-a4323e895879] Error reinitializing filters!
Sep 06, 2023 20:39:10.696 [140305281207096] ERROR - [Req#221/Transcode/C85E3D79-8E7F-4939-8E0B-3893A01D983C/f8d45478-2c2a-4b78-b5aa-a4323e895879] Failed to inject frame into filter network: No such device
Sep 06, 2023 20:39:10.696 [140305287887672] ERROR - [Req#222/Transcode/C85E3D79-8E7F-4939-8E0B-3893A01D983C/f8d45478-2c2a-4b78-b5aa-a4323e895879] Error while processing the decoded data for stream #0:0

The installed Plex version is 1.32.6.7468.

Looking for confirmation that the combo is supposed to work with HDR Tone Mapping on Tiger Lake. So the summary I’m seeing is:

  • Proxmox 8
  • Plex privileged LXC setup with Proxmox Helper Scripts
  • Plex HW Transcode works if HDR Tone Mapping is unchecked
  • Plex HW Transcode fails if HDR Tone Mapping is checked

It has been working and should continue to work but we’ve been getting strange reports.

To confirm the machine itself is OK, I recommend using: 1.31.3.6868-28fc46b27
and confirm everything is as it should be. 1.31.3.6868-28fc46b27 predates the last big changes which began in the 1.32.0 block.

If this isn’t working then there’s a system level problem.

Thanks, I’ll put that in a LXC and see. I actually have three identical NUC11 here. So when you say the machine did you mean hardware specifically? If so, that’s an easy test.