Hardware Transcoding with Tone Mapping Fails on Intel Arc A380 - Plex Transcoder Segfault

Subject: Hardware Transcoding with Tone Mapping Fails on Intel Arc A380 - Plex Transcoder Segfault

Details:

  • Plex Media Server Version: 1.40.3.8555
  • Operating System: Bare Metal Ubuntu 22.04 (server) with Linux 6.5.0-41-generic hwe (also tried Kernel 5.15 and 6.8 - same result, as well as Ubuntu 24.04)
  • GPU: Intel Arc A380
  • CPU: Intel Core i7-6700
  • Drivers: Tried with intel-media-va-driver-non-free and intel-opencl-icd from Intel repo, and without - no difference - Plex seems to use its own binaries anyway
  • Plex Settings:
    • Hardware Acceleration: Enabled
    • HDR Tone Mapping: Enabled
    • Hardware transcoding device: DG2 [Arc A380]

Issue:

I’m encountering a segfault error when trying to use hardware transcoding with tone mapping enabled on my Intel Arc A380 GPU. The system logs indicate a segfault in the libigdrcl.so library, and this issue persists across multiple kernel versions and driver configurations.

As soon as I turn off tone mapping, it works fine. It is just with tone mapping on that the segfault occurs and the transcoder ultimately falls back to software.

dmesg Output:

[ 5810.761079] Plex Transcoder[10206]: segfault at 0 ip 000077a2e19cdc07 sp 00007ffe12a138c0 error 4 in libigdrcl.so[77a2e1740000+3c4000] likely on CPU 0 (core 0, socket 0)
[ 5810.761096] Code: 44 8b ab bc 07 00 00 41 c6 84 24 08 01 00 00 00 49 8d 44 24 08 49 89 04 24 f6 43 2c 01 74 50 48 8b 45 c8 48 8b b8 a0 00 00 00 <48> 8b 07 4c 8b 58 38 e8 dd 31 da ff 84 c0 75 35 83 bb e0 06 00 00

syslog Output:

