I’m trying to do some crazy thing avoiding my monitor’s faulty built-in HDR color mapping, which shrinks color space from what the screen can do. Unfortunately it’s automatically switched on in HDR mode, and I still want to use Windows functionality for HDR color spaces.
The way I figured out to do it would be to enable Windows HDR – in PQ mode – with monitor in non-HDR mode.
To do it I would have to run a little dance: calibrate the screen with ST 2084 (correct nits range) as target curve. (Or you can use a high gamma curve as approximation.)
Afterwards, apply that curve with a scale into vcgt, mapping the edges of the range. The last step is stymied by the lack of IDXGIOutput::SetGammaCurve based loader for Windows, as old SetGammaRamp API does not allow over unity curves and is unsuitable for steep curves anyway. Does anyone happen to have one such loader around?