Force Windows to reload color calibrations


AndreyT

Active member
Member
Local time
4:28 PM
Posts
94
Location
Santa Clara, California
OS
Windows 11 Pro
Control Panel -> Color Management -> Advanced Tab has a button "Reload current calibrations", which apparently makes Windows to re-upload the video card's/driver's LUT table with the data from the currently specified monitor profile.

I would like to have a direct shortcut (say, literally: a desktop shortcut) that performs the same action. Is there a way to do that?

I see that Windows loads/reloads color calibrations based on a task stored in Task Scheduler under Microsoft -> Windows -> Windows Color System as "Calibration Loader". So, alternatively the above question can be rephrased as: how can I create a shortcut that would forcefully run a specific task from Task Scheduler? A naive attempt to drag-and-drop a task from Task Scheduler to the desktop does not work.

Inspection of the aforementioned task details reveals that internally it invokes C:\Windows\System32\mscms.dll in some way. So, perhaps someone knows which entry point from that DLL I can "rundll32" to make Windows reload the calibrations?

P.S. Yes, there are third-party utilities that do exactly that, but since this functionality is already part of Windows itself, I'd prefer to use what's already there.
 

My Computer My Computer

At a glance

Windows 11 ProIntel(R) Core(TM) i7-5930K CPU @ 3.50GHzNVIDIA GeForce GTX 970
OS
Windows 11 Pro
Computer type
PC/Desktop
CPU
Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz
Motherboard
EVGA X99 Micro
Graphics Card(s)
NVIDIA GeForce GTX 970
You could write a script but using a 3rd party might in this case be a lot easier. hth.
 