Jul 01 18:36:38 limaserver sudo[10204]:     luca : TTY=pts/0 ; PWD=/home/luca ; USER=root ; ENV=EAE_ROOT=/tmp/pms-e565790a-7532-4bed-9fba-e2b9ae46dc2f/EasyAudioEncoder EnableAIL=0 FFMPEG_EXTERNAL_LIBS=/var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Codecs/ad47460-ffe81d9cd51bd27cb3fbbe09-linux-x86_64/ LIBVA_DRIVERS_PATH=/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Cache/va-dri-linux-x86_64 NEOReadDebugKeys=1 OCL_ICD_VENDORS=/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Cache/cl-icds-linux-x86_64 X_PLEX_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx cl_cache_dir=/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Cache/Shaders/icr-3e693db9c71d966fa83dfabd-linux-x86_64/ ; COMMAND=/usr/lib/plexmediaserver/Plex#040Transcoder -codec:0 hevc -hwaccel:0 vaapi -hwaccel_fallback_threshold:0 10 -hwaccel_output_format:0 vaapi -hwaccel_device:0 vaapi -codec:1 truehd_eae -eae_prefix:1
Jul 01 18:36:38 limaserver sudo[10204]:     luca : (command continued) ur42a5vkwrdk1c3t5ht8ng8u_ -ss 3 -analyzeduration 20000000 -probesize 20000000 -i '/mnt/Media/Movies/Barbie (2023)/Barbie (2023) {imdb-tt1517268} [Hybrid][Remux-2160p Proper][DV HDR10][TrueHD Atmos 7.1][HEVC]-CiNEPHiLES.mkv' -filter_complex [0:0]hwupload[0];[0]scale_vaapi=w=1920:h=1080:format=p010[1];[1]hwmap=derive_device=opencl[2];[2]tonemap_opencl=tonemap=mobius:format=nv12:m=bt709:p=bt709:r=tv[3];[3]hwmap=derive_device=vaapi:reverse=1[4];[4]hwupload[5] -map [5] -codec:0 h264_vaapi -crf:0 17 -maxrate:0 18097k -bufsize:0 36194k -r:0 23.975999999999999 -filter_complex '[0:1] aresample=async=1:ochl=\'7.1\':rematrix_maxval=0.000000dB:osr=48000[6]' -map [6] -metadata:s:1 language=eng -codec:1 libopus -b:1 908k -f segment -segment_format matroska -segment_format_options live=1 -segment_time 1 -segment_header_filename header -segment_start_number 0 -segment_list
Jul 01 18:36:38 limaserver sudo[10204]:     luca : (command continued) http://127.0.0.1:32400/video/:/transcode/session/ur42a5vkwrdk1c3t5ht8ng8u/b886f702-46f5-41a2-a695-f7eb9d11d5f7/manifest?X-Plex-Http-Pipeline=infinite -segment_list_type csv -segment_list_unfinished 1 -segment_list_size 5 -segment_list_separate_stream_times 1 -avoid_negative_ts disabled -map_metadata:g -1 -map_metadata:c -1 -map_chapters -1 chunk-%05d -start_at_zero -copyts -init_hw_device vaapi=vaapi:/dev/dri/renderD129,driver=iHD -filter_hw_device vaapi -y -nostats -loglevel verbose -loglevel_plex verbose
Jul 01 18:36:38 limaserver sudo[10204]: pam_unix(sudo:session): session opened for user root(uid=0) by luca(uid=1000)
Jul 01 18:36:39 limaserver kernel: Plex Transcoder[10206]: segfault at 0 ip 000077a2e19cdc07 sp 00007ffe12a138c0 error 4 in libigdrcl.so[77a2e1740000+3c4000] likely on CPU 0 (core 0, socket 0)
Jul 01 18:36:39 limaserver kernel: Code: 44 8b ab bc 07 00 00 41 c6 84 24 08 01 00 00 00 49 8d 44 24 08 49 89 04 24 f6 43 2c 01 74 50 48 8b 45 c8 48 8b b8 a0 00 00 00 <48> 8b 07 4c 8b 58 38 e8 dd 31 da ff 84 c0 75 35 83 bb e0 06 00 00

I also tried to run the “Plex Transcoder” in CLI directly, and I’m attaching a log of that and the Plex Media Server log for further reference.

Attachments:

  1. RunTranscoderCLI.txt (60.0 KB)

  2. PMSLogExcerpt.txt (173.0 KB)

Has anyone experienced similar issues with hardware transcoding and tone mapping on the Intel Arc A380? Any advice or solutions would be greatly appreciated. Thank you!

Same issue here on unRAID 7.0 beta and Plex Docker for an Intel ARC 310. The behaviour I witness is that the system then falls back to software transcoding. If I turn off hadware transcode tone mapping, it will at least do the video transcode in hardware and leave the tone mapping to the client.

Note this is a test server for unRAID 7 hence the default unRAID hostname of “Tower”.

Jul  2 12:01:19 Tower kernel: Plex Transcoder[53116]: segfault at 0 ip 000014f7a2dcdc07 sp 00007ffdb43b86b0 error 4 in libigdrcl.so[14f7a2b40000+3c4000] likely on CPU 3 (core 3, socket 0)
Jul  2 12:01:19 Tower kernel: Code: 44 8b ab bc 07 00 00 41 c6 84 24 08 01 00 00 00 49 8d 44 24 08 49 89 04 24 f6 43 2c 01 74 50 48 8b 45 c8 48 8b b8 a0 00 00 00 <48> 8b 07 4c 8b 58 38 e8 dd 31 da ff 84 c0 75 35 83 bb e0 06 00 00

Update:

I downgraded Plex to 1.32.5.7328 and now it works, with Tone Mapping and everything!

1 Like

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