[argyllcms] Re: dispwin sets the wrong X.org _ICC_PROFILE atom

  • From: Niccolò Belli <darkbasic@xxxxxxxxxxxxxxx>
  • To: Graeme Gill <graeme@xxxxxxxxxxxxx>
  • Date: Fri, 18 Nov 2016 17:16:29 +0100

On venerdì 18 novembre 2016 04:15:14 CET, Graeme Gill wrote:

right, but I'm a bit confused as to why you are listing eDP1 along
with the Screen 0 _ICC_PROFILE root window atom, since eDP1
looks like an XRANDR output name. Is that output on Screen 0 ?
(i.e. what does the eDP1 XRANDR _ICC_PROFILE property hold ?)

eDP1 probably *was* Screen 0, because it's the laptop's main monitor and I always disable it when I attach my external dual monitor setup.

$ dispwin -?
[...]
-d n[,m] Choose the display n from the following list (default 1)
Optionally choose different display m for Video LUT access
   1 = 'Monitor 1, Output DP1-8 at 0, 0, width 2560, height 1440'
   2 = 'Monitor 2, Output DP1-1 at 2560, 0, width 2560, height 1440'

Unfortunately I don't know how to get the eDP1 XRANDR _ICC_PROFILE property you asked for.

Could you compile and test
<http://www.argyllcms.com/Argyll_dev_src.zip>,
to see if this behaves any differently ?
(Although I suspect this won't solve your problem.)

With that version though, could you set the
ARGYLL_IGNORE_COLORD environment variable to "true",
and then then re-install the profile (dispwin -I etc.)
and see if that looks any different.

Before:
$ darktable-cmstest
darktable-cmstest version 2.2.0rc0+90~g7a24993
this executable was built with colord support enabled
darktable itself was built with colord support enabled

eDP1    the X atom and colord returned different profiles
       X atom: _ICC_PROFILE (0 bytes)
               description: (none)
colord: "/home/niko/.local/share/icc/edid-a56d2a66752fe81bf2d6d7b2d7b2651d.icc"
               description: XPS 13 9343

DP1-1   the X atom and colord returned different profiles
       X atom: _ICC_PROFILE_1 (728468 bytes)
description: U2515H #1 2016-09-25 18-25 D6500 2.2 M-S XYZLUT+MTX
colord: "/home/niko/.local/share/icc/U2515H #1 2016-09-25 18-25 D6500 2.2 M-S XYZLUT+MTX.icc"
description: U2515H #1 2016-09-25 18-25 D6500 2.2 M-S XYZLUT+MTX

DP1-8   the X atom and colord returned different profiles
       X atom: _ICC_PROFILE_2 (728468 bytes)
description: U2515H #2 2016-09-25 15-41 D6500 2.2 M-S XYZLUT+MTX
colord: "/home/niko/.local/share/icc/U2515H #2 2016-09-25 15-41 D6500 2.2 M-S XYZLUT+MTX.icc"
description: U2515H #2 2016-09-25 15-41 D6500 2.2 M-S XYZLUT+MTX

Then I run:

$ ARGYLL_IGNORE_COLORD=true dispwin -I ".local/share/icc/U2515H #1 2016-09-25 18-25 D6500 2.2 M-S XYZLUT+MTX.icc" Checking XRandR 1.2 VideoLUT access
Adding Screen 0 CRTC 0 Output 0
Display 0 name = ':0.0'
Unable to intern atom 'EDID_DATA'
Got EDID for display
Checking XRandR 1.2 VideoLUT access
Adding Screen 0 CRTC 1 Output 0
Display 1 name = ':0.0'
Unable to intern atom 'EDID_DATA'
Got EDID for display
CRTC of Screen 0 CRTC 2 has no mode or no output
CRTC of Screen 0 CRTC 3 has no mode or no output
new_dispwin called
new_dispwin: Opened display OK
new_dispwin: DirectColor fdepth 8, rdepth 8, ndepth 8, edepth 16, r/g/b shifts 16 8 0
dispwin_get_ramdac called
Getting gamma using Randr 1.2
dispwin_get_ramdac returning OK
Saved original VideoLUT
dispwin_clone_ramdac called
clone is done
dispwin_clone_ramdac called
clone is done
new_dispwin: return sucessfully
Loading calibration from file '.local/share/icc/U2515H #1 2016-09-25 18-25 D6500 2.2 M-S XYZLUT+MTX.icc'
Got color vcgt calibration
dispwin_del_ramdac called
dispwin_clone_ramdac called
clone is done
dispwin_install_profile '.local/share/icc/U2515H #1 2016-09-25 18-25 D6500 2.2 M-S XYZLUT+MTX.icc'
Setting _ICC_PROFILE property
dispwin_set_ramdac called
Setting gamma using Randr 1.2
dispwin_set_ramdac returning OK
dispwin_del called
dispwin_del_ramdac called
dispwin_set_ramdac called
Setting gamma using Randr 1.2
dispwin_set_ramdac returning OK
dispwin_set_ramdac called
Setting gamma using Randr 1.2
dispwin_set_ramdac returning OK
dispwin_del_ramdac called
Restored original ramdac
dispwin_del_ramdac called
About to close display
finished

And I get:

$ darktable-cmstest
darktable-cmstest version 2.2.0rc0+90~g7a24993
this executable was built with colord support enabled
darktable itself was built with colord support enabled

eDP1    the X atom and colord returned different profiles
       X atom: _ICC_PROFILE (2815280 bytes)
description: U2515H #1 2016-09-25 18-25 D6500 2.2 M-S XYZLUT+MTX
colord: "/home/niko/.local/share/icc/edid-a56d2a66752fe81bf2d6d7b2d7b2651d.icc"
               description: XPS 13 9343

DP1-1   the X atom and colord returned different profiles
       X atom: _ICC_PROFILE_1 (728468 bytes)
description: U2515H #1 2016-09-25 18-25 D6500 2.2 M-S XYZLUT+MTX
colord: "/home/niko/.local/share/icc/U2515H #1 2016-09-25 18-25 D6500 2.2 M-S XYZLUT+MTX.icc" description: U2515H #1 2016-09-25 18-25 D6500 2.2 M-S XYZLUT+MTX DP1-8 the X atom and colord returned different profiles X atom: _ICC_PROFILE_2 (728468 bytes) description: U2515H #2 2016-09-25 15-41 D6500 2.2 M-S XYZLUT+MTX colord: "/home/niko/.local/share/icc/U2515H #2 2016-09-25 15-41 D6500 2.2 M-S XYZLUT+MTX.icc" description: U2515H #2 2016-09-25 15-41 D6500 2.2 M-S XYZLUT+MTX

I run dispwin again for the second profile:

$ ARGYLL_IGNORE_COLORD=true dispwin -I ".local/share/icc/U2515H #2 2016-09-25 15-41 D6500 2.2 M-S XYZLUT+MTX.icc" Checking XRandR 1.2 VideoLUT access
Adding Screen 0 CRTC 0 Output 0
Display 0 name = ':0.0'
Unable to intern atom 'EDID_DATA'
Got EDID for display
Checking XRandR 1.2 VideoLUT access
Adding Screen 0 CRTC 1 Output 0
Display 1 name = ':0.0'
Unable to intern atom 'EDID_DATA'
Got EDID for display
CRTC of Screen 0 CRTC 2 has no mode or no output
CRTC of Screen 0 CRTC 3 has no mode or no output
new_dispwin called
new_dispwin: Opened display OK
new_dispwin: DirectColor fdepth 8, rdepth 8, ndepth 8, edepth 16, r/g/b shifts 16 8 0
dispwin_get_ramdac called
Getting gamma using Randr 1.2
dispwin_get_ramdac returning OK
Saved original VideoLUT
dispwin_clone_ramdac called
clone is done
dispwin_clone_ramdac called
clone is done
new_dispwin: return sucessfully
Loading calibration from file '.local/share/icc/U2515H #2 2016-09-25 15-41 D6500 2.2 M-S XYZLUT+MTX.icc'
Got color vcgt calibration
dispwin_del_ramdac called
dispwin_clone_ramdac called
clone is done
dispwin_install_profile '.local/share/icc/U2515H #2 2016-09-25 15-41 D6500 2.2 M-S XYZLUT+MTX.icc'
Setting _ICC_PROFILE property
dispwin_set_ramdac called
Setting gamma using Randr 1.2
dispwin_set_ramdac returning OK
dispwin_del called
dispwin_del_ramdac called
dispwin_set_ramdac called
Setting gamma using Randr 1.2
dispwin_set_ramdac returning OK
dispwin_set_ramdac called
Setting gamma using Randr 1.2
dispwin_set_ramdac returning OK
dispwin_del_ramdac called
Restored original ramdac
dispwin_del_ramdac called
About to close display
finished

And I get:

$ darktable-cmstest darktable-cmstest version 2.2.0rc0+90~g7a24993 this executable was built with colord support enabled darktable itself was built with colord support enabled eDP1 the X atom and colord returned different profiles X atom: _ICC_PROFILE (2815916 bytes) description: U2515H #2 2016-09-25 15-41 D6500 2.2 M-S XYZLUT+MTX colord: "/home/niko/.local/share/icc/edid-a56d2a66752fe81bf2d6d7b2d7b2651d.icc" description: XPS 13 9343 DP1-1 the X atom and colord returned different profiles X atom: _ICC_PROFILE_1 (728468 bytes) description: U2515H #1 2016-09-25 18-25 D6500 2.2 M-S XYZLUT+MTX colord: "/home/niko/.local/share/icc/U2515H #1 2016-09-25 18-25 D6500 2.2 M-S XYZLUT+MTX.icc" description: U2515H #1 2016-09-25 18-25 D6500 2.2 M-S XYZLUT+MTX DP1-8 the X atom and colord returned different profiles X atom: _ICC_PROFILE_2 (728468 bytes) description: U2515H #2 2016-09-25 15-41 D6500 2.2 M-S XYZLUT+MTX
colord: "/home/niko/.local/share/icc/U2515H #2 2016-09-25 15-41 D6500 2.2 M-S XYZLUT+MTX.icc"
description: U2515H #2 2016-09-25 15-41 D6500 2.2 M-S XYZLUT+MTX


The contents of the
ucmm color.jcnf file could also then be revealing.
(See <http://www.argyllcms.com/doc/ucmm.html> for where to
find that file.)

It would be good to compare that to what's in colord's database
(I'm not sure how you do that though - perhaps you can ask Richard.)

$ cat /home/niko/.config/color.jcnf
{
       "devices": {
               "display": {
                       "1": {
"EDID": "0x00FFFFFFFFFFFF0010AC6ED04C4B343007190104A5371F783E4455A9554D9D260F5054A54B00B300D100714FA9408180778001010101565E00A0A0A029503020350029372100001A000000FF00395832565935324430344B4C0A000000FC0044454C4C205532353135480A20000000FD0038561E711E010A20202020202001A502031CF14F1005040302071601141F12132021222309070783010000023A801871382D40582C450029372100001E011D8018711C1620582C250029372100009E011D007251D01E206E28550029372100001E8C0AD08A20E02D10103E9600293721000018483F00CA808030401A50130029372100001E00000000000000000057",
"ICC_PROFILE": "/home/niko/.config/color/icc/devices/display/U2515H #2 2016-09-25 15-41 D6500 2.2 M-S XYZLUT+MTX.icc"
                       },
                       "2": {
"EDID": "0x00FFFFFFFFFFFF0010AC6ED04C5A323007190104A5371F783E4455A9554D9D260F5054A54B00B300D100714FA9408180778001010101565E00A0A0A029503020350029372100001A000000FF00395832565935324430325A4C0A000000FC0044454C4C205532353135480A20000000FD0038561E711E010A202020202020018B02031CF14F1005040302071601141F12132021222309070783010000023A801871382D40582C450029372100001E011D8018711C1620582C250029372100009E011D007251D01E206E28550029372100001E8C0AD08A20E02D10103E9600293721000018483F00CA808030401A50130029372100001E00000000000000000057",
"ICC_PROFILE": "/home/niko/.config/color/icc/devices/display/U2515H #1 2016-09-25 18-25 D6500 2.2 M-S XYZLUT+MTX.icc"
                       }
               }
       }
}

And thanks to Richard this is colord's database dump: https://paste.pound-python.org/show/AjfH6BdbAnSnQ4TuMEJm/

On venerdì 18 novembre 2016 14:22:08 CET, Richard Hughes wrote:
Sure thing. The easiest thing to do is "colormgr dump" or doing
sqlite3 /var/lib/colord/mapping.db and then dumping everything there.

Niccolò Belli

Other related posts: