Tinted display after running dispwin while display is off

Home Forums Help and Support Tinted display after running dispwin while display is off

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #14148

    gaine
    Participant
    • Offline

    I have calibrated the internal display of my laptop. The following command loads the profile:

    dispwin -d 1 ".local/share/DisplayCAL/storage/.../....icc

    When I (accidentally) load the profile while the internal display is off, it gets tinted for the duration of the X session:

    xrandr --output VGA-1 --auto --output LVDS-1 --off
    dispwin -d 1 ".local/share/DisplayCAL/storage/.../....icc"
    xrandr --output VGA-1 --off --output LVDS-1 --auto

    Reloading the profile for the internal display doesn’t remove the tint. Only restarting Xorg gets rid of it.

    Can anyone explain what is happening here and how I can possibly remove the tint without restarting Xorg?

    dispwin: 2.0.1; xrandr: 1.5.0; xorg: 1.20.2

    • This topic was modified 5 years, 6 months ago by gaine.
    #14159

    Florian Höch
    Administrator
    • Offline

    dispwin -c can be used to clear (reset) the video card gamma tables.

    #14160

    gaine
    Participant
    • Offline

    Thanks for your reply!

    I totally forgot to mention this. When the display is tinted and I run dispwin -c, the tint disappears. If I then load the profile again, the tint returns.

    To be clear, the tint is not part of the profile. When I don’t cause the tint as described above, I can load the profile and the display doesn’t become tinted.

    #14165

    Florian Höch
    Administrator
    • Offline

    If I then load the profile again, the tint returns.

    To be clear, the tint is not part of the profile

    Well, all that dispwin <profile.icm> does is load the embedded calibration (if any) from the profile into the video card (and put the profile itself into the respective _ICC_PROFILE atom, so that color managed applications can use it). So if you see a ‘tint’ after loading the calibration, that is the calibration. Note that the calibration and profile are only valid for the display it was created for.

    When I don’t cause the tint as described above, I can load the profile and the display doesn’t become tinted

    Are you sure you’re loading the profile on the correct display (-d parameter, note that this is just an enumeration, not a unique or permanent display ID)?

    #14168

    gaine
    Participant
    • Offline

    The effect of loading the calibration from the profile changes. Let me try to walk you through this with more data.

    The only display connected is the internal laptop display (LVDS). Loading its calibration (6500K) gets rid of the display’s native blue tint.

    10:36:14,833 --------------------------------------------------------------------------------
    10:36:14,834 Report on uncalibrated display device
    10:36:15,635 --------------------------------------------------------------------------------
    10:36:48,918 White    Correlated Color Temperature = 6829K, DE 2K to locus =  9.2
    10:36:48,918 White Correlated Daylight Temperature = 6846K, DE 2K to locus = 12.2
    10:36:48,918 White        Visual Color Temperature = 7425K, DE 2K to locus =  8.8
    10:36:48,919 White     Visual Daylight Temperature = 7771K, DE 2K to locus = 11.6
    10:37:08,753 --------------------------------------------------------------------------------
    10:37:08,753 Report on calibrated display device
    10:37:08,763 --------------------------------------------------------------------------------
    10:37:19,757 White    Correlated Color Temperature = 6458K, DE 2K to locus =  2.2
    10:37:19,757 White Correlated Daylight Temperature = 6462K, DE 2K to locus =  2.7
    10:37:19,757 White        Visual Color Temperature = 6381K, DE 2K to locus =  2.1
    10:37:19,757 White     Visual Daylight Temperature = 6561K, DE 2K to locus =  2.6
    

    – uncalibrated -> native blue tint
    – calibrated -> about 6500K

    Switching to a linear calibration works as expected.

    10:38:13,175 --------------------------------------------------------------------------------
    10:38:13,176 Report on uncalibrated display device
    10:38:13,187 --------------------------------------------------------------------------------
    10:38:46,409 White    Correlated Color Temperature = 6843K, DE 2K to locus =  9.3
    10:38:46,409 White Correlated Daylight Temperature = 6861K, DE 2K to locus = 12.3
    10:38:46,409 White        Visual Color Temperature = 7448K, DE 2K to locus =  8.8
    10:38:46,410 White     Visual Daylight Temperature = 7797K, DE 2K to locus = 11.7
    10:38:54,663 --------------------------------------------------------------------------------
    10:38:54,663 Report on calibrated display device
    10:38:54,672 --------------------------------------------------------------------------------
    10:39:05,631 White    Correlated Color Temperature = 6851K, DE 2K to locus =  9.3
    10:39:05,631 White Correlated Daylight Temperature = 6869K, DE 2K to locus = 12.3
    10:39:05,632 White        Visual Color Temperature = 7460K, DE 2K to locus =  8.8
    10:39:05,632 White     Visual Daylight Temperature = 7811K, DE 2K to locus = 11.7
    

    – uncalibrated -> native blue tint
    – calibrated -> native blue tint

    So far, so good.

    When I execute these commands, the calibration no longer results in 6500K. Instead, the result is a green tint.

    xrandr --output VGA-1 --auto --output LVDS-1 --off
    dispwin -d 1 "profile.icc"  # accidentally loading the wrong profile
    xrandr --output VGA-1 --off --output LVDS-1 --auto
    dispwin -d 1 "profile.icc"  # internal display is tinted green
    

    (These commands come from scripts to switch between outputs. I didn’t intent to switch to a disconnected display and load the wrong profile… It was just the way I noticed this issue.)

    As you can see, I’m accidentally loading the profile of the internal display while only VGA is on (although disconnected). Display 1 corresponds to VGA in line 2 and to LVDS in line 4.

    At this point, I repeat the measurements. First with the calibration loaded.

    10:40:00,148 --------------------------------------------------------------------------------
    10:40:00,148 Report on uncalibrated display device
    10:40:00,160 --------------------------------------------------------------------------------
    10:40:33,363 White    Correlated Color Temperature = 6470K, DE 2K to locus =  2.4
    10:40:33,363 White Correlated Daylight Temperature = 6474K, DE 2K to locus =  2.6
    10:40:33,364 White        Visual Color Temperature = 6386K, DE 2K to locus =  2.3
    10:40:33,364 White     Visual Daylight Temperature = 6566K, DE 2K to locus =  2.4
    10:40:46,392 --------------------------------------------------------------------------------
    10:40:46,392 Report on calibrated display device
    10:40:46,402 --------------------------------------------------------------------------------
    10:40:57,407 White    Correlated Color Temperature = 5233K, DE 2K to locus = 18.5
    10:40:57,407 White Correlated Daylight Temperature = 5242K, DE 2K to locus = 16.8
    10:40:57,407 White        Visual Color Temperature = 4707K, DE 2K to locus = 18.2
    10:40:57,408 White     Visual Daylight Temperature = 4810K, DE 2K to locus = 16.4
    

    – uncalibrated -> about 6500K (expected: native blue tint)
    – calibrated -> green tint (expected: about 6500K)

    Now with a linear calibration loaded.

    10:41:32,315 --------------------------------------------------------------------------------
    10:41:32,315 Report on uncalibrated display device
    10:41:32,326 --------------------------------------------------------------------------------
    10:42:05,577 White    Correlated Color Temperature = 6461K, DE 2K to locus =  2.7
    10:42:05,578 White Correlated Daylight Temperature = 6464K, DE 2K to locus =  2.3
    10:42:05,578 White        Visual Color Temperature = 6368K, DE 2K to locus =  2.6
    10:42:05,578 White     Visual Daylight Temperature = 6546K, DE 2K to locus =  2.2
    10:42:11,845 --------------------------------------------------------------------------------
    10:42:11,846 Report on calibrated display device
    10:42:11,855 --------------------------------------------------------------------------------
    10:42:22,788 White    Correlated Color Temperature = 6421K, DE 2K to locus =  3.1
    10:42:22,788 White Correlated Daylight Temperature = 6424K, DE 2K to locus =  1.8
    10:42:22,788 White        Visual Color Temperature = 6315K, DE 2K to locus =  3.0
    10:42:22,788 White     Visual Daylight Temperature = 6488K, DE 2K to locus =  1.8
    

    – uncalibrated -> about 6500K (expected: native blue tint)
    – calibrated -> about 6500K (expected: native blue tint)

    It looks as if a shift is happening. With the calibration loaded, the results are:

    native blue         | about 6500K        | green
    --------------------|--------------------|-----------------
    uncalibrated before | calibrated before  |
                        | uncalibrated after | calibrated after
    

    With a linear calibration loaded, the results are:

    native blue         | about 6500K        | green
    --------------------|--------------------|-----------------
    uncalibrated before | uncalibrated after |
    calibrated before   | calibrated after   |
    

    At this point, the only way I know to get rid of the green tint is to restart Xorg.

    • This reply was modified 5 years, 6 months ago by gaine.
    #14179

    Florian Höch
    Administrator
    • Offline

    It looks like the videoLUT is shared across one of the displays. What graphics driver are you using? You probably need to make sure to reset the gamma ramps before switching off the display.

    #14180

    gaine
    Participant
    • Offline

    I’m using the Intel open source drivers that come with the Linux kernel.

    Kernel driver in use: i915

Viewing 7 posts - 1 through 7 (of 7 total)

You must be logged in to reply to this topic.

Log in or Register

Display Calibration and Characterization powered by ArgyllCMS