Cant get Plex transcoding to work with Arrow Lake iGPU

Hi,

I’ve just set up a new server with a Core Ultra 7 265 with an Asus Z890 and TrueNAS 25.04. I’m struggling to get the iGPU working for Plex transcoding.

Passthrough is ticked in the App settings and it seems to be detected. /dev/dri has card0 and renderD128. Plex transcode settings show “Intel Arrow Lake-U [Intel Graphcs]” as the selected transcode device. But when Plex tries to transcode I get these errors in the Plex log:

May 13, 2025 14:31:14.763 [139993388108600] Debug — [Req#a0e84/Transcode] Codecs: testing h264 (decoder) with hwdevice vaapi
May 13, 2025 14:31:14.763 [139993388108600] Debug — [Req#a0e84/Transcode] Codecs: hardware transcoding: testing API vaapi for device '/dev/dri/renderD128' (Intel Arrow Lake-U [Intel Graphics])
May 13, 2025 14:31:14.763 [139993388108600] Error — [Req#a0e84/Transcode] [FFMPEG] - Failed to initialise VAAPI connection: -1 (unknown libva error).

May 13, 2025 14:31:14.763 [139993388108600] Debug — [Req#a0e84/Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: I/O error
May 13, 2025 14:31:14.763 [139993388108600] Debug — [Req#a0e84/Transcode] Could not create hardware context for h264

I also saw in dmeg:

[   28.923753] i915 0000:00:02.0: [drm] Found METEORLAKE (device ID 7d67) display version 14.00 stepping D0
[   28.925365] i915 0000:00:02.0: [drm] VT-d active for gfx access
[   28.925736] i915 0000:00:02.0: vgaarb: deactivate vga console
[   28.925791] i915 0000:00:02.0: [drm] Using Transparent Hugepages
[   28.948806] i915 0000:00:02.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=io+mem:owns=mem
[   28.956816] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/mtl_dmc.bin (v2.21)
[   28.988932] i915 0000:00:02.0: [drm] GT1: GSC firmware too old for ARL, got 102.0.0.1655 but need at least 102.0.10.1878
[   28.988935] i915 0000:00:02.0: [drm] *ERROR* GT1: GSC firmware i915/mtl_gsc_1.bin: fetch failed -EINVAL
[   28.988939] i915 0000:00:02.0: [drm] GT1: GSC firmware(s) can be downloaded from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
[   28.991318] i915 0000:00:02.0: [drm] GT0: GuC firmware i915/mtl_guc_70.bin version 70.20.0
[   29.001507] i915 0000:00:02.0: [drm] GT0: GUC: submission enabled
[   29.001509] i915 0000:00:02.0: [drm] GT0: GUC: SLPC enabled
[   29.001755] i915 0000:00:02.0: [drm] GT0: GUC: RC enabled
[   29.005645] i915 0000:00:02.0: [drm] GT1: GuC firmware i915/mtl_guc_70.bin version 70.20.0
[   29.005646] i915 0000:00:02.0: [drm] GT1: HuC firmware i915/mtl_huc_gsc.bin version 8.5.4
[   29.027297] i915 0000:00:02.0: [drm] GT1: HuC: authenticated for clear media
[   29.027874] i915 0000:00:02.0: [drm] GT1: GUC: submission enabled
[   29.027874] i915 0000:00:02.0: [drm] GT1: GUC: SLPC enabled
[   29.027933] i915 0000:00:02.0: [drm] GT1: GUC: RC enabled
[   29.074511] [drm] Initialized i915 1.6.0 for 0000:00:02.0 on minor 0
[   29.144645] fbcon: i915drmfb (fb0) is primary device
[   29.257516] i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device

Not sure if that’s related or not, but is this something that I can fix or does it need to be updated in a new version of TrueNAS? I haven’t been able to find anything about other people having this issue and this hardware has been around for 6 months or so now, so I feel like I must be doing something wrong somewhere.

So logging into the server today I find hardware transcoding is suddenly working perfectly. I have no idea why so if anyone else comes across this with the same problem, I’m sorry I don’t know what I did to fix it.

Curious. Do you still have the same error about firmware in your dmesg logs? You have the GuC/HuC firmwares so that should be what worked, but the libva error is from a segfault. I know they’ve been changing things upstream a bit to try to account for the new Intel xe driver that supports the Intel ARC Battlemage GPU series, and I was seeing the same segfault out of it - but if you’re working now, then it’s clearly not that. And the Arrow-Lake chips use the A-series cores and the i915 driver.

Yes, dmesg logs have the same errors. The server has had a couple of reboots and container restarts while I’ve been sorting other things out. I saw there is also a new version of Plex server that’s been released. I’m not sure if that updated before or after it started working. Also the onboard 2.5gbe port on the Asus Z890 motherboard isn’t working, but that seems to be a missing r8125 driver, which I presume will need to come in an update.