color: deliver crucial, not all information

There could be two kinds of additions to wp_image_description_v1 events:

- Crucial ones, without which the description is useless, for example
  some completely new form of information that doesn't translate to old
  events. E.g. a standard appears for a profile file format that is
  utterly incompatible with ICC v4 files.

- Backwards compatible ones, which are additional details to existing
  forms of information. E.g. viewing environment parameters. In case
  these details are not possible to deliver, we know what assumptions
  are made, and can account for those.

When crucial events are missing, there is nothing one can do. In reality
the difference is not that obvious.

When additional detail events are missing, and it actually is possible to
have reasonable assumptions that hold, a compositor could deliver what
it can and follow the assumptions clients have done. However, this means
that the preferred or output image description is not what the
compositor actually has, it is something different, so the compositor
must take that into account. Therefore the backward compatible case
should be used only when it is necessary to keep existing applications
working as well as they did before.

This is to avoid the case where one adds a minor detail in the events,
and suddenly all color critical applications that do their own color
management stop being able to do their job because the compositor
refuses to communicate anything.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
This commit is contained in:
Pekka Paalanen 2023-05-11 14:26:40 +03:00 committed by Sebastian Wick
parent b190311f91
commit 3a484cb61d

View file

@ -268,7 +268,7 @@
If the interface version is inadequate for the output's image
description, meaning that the client does not support all the
events needed to deliver all the information, the resulting image
events needed to deliver the crucial information, the resulting image
description object shall immediately deliver the
wp_image_description_v1.failed event with the low_version cause,
otherwise the object shall immediately deliver the ready event.
@ -375,7 +375,7 @@
If the interface version is inadequate for the preferred image
description, meaning that the client does not support all the
events needed to deliver all the information, the resulting image
events needed to deliver the crucial information, the resulting image
description object shall immediately deliver the
wp_image_description_v1.failed event with the low_version cause,
otherwise the object shall immediately deliver the ready event.