HW transcoding + HDR = buffering with low CPU/GPU utilization

Server Version#: 1.24.5.5173 (Windows Server 2019 Standard 1809)
Player Version#: any

I have the following configuration of my Plex (not only) server:
2x Intel Xeon X5470 (12 cores/24 threads total)
Nvidia Quadro P400 2GB (driver DHC 472.47)
48GB DDR3 ECC RAM
System is on SSD, videos are on HDD RAID.

Test video: 4K HEVC 4:2:0 HDR10 24p main 10 (fully supported by NVENC/NVDEC)

If I disable HW encoding/decoding and enable HDR tone mapping I can transcode video with almost no problem and 40-45% CPU load, but it’s buffering when transcoding process reaches 50% of CPU (looks like it can’t use more than 1 physical CPU, I can even see this in the Task Manager).

If I disable HW encoding/decoding and disable HDR tone mapping I can transcode video without any problems and 60-70% CPU load (in this case Plex transcoder can utilize two physical CPUs).

If I enable HW encoding/decoding and disable HDR tone mapping I can transcode video without any problems with 4% CPU load and 7/15% of encode/decode GPU load. Looks like the system has enough resources left.

But if I enable HW and HDR at the same time Plex utilizes 15% of CPU and 5/9% of GPU, video in player buffering every few seconds. During all tests Plex consumes maximum 1GB of system RAM and 0.5GB of video RAM. So I don’t see any kind of a bottleneck in my system.

Disabling HDR tone mapping with enabled HW enc/dec is a partial solution for me. What else I can do for this scenario to work: decode on GPU → HDR tone mapping on CPU → encode on GPU?

Tone mapping is not hw on windows.

Switch to Linux, otherwise you’ll have to wait if/until windows hw tone mapping support is added.

Or upgrade cpu with a very high single thread performance rating (tone mapping is single threaded).

In era of multicore CPUs someone made CPU intensive algorithm only single-threaded


I know it’s not hw on Windows, but as you see when I fully disable hw acceleration my CPU is almost capable to do all the stuff (i.e. decoding, tone mapping, encoding) in real-time, but with help of GPU for some reason it only became worse.

Is there an actual roadmap available for future enhancements?

If it were as simple as “make it multi threaded” I’m sure some one already would have.

If you are in a hurry, feel free to implement it and release your work for all to make use of, for free of course. :wink:

No, there is no roadmaps provided by plex.

No doubt there will either be a dedicated beta release, or will be noted in release notes, if/when such functionality becomes available.

Why for free if I have paid for Plex? :thinking: Interesting logic. And it’s already done, official Plex player on Windows using the same av libraries can use Nvidia GPU for all (decoding and tone mapping) with almost 0% CPU load.

Nevermind, I figured out Plex Pass users don’t have any benefits above free users, and there will be no support from the developers.

plex leverages FFMPEG, which is free open source, that anyone can help improve. but anyway, it was supposed to be humorous, hence the wink.

player vs server is completely different.

plex pass vs free

not sure what exactly you refer to as far as dev support, whether for windows pms tone mapping, or whatever
 anyway plex constantly sends out new updates and indicates fixes and new features in the release notes, but otherwise I can’t say, I’m not a dev, so your guess is as good as mine.

sorry, maybe someone else has a better answer for you.

as far as why ‘gpu makes it worse’ my understanding is has to do with bottlenecks between the gpu/cpu/motherboard/ram.

doing it all on cpu, does not involve all the transfer back and forth across the pcie bus to/from the gpu to cpu/mainram.

and now that I look, unless you have mis-typed it, that cpu is fairly old, only has 4 cores/8threads each, and is not very powerful, especially in comparison to what most consider a minimum spec cpu for 4k: Intel Xeon X5470 @ 3.33GHz vs Intel Core i7-7700 @ 3.60GHz [cpubenchmark.net] by PassMark Software

In any case, your pain is well noted, you are certainly not the first, last, or only person wanting this, and as already stated, if/when the functionality is added, it will be in pms release notes.

Usually this means users can get in touch with developers by the phone/email/report, and not “Support questions submitted through the contact form will go unanswered”.

The forums are the official and only way.

The various dev team members are around, and post if/when they have something applicable to say.

There are far too many users and posts to get personal responses on everything/everyone.

Feature requests can posted in the appropriate section where they can be voted on by others.

Bugs can posted, and when provided with sufficient logs and reproduction steps, will be responded to and/or resolved in accordance to whatever priority is determined.

This thread is about an already documented issue, for which the available solutions have been provided.

1 Like

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