[Openicc] Suggested update to "ICC Profiles in X Specification 0.4"

Graeme Gill graeme at argyllcms.com
Fri Nov 18 21:39:33 UTC 2016


Kai-Uwe Behrmann wrote:

Hi,

> Oyranos maps outputs to Xinerama dimensions. Comparing EDIDs might be a
> better way. An other way would be to describe a API priority in the
> spec. E.g. when Xinerama is available use that numbering, else use
> active XRandR outputs. I would like to see that topic clearer than with 0.4.

after looking through the X11 Xranar Xinerama implementation, I now
know what you are talking about. But it makes the
"ICC Profiles in X Specification" rather lacking in necessary detail.

I couldn't find a way of matching Xinerama screens to Xrandr CRTC's/outputs - the
Xrandr Xinerama emulation doesn't seem to set corresponding root window EDID
atoms, so match EDID's isn't possible, and the Xinerama screen information
has no references to Xrandr CRTC's or Outputs. Matching dimensions & offset
would be hit or miss.

So the only option is to emulate the Xrandr Xinerama logic, which (as far
as I can tell from the current X11 server source code) is as follows:

 Create a list of Xinerama screens by enumerating
 Xrandr CRTC's, ignoring any that have a NULL mode
 or no outputs, and sorting the CRTC connected to the
 primary Output (if any) to be the first.
 The handling of CRTC's with multiple Outputs is a punt -
 one option is to always pick the first.

My previous ArgyllCMS logic was enumerating by Outputs,
so probably wouldn't match the above. There is also
an incompatibility with any application linked to Xrandr V1.2
libraries, since there is no way of them obtaining the primary
display until V1.3, resulting in a possibly different order
to what Xinerama returns.

Graeme.



More information about the openicc mailing list