Project

General

Profile

Bug #10453

Weird CMS behaviour with darktable, x atom and dual head setup

Added by Jan Niklas Fingerle about 5 years ago. Updated over 3 years ago.

Status:
Fixed
Priority:
Low
Assignee:
-
Category:
-
Target version:
Start date:
05/10/2015
Due date:
% Done:

100%

Estimated time:
Affected Version:
1.6.6
System:
other GNU/Linux
bitness:
64-bit
hardware architecture:
amd64/x86

Description

(Report originally sent to darktable-devel on 2015-05-02)

I'm running darktable 1.6.6 on LinuxMint (pmjdebruijn-ppas). I've got a setup with two screens (Fujitsu P24-5 ECO (LCD/IPS, CCFL backlight) and DELL U2412M (LCD/IPS, LED backlight)). I've calibrated those screens with my Colormunki Display (dispcalGUI, 6500K, 140cdm²).

Using darktable I noticed that the Fujitsu screen seemed quite a bit off with a red-ish tint.

This behaviour goes away when switching the method to find the CMS from 'all' (or XAtom) to Colord. => When I force Colord all is fine, with XAtom the colors are off.

Running darktable-cmstest gives me

-------8<--------------------------------------------------
darktable-cmstest version 1.6.6
this executable was built with colord support enabled
darktable itself was built with colord support enabled

HDMI1 the X atom and colord returned the same profile
X atom: _ICC_PROFILE (28328 bytes)
description: P24W-5 ECO 2015-05-01 140cdm^2 D6500 2.2 S 3xCurve+MTX
custom89,90,100 br44c50b0 2015-05-01 Tiefenkomp Korr Eizo
colord: "/home/jnf/.local/share/icc/P24W-5 ECO 2015-05-01 140cdm² D6500
2.2 S 3xCurve+MTX custom89,90,100 br44c50b0 2015-05-01 Tiefenkomp Korr
Eizo.icc"
description: P24W-5 ECO 2015-05-01 140cdm^2 D6500 2.2 S 3xCurve+MTX
custom89,90,100 br44c50b0 2015-05-01 Tiefenkomp Korr Eizo

HDMI2 the X atom and colord returned the same profile
X atom: _ICC_PROFILE_1 (29268 bytes)
description: U2412M 2015-05-02 140cdm^2 D6500 2.2 S 3xCurve+MTX
custom97,94,97 br38c75 2015-05-01 Tiefenkomp Korr Dell
colord: "/home/jnf/.local/share/icc/U2412M 2015-05-02 140cdm² D6500 2.2
S 3xCurve+MTX custom97,94,97 br38c75 2015-05-01 Tiefenkomp Korr Dell.icc"
description: U2412M 2015-05-02 140cdm^2 D6500 2.2 S 3xCurve+MTX
custom97,94,97 br38c75 2015-05-01 Tiefenkomp Korr Dell

Your system seems to be correctly configured
------->8--------------------------------------------------

Now, I'd expect that either my system is mis-configured which should show in the darktable-cmstest or that the colors in XAtom mode should match between screens as they do in Colord mode.

From what I can tell from delays when moving darktable between screens, the XAtom case looks like a necessary correction of the red levels is tried, but with the opposite sign, essentially doubling the visual
error instead of removing it or mixing up the two screens. But this is only guesswork.

I've got two logs (darktable -d all with XAtom mode and with Colord mode) that are attached to this ticket.

If there is any further information that I should provide, I'd happily do that as well.

If you want a bit of context what I tried before (all essential informations should be included above):

http://photo.stackexchange.com/questions/61721/how-do-i-calibrate-two-displays-to-the-same-color-lcd-led-backlight-and-ccfl/

http://sourceforge.net/p/dispcalgui/mailman/dispcalgui-users/thread/5543A8B9.5040406%40Fingerle.org/


Related issues

Related to darktable - Feature #8762: Dual head supportTriaged06/06/2012