My Computers My Computers

  • At a glance

    win 11Pro 25H2 26200.8246I9-13900kG.Skill Ripjaws S5 32GB Kit DDR5 6000.GeForce RTX™ 3060 Ti VISION OC 8G (rev. 2.0)
    OS
    win 11Pro 25H2 26200.8246
    Computer type
    PC/Desktop
    Manufacturer/Model
    DIY: LianLi 207 case, ASUS mobo, Arctic aio cooling
    CPU
    I9-13900k
    Motherboard
    ASUS ROG STRIX Z790-E Gaming wifi-6E, latest AMI BIOS 3107
    Memory
    G.Skill Ripjaws S5 32GB Kit DDR5 6000.
    Graphics Card(s)
    GeForce RTX™ 3060 Ti VISION OC 8G (rev. 2.0)
    Sound Card
    on mobo
    Monitor(s) Displays
    Dell S3221QS (curved 32")
    Screen Resolution
    4K but I usually display at 1K
    Hard Drives
    Sam 980 Pro 1T M.2, 990Pro, WD 570, others(all NVMe)
    PSU
    Corsair RM750e fully modular
    Case
    Lian Li 207
    Cooling
    CPU:Arctic liq frz iii Pro 360 on top, CASE: 2 front fans IN, 2 bottom fans in.
    Keyboard
    Corsair K70 RGB Core
    Mouse
    Logitech M510
    Internet Speed
    100Mbps Comcast; I226-V NIC
    Browser
    Firefox(current)
    Antivirus
    on win BitDefender AV Free
    Other Info
    Terabyte Unlimited Image
    WuMgr, StartAllBack, , Revo Uninstaller Pro Portable.

    Davinci Resolve or Wondershare Filmora Basic to process my vlogs. DJI Pocket 2
  • At a glance

    win 10, Minti7-10510U 1.8-4.9GHz16GB DDR4Nvidia Quadro P520 2GB DDR5 supports 4K exter...
    Operating System
    win 10, Mint
    Computer type
    Laptop
    Manufacturer/Model
    Lenovo P15s
    CPU
    i7-10510U 1.8-4.9GHz
    Motherboard
    Intel SoC
    Memory
    16GB DDR4
    Graphics card(s)
    Nvidia Quadro P520 2GB DDR5 supports 4K external via HDMI or USB-C
    Sound Card
    Realtek ALC3287 HD
    Monitor(s) Displays
    15.6"
    Screen Resolution
    1K
    Hard Drives
    NVMe various
You could write a script but using a 3rd party might in this case be a lot easier. hth.
Well, turns out one solution is indeed to manually trigger the Task Scheduler task, which can be done as

schtasks.exe /run /tn "\Microsoft\Windows\WindowsColorSystem\Calibration Loader"

(Appears to require Administrator privileges). This can be wrapped into a desktop shortcut.
 

My Computer My Computer

At a glance

Windows 11 ProIntel(R) Core(TM) i7-5930K CPU @ 3.50GHzNVIDIA GeForce GTX 970
OS
Windows 11 Pro
Computer type
PC/Desktop
CPU
Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz
Motherboard
EVGA X99 Micro
Graphics Card(s)
NVIDIA GeForce GTX 970
Control Panel -> Color Management -> Advanced Tab has a button "Reload current calibrations", which apparently makes Windows to re-upload the video card's/driver's LUT table with the data from the currently specified monitor profile.
Is there documentation of what exactly this stuff does and how it works?

I've used Calman and an i1D3 meter for over 10 years, and I rely on their Client 3 software to manage monitor profiles. Spectracal (now Portrait Displays) told me that Calman adds a 1D LUT to the ICM profile it creates for Windows, but Windows color management ignores it. In fact, going to Display Settings causes Windows to load the profile and undoes the LUT, which is instantly and visibly noticeable. I have to go to Client 3 and reselect it, which loads the LUT back into the video card. They said there was no way to detect when Windows zeroed out the LUT.

This 1D LUT is important, because it provides all the benefit for applications that aren't color managed. I've always thought Windows color management was only for color-managed apps.
 

My Computer My Computer

At a glance

Windows 11
OS
Windows 11
This 1D LUT is important, because it provides all the benefit for applications that aren't color managed. I've always thought Windows color management was only for color-managed apps.
Yes, loading the LUT makes color rendition much better for all applications (not as good as it can be, since the rest of the profiling info is stored in non-LUT-able part of ICM profile and used only by color-managed apps), but still better.

Back in XP/7 era Windows could only associate the ICM profile with the monitor. Windows did not go further than that. The intent was that ICM-aware apps could retrieve that profile and use it in any way they see fit. However, even in that era it was possible (or even necessary) to pre-load LUT info from the ICM profile into the video card's LUT table using third-party startup utilities, like Adobe Gamma Loader, X-Rite Loader and such. Apparently, most color-managed applications assume that LUT has been properly pre-loaded. So, they just use the rest of the ICM profile accordingly.

Starting from Windows 10 the ability to pre-load the LUT became part of Windows, i.e. the "Adobe Gamma Loader"-like functionality is now integrated into Windows itself, so there's no need for a separate utility. To activate LUT pre-loading in Windows one just needs to select "Use Windows display calibration" in "Color Management". Other than that, nothing has changed.

I've used Calman and an i1D3 meter for over 10 years, and I rely on their Client 3 software to manage monitor profiles. Spectracal (now Portrait Displays) told me that Calman adds a 1D LUT to the ICM profile it creates for Windows, but Windows color management ignores it. In fact, going to Display Settings causes Windows to load the profile and undoes the LUT, which is instantly and visibly noticeable.
"Windows color management ignores it" is apparently something that applies to Windows XP/7. Starting from Windows 10 it no longer ignores it, if you ask it not to (see above).

Yes, loading the LUT is instantly and visibly noticeable. However, I see exactly the same changes in screen color rendition when I load the LUT using X-Rite LUT loader and using built-in Windows functionality ("Reload current calibrations"), which is what made me believe they are doing the same thing.
 

My Computer My Computer

At a glance

Windows 11 ProIntel(R) Core(TM) i7-5930K CPU @ 3.50GHzNVIDIA GeForce GTX 970
OS
Windows 11 Pro
Computer type
PC/Desktop
CPU
Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz
Motherboard
EVGA X99 Micro
Graphics Card(s)
NVIDIA GeForce GTX 970
Starting from Windows 10 the ability to pre-load the LUT became part of Windows, i.e. the "Adobe Gamma Loader"-like functionality is now integrated into Windows itself, so there's no need for a separate utility. To activate LUT pre-loading in Windows one just needs to select "Use Windows display calibration" in "Color Management". Other than that, nothing has changed.

"Windows color management ignores it" is apparently something that applies to Windows XP/7. Starting from Windows 10 it no longer ignores it, if you ask it not to (see above).

Yes, loading the LUT is instantly and visibly noticeable. However, I see exactly the same changes in screen color rendition when I load the LUT using X-Rite LUT loader and using built-in Windows functionality ("Reload current calibrations"), which is what made me believe they are doing the same thing.

I don't understand how to reconcile the "Use Windows display calibration" option with the profiles that I made in Calman. When I enable the former, it throws out the Calman LUT. The only way to get the Calman LUT back is to use Client 3; selecting the profiles in Windows Color Management doesn't load it.
 

My Computer My Computer

At a glance

Windows 11
OS
Windows 11
Back
Top Bottom