HW Transcoding with HDR Tone mapping not working (hw works without tone mapping enabled)

You do not have that kernel variable?

chuck@ds920:~$ ls -la /sys/module/i915/parameters
total 0
drwxr-xr-x 2 root root    0 Nov 28 08:21 .
drwxr-xr-x 7 root root    0 Nov 28 08:21 ..
-r-------- 1 root root 4096 Jan 17 02:38 alpha_support
-r-------- 1 root root 4096 Jan 17 02:38 disable_display
-r-------- 1 root root 4096 Jan 17 02:38 disable_power_well
-r-------- 1 root root 4096 Jan 17 02:38 edp_vswing
-r-------- 1 root root 4096 Jan 17 02:38 enable_cmd_parser
-r-------- 1 root root 4096 Jan 17 02:38 enable_dc
-rw------- 1 root root 4096 Jan 17 02:38 enable_dpcd_backlight
-rw------- 1 root root 4096 Jan 17 02:38 enable_dp_mst
-rw------- 1 root root 4096 Jan 17 02:38 enable_fbc
-r-------- 1 root root 4096 Jan 17 02:38 enable_guc
-r-------- 1 root root 4096 Jan 17 02:38 enable_gvt
-rw-r--r-- 1 root root 4096 Jan 17 02:38 enable_hangcheck
-rw------- 1 root root 4096 Jan 17 02:38 enable_ips
-r-------- 1 root root 4096 Jan 17 02:38 enable_ppgtt
-rw------- 1 root root 4096 Jan 17 02:38 enable_psr
-rw------- 1 root root 4096 Jan 17 02:38 error_capture
-rw------- 1 root root 4096 Jan 17 02:38 fastboot
-rw------- 1 root root 4096 Jan 17 02:38 force_reset_modeset_test
-r-------- 1 root root 4096 Jan 17 02:38 guc_firmware_path
-r-------- 1 root root 4096 Jan 17 02:38 guc_log_level
-r-------- 1 root root 4096 Jan 17 02:38 huc_firmware_path
-r-------- 1 root root 4096 Jan 17 02:38 inject_load_failure
-rw------- 1 root root 4096 Jan 17 02:38 invert_brightness
-rw------- 1 root root 4096 Jan 17 02:38 load_detect_test
-r-------- 1 root root 4096 Jan 17 02:38 lvds_channel_mode
-rw------- 1 root root 4096 Jan 17 02:38 mmio_debug
-r-------- 1 root root 4096 Jan 17 02:38 modeset
-r-------- 1 root root 4096 Jan 17 02:38 nuclear_pageflip
-rw------- 1 root root 4096 Jan 17 02:38 panel_ignore_lid
-rw------- 1 root root 4096 Jan 17 02:38 panel_use_ssc
-rw------- 1 root root 4096 Jan 17 02:38 prefault_disable
-rw------- 1 root root 4096 Jan 17 02:38 reset
-r-------- 1 root root 4096 Jan 17 02:38 vbt_firmware
-r-------- 1 root root 4096 Jan 17 02:38 vbt_sdvo_panel_type
-rw------- 1 root root 4096 Jan 17 02:38 verbose_state_checks
chuck@ds920:~$ 

-rw-r–r-- 1 root root 4096 Jan 17 02:38 enable_hangcheck

I found an odd behavior . I removed nvidia gpu from plex docker and now I have no issues with HDR tone mapping with the iGPU. I guess I will just keep it removed since I use the N-GPU for other applications. I have also since upgraded from RC to 7.0.0. No issues after removing access to the N-GPU in plex.

This implies the Nvidia you’re using doesn’t support tone mapping.
(Some don’t)

Also must ask if you passed the entire /dev/dri into the container or only the nodes ?

Tone mapping worked great with the Nvidia GPU(1660 TI). I could switch from Intel to Nvidia and Intel would always give me the error no matter what. When I remove the Nvidia from docker Intel was able to perform tone mapping. Not sure why. During my tests I would choose one or the other, not auto for transcoding.

I have this in Extra parameters: --device=/dev/dri:/dev/dri
I left the Nivida GPU Variables in place. Just removed the --runtime=nvidia. and no more Tone mapping issues.

OK, so by not passing in the runtime libraries, you’ve effectively uninstalled it while leaving the configuration for it intact. Nice :slight_smile:

I do have that kernel variable. It’s set to Y. I shared the error above when I tried to write it to N with that command you shared. I tried a few various other sudo options including adding write access to root and I was still unable to get it to change. I didn’t try a reboot or two yet, to see if the write access for root permissions change would make a different across a reboot.

This is what I had an issue with. “Cannot create”. It’s telling me it doesn’t see the file

A way to deal with ‘sudo’ and ‘echo’ is sometimes best when you break it out

sudo bash
echo N > /sys/module/i915/parameters/enable_hangcheck

Have you tried it this way?

a@a-lmc:/sys/module/i915/parameters$ sudo cat enable_hangcheck
Y
a@a-lmc:/sys/module/i915/parameters$ sudo bash
root@a-lmc:/sys/module/i915/parameters# echo N > enable_hangcheck
bash: echo: write error: Input/output error
root@a-lmc:/sys/module/i915/parameters# ls -la enable_hangcheck
-rw-----w- 1 root root 4096 Jan 18 10:30 enable_hangcheck
root@a-lmc:/sys/module/i915/parameters# sudo cat enable_hangcheck
Y

