[RFC wayland-protocols] Color management protocol
graeme2 at argyllcms.com
Thu Jan 5 01:40:08 UTC 2017
Pekka Paalanen wrote:
> Designing that is trivial:
I'm not so sure.
> GLOBAL cms_calibrator
> - request: create_calibration_surface(wl_surface, new cms_calibration_surface)
> # Assigns wl_surface role.
> INTERFACE cms_calibration_surface
> # Surfaces with this role will only be shown on the set output,
> # with direct color path bypassing all color-management, and
> # and the hardware has been reset to neutral/identity settings.
> # (or whatever requirements are appropriate, you can decide
> # what to write here)
Why this has to be made a special case? The normal
machinery used to manage color is capable of
configuring things to be in a proper state for calibration
and profiling (if this was not the case, then it is not
truly able to do the color management!)
Due to the different bit depth of the VideoLUT entries and the
frame buffer, it is expected that it is possible to set
the VideoLUT value for the entry that corresponds
with the values set in the frame buffer (i.e. classically
10 bit VideoLUT entry depth in 8 bit frame buffer),
so that the test patch values can be of the same precision
as the resulting VideoLUT entries that get created from them.
> - request: set_output(wl_output)
> # Which output this surface targets. The compositor replies
> with a
> # configure event.
> - event: configure(width, height)
> # delivers the width and height the application needs to use
Right, but none of this addresses the main point of calibration -
to create a set of 1D LUTs to load into the hardware. How
is the hardware configured ?
> Whether the global needs to be privileged or not, and how privileges
> are implemented are an orthogonal matter.
It may be orthogonal, but still needs a concrete solution
to be implementable.
And let me raise a fundamental point about profiling here
(not to be confused with calibration). Profiling the display will not
work if the color values of the pixels to the display is different during
profiling, to what it is for normal application display.
More information about the wayland-devel