Server Version: Plex Media Server v1.43.0.10492-121068a07 (11 Feb 2026)
Installed on: TrueNAS 25.10.1 - Goldeye
Transcode Device: Intel N150 (igpu)
Logs: Plex Media Server.log (303.1 KB)
Logs: Transcoder Log (-loglevel=verbose).log (37.2 KB)
Player Version#: N/A (server side, reproduced w/ both Web and Android app players)
Source video is 4K DoVi/HDR10 (HEVC Main 10)
Hw transcoding works when HDR tone mapping is disabled in the settings
Based on the HDR to SDR Tone Mapping support article, āIntel āKaby Lakeā or newer processorā should support tone mapping. The N150 [intel spec] is relatively new (12th gen) and uses the Twin Lake-N architecture, so I donāt expect any old HW limitations to be at play.
The top-level error seems to be [Parsed_tonemap_opencl_3 @ 0x7fe42b597880] Failed to build program: -6, on line 1006 of the primary log.
I re-ran just the failing Plex Transcoder command from a shell with -loglevel verbose to provide as much information as possible including driver and library versions in a separate log (above).
I am open to making any invasive changes or collecting additional output that would be helpful in debugging.
I donāt believe itās a driver/container permission issue. I am already running the Plex application as root*, and I am able to view the rendering processes from the TrueNAS host** if I disable HDR tone mapping in the Plex server settings.
Trying to better understand the context of the problem - do you happen to know if Parsed_tonemap_opencl_3 ... Failed to build program: -6 indicates a failure to build the GPU kernel in the userspace of the Plex container, or is it an error propagated from the DRM of the host?
If you donāt mind me asking, what kernel and drm driver versions do you have in the working configuration(s)? Iāll try to compare apples to apples if I can. Have you specifically been able to transcode 4K HDR content with tone mapping enabled?
* TrueNAS Plex app info showing /dev/dri read and write access:
Welcome to TrueNAS
Last login: Sat Jan 17 16:14:23 2026
truenas_admin@truenas[~]$ uname -a
Linux truenas 6.12.33-production+truenas #1 SMP PREEMPT_DYNAMIC Wed Dec 17 21:17:21 UTC 2025 x86_64 GNU/Linux
truenas_admin@truenas[~]$
One thing you can do.
Get into the shell (inside the container itself)
Get into the āCodecsā directory
Without deleting the .device_id file (your license), delete everything else.
Restart PMS.
Retest
What happens is that it will download the codecs fresh on demand again.
Intel_gpu_top gives me the following on the KabyLake
(The N100 is the AlderLake CPU ⦠much better GPU
No luck. I confirmed it re-downloaded the codecs, but hit the same error during the transcode
Feb 16, 2026 00:22:18.987 [140460856716088] INFO - [Req#d1/Transcode] CodecManager: obtaining decoder 'hevc'
Feb 16, 2026 00:22:19.662 [140460859435832] INFO - [Req#d4/Transcode] CodecManager: obtaining decoder 'dca'
Feb 16, 2026 00:22:19.837 [140460859435832] INFO - [Req#d4/Transcode] CodecManager: obtaining encoder 'aac'
...
Feb 16, 2026 00:22:20.131 [140460859435832] ERROR - [Req#f0/Transcode/95wvblmi51uo09seshwzasy4/1ee61b03-d346-4540-914d-9e10e334343b] [Parsed_tonemap_opencl_3 @ 0x7fe11f9d3880] Failed to build program: -6.
Feb 16, 2026 00:22:20.132 [140460910062392] ERROR - [Req#f9/Transcode/95wvblmi51uo09seshwzasy4/1ee61b03-d346-4540-914d-9e10e334343b] [fc#0 @ 0x7fe120267bc0] Error while filtering: I/O error
Feb 16, 2026 00:22:20.132 [140460901624632] ERROR - [Req#fa/Transcode/95wvblmi51uo09seshwzasy4/1ee61b03-d346-4540-914d-9e10e334343b] Failed to inject frame into filter network: I/O error
Feb 16, 2026 00:22:20.132 [140460859435832] ERROR - [Req#fb/Transcode/95wvblmi51uo09seshwzasy4/1ee61b03-d346-4540-914d-9e10e334343b] Error while filtering: I/O error
Feb 16, 2026 00:22:20.133 [140460910062392] ERROR - [Req#fc/Transcode/95wvblmi51uo09seshwzasy4/1ee61b03-d346-4540-914d-9e10e334343b] [out#0/dash @ 0x7fe12011a940] Nothing was written into output file, because at least one of its streams received no packets.
Feb 16, 2026 00:22:20.147 [140460951530296] DEBUG - Jobs: '/usr/lib/plexmediaserver/Plex Transcoder' exit code for process 480 is 251 (failure)
Now, this is an igpu so it shares the system memory. TrueNAS reports 27.9Gi free memory at the moment, and the Plex container resource limit is 30G. My test transcode only seems to raise the memory usage by ~400MB without tone mapping. However, some users report that the Intel implementation of OpenCL imposes artificial limits (e.g. 25%) and Iām not sure what the dynamic memory requirements are.
Iāll try to read up on the Intel OpenCl runtime used by PMS, which seems to be Drivers/icr-8cc9b1b5bc2e41d30c62ae32-linux-x86_64/libigdrcl.so. There may be some environment knobs to tweak, or information that can be extracted.
I can hardware transcode on the TrueNAS machine (64 GB of ram, KabyLake, ā 100% vanilla install) and the N100 (8GB of RAM, AlderLake, ā 100% vanilla install of Unraid.
Itās not a reasonable hypothesis to assert itās anything with PMS runtimes (ICR, OpenCL, or otherwise) on the host because those same binaries work for countless other environments as well as instances on TrueNAS.
This has to be local configuration specific.
ToneMapping of 2160p requires 49,766,400 bytes of memory (raw input frame and output frame) . The pipeline is HW decode ā ToneMap ā HW encode
I would start removing container limits until it works.
Yeah, I get why youāre saying that. Unfortunately, the only limit Iām aware of is the 30GB overall app memory limit (which must be specified with some value in the 'Resources Configuration section) on a NAS system with 32GB total RAM. Itās an exceptionally bad time to go out and buy more DDR5 on the chance itāll fix it
As you point out, I donāt expect the tone mapping to have such a huge memory requirement. Thatās why Iām looking at the ffmpeg flags and vaapi/opencl drivers for any limits imposed there.
More data pointing to my install being whack, OpenCL doesnāt seem to work even with simple cases. I SCPād a short 960x400 HEVC encoded demo video into an accessible directory and ran the encoder with the simplest pass through vaapi-opencl-vaapi I can think of.
ā [Parsed_avgblur_opencl_2 @ 0x7fde3c994a80] Failed to build program: -6.
I appreciate the help so far @ChuckPa. Now itās time to do my due diligence, including a fresh install, trying to validate OpenCL on the host, testing additional formats, etc. If I did something stupid in TrueNAS, I donāt want to keep waste your time with it.
It looks like an incomplete install was at fault here. Iām not sure how it got into this state, as I had upgraded it through multiple versions and I donāt have the historical logs.
I managed to create a second instance in which OpenCL-accelerated transcoding works. When I did a recursive diff the Drivers/ sub-directory in the PMS config, I found some extra extra icr OpenCL libraries (libocloc.so, libopencl-clang.so.14) compared to the non-working case. I had assumed the functionality was bundled into some other library, and didnāt realize stuff was missing because I hadnāt dug into a āworkingā install until now.
If anybody is reading this thread in the future, this is what itās supposed to look like in the current version :
Thank you, after migrating my Plex instance to a new server I had the exact same problem with hardware transcoding not working correctly.
There were also missing files in the Drivers folder, to fix it I just deleted the icr-8cc9b1b5bc2e41d30c62ae32-linux-x86_64 folder and after a server restart the correct files were downloaded.