-
Notifications
You must be signed in to change notification settings - Fork 10
Description
The readme says that Windows SDK headers suppose a gamma 2.2 transfer (OUTPUT_WIRE_COLOR_SPACE_G22_P709) but experiments show that assuming an sRGB transfer function gives better average delta-E on verification (this may vary on GPU vendor). This is possibly due to Windows uses piecewise sRGB transfer function for sRGB contents, and this behavior is completely wrong according to sRGB spec.
In IEC 61966-2-1-1999 chapter 4.1 "Reference image display system characteristics", the specification requires the reference display to be calibrated to gamma 2.2 tone curve when directly displaying sRGB signal. So power 2.2 gamma curve should be applied rather than sRGB curve when converting sRGB content to linear scRGB blending space to accurately follow the spec behaivor. And we can see some display problems caused by this issue: https://github.com/dylanraga/win11hdr-srgb-to-gamma2.2-icm
I also created an issue at windows feedback hub, please give me an approve ticket, this might be helpful to get this issue fixed: https://aka.ms/AAw09zz
Some related discussions about this:
https://gitlab.freedesktop.org/pq/color-and-hdr/-/issues/30
https://gitlab.freedesktop.org/pq/color-and-hdr/-/issues/12
https://gitlab.freedesktop.org/pq/color-and-hdr/-/blob/main/doc/wayland_qa.md?ref_type=heads#q-should-srgb-content-be-decoded-with-the-piecewise-srgb-transfer-function
Btw, currently KDE Wayland + Linux would do the convert correctly for sRGB contents: https://discuss.kde.org/t/whats-the-transfer-function-for-sdr-content-under-hdr-mode/33259/3?u=stat_headcrabed
