[colord] dispwin sets the wrong X.org _ICC_PROFILE atom

Niccolò Belli darkbasic at linuxsystems.it
Fri Nov 25 14:55:39 UTC 2016


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


More information about the colord mailing list