Home › Forums › Help and Support › Is there a way for DisplayCAL to auto-load both SDR and HDR color profiles?
- This topic has 15 replies, 8 voices, and was last updated 1 year, 5 months ago by
VoltDriver.
-
AuthorPosts
-
2024-08-21 at 8:02 #141674
(Apologies, I made a similar post a while ago, but I figured I’d make a new one)
So, I like using DisplayCAL to load my color profiles automatically since it’s more reliable than Windows. However, DisplayCAL seems to auto-load my SDR ICC profile when I’m in HDR mode on Windows 11, when it should be running the ADVANCED ICC Profile that I generated using the Windows HDR Calibration tool.
Both the standard ICC Profile and the Advanced ICC Profiles are set to (Default), but DisplayCAL will only auto-load the standard. Is there a way to make DisplayCAL automatically load different profiles depending on if I have SDR or HDR enabled?
It’s just a pain that whenever I want to switch to HDR for a video game I have to:
- Exit DisplayCAL
- Switch to HDR
- Open Color Management and change the Advanced ICC Profile to Default
- Play Game
- When done, Exit game
- Go back to SDR
- Open Color Management again and set SDR ICC Profile as Default
- Possibly restart PC.
All these steps could be avoided if DisplayCAL would just load the correct profile.
-
This topic was modified 1 year, 11 months ago by
Mr. Rotch.
2025-01-01 at 12:51 #142684Did anyone solve this? I think a couple of years ago the profile switching worked between SDR and HDR, but now on new PC I reinstalled everything and this does not work.
2025-01-01 at 14:41 #142685I figured something out. Windows switches between HDR and SDR profiles correctly as seen form the System -> Color Profile, where it switches to Windows HDR Calibration created profile correctly, however, Displaycal Profile Loader loads the SDR profile on top of HDR profile anyway, that is why colors are messed up. I think easier solution, after enabling HDR is just to right click the Profile Loader in the tray and click Reset video card gamma table, and when going back to SDR click Load calibration from current display device profile(s)?
2025-01-02 at 13:17 #142691HDR mode is not just VCGT + ICC display description. HDR is a pipeline where computer outputs content supposed to be (typical) Rec2020 PQ, monitor accepts that and converts to display native panel behavior.
Hence profiling display is not profiling display behavior but the whole layer inside monitor Rec2020->native + native behavior.
You can add and VCGT to make this whole pipeline behave like PQ, but mapping display response for profiling may not be so easy.2025-01-29 at 15:51 #142936I’d also be interested in that. So what’s the preferred way of realizing automated switching between sdr and hdr with the displaycal profile loader active? Or, if there is no automatic way, what’s the way doing it with the least clicks and the highest reliability?
2025-02-04 at 1:32 #142984Hello! I would also like DisplayCAL’s Profile Loader to have an option to load a different profile when playing in HDR.
2025-02-04 at 19:11 #142985
AnonymousInactive- Offline
This is something I would like to know as well. Having to manually switch sounds like a major annoyance.
2025-02-04 at 20:22 #142989I’m also interested in workflow involving HDR. It gets more and more common feature. The posted process looks really cumbersome though.
2025-02-08 at 2:30 #143005Hello ladies and gentlemen, I have found a solution that seems to work for me. It involves a bit of tech knowledge but fear not, it’s relatively simple. This allows me to load a profile for SDR, and a profile for HDR, and switch between them with the launch of a shortcut (double click an icon essentially). Let’s begin!
First, be sure to have a folder where you keep your color profiles: one file for your HDR profile, and one for your SDR profile. In this tutorial, I will be referring to the path to this folder as “C:\PATH\TO\YOUR\PROFILE\ICC\FILE\”. I will also be referring to your two profiles as “YOU_PROFILE_FOR_SDR.icm” and “YOU_PROFILE_FOR_HDR.icc”. These can be any names, and it does not matter if they are .icm or .icc. Just make sure it is written properly in the scripts we will create.
- Close Display Cal, and exit out of Display Cal Profile loader in the system tray.
- First, you will need to download Argyll CMS 3.3.0. This is an updated version of the tool used by DisplayCal and its Profile Loader. You can find right here, in this link.
- Then, extract it somewhere. It will contain a folder, Argyll_V3.3.0 . Copy that folder.
- Find the location of your DisplayCal’s current Argyll library. By default, for my installation, this was here: “C:\Users\YOUR_USER_NAME\AppData\Roaming\DisplayCAL\dl\” . You will know you’re in the right place if you see a folder called Argyll_V2.3.1 .
- In the location of step 4., rename the folder “Argyll_V2.3.1” to “Argyll_V2.3.1_old”. This is your backup.
- Paste the Argyll_V3.3.0 folder here.
- Rename the newly pasted “Argyll_V3.3.0” folder to “Argyll_V2.3.1”. We have now updated DisplayCal, and its profile loader, to use the latest Argyll tools.
- We need to create some scripts. Go to a folder of your choice where you want the scripts to reside.
- Create a blank text file. Name it whatever you want, but make sure you know this will be the command to enter HDR mode. Then, change its file extension to “.bat”. Right click it, and edit it with notepad.
- You will need 3 lines in that notepad. Each of the following statements should be on its own line. Here they are:
@echo off C:\Users\YOUR_USER_NAME\AppData\Roaming\DisplayCAL\dl\Argyll_V2.3.1\bin\dispwin.exe -d 1 -v -U "C:\PATH\TO\YOUR\PROFILE\ICC\FILE\YOU_PROFILE_FOR_SDR.icm" C:\Users\YOUR_USER_NAME\AppData\Roaming\DisplayCAL\dl\Argyll_V2.3.1\bin\dispwin.exe -d 1 -v -I "C:\PATH\TO\YOUR\PROFILE\ICC\FILE\YOU_PROFILE_FOR_HDR.icc"
11. Let me explain the lines. The first one, “@echo off”, disables the command line tool (terminal) from writing out our scripts lines when it executes.
The second one is uninstalling / removing the profile for your SDR content. This is because we want Display Cal’s Profile loader to only ever have 1 option to apply a profile, to guarantee it defaults to the right one. So this one removes the SDR content profile. Don’t worry, it does not delete the file, just removes it from the profile loader.
The third one installs / applies the profile for your HDR content.
It’s pretty important to have done step 2 to 7, because without those steps, certain profiles will not work. Notably, for me, Windows HDR Calibration Tool, and its profile that it created, would not work without having Argyll 3.3.0.
12. Ensure you have modified the 2 lines of step 10 to use your own path to your profile for SDR content, your own path to your profile for HDR content, and your own path to your dispwin.exe . Ideally, your color profiles should be in a user folder , not directly in the system32 folder (otherwise the script will need admin rights to read them. annoying.)
13. When done, save the file. Then, make a copy of it. This new copy you can name what you want, but make sure you know this will be the command to exit HDR mode and enter SDR. Then, right click the file and edit it.
14. Now for this file, this will be extremely similar. Except we are swapping the names of the files, as we want to uninstall our HDR profile, and install our SDR profile. You can just swap the 2 name of files in the lines, like this:
@echo off C:\Users\YOUR_USER_NAME\AppData\Roaming\DisplayCAL\dl\Argyll_V2.3.1\bin\dispwin.exe -d 1 -v -U "C:\PATH\TO\YOUR\PROFILE\ICC\FILE\YOU_PROFILE_FOR_HDR.icc" C:\Users\YOUR_USER_NAME\AppData\Roaming\DisplayCAL\dl\Argyll_V2.3.1\bin\dispwin.exe -d 1 -v -I "C:\PATH\TO\YOUR\PROFILE\ICC\FILE\YOU_PROFILE_FOR_SDR.icm"
15. Make sure you filled in the proper paths, and that the first line is about uninstalling your HDR profile, and the second about installing your SDR profile. Then save the file.
16. At this point, you can try it out. Simply launch the HDR script by double clicking it, and it should load your HDR profile properly. You can verify it loaded it by right clicking the Display Cal Profile Loader in the system tray, then clicking “Profile Associations”. If it lists your chosen profile as the default one for your monitor, then it worked! If not, review the previous steps.
Try both the one that launches HDR, and the one that launches SDR. Make sure they work.
17. Ok, now we want to make this run purely in the background, and not open a terminal. For that, we need SilentCMD. The link to download the latest release is here. It’s a small utility program that allows to run .bat files, without showing the terminal. Download it and unzip it somewhere.
18. Almost there. Now what you want to do is find the executable, SilentCMD.exe. Right click it, then create a shortcut to it.
19. Right click the newly created shortcut, and click properties. In the “Target” text box, under the “Shortcut” tab, you will want to add the path to your script (to enter HDR) in quotation marks after a space. Like so:
C:\Users\YOUR_USER_NAME\Downloads\SilentCMD\SilentCMD.exe "C:\Users\YOUR_USER_NAME\PATH\TO\YOUR\SCRIPTS\ENTER_HDR.bat"You can see here that there is a space between the two, and quotation marks around the path to the script. Once that’s done, click apply (if needed) and OK.
20. Verify it works by double clicking your shortcut. It should apply the color profile (by running your script), and no command line should pop up.
21. Make a copy of the shortcut, and edit it just like in step 19, but this time link it to your script to enter SDR (exit HDR). Like this:
C:\Users\YOUR_USER_NAME\Downloads\SilentCMD\SilentCMD.exe "C:\Users\YOUR_USER_NAME\PATH\TO\YOUR\SCRIPTS\EXIT_HDR.bat"22. Done! You can use these shortcuts at will, you can put them on your desktop or anywhere else.
Hope this is useful to you guys. For reference and example sake, I am sharing my 2 scripts in their final form, available on google drive here. This should give you an idea of what they look like when done.
I personally have set up those scripts as part of an action button on my StreamDeck, so I can enter and exit HDR with one button.
Let me know if it helped!
– VoltDriver
-
This reply was modified 1 year, 5 months ago by
VoltDriver. Reason: Typo
2025-02-08 at 10:56 #143007Heya, thank you about the idea, however there is an issue setting the Windows HDR profiles, they are v4:
Warning: ICC V4 not supported!
Dispwin: Warning – No vcgt tag found in profile – assuming linear
Dispwin: Error – Failed to install profile ‘C:\Windows\System32\spool\drivers\color\BenQ_HDR.icc’!Moreover,
dspwin.exeafterwards just deletes the the HDR profile.2025-02-08 at 13:32 #143008Are you useing argyii 3.3 latest? I do not know what argyii works with V4 profiles since I have not tested it.
2025-02-08 at 14:37 #143009Absolutely 3.3, downloaded and checked with
dispwin.exe --version.So, if there is an way to convert the Windows HDR profiles to v2, or I dunno, set the v4 through other tool…
-
This reply was modified 1 year, 5 months ago by
randocal.
2025-02-08 at 16:33 #143011Hey randocal, could you try running the script as Administrator (and the shortcut as administrator) ? You can do so by launching a Powershell windows as admin, navigating to the script, and calling it using “.\YOUR_SCRIPT.bat” . It appears, from your command, that you are trying to install the profile straight from the System32 folder. As I noted in step 12, you should have your color profiles as a copy in a user folder, so that the script can access them.
On my end, if I execute the script, here is my output in the terminal:
About to open dispwin object on the display
Un-Installed profile for display ‘DISPLAY2, at 0, 0, width 2048, height 1152 (Primary Display)’
About to destroy dispwin object
About to open dispwin object on the display
Warning: ICC V4 not supported!
Dispwin: Warning – No vcgt tag found in profile – assuming linear
About to install ‘C:\Users\myuser\Documents\Color Profiles\XG27AQDMG_HDRCalibration_Win11_20250202.icc’ as display’s default profile
Installed ‘C:\Users\myuser\Documents\Color Profiles\XG27AQDMG_HDRCalibration_Win11_20250202.icc’ and made it the default
About to destroy dispwin objectAfterwards, I can check that the profile is applied, by opening my profile loader like so:
I did further tests however, and here is what I found out. The scripts does appear to delete the files in the “C:\Windows\System32\spool\drivers\color” folder, but does not delete them from the user folder. I wish I could edit my post, but the forum is not letting me. This is why it hadn’t happened to me: I keep my profiles in a folder in my documents.
Another thing I have noticed is that while the profile is correctly loaded in display cal profile loader (or appears to be), the screen does not react when resetting the gamma table of the GPU with the HDR profile. The profile does show as default in Display Cal Profile loader, and in Windows 11’s color management windows. This is probably the part about dispwin not supporting ICC v4. That said, even though it appears not to be loaded in the gamma table, I am curious how other apps would react to it, as it is loaded in Windows.
-
This reply was modified 1 year, 5 months ago by
VoltDriver. Reason: Typo
2025-02-08 at 17:36 #143013Additional note: If I load the profile (execute the script) before entering HDR mode in windows, the profile will not show up in the Color Management screen of Windows 11 as an HDR profile. But, if I load it after entering HDR, it will show up as the default HDR profile. However, in doing so, display cal profile loader will show nothing in its profile associations, even though the profile is there in Windows 11 Color management. Odd.
2025-02-09 at 14:10 #143025Hi VoltDriver,
Thank you about the hint for having a copy of the icm/icc files in a separate place. It was not about the admin rights, I tested it out.
I have noticed the issue from your last remark. I decided to go with switching to HDR and then installing the profile. I hope the DisplayCAL-apply-profile will be fine being in such peculiar state, at least Windows shows it correctly.
Now, I went further and created two batch files, as tests, one to switch to sRGB/SDR and one to switch to the windows.icc/HDR. I just used an already available tool to toggle/enable/disable the HDR – HDRSwitcher.exe. I will post only the switch to HDR batch file. If one desires, a global shortcut can be assigned and everything be automated. For me, it is just a stepping stone to further tune up my work.
@echo off setlocal enabledelayedexpansion set TOOL_PATH=C:\Users\YOUR_USERNAME\AppData\Roaming\DisplayCAL\dl\Argyll_V2.3.1\bin set PROFILES_PATH=C:\Users\YOUR_PROFILES_DIR\Documents\monitor_calibrations set profiles=BenQ_DisplayCAL_sRGB.icm BenQ_DisplayCAL_DisplayP3.icm BenQ_DisplayCAL_Native.icm set NEW_PROFILE=BenQ_DisplayHDR.icc for %%P in (%profiles%) do ( echo Uninstalling profile: %%P "%TOOL_PATH%\dispwin.exe" -d 1 -U "%PROFILES_PATH%\%%P" ) echo Enabling HDR mode... "%TOOL_PATH%\HDRSwitcher.exe" enable --index 0 echo Installing new profile: %NEW_PROFILE% "%TOOL_PATH%\dispwin.exe" -d 1 -I "%PROFILES_PATH%\%NEW_PROFILE%" echo Done.
-
AuthorPosts