[Openicc] XRandR 1.2 and _ICC_PROFILE property.

Graeme Gill graeme at argyllcms.com
Wed Mar 12 19:51:08 PDT 2008


I'm not sure if this topic has come up, but it seems to
me that the _ICC_PROFILE property on the root window
convention has a few issues when it comes to
working within XRandR 1.2.

With Xinerama it sort of works because Xinerama
fakes a single virtual screen out of several underlying
("real") X11 screens, and also has the facility
to list these real screens and the areas they
occupy in the virtual screen. I'm not sure
how much this relies on luck though, since the assumption
is that the _ICC_PROFILE_X corresponds to
the Xinerama order it lists its component screens.

With XRandR 1.2 though, the connections between screens,
CRTCs and outputs is explicit. Presumably when an Xinerama
like virtual screen facility is running, there is no
underlying "real" corresponding screen, so the labelling
of the root window _ICC_PROFILE property is unclear.

The logical way of doing this is to instead add an _ICC_PROFILE
property to the randr output object. To be a full implementation
there would actually have to be a utility that is monitoring
RandR events, and tracking the EDID data for each output,
and keeping a table of monitor make, model and serial number
vs. icc profile, so that if a user changes the display, the
correct calibration and ICC profile will automatically
be switched to the associated output property.

Color aware applications or graphics toolkits should ideally
be XRandR 1.2 sensitive, and look to the _ICC_PROFILE property
of the output object, and use it for regions of the screen
that any of the outputs CRTCs cover.

If my analysis is correct (and I'm still trying to figure this
stuff out), then there are two issues:

  An XRandR 1.2 _ICC_PROFILE output property convention needs
  to be documented.

  The strategy for backwards compatibility with applications/toolkits
  that follow the old convention is unclear. XRandR 1.2 is meant to
  emulate Xinerama, so perhaps it's order of screens can be used to
  identify the root window _ICC_PROFILE_X ?

Graeme Gill.


More information about the openicc mailing list