mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2026-05-01 19:38:00 +02:00
The sRGB expected display behavior uses the pure power-law with exponent 2.2, not the two-piece sRGB transfer function. cmsCreate_sRGBProfileTHR() used the two-piece TF, now we use the proper display TF. This is particularly meaningful when implicit sRGB content is converted to HDR formats, in order to maintain the stimuli reproduction near zero. cmlcms_send_image_desc_info() is already sending this, it doesn't need fixing. Changing the curve also changes the error tolerances. The change is theoretically a no-op, but the curve and its inverse and temporary rounding add error. The new curve is more prone to error, so it is not surprising we need to raise the tolerance. The color transformation does end up as power-2.2 analytical form and I do not think it is ever lowered to a LUT in alpha-blending test, so there is no obvious fix improving the accuracy. The worst case point in alpha-blending still occurs at the very same point as before. The test reference images are updated for the same reason, they would fail otherwise. Both alpha-blending and color-icc-output contain the same sRGB-optical sub-test, hence the same error tolerance. It is surprising to have to increase the ICC roundtrip error tolerance in color-icc-output test, given that the curves are passed as parametric to LittleCMS, and adobeRGB case works with the old tolerance even. I did not investigate further. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
466 B
768x16px
466 B
768x16px