Add support for HDR surfaces in Clutter using shaders
Feature summary
- Make clutter aware of HDR surfaces
- Implement color space capable linear compositing
1. Attach color state information to actors
Attach color state information to ClutterActor. Color state should have information such as colorspace, EOTF transfer function, hdr metadata etc.
2. Make clutter blend in a linear color space
HDR/PQ requires blending in a linear color space for correctness so Clutter must be made to support this. Due to this type of blending currently being incompatible with today's KMS overlay planes blending, it should be considered whether non-linear ("traditional") blending should still be possible, and enabled when compositing in non-HDR (normal) mode.
3. Add blending test cases
Add tests for correct blending. These should use the reference test approach, comparing blending done by Clutter with reference images. Depending on whether non-linear blending mode will be supported, test cases should cover both.
Known Facts
- Hardcode TF as PQ & colorspace as BT2020
- Mutter policy: Lets always tone map content pixels to sink's HDR capabilities (as Windows & Display vendors usages sink's capability)
This story/issue is a child of #2134