Hello! I have what I hope is a simple question.
I am deciding on an ODT in Davinci’s color management settings. I would like this ODT to match an application I’ve been developing in DX12. In Direct X, you specify the swapchain’s color space by setting the type to DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020
This means the display adapter is expecting the swapchain to have the ST2084 EOTF applied. So as the programmer, I take my data, clamp it in the 0-10,000 nits range, and apply this transfer function.
I also take care to go from my linear color space to Rec.2020.
So what are all of these options? What is the difference between Rec.2020 ST2084 (1000 nits) and it’s 2000 and 4000 nits counterpart? Are these just doing some display-mapping to prevent clipping above these nit values? Is the pure “Rec.2020” the most similar to what I described? I just hope to have a better understanding of some of these options,
Ok. First, an answer to your question. In order to match the DirectX HDR10 swapchain setting, you would choose another option lower in the dropdown : Rec.2020 ST2084 without any qualifier. The 1000 nits, 2000 nits, 4000 nits and P3D65 Limited are clipping options that Resolve can apply to your images/videos. You don’t want that since I am assuming that you are probably using Resolve to create .cube LUTs for your DX12 project (a game?). As an additional note, you might want to hunt for any additional clipping setting like timeline luminance and set that to 10000 nits to prevent DaVinci from doing any work on that front. Let your shaders do all the work on the color processing front. You will thank me for that advice
Next, the bad news, DaVinci Resolve on Windows does not support HDR Swapchains. It does on Mac though. You have a few remedial options :
- Ignore the problem entirely and render your project to a .MP4 encoded to H265 properly tagged with Rec.2020 + ST2084 so that you can preview the output in either VLC or MPV. I find that MPV gives better result than VLC with HDR videos.
- Buy one of the more expensive ASUS ProArt monitors with >1000 nits peak brightness and use its HDR Preview mode instead of enabling HDR at the Windows OS level. You should put the main interface of DaVinci Resolve on one screen and have Resolve use the ProArt monitor to display a preview of your project in fullscreen. Otherwise, everything that’s being displayed on this monitor will be interpreted as if it was encoded in HDR10.
- Buy a Mac and use the Mac version of DaVinci Resolve. That’s probably not an option for you as a DirectX developer
- Use the official solution from Blackmagic which is buying their DeckLink adapter in order to output to an external monitor. Yes, even an ASUS ProArt but what’s the point of the DeckLink card for these monitors.
Hope that helps,
Thank you Jean-Michel,
And thank you for the advice about the timeline luminance. I will have to search for extra clipping settings.
I’ve already realized the “bad news” a few months ago and written a DCTL which does some custom tonemapping to match my game, in LDR and outputting Rec.709. This made color grading a breeze but, working with HDR required going to the game and reapplying the grade for A/B testing. So in fact, I’ve purchased the DeckLink Mini Monitor 4k, which is recently HDR compatible. I’ve had it sending the display to my 1000nit monitor, and it was at one point enabling HDR on the monitor. Since recently however I can’t get it to trigger HDR again. And I am not sure which setting changed it.
But that simplifies things a lot, to know that I should just be using Rec.2020 ST2084.
Thanks for the comprehensive answer!
Do you definitely have “Enable HDR Metadata” selected in your Resolve Project Settings?