You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Gamma 2.2 is a popular calibration target but unfortunately not supported in Windows MHC/ACM/HDR pipelines.
You can't change color reproduction of color-managed apps by simply changing the calibration target tone curve.
The Problem
Think of a random color-managed app, given specified content (e.g. an image) and display profile, tell the rendering behavior.
Content Profile
Display Profile
Rendering Behavior
Unspecified
Unspecified
❓
sRGB
Unspecified
❓
Apple Display P3
Unspecified
❓
Unspecified
sRGB
❓
Unspecified
Rec. 709 with gamma 2.2
❓
sRGB
Rec. 709 with gamma 2.2
❓
Apple Display P3
Rec. 709 with gamma 2.2
❓
sRGB
Apple Display P3
❓
Note
Chromium discards TRCs in display profiles and always assumes sRGB TRC for SDR.
Few content is encoded in Rec. 709 (or sRGB, if you like) gamut with gamma 2.2
Apple Display P3 consists of DCI-P3 gamut, D65 white point and sRGB transfer function.
Facts
In the current implementation, if an MHC2 transform or ACM/HDR mode is in effect, the display is always tagged with either the original MHC ICC profile or a pseudo profile with sRGB TRC.
For the MHC CSC pipeline to work properly with color-managed apps, tone curves in MHC ICC profiles should be sRGB TRC to ensure encoded RGB values are correctly converted back to linear XYZ.
For good old non-MHC ICC profiles, if you choose gamma 2.2 as calibration target, the resulting profile will have a gamma 2.2 TRC. When the profile is associated with a display, CMMs will convert sRGB-encoded contents from sRGB piecewise TRC to pure-power gamma 2.2 TRC before sending them to the display.
No known CMM will passthrough sRGB-encoded content, without conversion, to a gamma-2.2 tagged display.
My Views
Given the pipelines are fixed to sRGB TRC, it doesn't make sense to use gamma 2.2 in some stages in the pipeline.
Yes, gamma 2.2 can be used for non-color-managed apps/contents, but this is unfortunately not supported in current Windows MHC/ACM/HDR pipelines.
Don't treat sRGB TRC special - it's just like some other gamma curve with different power.
For SDR display: either ignore the curve and accept different OETF/EOTF combination (just like BT.1886-encoded video), or follow the full source EOTF - linear XYZ - destination OETF pipeline
Avoid explicitly tagging your content with sRGB TRC, especially if it's not created under sRGB TRC (like gamma 2.2)
Feel free to drop your thoughts here, or upvote the related Feedback Hub ticket1.
TL;DR
The Problem
Think of a random color-managed app, given specified content (e.g. an image) and display profile, tell the rendering behavior.
Note
Facts
My Views
Feel free to drop your thoughts here, or upvote the related Feedback Hub ticket1.
Footnotes
https://aka.ms/AAnpmrt ↩