Open albertofustinoni opened 1 year ago
I thought the whole point of running mhc2gen was to add whatever tags windows expects in an icc profile to enable ACM without forcing it via the developer toggle.
The ICC profile is used to override display characteristics in EDID, which is not always accurate in budget devices, and additionally calibrate the display to an ideal state (in native gamut). In short, it is optional.
The EnableAcmSupportDeveloperPreview
registry requirement is removed in build 25309. If you are running an older build, it is required to enable ACM feature.
Also, what does --calibrate-transfer do when performing the conversion? Is it meant to be used only on SRGB displays or wide color gamut ones?
Currently ACM expects the display have sRGB gamma response. If you choosed other calibration target when creating ICC profile, you can use --calibrate-transfer
to convert the gamma calibration to sRGB.
For devices that do legitimately have ACM on build 22621, like the Surface Pro 9, they actually depend on the the presence of an alternative registry DWORD, MicrosoftApprovedAcmSupport
, being present and set to 1. That DWORD needs to be present in the following regkey: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96e-e325-11ce-bfc1-08002be10318}\000x
with 000x
being the index of the currently active/desired display (e.g. 0001
would be valid). This appears to be set by the OEM during device provisioning, and doesn't rely on a valid MHC2 color profile's presence interestingly enough.
You may also need to enable feature 24316826 (AutoColorManagementEnabled).
Other interesting features that may also apply:
For devices that do legitimately have ACM on build 22621, like the Surface Pro 9, they actually depend on the the presence of an alternative registry DWORD,
MicrosoftApprovedAcmSupport
, being present and set to 1. That DWORD needs to be present in the following regkey:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96e-e325-11ce-bfc1-08002be10318}\000x
with000x
being the index of the currently active/desired display (e.g.0001
would be valid). This appears to be set by the OEM during device provisioning, and doesn't rely on a valid MHC2 color profile's presence interestingly enough.
The only way I could get Automatically manage color for apps
show for me, was this registry key. Is this expected with Windows 11 build 22631 (23H2)?
I've found the behaviour to be a bit strange, when I enable it on multiple monitors. One issue I am having with the profiles is particularly strange: I have two monitors which I would like to use ACM for. I created a separated SDR-ACM profile for both and added them as a standard profile.
However, oddly enough, when I disable the VE228 Monitor, suddently the AOC monitor is assigned the VE228 profile, which is completely off. So basicly it becomes this:
I can also not select the correct profile in Display settings. Strangly enough, this is not reflected in the color management window when using windows to calibrate the displays., i.e. there the profiles are still listed correctly for the AOC 24G. Adding a new profile there is also not added to the selection. DisplayCAL Profile Loader shows the correct display profiles, but when I try to make it load a profile by double-clicking the profile, it is always as an "Advanced" profile to the AOC 24G and disappears from the list of profiles in DisplayCAL Profile Loader.
Can anyone confirm this behavior with multiple monitors and Build 22631? What would be the right way to add the profiles? Is there an alternative to the windows color management app (like DisplayCAL Profile Loader) that actually works with ACM? How are is everyone doing this?
I have a ROG Zephirs G14 (2022 model) with a wide color gamut display (close to full DCI-P3 coverage) but no HDR.
Given that I have a colorimeter, what is the proper way to enable ACM in Windows 11? What I tried so far is:
mhc2gen sdr-acm <icc-file-path> <acm-icc-path>
At this point I was expecting to see the
Automatically manage color for apps
toggle in Settings->Display->Advanced Display Options, but it was not there. Color profile for the display was listed as expected though.To get the toggle to show I had to create a
EnableAcmSupportDeveloperPreview
key in the registry atHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers
.Is this right? I thought the whole point of running
mhc2gen
was to add whatever tags windows expects in an icc profile to enable ACM without forcing it via the developer toggle.Also, what does
--calibrate-transfer
do when performing the conversion? Is it meant to be used only on SRGB displays or wide color gamut ones?