1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

[Application] Color Sustainer - ICC Profile Enforcer

Discussion in 'Computer Monitor Forum' started by yasamoka, Feb 3, 2014.

?

Do you use Color Sustainer in Global mode or in Mode-specific mode (v1.03.1+) ?

  1. Global mode

    31 vote(s)
    64.6%
  2. Mode-specific mode

    9 vote(s)
    18.8%
  3. A mix of the two

    8 vote(s)
    16.7%
  1. yasamoka

    yasamoka Ancient Guru

    Messages:
    4,711
    Likes Received:
    173
    GPU:
    EVGA GTX 1080Ti SC
    The answers to your questions have been discussed only a few posts above yours. Please read them.
     
  2. Bhudda

    Bhudda Master Guru

    Messages:
    203
    Likes Received:
    11
    GPU:
    Aorus 1080ti
    Where can I find CPK, I tried googling for it but cannot find it unfortunately.

    Edit - nvm Color Profile Keeper. I will try this as I cannot tell if Color Sustainer is working.
     
    Last edited: Jun 14, 2015
  3. yasamoka

    yasamoka Ancient Guru

    Messages:
    4,711
    Likes Received:
    173
    GPU:
    EVGA GTX 1080Ti SC
    Once you click on Start, the colors should immediately change if you have a profile associated (unless the profile is a sample profile that is perfectly linear).
     
  4. Bhudda

    Bhudda Master Guru

    Messages:
    203
    Likes Received:
    11
    GPU:
    Aorus 1080ti
    With cpk and powerstrip Ive enabled a hot key to the profile to turn it on or off, I can see the icc profile kicking in as it automatically enforces it after a couple of seconds in game.

    I will try the same with colorsustainer, it's just that I couldn't tell if the pr9file was working in gaming before, in desktop mode as soon as Windows 8.1 loads I can see the desktop colours change.
     

  5. yasamoka

    yasamoka Ancient Guru

    Messages:
    4,711
    Likes Received:
    173
    GPU:
    EVGA GTX 1080Ti SC
    That means it's working.

    The only games where no tool that uses SetGammaRamp() works (CPKeeper, Color Sustainer, dispcal, etc...) are games that do not follow the system color profile in exclusive fullscreen mode by using IDXGI::SetGammaControl(). I have explained what those games do in the sister thread (Games & Color Profiles).

    Color Sustainer does not detect when a game is launched, so if a game does not use IDXGI::SetGammaControl(), it will then follow the system color profile and you might not see the colors change at all. The only time you might see colors change when you enter a game is if that game resets the system color profile (not overrides it), and in that case Color Sustainer will set back the system color profile. There are examples of such games in the sister thread, so you might want to check those games out.

    Other than that, if you want to know whether Color Sustainer is working or not, use the predefined tints that I have provided in the application instead of color profiles.

    In Mode-specific color profile association mode:

    Let's say you set a red tint at 60Hz, and a blue tint at 75Hz. You enter a game. If it displays a red tint, then it is taking the system color profile AND running at 60Hz. If it displays a blue tint, then it is also taking the system color profile AND running at 75Hz. In the case of a switch between the desktop's 60Hz and the game's 75Hz, the role of Color Sustainer is to swap out the system color profile for the 75Hz one you have specified. If the game does not show any tint, then it's either running an unassociated display mode or it is ignoring and overriding the system color profile (but not resetting). You can check that out for yourself by alt-tabbing. You will realize the desktop still has the tint you have set.

    As for global mode, it's easy, if the game does not display a tint then it is ignoring / overriding the system color profile.

    As for PowerStrip, forcing color profiles via "Write directly to palette DAC" works only for single AMD GPUs. It causes an odd-even flicker in CrossFire and does not work on Nvidia GPUs at all. Hence talks about DLL call interception to disable the SetGammaControl() function altogether.

    I hope that clarifies things.
     
    Last edited: Jun 14, 2015
  6. Bhudda

    Bhudda Master Guru

    Messages:
    203
    Likes Received:
    11
    GPU:
    Aorus 1080ti
    The author of displaycalgui said it won't work no matter what I use for gaming

     
  7. yasamoka

    yasamoka Ancient Guru

    Messages:
    4,711
    Likes Received:
    173
    GPU:
    EVGA GTX 1080Ti SC
    1D calibrations are what Color Sustainer and other similar tools use. They consist of 3 separate curves (Red, Green, Blue). Those curves, used together, ensure grayscale calibration (including white) and accurate gamma (e.g. 2.2) and line up the monitor's response while keeping the gamut the same (for example, secondary colors are lined up). 1D curves do not correct for oversaturation as that requires mapping triplet values (R,G,B) to other triplet values. 1D calibration always maps Red 64 to Red 58, for example, regardless of whether the pixel is question is 64,0,0 or 64,43,87. An oversaturated Blue, on the other hand, may be mapped from 255 to 234, decreasing luminance but keeping saturation the same. Primaries are not corrected with 1D calibrations; however, equal mixtures of the primaries are (grayscales).

    3D calibrations, where triplet values are mapped to other triplet values, are needed for "color calibration", where colors themselves are mapped, the gamut is shrunk to standard, etc... only applications that are color-aware can utilize 3D LUTs, such as Photoshop. 3D LUTs are not applied system-wide (although theoretically it is possible, but it's left up to the application for color-related transforms). Color-awareness is not needed if the monitor matches the sRGB gamut and we're viewing sRGB content (games adhere to sRGB). As long as you have an sRGB-capable monitor, 1D calibrations get you as close as possible to accuracy within games.

    1D calibrations are combined with 3D calibrations as they ensure the monitor has a predictable and consistent response within its native gamut. 3D LUTs then transform the gamut using various ways, and you get a monitor able to display content made for a smaller gamut (AdobeRGB monitor --> sRGB content)

    TL;DR: The profiles you ARE using contain 1D calibrations and those are loaded system-wide and work with most games. Games are not color-aware meaning they cannot do color transforms by themselves, but that is beyond the scope of system-wide gamma / grayscale calibration.

    I wouldn't have wrote Color Sustainer if it was useless for games. I already told you what to do to make sure whether it's working in games or not but it seems you keep ignoring my advice. Use pre-defined tints provided IN the application!.
     
  8. Vipu2

    Vipu2 Master Guru

    Messages:
    547
    Likes Received:
    8
    GPU:
    1070ti
    Since Win10 is launched now, does this program work in Win10?
     
  9. yasamoka

    yasamoka Ancient Guru

    Messages:
    4,711
    Likes Received:
    173
    GPU:
    EVGA GTX 1080Ti SC
    I've just installed Windows 10. No problems so far.
     
  10. Whiplashwang

    Whiplashwang Ancient Guru

    Messages:
    2,275
    Likes Received:
    170
    GPU:
    MSI GTX 1080Ti
    It works for me too, but every time I boot up I have to reconfigure the settings! Nothing is saved! Does anyone else have this problem?
     

  11. yasamoka

    yasamoka Ancient Guru

    Messages:
    4,711
    Likes Received:
    173
    GPU:
    EVGA GTX 1080Ti SC
    It's retaining settings fine here, on both my desktop and laptop running Windows 10. I just reused the previous instance of Color Sustainer I had running on Windows 8.1, located at C:\Color Sustainer.

    Perhaps under Windows 10, Color_Sustainer.exe in the folder in which you have Color Sustainer running does not have permission to write to that folder? That would seem to be the only explanation.

    The settings have to be reconfigured only if they're not getting saved as files in the same folder as the .exe file. So either Color Sustainer is unable to write those files in the first place, or it is unable to read them back (doubtful).

    Check your folder security settings and let me know how it goes. Perhaps changing around security and user permissions for that folder would help solve the issue. Also, where is the folder located? The location itself might be causing the issue.
     
  12. Whiplashwang

    Whiplashwang Ancient Guru

    Messages:
    2,275
    Likes Received:
    170
    GPU:
    MSI GTX 1080Ti
    That was the problem! I had it in Program Files and it didn't have the correct permission. Moved it to C:\ like you said and it saved my settings on reboot.

    Thanks! :)
     
  13. yasamoka

    yasamoka Ancient Guru

    Messages:
    4,711
    Likes Received:
    173
    GPU:
    EVGA GTX 1080Ti SC
    You're welcome! :)
     
  14. darivo

    darivo Member

    Messages:
    13
    Likes Received:
    0
    GPU:
    SLI 670 (1200mhz)
    Today i made a clean install of win10 pro

    but when i tried to launch Color Sutainer, windows give me an error

    MSVCR1000.dll is missing

    I installed VCRedist_x64 but problem is still here.

    Could someone give me little help?¿?

    thanks in advance
     
  15. yasamoka

    yasamoka Ancient Guru

    Messages:
    4,711
    Likes Received:
    173
    GPU:
    EVGA GTX 1080Ti SC
    Visual C++ 2010 x86 redistributable.
     

  16. darivo

    darivo Member

    Messages:
    13
    Likes Received:
    0
    GPU:
    SLI 670 (1200mhz)
    Thanks yasamoka

    I need upgrade to Microsoft Visual C++ 2010 SP1 Redistributable Package (x86) (service pack) to run your 'Anti tired-eyes profile'

    :)

    Best regards!
     
  17. yasamoka

    yasamoka Ancient Guru

    Messages:
    4,711
    Likes Received:
    173
    GPU:
    EVGA GTX 1080Ti SC
    Haha you're welcome :)

    What profile are you using?
     
  18. darivo

    darivo Member

    Messages:
    13
    Likes Received:
    0
    GPU:
    SLI 670 (1200mhz)
  19. Vercinaigh

    Vercinaigh Member

    Messages:
    20
    Likes Received:
    0
    GPU:
    290x Crossfire
    Hey bud, love your program. I'm currently playing Ark: Survival Evolved in full screen on Windows 10. If I load the game, colors keep, if i alt tab, they vanish to defaults and never re apply until i close and restart the program.

    Further that, polling seems to do nothing, in general, for me at all. This is a fresh install of windows 10.
     
  20. yasamoka

    yasamoka Ancient Guru

    Messages:
    4,711
    Likes Received:
    173
    GPU:
    EVGA GTX 1080Ti SC
    Hello there! Thanks for the kinds words :)

    If I have understood this correctly, the color profile is loaded on the desktop, you launch the game, the color profile stays loaded (assumption A), then when you switch back to the desktop, the color profile is reset and stays like that until you re-launch Color Sustainer.

    If assumption A is true, then the game and the desktop resolution and refresh rate match, therefore switching back to the desktop while the game is running should have no effect on the loaded color profile either. That means that:

    1) Assumption A is false: Are you sure that the color profile is running in-game? How are you sure? Did you take a look at the game with and without a color profile, or is the color profile so severe that it clearly shows when it is applied or not applied? I say this because some games have post-processing that makes quite a biased impact to the image, making it brown, green, red, dull, gray, etc... and the game would look *as intended* with a proper color profile, though it might still look ugly or clearly biased. Did you test with the pre-defined tints I have provided with the application? They make troubleshooting much easier. Associate a tint with the displays, resolutions, and refresh rates you / Windows Desktop / the game uses and see how that goes.

    2) Assumption A is true: Either the game or Color Sustainer is resetting the color profile when you switch back to desktop. If it is the game, it is unlikely for a game to do so when you switch out of the game, since if a game's intent is to reset the system color profile, it would do so at the very start of the game (first screens), or a few seconds in (when you're at the menu, for example), or when a setting is changed (Tomb Raider does that), or a combination of those. If Color Sustainer is resetting the color profile, that means that it has picked up that the desktop is at a different resolution / refresh rate than what the game was running at, another unlikely event: a game may:

    a) change the desktop resolution / refresh rate (old method)
    b) run at its own resolution / refresh rate (modern method)
    c)run at the desktop resolution and refresh rate.

    No game would do any of these together. No game would do A and B together, since if it has done A, it would not need to do B. If it has done B, it would not need to do A. And if it does C, it would not have to do either A or B.

    Therefore, Scenario #2 is kind of unlikely.

    Furthermore, if the game's display mode matches the desktop's, Color Sustainer should have absolutely no trouble applying the color profile at the desktop since nothing fullscreen would be preventing the SetGammaRamp() function contained within the Win32 API from running. Color Sustainer calls that very function.

    Let me answer the second query first before giving the possible solution. The polling period is the time interval at which Color Sustainer checks for changes in the active displays, resolutions, and refresh rates. The reason you might think the option is not working is because it has no direct, visible impact to the user when Color Sustainer is doing its job with no interference: the profile is applied, no application is resetting the color profile, no resolution and refresh rate changes are happening, therefore no delay between when the profile is reset then applied by Color Sustainer again is seen, or no color profile changes have to take place. You can see the polling period in effect by doing one of the following:
    a) Load up an application that resets the system color profile, such as dispcal (use dispcal -c) from the ArgyllCMS libraries.
    b) Set different color profiles / pre-defined tints for different resolutions / refresh rates and switch between them.
    c) Lower the polling period enough, perhaps to zero, and you'll see the CPU usage rise up.

    I suspect that you might have raised the polling period too high, and, seeing it have no effect, kept it at that high value. Once you switch out to desktop, some reason (one of the ones mentioned above) causes the system color profile to reset at the desktop, and you find that it is not set back after a few seconds / minutes, so you re-launch Color Sustainer, and that instantly applies the color profile again, since that's what Color Sustainer does before it waits the polling period to check for changes and perhaps set back the profile.

    TL;DR: A polling period that is too high will prevent Color Sustainer from re-applying a color profile reset, for some strange reason, particularly at the desktop where no application can prevent the profile from being set back. Re-launching Color Sustainer immediately applies the appropriate profile as that's how Color Sustainer has been programmed to work.

    If the problem has not been solved, please provide me with more system details. Graphics card(s), monitor(s), refresh rates, any overclocks, etc...
     

Share This Page