Associated revisions

Revision 0d64677a (diff)
Added by Tobias Ellinghaus over 3 years ago

cmstest: Fix broken logic for some cases

We used to query the wrong profiles for some multi monitor setups.
Thanks to Graeme Gill to help me figure out how to do this properly.
Not all possible cases are tested but it should be much better than
before.

Related to bug #11312 and might potentially be a fix for bug #10453.

History

#1 Updated by Jan Niklas Fingerle about 5 years ago

Colord log

#2 Updated by Jan Niklas Fingerle about 5 years ago

For some reason file upload seems not to work. The logs can be found at https://www.dropbox.com/sh/vzuqsvbm8yonfky/AACfMss3bd4a3mCpqWU6bkEGa?dl=0

#3 Updated by Roman Lebedev about 5 years ago

#4 Updated by Tobias Ellinghaus about 5 years ago

  • % Done changed from 0 to 20
  • Status changed from New to Incomplete

Could you try to set the color profile of the Fuji screen to something obviously broken (like, BRG.icc)? Does that profile get applied on XAtom mode?

#5 Updated by Jan Niklas Fingerle about 5 years ago

You're right, I could have thought of that before. I've got a "swapped red and green" profile and applied this to the Fujitsu screen.

Colord: Everything works as expected, i. e. colors on the Dell screen look ok, the Fujitsu screen has red and green swapped.

XAtom: The Fujitsu Screen looks kind of OK, the Dell screen has red and green swapped.

#6 Updated by Jan Niklas Fingerle about 5 years ago

For another go I applied "swapped red and green" to the Dell screen.

Colord: Weird colors on Dell, OK colors on Fujitsu.

XAtom: OK colors on Dell, kind of OK colors on Fujitsu, none have swapped colors.

Don't ask me, I'm just reporting what I'm seeing.

#7 Updated by Tobias Ellinghaus about 5 years ago

Please try the following:

darktable -d control | grep "color profile" 

and have a look on the output while moving the dt window from one screen to the other. Does it report the correct profile for the screen it gets dragged to?

And please double check that you are using the "system display profile" as display profile in the "output color profile" module.

#8 Updated by Jan Niklas Fingerle about 5 years ago

First things first: Yes, my "Ausgabeprofil" module is set to "System-Bildschirmprofil", so except for the german translation it's like you describe.

Using colord the output for the Dell screen is:

[color profile] colord gave us a new screen profile: '/home/jnf/.local/share/icc/U2412M 2015-05-02 140cdm² D6500 2.2 S 3xCurve+MTX custom97,94,97 br38c75 2015-05-01 Tiefenkomp Korr Dell.icc' (size: 29268)

For the Fujitsu screen it's:

[color profile] colord gave us a new screen profile: '/home/jnf/.local/share/icc/P24W-5 ECO 2015-05-01 140cdm² D6500 2.2 S 3xCurve+MTX custom89,90,100 br44c50b0 2015-05-01 Tiefenkomp Korr Eizo.icc' (size: 28328)

So, all is well, as expected.

For XAtom it's switched. For the Dell I get:

[color profile] we got a new screen profile `P24W-5 ECO 2015-05-01 140cdm^2 D6500 2.2 S 3xCurve+MTX custom89,90,100 br44c50b0 2015-05-01 Tiefenkomp Korr Eizo' from the xatom _ICC_PROFILE (size: 28328)

while for the Fujitsu I get:
[color profile] we got a new screen profile `U2412M 2015-05-02 140cdm^2 D6500 2.2 S 3xCurve+MTX custom97,94,97 br38c75 2015-05-01 Tiefenkomp Korr Dell' from the xatom _ICC_PROFILE_1 (size: 29268)

The current output of darktable-cmstest is

darktable-cmstest version 1.6.6
this executable was built with colord support enabled
darktable itself was built with colord support enabled

