This branch implements support for transforming SDR (sRGB) to a HDR enabled output, while allowing HDR content to stay intact.
Roughly what it does is, when HDR mode is enabled via the experimental property, all the stage views that represents outputs where HDR actually managed to be enabled starts to composite in a linear variant of the target color space (which will be BT.2020) via an intermediate framebuffer. Each thing being painted should then transform its pixels to fit in this color space, using an EOTF, a color space mapping matrix and luminance adaptation.
I’d never expected to see HDR support on Linux so soon. At the time I bought my current monitor I specifically didn’t care for HDR support since it was unlikely to work on Linux for the foreseeable future. This was before the Steam Deck was announced.
Tbh, this is just one of the many things that will lead to stable HDR support. But its nice to see these get solved one step at a time.