Wayland color management protocol proposal

Richard Hughes hughsient at gmail.com
Wed Jun 19 01:52:54 PDT 2013

On 19 June 2013 03:52, John Kåre Alsaker <john.kare.alsaker at gmail.com> wrote:
> Here is my current color management protocol for Wayland clients. The
> basic idea is that the compositor sends two color spaces to the
> clients.

If we back up a little first, what's the problem we're trying to solve?

* We already have the ICC profile filename from the CMS plugin for the
output that sets the calibration sate
* We want to convert the pixels on a surface from assumed-sRGB to the
chosen display profile
* We want there to be no conversion if the display profile is not set
or if the display profile is set to sRGB
* We want to be able to poke out regions of a surface for specific
users, e.g. if a video player or image editor is already doing CM
itself, or if a calibration tool is running that needs to output
colors unmolested
* We perhaps want to mark out regions of a surface that have a
predictable or well known color space, to offload conversion from my
"Nikon D60" camera profile to the output space on the GPU, rather than
the CPU.
* Ideally we want to composite the surfaces together using linear
light where possible

I think addressing these in small chunks will let us define the
protocol to be as simple as possible. I'm also keen on keeping the
workflow ICC-only, trying to do anything else will lead to madness.

Also, as a small point, we can't just ignore the VCGT tag as it forms
part of the calibration state, and the characterisation is only valid
for that state. I agree it makes sense to produce profiles without a
VCGT when we have full screen color correction on most hardware, but
until then we have to honor them.

I think what it makes most sense for Raphael to start on is to take
the ICC profile filename as specified in the CMS plugin, and do the
assumed-sRGB -> output transform in a GPU shader. That's quite a task
in itself, and trying to think about everything all at once and
talking protocol changes is bewildering for my little head, let alone
someone new to the project :)


More information about the wayland-devel mailing list