HDMI1    the X atom and colord returned the same profile
    X atom:    _ICC_PROFILE (28328 bytes)
        description: P24W-5 ECO 2015-05-01 140cdm^2 D6500 2.2 S 3xCurve+MTX custom89,90,100 br44c50b0 2015-05-01 Tiefenkomp Korr Eizo
    colord:    "/home/jnf/.local/share/icc/P24W-5 ECO 2015-05-01 140cdm² D6500 2.2 S 3xCurve+MTX custom89,90,100 br44c50b0 2015-05-01 Tiefenkomp Korr Eizo.icc" 
        description: P24W-5 ECO 2015-05-01 140cdm^2 D6500 2.2 S 3xCurve+MTX custom89,90,100 br44c50b0 2015-05-01 Tiefenkomp Korr Eizo

HDMI2    the X atom and colord returned the same profile
    X atom:    _ICC_PROFILE_1 (29268 bytes)
        description: U2412M 2015-05-02 140cdm^2 D6500 2.2 S 3xCurve+MTX custom97,94,97 br38c75 2015-05-01 Tiefenkomp Korr Dell
    colord:    "/home/jnf/.local/share/icc/U2412M 2015-05-02 140cdm² D6500 2.2 S 3xCurve+MTX custom97,94,97 br38c75 2015-05-01 Tiefenkomp Korr Dell.icc" 
        description: U2412M 2015-05-02 140cdm^2 D6500 2.2 S 3xCurve+MTX custom97,94,97 br38c75 2015-05-01 Tiefenkomp Korr Dell

Your system seems to be correctly configured

#9 Updated by Jan Niklas Fingerle about 5 years ago

Oh, and for another round with yesterday's weird behaviour with swapped red&green:

(1) Swapped red and green on the Fujitsu and the correct one on the Dell gives me:

darktable-cmstest version 1.6.6
this executable was built with colord support enabled
darktable itself was built with colord support enabled

HDMI1    the X atom and colord returned the same profile
    X atom:    _ICC_PROFILE (1632 bytes)
        description: Swapped Red and Green
    colord:    "/usr/share/color/icc/colord/SwappedRedAndGreen.icc" 
        description: Swapped Red and Green

HDMI2    the X atom and colord returned the same profile
    X atom:    _ICC_PROFILE_1 (29268 bytes)
        description: U2412M 2015-05-02 140cdm^2 D6500 2.2 S 3xCurve+MTX custom97,94,97 br38c75 2015-05-01 Tiefenkomp Korr Dell
    colord:    "/home/jnf/.local/share/icc/U2412M 2015-05-02 140cdm² D6500 2.2 S 3xCurve+MTX custom97,94,97 br38c75 2015-05-01 Tiefenkomp Korr Dell.icc" 
        description: U2412M 2015-05-02 140cdm^2 D6500 2.2 S 3xCurve+MTX custom97,94,97 br38c75 2015-05-01 Tiefenkomp Korr Dell

Your system seems to be correctly configured

(2) Swapped red and green on the Dell and the correct one on the Fujitsu gives me:

darktable-cmstest version 1.6.6
this executable was built with colord support enabled
darktable itself was built with colord support enabled

HDMI1    the X atom and colord returned the same profile
    X atom:    _ICC_PROFILE (28328 bytes)
        description: P24W-5 ECO 2015-05-01 140cdm^2 D6500 2.2 S 3xCurve+MTX custom89,90,100 br44c50b0 2015-05-01 Tiefenkomp Korr Eizo
    colord:    "/home/jnf/.local/share/icc/P24W-5 ECO 2015-05-01 140cdm² D6500 2.2 S 3xCurve+MTX custom89,90,100 br44c50b0 2015-05-01 Tiefenkomp Korr Eizo.icc" 
        description: P24W-5 ECO 2015-05-01 140cdm^2 D6500 2.2 S 3xCurve+MTX custom89,90,100 br44c50b0 2015-05-01 Tiefenkomp Korr Eizo

