HDR → SDR tone mapping is here, w00t! Thank you, developers, for your continued efforts on the home theatre front!
Happy as I was, upon testing, my CPU tanked and GPU was sitting idle without a lick of care Naturally, I go digging in the docs to find a very informative support matrix:
I’m in the unfortunate (for this case) camp of Windows, and would like to know :
When will tone mapping on NVIDIA hardware be supported?
On that note, can anyone confirm the linux implementation is successfully offloading to GPU? I’m sitting on a conservative 3770k, Quadro p2000, windows implementation box, and would greatly benefit from proper Windows support
My Plex server is running on Ubuntu Server 18.04 in a VM with 4 E5-2650L v2 cores, 16GB RAM and a Quadro P400 passed through to it and HDR->SDR Tone Mapping is offloading and working perfectly for me.
Thanks for starting this thread! I just upgraded my Windows-based server with a Quadro P2000 and have been scratching my head wondering why on earth my transcoded streams didn’t meet my buttery smooth expectations. Turned off HDR tone mapping and all fixed.
I’m hoping the fact this can be offloaded to GPU on Linux is an indication that the functionality will come to Windows eventually…?
Glad to hear it! I’m on the fence to setup a dual-boot situation, and run plex off the linux side. Was there anything special I’m setting up nvidia graphics or was that straightforward?
I’m certainly no Linux expert but with basic understanding I was able to follow a couple of guides on Google to get the Nvidia driver installed and then apply the patch to unlock the number of simultaneous transcodes as well (even though I rarely use more than 1 or 2 at the same time anyway!)
That said, I’m probably moving Plex back over to Windows soon as I’m upgrading my media storage and can’t get find a way to manage the new RAID card under Ubuntu. Works fine in Windows though, so we’ll see. Having HDR->SDR Tone Mapping available under Windows would certainly make the transition easier…
I’ll get in touch with you. Now in the holidays, I got around to testing everything. First I installed a Plex server on my gaming system (Win10, 3700X and RTX 2080), because my actual Plex server only has an i5 4400 that doesn’t support HEVC and such.
I took a very current source as test material. 4K HDR inkl. DoVi and DTS-HD 7.1 in full bitrate.
If I convert the source to a 1080p 10mbit SDR, it puts an extreme load on the hardware.
Up to 40% CPU utilization and up to 100% 3D utilization. De- and Encode at around 10%.
That is really a lot of power that is called up from the CPU. I wonder about the 3D load anyway. Think here you can see the lack of support for Windows or the effect.
The picture result was okay and no comparison to earlier. But the colors and the picture seem a little overdriven to me.
Since I saw that Linux should support this properly, I finished one partition with Ubuntu 20.10, done all updates, installed Nvidia drivers and set up Plex.
It behaves a lot better here. ~10% CPU utilization, up to 30% 3D utilization an up to 100% video engine utilization. The GPU load then fluctuates between full load and “idle”.
Personally, I think the image created by the GPU is much better because it doesn’t seem so overdriven to me. I can find my way around Linux, but remain a Windows fan
Here is the comparison CPU (3700X) vs. GPU (RTX 2080)
Since Trancode’s CPU utilization is abnormally high, I would advise anyone against it. We are talking about an 8 core / 16 thread CPU that is well utilized and needs to be cooled accordingly. In addition, the picture via the CPU is worse.
I’m running plex on a Windows 2019 server machine with a intel 5960x and a gtx 1650(hacked), HDR tone mapping completely cripples 4k hdr movie transcodes as the cpu load won’t even go beyond 40% to make up the lack of hardware. The movie ends up buffering and there is no way around that except to turn off the feature as bland colors are better than a useless machine. I can’t move to ubuntu as i’m running freenas and another os under Hyper-V. Good for those who this tone mapping has helped but it really should get hardware support on windows as this is leaving a lot of us in the dust.
Can I just add my voice to this? Is there an official feature request?
I’ve recently added a new GPU to my Windows server and configured HW transcoding which is working well but of course not with HDR tone-mapping. Disabling tone mapping uses HW transcoding but colours are washed out whilst enabling it murders the CPU.
Am grateful for the option but really need HW support on Windows to make this useful
I’ve now upgraded my server from the 5960 to a 12 core xeon and replaced the ram with64gb of ecc ram. HDR tonemapping now only using about 25% of the cpu since there are 4 extra cores and a lot more cache memory. Still hangs and buffers , i’m not sure what the bottleneck is as the system has a ton of headroom.
Another bump here. Even a vague indication would be useful from Plex as to whether nvidia hardware HDR tone mapping Windows support falls under:
a) we expect to implement this by x;
b) we will implement it eventually but it’s not currently scheduled;
c) we’re not sure whether it’s even possible;
d) we know we can’t/won’t ever do it.
For me, not knowing means putting other OS/hardware/player/sharing decisions on hold, or investing time/money sooner into a solution that would be a waste if/when nvidia HW HDR tone mapping comes to Windows.
I didn’t see the official support article linked in this thread, so here it is first.
As you may well know (or not), plex does not have provide timelines or guidance on what features may or may not be worked on, until they are ready to do so (see for example the preview tv scanner thread).
So, you are not likely going to get any response for a, b, c, or d.
As far as I am aware, it is not how many cores you have, it is how fast the individual core is.
In other words, single threaded speed.
This applies also to subtitle and audio transcoding, which in conjunction with video transcoding (ie for subtitle burn in) can create a single cpu bottleneck.
The support article states that Nvidia hw support should be available in docker “when CUDA is available in the container”.
CUDA in WSL2 is available as a beta on insider Windows 10. I have installed it and got CUDA to work in WSL2 as well as in docker in WSL2.
I ran Plex in WSL2 docker. nvdec seems to work, but I can not get nvenc to work. I am not an expert in docker or CUDA though, so it may be my setup that is wrong. This is the docker cmd I tried:
I get this error in the logs during encoding, but I have the 465.42 driver installed in Windows:
[0x7f0e95ffb700] ERROR - [Transcode] [FFMPEG] - Cannot load libnvidia-encode.so.1
[0x7f0e95ffb700] ERROR - [Transcode] [FFMPEG] - The minimum required Nvidia driver for nvenc is 418.30 or newer
It seems like a possible solution to get this working in Windows. Have anyone else tested this? Anyone know if this is not possible at all, so I can stop wasting my time getting it to work?