[RFC wayland-protocols 0/1] Color Management Protocol

Sebastian Wick sebastian at sebastianwick.net
Thu Feb 14 02:46:20 UTC 2019

This is yet another color management protocol proposal. It ignores HDR and
calibration/profiling on purpose.

The general idea here is twofold:

1. clients can create color spaces from ICC profiles and attach them with a
   render intent to a wl_surface
2. clients can get feedback about which color spaces a given wl_surface was
   converted to with which priority (implicitly via the order of events)

The compositor should be doing its best to convert all surfaces to the correct
color space for the next present.

Color space conversions don't have a single correct algorithm but are subjective
which means for accurate colors clients should be able to do all color
conversion. This is not always possible (surface spanning multiple outputs,
hotplugging outputs, etc) but with the color space conversion feedback the
client can get as close as possible.

For example if the surface is shown on a single output the client can assume
that the next frame will be shown on the same output and use the correct color
space for that output. It it spans multiple outputs the client can choose one
color space and let the compositor do the best to convert to the other.

In many cases, with a well-behaving client, the compositor can skip color
conversion entirely.

Feedback and comments appreciated. The protocol summary and description texts could use more
work (help here would also be appreciated).

Sebastian Wick (1):
  unstable: add color management protocol

 Makefile.am                                   |   1 +
 unstable/color-management/README              |   4 +
 .../color-management-unstable-v1.xml          | 183 ++++++++++++++++++
 3 files changed, 188 insertions(+)
 create mode 100644 unstable/color-management/README
 create mode 100644 unstable/color-management/color-management-unstable-v1.xml


More information about the wayland-devel mailing list