Intel N100 HW HDR Tonemapping not working

I can’t seem to get HW HDR Tonemapping working on my new N100 server. I have no issues with hardware transcoding of non-HDR material, but HDR media reverts to using CPU only (big no go for 4K HDR). Any ideas on how I can fix this?

I pulled the hard drive from the “old” N5105 build (where HDT tonemapping was working), popped it into the new N100 build, ran some updates. Running PMS in Docker on Ubuntu 22.04.2

Linux travelflix 6.2.0-31-generic #31~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Aug 16 13:45:26 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

Logs when I attempt to transcode HDR media, for what it’s worth:

Sep 01, 2023 17:01:23.952 [139861681195832] INFO - Linux version: 6.2.0-31-generic, language: en-US
Sep 01, 2023 17:01:23.952 [139861681195832] INFO - Processor: 4-core Intel(R) N100
Sep 01, 2023 17:01:23.952 [139861681195832] INFO - Compiler is - Clang 11.0.1 (https://plex.tv 9b997da8e5b47bdb4a9425b3a3b290be393b4b1f)
Sep 01, 2023 17:01:23.952 [139861681195832] INFO - /usr/lib/plexmediaserver/Plex Media Server
Sep 01, 2023 17:01:23.979 [139861683755664] INFO - [CERT/OCSP] Successfully retrieved response from cache.
Sep 01, 2023 17:01:24.010 [139861683755664] INFO - Running migrations. (EPG 0)
Sep 01, 2023 17:01:24.037 [139861683755664] INFO - Running migrations. (EPG 0)
Sep 01, 2023 17:01:24.040 [139861676342072] INFO - Preemptively preparing driver imd for GPU Alder Lake-N [UHD Graphics]
Sep 01, 2023 17:01:24.040 [139861676342072] INFO - Preemptively preparing driver icr for GPU Alder Lake-N [UHD Graphics]
Sep 01, 2023 17:01:24.576 [139861636922168] WARN - [MediaProviderManager] Unrecognized MediaProvider feature: availability
Sep 01, 2023 17:01:24.576 [139861636922168] WARN - [MediaProviderManager] Unrecognized MediaProvider feature: availability-platforms
Sep 01, 2023 17:01:24.580 [139861676342072] WARN - [MediaProviderManager] Unrecognized MediaProvider feature: availability
Sep 01, 2023 17:01:24.580 [139861676342072] WARN - [MediaProviderManager] Unrecognized MediaProvider feature: availability-platforms
Sep 01, 2023 17:01:25.661 [139861634599736] INFO - Refreshing paths watched by LibraryUpdateManager
Sep 01, 2023 17:01:30.349 [139861621951288] INFO - [Req#129] AutoUpdate: no updates available
Sep 01, 2023 17:01:36.683 [139861641141048] ERROR - Unknown metadata type: 
Sep 01, 2023 17:02:23.469 [139861624097592] INFO - [Req#155] AutoUpdate: no updates available
Sep 01, 2023 17:02:24.545 [139861578677048] WARN - [Req#239] QueryParser: Invalid field 'sectionID' found, ignoring.
Sep 01, 2023 17:02:24.545 [139861578677048] WARN - [Req#239] QueryParser: Invalid field 'contentDirectoryID' found, ignoring.
Sep 01, 2023 17:02:24.549 [139861578677048] WARN - [Req#239] QueryParser: Invalid field 'sectionID' found, ignoring.
Sep 01, 2023 17:02:24.549 [139861578677048] WARN - [Req#239] QueryParser: Invalid field 'contentDirectoryID' found, ignoring.
Sep 01, 2023 17:02:24.675 [139861593860920] ERROR - [Req#25e] Unknown metadata type: folder
Sep 01, 2023 17:02:24.676 [139861593860920] WARN - [Req#25e] QueryParser: Invalid field 'contentDirectoryID' found, ignoring.
Sep 01, 2023 17:02:24.764 [139861624097592] ERROR - [Req#282] Unknown metadata type: folder
Sep 01, 2023 17:02:24.765 [139861624097592] WARN - [Req#282] QueryParser: Invalid field 'contentDirectoryID' found, ignoring.
Sep 01, 2023 17:02:33.496 [139861591751480] WARN - [Req#2f4/Transcode] [FFMPEG] - No quality level set; using default (20).
Sep 01, 2023 17:02:33.832 [139861591751480] INFO - [Req#312/Transcode/B485905F-B934-4DFD-A1D7-58D879B1147A] Preparing driver icr for GPU Alder Lake-N [UHD Graphics]
Sep 01, 2023 17:02:33.835 [139861591751480] INFO - [Req#312/Transcode/B485905F-B934-4DFD-A1D7-58D879B1147A] Preparing driver imd for GPU Alder Lake-N [UHD Graphics]
Sep 01, 2023 17:02:33.943 [139861593860920] ERROR - [Req#339/Transcode/B485905F-B934-4DFD-A1D7-58D879B1147A/ef1d586a-f8d3-4427-a41b-148dbba08c73] [AVHWDeviceContext @ 0x7f1ba9f2d940] Failed to get number of OpenCL platforms: -1001.
Sep 01, 2023 17:02:33.943 [139861567773496] ERROR - [Req#343/Transcode/B485905F-B934-4DFD-A1D7-58D879B1147A/ef1d586a-f8d3-4427-a41b-148dbba08c73] [AVHWDeviceContext @ 0x7f1ba9f2d940] Failed to get number of OpenCL platforms: -1001.
Sep 01, 2023 17:02:33.944 [139861628390200] ERROR - [Req#344/Transcode/B485905F-B934-4DFD-A1D7-58D879B1147A/ef1d586a-f8d3-4427-a41b-148dbba08c73] [Parsed_hwmap_2 @ 0x7f1bac388f40] Failed to created derived device context: -19.
Sep 01, 2023 17:02:33.944 [139861578677048] ERROR - [Req#345/Transcode/B485905F-B934-4DFD-A1D7-58D879B1147A/ef1d586a-f8d3-4427-a41b-148dbba08c73] [Parsed_hwmap_2 @ 0x7f1bac388f40] Failed to configure output pad on Parsed_hwmap_2
Sep 01, 2023 17:02:33.954 [139861624097592] ERROR - [Req#346/Transcode/B485905F-B934-4DFD-A1D7-58D879B1147A/ef1d586a-f8d3-4427-a41b-148dbba08c73] Error reinitializing filters!
Sep 01, 2023 17:02:33.954 [139861591751480] ERROR - [Req#347/Transcode/B485905F-B934-4DFD-A1D7-58D879B1147A/ef1d586a-f8d3-4427-a41b-148dbba08c73] Failed to inject frame into filter network: No such device
Sep 01, 2023 17:02:33.954 [139861587270456] ERROR - [Req#348/Transcode/B485905F-B934-4DFD-A1D7-58D879B1147A/ef1d586a-f8d3-4427-a41b-148dbba08c73] Error while processing the decoded data for stream #0:0
Sep 01, 2023 17:02:39.086 [139861587270456] INFO - [Req#30d] AutoUpdate: no updates available
Sep 01, 2023 17:02:53.313 [139861578677048] INFO - [Req#3c6] AutoUpdate: no updates available

Server Version#: 1.32.6.7468
Player Version#: N/A
Plex Media Server Logs_2023-09-01_18-40-34.zip (331.6 KB)

Are you able to test server version 1.32.5.7349, which is the latest stable release?

I have a system running a similar CPU configuration (Celeron N5105) and the latest beta server (which you are running) has broken hardware accelerated transcoding again. Backing down to the stable release corrected the issue.

You may want to go ahead and turn on debug (but not verbose) for your server logs and include a fresh batch; @ChuckPa is going to want them. And no snippets, full logs.

Finally, if you can downgrade to a 5.19.x series kernel for troubleshooting, my crystal ball suggests that’s going to be requested as well.

1 Like

That did the trick. Downgraded to latest stable build and HW HDR tonemapping is working on my N100. Thanks for the tip!

No problem, glad you got it working!

Hopefully @ChuckPa will have a look and notify the correct folks that something regressed in the move to 1.32.6.7468. Are you by chance able to test that release with a 5.19.x series kernel and provide debug logs (and debug logs of the failing case)? Unfortunately, the distribution I’m using (Pop!_OS) isn’t officially supported by Plex. And I can’t easily back down to 5.19.x as they’re on a different train.

If push comes to shove I can likely stand up a test environment on this platform to demonstrate the issue on a supported distro/kernel, but it will take some time.

For what it’s worth, Pop is currently on kernel 6.4.6 and I tested back to kernel 6.2.6.

I was actually setting this server up to travel internationally with me in a week, so trying not to break things. But when I get back, I’d be more than happy to test if the issue still persists.

Kernel 6.2 was back ported to Ubuntu 22.04 this month, so I imagine many who are running Ubuntu 22.04 will get upgraded as they update their OS. N100 is a newer CPU too, so might require newer kernel (I’ve only read it needs 6.2 or newer for HW transcoding and tone mapping, but not researched or tested)

1 Like

I may be able to do some additional work on my side to further troubleshoot this. I’ll see what I can do.

Hope you have a great trip!

1 Like

Last weekend I installed ubuntu server 22.04.3 and plex 1.32.5.7349 on a beelink eq12 with N100 (a clean install, ubuntu and plex only), but I couldn’t get the hardware transcoding to work at all (i don’ t have content in hdr, so i don’t know if tone-mapping works)

Given there are various reports of issues,

If I may interject?

For testing purposes, use 1.31.3.6868-28fc46b27 .

It predates all the big changes in the 1.32.x block.
It’s known to work across the board

Also, Make certain to remove the icr-9 drivers (PMS stopped) and let them download fresh again for that version.

FWIW, I’m also running the Beelink EQ12 (N100).
Running PMS 1.32.5.7349, HW transcoding worked for me, including HDR Tonemapping. Using default 6.2 kernel as part of the distro.

I’m a big fan of Plex and my goal on these forums is generally to attempt to help folks resolve issues which I’ve either experienced myself or know how to resolve, not to criticize Plex.

However, I’ve been very disappointed with the stability of Plex’s hardware accelerated transcoding support recently. It would be inaccurate to say that it’s been broken in some way in every other release, but it’s not far from it. I know that there are reasons for that; ever-changing kernel and driver versions coupled with moving to a model of including all necessary drivers with PMS itself can’t help. And at least one post by @ChuckPa suggests that a loss of institutional knowledge is partially to blame.

I expect for Plex to provide a consistently stable HW accelerated transcoding experience. It can be done. I detest posts that say platform X and platform Y do Z better; my first instinct is generally to invite those folks to move to one of the referenced platforms and be happier. But, it’s true in this case. Platform X and platform Y really do provide a different experience in this regard. In short, I just want Plex to be better.

Go out and buy whatever talent you need to make this work. Test on a broader range of platforms before releasing your betas, and for God’s sake, your stable versions. FFS, fix this. If needed, go Snow Leopard on the server and fix it.

The answer can’t always be to roll back 3-4 versions. Primarily because Plex doesn’t publish previous versions for download through the normal channels. Secondarily because it just doesn’t make sense to migrate a database and then migrate it back.

@pshanew

If I may respond ?

  1. Yes, it’s absolutely fair to expect a stable Plex solution.

  2. Yes, we lost a lot of institutional knowledge without warning or transition.
    Have you ever had someone ‘pull the rug out from underneath you’ ??
    Trying to recover from that is no small task.
    – We had to regroup
    – We have to relearn
    – We have to pick up and continue

  3. I provide the recommendations as best I can for those who have complete failure because,

  • In my job supporting customers
  • It’s my responsibility to help fix what’s broken for them if I can
  • If not, provide a temporary workaround so they can at least continue to use and enjoy Plex.
  • I detest suggesting “roll back to an earlier version” but I have to make the decision which I know stands the best chance of being immediately successful and with the least impact to the customer(s).
    I have, and will continue, always provide older versions of PMS , for whichever supported platform, wherever needed. This is true even before recent events.
  1. Regarding ‘go out and by whatever talent’, we had a workforce reduction.
  • It stands to reason hiring is currently frozen
    -OR-
  • No replacements have yet been found to fill the roles which are currently vacant.
  1. Database migrations.
    – Within the minor version changes, PMS knows how to adjust the schema and the data contained.
    – I have never suggested , nor will I ever, suggest something which breaks the DB (e.g. 1.32.5.7210 → 1.25.9.5721)

I don’t know how much I can say without overstepping my limited authority.
I hope this explains more about the situation we (engineering & support) are in ?

1 Like

My statement regarding that was ill-conceived and insensitive. I apologize.

I think I’m going to self-ban for a while. I’m having a bit of an issue expressing myself in a non-antagonistic manner lately.

@pshanew

It’s all good.

I know we ALL get frustrated. Everyone’s allowed to have a bad day (or two or three or four, five, six :rofl: )

I’m not upset, I only wanted to reiterate & share where I’m at in the swamp of things :slight_smile:

If you’re having trouble communicating / dealing with frustration, you might want to try my technique:

  1. Pull the wings off dead flies
  2. Glue them back on
  3. Repeat

:rofl:

maybe I found the problem, ubuntu server 22.04.3 uses kernel 5.15 -_-

5.15 is only a problem for AlderLake and newer CPUs because of how the Iris/XE was implemented.

Support didn’t start showing up in the kernel until 5.19

i update the kernel to 6.2 right now, everything’s work perfectly

@leonardo_p57

Did that 6.2 update also include the HWE features of the kernel?

(I was just looking in my notes. HWE support in the kernel is becoming more and more a requirement)

From what I know the 6.2 kernel is shipped as the HWE kernel for LTS versions of Ubuntu. I don’t think it works for the server version because

sudo apt update && sudo apt full-upgrade

doesn’t automatically update the kernel from 5.15 when I tried it

Thank you for that info.

I am (fortunately) on a 5.4 kernel due to my older Xeon + Nvidia configuration.

In my case, hardware accelerated transcoding hardware/format detection succeeds. The final analysis finds VAAPI available for both decoding and encoding:

Sep 08, 2023 16:13:53.778 [140133279042360] INFO - [Req#d6/Transcode] Preparing driver imd for GPU JasperLake [UHD Graphics]
Sep 08, 2023 16:13:53.778 [140133279042360] DEBUG - [Req#d6/Transcode/DriverDL/imd] Skipping download; already exists
Sep 08, 2023 16:13:53.778 [140133279042360] DEBUG - [Req#d6/Transcode] TPU: hardware transcoding: final decoder: vaapi, final encoder: vaapi
Sep 08, 2023 16:13:53.778 [140133279042360] DEBUG - [Req#d6/Transcode/JobRunner] Job running: FFMPEG_EXTERNAL_LIBS='/var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Codecs/55f77b3-4598-linux-x86_64/' LIBVA_DRIVERS_PATH="/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Cache/va-dri-linux-x86_64" 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-117-linux-x86_64/" "/usr/lib/plexmediaserver/Plex Transcoder" "-codec:#0x01" hevc "-hwaccel:#0x01" vaapi "-hwaccel_fallback_threshold:#0x01" 10 "-hwaccel_output_format:#0x01" vaapi "-hwaccel_device:#0x01" vaapi "-codec:#0x02" aac_lc -analyzeduration 20000000 -probesize 20000000 -i "/mnt/csmedia/dvr/test/Life Untouched 4K Demo.mp4" -filter_complex "[0:#0x01]hwupload[0];[0]scale_vaapi=w=1280:h=720: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]" -metadata:s:0 language=eng -codec:0 h264_vaapi -b:0 2757k -maxrate:0 3676k -bufsize:0 7352k -r:0 59.939999999999998 -force_key_frames:0 "expr:gte(t,n_forced*3)" -filter_complex "[0:#0x02] aresample=async=1:ochl='stereo':rematrix_maxval=0.000000dB:osr=48000[6]" -map "[6]" -codec:1 aac -b:1 119k -f dash -seg_duration 3 -dash_segment_type mp4 -init_seg_name 'init-stream$RepresentationID$.m4s' -media_seg_name 'chunk-stream$RepresentationID$-$Number%05d$.m4s' -window_size 5 -delete_removed false -skip_to_segment 1 -time_delta 0.0625 -manifest_name "http://127.0.0.1:32400/video/:/transcode/session/f8roi4revbqg7352k61ykgw6/ef969138-7266-4672-a132-b9b9d541c191/manifest?X-Plex-Http-Pipeline=infinite" -avoid_negative_ts disabled -map_metadata -1 -map_chapters -1 dash -start_at_zero -copyts -vsync cfr -init_hw_device vaapi=vaapi:/dev/dri/renderD128 -filter_hw_device vaapi -y -nostats -loglevel quiet -loglevel_plex error -progressurl http://127.0.0.1:32400/video/:/transcode/session/f8roi4revbqg7352k61ykgw6/ef969138-7266-4672-a132-b9b9d541c191/progress

It is not until the transcoder attempts to enumerate OpenCL devices that hardware accelerated playback fails and subsequently falls back to software acceleration:

Sep 08, 2023 16:13:53.827 [140133279042360] DEBUG - Request: [10.10.0.101:53754 (Subnet)] GET /video/:/transcode/universal/session/f8roi4revbqg7352k61ykgw6/0/header (7 live) #d9 TLS GZIP Signed-in
Sep 08, 2023 16:13:53.908 [140133330172728] ERROR - [Req#e2/Transcode/f8roi4revbqg7352k61ykgw6/ef969138-7266-4672-a132-b9b9d541c191] [AVHWDeviceContext @ 0x7f764a25c840] Failed to get number of OpenCL platforms: -1001.
Sep 08, 2023 16:13:53.909 [140133330172728] ERROR - [Req#ec/Transcode/f8roi4revbqg7352k61ykgw6/ef969138-7266-4672-a132-b9b9d541c191] [AVHWDeviceContext @ 0x7f764a25c840] Failed to get number of OpenCL platforms: -1001.
Sep 08, 2023 16:13:53.909 [140133330172728] ERROR - [Req#ed/Transcode/f8roi4revbqg7352k61ykgw6/ef969138-7266-4672-a132-b9b9d541c191] [Parsed_hwmap_2 @ 0x7f764f678c80] Failed to created derived device context: -19.
Sep 08, 2023 16:13:53.910 [140133330172728] ERROR - [Req#ee/Transcode/f8roi4revbqg7352k61ykgw6/ef969138-7266-4672-a132-b9b9d541c191] [Parsed_hwmap_2 @ 0x7f764f678c80] Failed to configure output pad on Parsed_hwmap_2
Sep 08, 2023 16:13:53.920 [140133330172728] ERROR - [Req#ef/Transcode/f8roi4revbqg7352k61ykgw6/ef969138-7266-4672-a132-b9b9d541c191] Error reinitializing filters!
Sep 08, 2023 16:13:53.920 [140133330172728] ERROR - [Req#f0/Transcode/f8roi4revbqg7352k61ykgw6/ef969138-7266-4672-a132-b9b9d541c191] Failed to inject frame into filter network: No such device
Sep 08, 2023 16:13:53.921 [140133330172728] ERROR - [Req#f1/Transcode/f8roi4revbqg7352k61ykgw6/ef969138-7266-4672-a132-b9b9d541c191] Error while processing the decoded data for stream #0:0
Sep 08, 2023 16:13:53.937 [140133376432952] DEBUG - Jobs: '/usr/lib/plexmediaserver/Plex Transcoder' exit code for process 13205 is 1 (failure)

Note the “Failed to get number of OpenCL platforms: -1001” messages. This suggests that the transcoder is unable to find the Intel OpenCL ICD.

However, `clinfo` on the same system outputs this:

Number of platforms 1
Platform Name Intel(R) OpenCL HD Graphics
Platform Vendor Intel(R) Corporation
Platform Version OpenCL 3.0
Platform Profile FULL_PROFILE
Platform Extensions cl_khr_byte_addressable_store cl_khr_fp16 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_icd cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_intel_command_queue_families cl_intel_subgroups cl_intel_required_subgroup_size cl_intel_subgroups_short cl_khr_spir cl_intel_accelerator cl_intel_driver_diagnostics cl_khr_priority_hints cl_khr_throttle_hints cl_khr_create_command_queue cl_intel_subgroups_char cl_intel_subgroups_long cl_khr_il_program cl_intel_mem_force_host_memory cl_khr_subgroup_extended_types cl_khr_subgroup_non_uniform_vote cl_khr_subgroup_ballot cl_khr_subgroup_non_uniform_arithmetic cl_khr_subgroup_shuffle cl_khr_subgroup_shuffle_relative cl_khr_subgroup_clustered_reduce cl_intel_device_attribute_query cl_khr_suggested_local_work_size cl_intel_planar_yuv cl_intel_packed_yuv cl_khr_image2d_from_buffer cl_khr_depth_images cl_khr_3d_image_writes cl_intel_media_block_io cl_intel_va_api_media_sharing cl_intel_sharing_format_query cl_khr_pci_bus_info cl_intel_subgroup_local_block_io
Platform Extensions with Version cl_khr_byte_addressable_store 0x400000 (1.0.0)
cl_khr_fp16 0x400000 (1.0.0)
cl_khr_global_int32_base_atomics 0x400000 (1.0.0)
cl_khr_global_int32_extended_atomics 0x400000 (1.0.0)
cl_khr_icd 0x400000 (1.0.0)
cl_khr_local_int32_base_atomics 0x400000 (1.0.0)
cl_khr_local_int32_extended_atomics 0x400000 (1.0.0)
cl_intel_command_queue_families 0x400000 (1.0.0)
cl_intel_subgroups 0x400000 (1.0.0)
cl_intel_required_subgroup_size 0x400000 (1.0.0)
cl_intel_subgroups_short 0x400000 (1.0.0)
cl_khr_spir 0x400000 (1.0.0)
cl_intel_accelerator 0x400000 (1.0.0)
cl_intel_driver_diagnostics 0x400000 (1.0.0)
cl_khr_priority_hints 0x400000 (1.0.0)
cl_khr_throttle_hints 0x400000 (1.0.0)
cl_khr_create_command_queue 0x400000 (1.0.0)
cl_intel_subgroups_char 0x400000 (1.0.0)
cl_intel_subgroups_long 0x400000 (1.0.0)
cl_khr_il_program 0x400000 (1.0.0)
cl_intel_mem_force_host_memory 0x400000 (1.0.0)
cl_khr_subgroup_extended_types 0x400000 (1.0.0)
cl_khr_subgroup_non_uniform_vote 0x400000 (1.0.0)
cl_khr_subgroup_ballot 0x400000 (1.0.0)
cl_khr_subgroup_non_uniform_arithmetic 0x400000 (1.0.0)
cl_khr_subgroup_shuffle 0x400000 (1.0.0)
cl_khr_subgroup_shuffle_relative 0x400000 (1.0.0)
cl_khr_subgroup_clustered_reduce 0x400000 (1.0.0)
cl_intel_device_attribute_query 0x400000 (1.0.0)
cl_khr_suggested_local_work_size 0x400000 (1.0.0)
cl_intel_planar_yuv 0x400000 (1.0.0)
cl_intel_packed_yuv 0x400000 (1.0.0)
cl_khr_image2d_from_buffer 0x400000 (1.0.0)
cl_khr_depth_images 0x400000 (1.0.0)
cl_khr_3d_image_writes 0x400000 (1.0.0)
cl_intel_media_block_io 0x400000 (1.0.0)
cl_intel_va_api_media_sharing 0x400000 (1.0.0)
cl_intel_sharing_format_query 0x400000 (1.0.0)
cl_khr_pci_bus_info 0x400000 (1.0.0)
cl_intel_subgroup_local_block_io 0x400000 (1.0.0)
Platform Numeric Version 0xc00000 (3.0.0)
Platform Extensions function suffix INTEL
Platform Host timer resolution 1ns

Platform Name Intel(R) OpenCL HD Graphics
Number of devices 1
Device Name Intel(R) UHD Graphics [0x4e61]
Device Vendor Intel(R) Corporation
Device Vendor ID 0x8086
Device Version OpenCL 3.0 NEO
Device Numeric Version 0xc00000 (3.0.0)
Driver Version 1.0.0
Device OpenCL C Version OpenCL C 1.2
Device OpenCL C all versions OpenCL C 0x400000 (1.0.0)
OpenCL C 0x401000 (1.1.0)
OpenCL C 0x402000 (1.2.0)
OpenCL C 0xc00000 (3.0.0)
Device OpenCL C features __opencl_c_int64 0xc00000 (3.0.0)
__opencl_c_3d_image_writes 0xc00000 (3.0.0)
__opencl_c_images 0xc00000 (3.0.0)
__opencl_c_read_write_images 0xc00000 (3.0.0)
Latest comfornace test passed v2021-06-16-00
Device Type GPU
Device Profile FULL_PROFILE
Device Available Yes
Compiler Available Yes
Linker Available Yes
Max compute units 24
Max clock frequency 800MHz
Device Partition (core)
Max number of sub-devices 0
Supported partition types None
Supported affinity domains (n/a)
Max work item dimensions 3
Max work item sizes 256x256x256
Max work group size 256
Preferred work group size multiple (device) 32
Preferred work group size multiple (kernel) 32
Max sub-groups per work group 0
Sub-group sizes (Intel) 8, 16, 32
Preferred / native vector sizes
char 16 / 16
short 8 / 8
int 4 / 4
long 1 / 1
half 8 / 8 (cl_khr_fp16)
float 1 / 1
double 1 / 1 (n/a)
Half-precision Floating-point support (cl_khr_fp16)
Denormals Yes
Infinity and NANs Yes
Round to nearest Yes
Round to zero Yes
Round to infinity Yes
IEEE754-2008 fused multiply-add Yes
Support is emulated in software No
Single-precision Floating-point support (core)
Denormals Yes
Infinity and NANs Yes
Round to nearest Yes
Round to zero Yes
Round to infinity Yes
IEEE754-2008 fused multiply-add Yes
Support is emulated in software No
Correctly-rounded divide and sqrt operations No
Double-precision Floating-point support (n/a)
Address bits 32, Little-Endian
Global memory size 3435970560 (3.2GiB)
Error Correction support No
Max memory allocation 1717985280 (1.6GiB)
Unified memory for Host and Device Yes
Shared Virtual Memory (SVM) capabilities (core)
Coarse-grained buffer sharing No
Fine-grained buffer sharing No
Fine-grained system sharing No
Atomics No
Minimum alignment for any data type 128 bytes
Alignment of base address 1024 bits (128 bytes)
Preferred alignment for atomics
SVM 64 bytes
Global 64 bytes
Local 64 bytes
Atomic memory capabilities relaxed, work-group scope
Atomic fence capabilities relaxed, acquire/release, work-group scope
Max size for global variable 0
Preferred total size of global vars 0
Global Memory cache type Read/Write
Global Memory cache size 524288 (512KiB)
Global Memory cache line size 64 bytes
Image support Yes
Max number of samplers per kernel 16
Max size for 1D images from buffer 107374080 pixels
Max 1D or 2D image array size 2048 images
Base address alignment for 2D image buffers 4 bytes
Pitch alignment for 2D image buffers 4 pixels
Max 2D image size 16384x16384 pixels
Max planar YUV image size 16384x16352 pixels
Max 3D image size 16384x16384x2048 pixels
Max number of read image args 128
Max number of write image args 128
Max number of read/write image args 128
Pipe support No
Max number of pipe args 0
Max active pipe reservations 0
Max pipe packet size 0
Local memory type Local
Local memory size 65536 (64KiB)
Max number of constant args 8
Max constant buffer size 1717985280 (1.6GiB)
Generic address space support No
Max size of kernel argument 2048 (2KiB)
Queue properties (on host)
Out-of-order execution Yes
Profiling Yes
Device enqueue capabilities (n/a)
Queue properties (on device)
Out-of-order execution No
Profiling No
Preferred size 0
Max size 0
Max queues on device 0
Max events on device 0
Prefer user sync for interop Yes
Profiling timer resolution 52ns
Execution capabilities
Run OpenCL kernels Yes
Run native kernels No
Non-uniform work-groups Yes
Work-group collective functions No
Sub-group independent forward progress No
IL version SPIR-V_1.2
ILs with version SPIR-V 0x402000 (1.2.0)
SPIR versions 1.2
printf() buffer size 4194304 (4MiB)
Built-in kernels (n/a)
Built-in kernels with version (n/a)
Device Extensions cl_khr_byte_addressable_store cl_khr_fp16 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_icd cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_intel_command_queue_families cl_intel_subgroups cl_intel_required_subgroup_size cl_intel_subgroups_short cl_khr_spir cl_intel_accelerator cl_intel_driver_diagnostics cl_khr_priority_hints cl_khr_throttle_hints cl_khr_create_command_queue cl_intel_subgroups_char cl_intel_subgroups_long cl_khr_il_program cl_intel_mem_force_host_memory cl_khr_subgroup_extended_types cl_khr_subgroup_non_uniform_vote cl_khr_subgroup_ballot cl_khr_subgroup_non_uniform_arithmetic cl_khr_subgroup_shuffle cl_khr_subgroup_shuffle_relative cl_khr_subgroup_clustered_reduce cl_intel_device_attribute_query cl_khr_suggested_local_work_size cl_intel_planar_yuv cl_intel_packed_yuv cl_khr_image2d_from_buffer cl_khr_depth_images cl_khr_3d_image_writes cl_intel_media_block_io cl_intel_va_api_media_sharing cl_intel_sharing_format_query cl_khr_pci_bus_info cl_intel_subgroup_local_block_io
Device Extensions with Version cl_khr_byte_addressable_store 0x400000 (1.0.0)
cl_khr_fp16 0x400000 (1.0.0)
cl_khr_global_int32_base_atomics 0x400000 (1.0.0)
cl_khr_global_int32_extended_atomics 0x400000 (1.0.0)
cl_khr_icd 0x400000 (1.0.0)
cl_khr_local_int32_base_atomics 0x400000 (1.0.0)
cl_khr_local_int32_extended_atomics 0x400000 (1.0.0)
cl_intel_command_queue_families 0x400000 (1.0.0)
cl_intel_subgroups 0x400000 (1.0.0)
cl_intel_required_subgroup_size 0x400000 (1.0.0)
cl_intel_subgroups_short 0x400000 (1.0.0)
cl_khr_spir 0x400000 (1.0.0)
cl_intel_accelerator 0x400000 (1.0.0)
cl_intel_driver_diagnostics 0x400000 (1.0.0)
cl_khr_priority_hints 0x400000 (1.0.0)
cl_khr_throttle_hints 0x400000 (1.0.0)
cl_khr_create_command_queue 0x400000 (1.0.0)
cl_intel_subgroups_char 0x400000 (1.0.0)
cl_intel_subgroups_long 0x400000 (1.0.0)
cl_khr_il_program 0x400000 (1.0.0)
cl_intel_mem_force_host_memory 0x400000 (1.0.0)
cl_khr_subgroup_extended_types 0x400000 (1.0.0)
cl_khr_subgroup_non_uniform_vote 0x400000 (1.0.0)
cl_khr_subgroup_ballot 0x400000 (1.0.0)
cl_khr_subgroup_non_uniform_arithmetic 0x400000 (1.0.0)
cl_khr_subgroup_shuffle 0x400000 (1.0.0)
cl_khr_subgroup_shuffle_relative 0x400000 (1.0.0)
cl_khr_subgroup_clustered_reduce 0x400000 (1.0.0)
cl_intel_device_attribute_query 0x400000 (1.0.0)
cl_khr_suggested_local_work_size 0x400000 (1.0.0)
cl_intel_planar_yuv 0x400000 (1.0.0)
cl_intel_packed_yuv 0x400000 (1.0.0)
cl_khr_image2d_from_buffer 0x400000 (1.0.0)
cl_khr_depth_images 0x400000 (1.0.0)
cl_khr_3d_image_writes 0x400000 (1.0.0)
cl_intel_media_block_io 0x400000 (1.0.0)
cl_intel_va_api_media_sharing 0x400000 (1.0.0)
cl_intel_sharing_format_query 0x400000 (1.0.0)
cl_khr_pci_bus_info 0x400000 (1.0.0)
cl_intel_subgroup_local_block_io 0x400000 (1.0.0)

NULL platform behavior
clGetPlatformInfo(NULL, CL_PLATFORM_NAME, …) Intel(R) OpenCL HD Graphics
clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, …) Success [INTEL]
clCreateContext(NULL, …) [default] Success [INTEL]
clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT) Success (1)
Platform Name Intel(R) OpenCL HD Graphics
Device Name Intel(R) UHD Graphics [0x4e61]
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU) Success (1)
Platform Name Intel(R) OpenCL HD Graphics
Device Name Intel(R) UHD Graphics [0x4e61]
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL) Success (1)
Platform Name Intel(R) OpenCL HD Graphics
Device Name Intel(R) UHD Graphics [0x4e61]

ICD loader properties
ICD loader Name OpenCL ICD Loader
ICD loader Vendor OCL Icd free software
ICD loader Version 2.2.14
ICD loader Profile OpenCL 3.0

This is with the distribution’s native OpenCL ICD installed.

I’ve seen it suggested in other threads that an OS/kernel issue is suspected. However, in my recent testing, the only moving part has been Plex Media Server. I realize this isn’t conclusive, I only mention it as a data point. Complex interactions are complex, after all.

I suspect that it’s more likely an interaction between the transcoder and the Plex-included CL libraries.

Having said all that, I realize that log snippets aren’t entirely helpful on their own. I’d be happy to send full A/B testing logs to Plex staff showing a working 1.32.5.7359 environment and a non-working 1.32.6.7468 one.

Note: Both environments work with HDR tone mapping disabled (working being hardware accelerated transcoding being utilized). And both configurations are on Pop!_OS 22.04 LTS; both are running kernel version 6.4.6 (but have been tested back to 6.2.6) with the same behavior.