I gave it a shot, and the file was already there.

This makes no sense.

bash-4.4# cat enable_hangcheck 
Y
bash-4.4# echo N > enable_hangcheck 
bash-4.4# cat enable_hangcheck 
N
bash-4.4# 

Try this one?

https://www.intel.com/content/www/us/en/docs/oneapi/installation-guide-linux/2023-0/gpu-disable-hangcheck.html

Thanks. Those grub instructions worked to set the enable_hangcheck to N.

Here’s the updated logs. I could see it start with HW transcoding and then switch to SW after a few seconds. I’m about to migrate to a newer Intel processor and call it a day, but I thought I’d share these logs in case it would be helpful
Plex Media Server Logs_2025-01-18_13-30-57.zip (4.7 MB)

Question:

Why are you still using the i965 driver for GLK ?

Jan 18, 2025 13:28:48.414 [127465101994808] DEBUG - [Req#80d/Transcode] Codecs: hardware transcoding: testing API vaapi for device '/dev/dri/renderD128' (Intel GeminiLake [UHD Graphics 605])
Jan 18, 2025 13:28:48.414 [127465101994808] VERBOSE - [Req#80d/Transcode] [FFMPEG] - libva: VA-API version 1.21.0
Jan 18, 2025 13:28:48.414 [127465101994808] VERBOSE - [Req#80d/Transcode] [FFMPEG] - libva: User requested driver 'i965'
Jan 18, 2025 13:28:48.414 [127465101994808] VERBOSE - [Req#80d/Transcode] [FFMPEG] - libva: Trying to open /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Cache/va-dri-linux-x86_64/i965_drv_video.so
Jan 18, 2025 13:28:48.414 [127465101994808] VERBOSE - [Req#80d/Transcode] [FFMPEG] - libva: Found init function __vaDriverInit_1_21
Jan 18, 2025 13:28:48.415 [127465101994808] VERBOSE - [Req#80d/Transcode] [FFMPEG] - libva: va_openDriver() returns 0
Jan 18, 2025 13:28:48.415 [127465101994808] VERBOSE - [Req#80d/Transcode] [FFMPEG] - Initialised VAAPI connection: version 1.21

That’s not been needed for almost two years (since we updated the iHD drivers)

Please stop Plex, remove it from Preferences, and retest

If that doesn’t do it – then YES, go for the new CPU

@ChuckPa I looked in the Plex Prefences.xml file and I saw no "VaapiDriver=“i965” earlier this week. Any idea where else to look ?

I’m sorry. I owe an apology. I had two sets of logs open on my desktop.

Have you tried using VaapiDriver="i965" in Preferences.xml ?

While you should not need it, the GeminiLake is the problem-child CPU.
The GeminiLake Refresh CPU fixed whatever problem it had.

I think I have a very similar setup to user ‘aab’. Gemini Lake CPU. Have ‘initcall_blacklist=simpledrm_platform_driver_init i915.enable_hangcheck=0’ in /etc/default/grub. Tone mapping does not work with hardware enabled.

/dev/dri:
desk2@plex:~$ ls -l /dev/dri
total 0
crw-rw-rw- 1 nobody nogroup 226, 0 Jan 21 02:09 card0
crw-rw-rw- 1 nobody nogroup 226, 128 Jan 21 02:09 renderD128

Plex logs attached.
Plex Media Server Logs_2025-01-21_02-13-33.zip (3.9 MB)

Like aab, I’m this close to just giving up on the Gemini Lake CPU and getting a newer one like the N100 mini PC mentioned earlier in this thread. Thanks so much!

I have the GeminiLake Refresh (J4125). It works too.

If replacing what you have, go for the bigger gun.

Another link:

(This is my purchase)

I’m sure you can get it configured however you want from several vendors

I installed Ubuntu Server right over the top of Windows. :sunglasses:

@macross42 I can report back that I did end up giving up on the J5005. I went to a Beelink EQ14 with a N150 Alder Lake refresh CPU, and migrated my Ubuntu install over to it and then upgraded from 24.04.1 to 24.10 and it solved the issue completely. QuickSync transcoding with SDR Tone Mapping works, and with the release of HEVC earlier this week, that works as well, which may not have worked with the Gemini Lake platform.

Still facing this Gemini Lake Tone Mapping issue on a j5005 here, running with everything up to date:

  • OMV 7.6
  • Kernel Proxmox 6.11.11
  • last docker linuxserver/plex with 1.41.6.9685

HW Transcode is OK outside tone mapping. Had hope with 1.41.6.9685 but still KO.

Any idea on this? I can provide log

Yeah still an issue for me as well

@Jqh

Not a guarantee of success but the FFMPEG 6.1 might help.

We know updates to ICR and IMD are next..

The biggest problem we face is Intel not spending much time on the GeminiLake CPUs

Thanks for this feedback and yes, same for me, hope GeminiLake is still on the menu for Intel