HDMI2    the X atom and colord returned different profiles
    X atom:    _ICC_PROFILE_1 (29268 bytes)
        description: U2412M 2015-05-02 140cdm^2 D6500 2.2 S 3xCurve+MTX custom97,94,97 br38c75 2015-05-01 Tiefenkomp Korr Dell
    colord:    "/usr/share/color/icc/colord/SwappedRedAndGreen.icc" 
        description: Swapped Red and Green

Better check your system setup
 - some monitors reported different profiles
You may experience inconsistent color rendition between color managed applications

WTF.

Then, again, this is some weirdness of my CMS (support application) and explains what I saw yesterday, but: As long as darktable-cmstest reports "Your system seems to be correctly configured" (which it does when I'm using the correct profiles) I'd expect this to hold while using darktable.

#10 Updated by Tobias Ellinghaus about 5 years ago

To be honest I have no idea what is happening there. It seems that for some reason the enumeration of the screens differs between darktable and darktable-cmstest. I guess until someone has a good idea you have to use colord in darktable. That's the more robust way anyway, the XAtom is basically a hack and nowadays used in a way that is not 100% as what the specs say.

Oh, btw, what program do you use to set the XAtom?

#11 Updated by Jan Niklas Fingerle about 5 years ago

I've selected Colord, so everything works for me. This is only me trying to help to eliminiate bugs.

If Colord is more robust, shouldn't the "all" option default on Colord if available? In my cases it seems to default on XAtom. At least, the weird behaviour is present with the all option as well.

I'm using the cinnamon color settings application ("/usr/bin/python /usr/lib/cinnamon-settings/cinnamon-settings.py color"), which is the default way on LinuxMint. It sets (or: should set) both Colord and XAtom configurations.

#12 Updated by Tobias Ellinghaus about 5 years ago

It should default to "all", but that is not the real problem here. I will try to come up with some way to find out what is happening.

Do you happen to use Xinerama with your two screens?

#13 Updated by Jan Niklas Fingerle about 5 years ago

I actually don't know. I use the LinuxMint display configuration and it "just works", so far (not counting the CMS foobar for now). I don't know what it does under the hood. Greping for "inera" on all files under /etc/X11 and subdirectories didn't find anything. I'm able to move windows between screens, but I don't know if there's an alternative to Xinerama that would provide this feature, too. Is there any way to inspect the running X system to find out for sure?

#14 Updated by Andreas Pinhammer about 4 years ago

Just want to let you know that I observed the same behaviour on my setup (Ubuntu 14.04, darktable 2.0.4, colord 1.0.6): colord gets the correct icc profile, but XAtom just mixes them up between both displays.
Selecting "colord" instead of "all" fixes the problem for me.

#15 Updated by Pascal de Bruijn about 4 years ago

While I'm not sure whether this is the case right here, please do be aware that merely having dispcalgui/displaycal installed on most distro's, there's a signficant chance it will affect how color management works on your system, since dispcalgui installs it's own session agent to apply profiles which seems to be enabled by default in all xdg compliant desktops.

http://packages.ubuntu.com/xenial/amd64/dispcalgui/filelist
/etc/xdg/autostart/z-displaycal-apply-profiles.desktop

Since most desktops these days already have their own session agent (unity/gnome-settings-daemon's color applets, kde whatever, xiccd, etc etc), this additional session agent may in some cases create race conditions in x-atom setup.

So please try completely deinstalling dispcalgui/displaycal and reboot and see if your problems magically disappear.

#16 Updated by Tobias Ellinghaus about 4 years ago

Even then, the discrepancy between dt proper and dt-cmstest shouldn't happen. :-/

#17 Updated by Tobias Ellinghaus over 3 years ago

  • % Done changed from 20 to 100
  • Status changed from Incomplete to Fixed

#18 Updated by Roman Lebedev over 3 years ago

  • Target version set to 2.2.0

Also available in: Atom PDF

Go to top