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

  • From: Niccolò Belli <darkbasic@xxxxxxxxxxxxxxx>
  • To: Graeme Gill <graeme@xxxxxxxxxxxxx>
  • Date: Fri, 25 Nov 2016 15:55:39 +0100

On venerdì 25 novembre 2016 06:26:11 CET, Graeme Gill wrote:

I've been checking my latest code as well as the ArgyllCMS V1.8.3
delivered with Fedora 24, and with colord-devel installed
(i.e. dispwin using colord to handle storing & retrieving profiles),
it seems to work OK installing/loading/uninstalling profiles
if you are logged into the console and running as a user.

It does fail if I'm logged in remotely (with my $DISPLAY set
appropriately), and it also fails if it's run as root (sudo)
- the latter also being a prblem with the current release ArgyllCMS
using it's built in ucmm (something I'll fix).

By the way ucmm is still broken in my system, even after starting from a clean state:


$ ps aux | grep xiccd
niko      1478  0.0  0.0  10780  2268 pts/1    S+   15:48   0:00 grep xiccd


$ ps aux | grep colord
niko 1480 0.0 0.0 10780 2204 pts/1 S+ 15:48 0:00 grep colord


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

eDP1    the X atom and colord returned the same profile
       X atom: _ICC_PROFILE (0 bytes)
               description: (none)
       colord: "(none)"
               description: (file not found)

DP1-1   the X atom and colord returned the same profile
       X atom: _ICC_PROFILE_1 (0 bytes)
               description: (none)
       colord: "(none)"
               description: (file not found)

DP1-8   the X atom and colord returned the same profile
       X atom: _ICC_PROFILE_2 (0 bytes)
               description: (none)
       colord: "(none)"
               description: (file not found)


$ dispwin -?
Test display patch window, Set Video LUTs, Install profiles, Version 2.0.0_beta
Author: Graeme W. Gill, licensed under the AGPL Version 3
Diagnostic: Usage requested
usage: dispwin [options] [calfile] -v Verbose mode
-display displayname Choose X11 display name
-d n[,m] Choose the display n from the following list (default 1)
Optionally choose different display m for Video LUT access
XRRGetOutputPrimary returned 70
Primary is at CRTC 0
XRRGetCrtcInfo of Screen 0 CRTC 0 has 1 Outputs Valid Mode
Checking XRandR 1.2 VideoLUT access
Adding Screen 0 CRTC 0 Output 0
Display 0 name = ':0.0'
Got EDID for display
XRRGetCrtcInfo of Screen 0 CRTC 1 has 1 Outputs Valid Mode
Checking XRandR 1.2 VideoLUT access
Adding Screen 0 CRTC 1 Output 0
Display 1 name = ':0.1'
Got EDID for display
XRRGetCrtcInfo of Screen 0 CRTC 2 has 0 Outputs No Mode
CRTC skipped as it has no mode or no outputs
XRRGetCrtcInfo of Screen 0 CRTC 3 has 0 Outputs No Mode
CRTC skipped as it has no mode or no outputs
   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'


$ ARGYLL_IGNORE_COLORD=true dispwin -d 1 -I "./.local/share/DisplayCAL/storage/U2515H #1 2016-09-25 18-25 D6500 2.2 M-S XYZLUT+MTX/U2515H #1 2016-09-25 18-25 D6500 2.2 M-S XYZLUT+MTX.icc"
XRRGetOutputPrimary returned 70
Primary is at CRTC 0
XRRGetCrtcInfo of Screen 0 CRTC 0 has 1 Outputs Valid Mode
Checking XRandR 1.2 VideoLUT access
Adding Screen 0 CRTC 0 Output 0 Display 0 name = ':0.0' Got EDID for display XRRGetCrtcInfo of Screen 0 CRTC 1 has 1 Outputs Valid Mode Checking XRandR 1.2 VideoLUT access Adding Screen 0 CRTC 1 Output 0 Display 1 name = ':0.1' Got EDID for display XRRGetCrtcInfo of Screen 0 CRTC 2 has 0 Outputs No Mode CRTC skipped as it has no mode or no outputs XRRGetCrtcInfo of Screen 0 CRTC 3 has 0 Outputs No Mode CRTC skipped as it has no mode or no outputs 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/DisplayCAL/storage/U2515H #1 2016-09-25 18-25 D6500 2.2 M-S XYZLUT+MTX/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/DisplayCAL/storage/U2515H #1 2016-09-25 18-25 D6500 2.2 M-S XYZLUT+MTX/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


$ darktable-cmstest darktable-cmstest version 2.2.0rc0+105~g87f2b5f
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: "(none)"
               description: (file not found)

DP1-1   the X atom and colord returned the same profile
       X atom: _ICC_PROFILE_1 (0 bytes)
               description: (none)
       colord: "(none)"
               description: (file not found)

DP1-8   the X atom and colord returned the same profile
       X atom: _ICC_PROFILE_2 (0 bytes)
               description: (none)
       colord: "(none)"
               description: (file not found)


As you can see, unless darktbale-cmstest is bugged, dispwin installed the profile to eDP1 (which is not even listed among the displays, because it's turned off in xrandr) instead of DP1-8 (which is display 1).

Niccolò Belli

Other related posts: