GSoC CM collaboration
Hal V. Engel
hvengel at astound.net
Sun Mar 2 16:28:43 PST 2008
On Sunday 02 March 2008 13:31:43 Stephane Marchesin wrote:
> > I would actually put this in a broader context since I personally don't
> > care how the problem is solved as long as there is a solution.
> > How do we solve the system wide monitor colorimetric issues that are now
> > becoming so apparent with the advent of wide gamut monitors? This
> > issue has been there forever but was masked by the fact that most
> > monitors fell within a fairly small range of colorimetric characteristics
> > and this has, until now, allowed us to ignore the issue. Those days are
> > fast disappearing and will some be gone.
> > One way to solve this is to leverage what has been learned about color
> > management and applying this to the whole desktop. This is what Kai-Uwe
> > is proposing. There may be other approaches or combinations of
> > approaches that can be used as well. I am open to any plausible approach
> > and would like to hear how others think this problem can be solved.
> You certainly can't do something that flexible at the driver level:
> the hardware does not allow it.
I don't think anyone was saying that this is a driver issue although the
driver might play a limited roll in the solution. Most of the solution
likely needs to take place in the layers above the video card driver.
> You also cannot modify the pixmap
> contents because the application still expects to find its data as it
> wrote it.
This is clearly true. This is a transformation that needs to take place
between the application and the device. In applications that do this on
their own the app keeps two copies of the pixmap. One in it's unaltered form
and one that has been transformed into the display color space.
> And you don't want to modify every application, of course.
Currently we have some applications that are color management aware (GIMP,
Krita, CinePaint, Scribus, Firefox 3....) but with the exception of FireFox 3
these are all specialized applications and none of them color manage things
like the window frame, window title bar, menus or buttons. And there are
many media applications such as video players and Flash/Gnash that are still
totally color management dumb. In addition, adding this functionality is
non-trivial and doing this to every application or even every media
application would be a huge undertaking.
> The solution might "simply" be to write a compositing manager that
> does whatever lookup you want. Fairly recent X.Org versions allow
This sounds plausible. One of the basic questions is where does this
functionality belong? It is fairly apparent that the best place to handle
this is somewhere between the hardware and the applications since this would
allow this to be implemented once and it would take care of everything on the
desktop. As you point out this likely is not at the video card driver level
although limited parts of it might best be done there. Of course X.Org is
more than just the video drivers and that still leaves room for other parts
of this to take place in X.Org. I suspect that the best solution will split
this between different parts of the software stack. With some parts
happening in the video driver, other parts in X.Org and other functionality
being at the window manager/DE level. Clearly things like setting CM policy
belong at the upper level of the stack.
There are still other areas where X.Org could help out with respect to color
management. Some examples:
1. Monitor calibration applications would like to have DDC/CI support. This
could be a good GSoC topic.
2. Many video drivers still do not have xrandr 1.2 support which means
applications that work with video card LUTs such as calibrations software and
LUT loaders have to deal with more than one API to work on all X based
systems. I am not sure if this would make a good GSoC topic.
3. On a similar note one proprietary driver does not support changing the LUT
with either of the standard APIs and has introduced it's own API for LUT
manipulations. This should not be allowed. There are people from that
vendor on this list and they should be raising this issue with their
organization so that it gets fixed. At this point no calibration software
supports this hardware while using that driver and when users ask they are
told to avoid that vendors hardware until the issue is fixed. This is
clearly not a GSoC topic.
More information about the xorg