Native Color Temperature Setting is global/applied across all displays, potentially conflicting with custom color temperature
Your system information
- Steam client version: 1701289036
- SteamOS version: 3.5.7
- Opted into Steam client beta?: No
- Opted into SteamOS beta?: No
- Have you checked for updates in Settings > System?: Yes
Issue details
The Native Color Temperature setting, as the name implies, ensures that the default/native color temperature for the active display is used.
If a custom color temperature is used, and the Native Color Temperature setting is enabled, the color temperature for the display is used, ignoring the custom color temperature.
The utility of the setting as it stands feels like a bit of a workaround in my use case.
Current default and custom temperatures for testing scenario
OLED Steam Deck: 6500K External display: ~9500K Configured custom color temperature: 7500K
Observed Impact of Native Color Temperature setting
Deck:
Off: 7500K On: 7500K -> 6500K – Deck default is lower; enabling the setting results in a warmer color
External Display
Off: 7500K On: 7500K -> 9500K – TV default is higher; enabling the setting results in a cooler color
Result
As it stands, the utility of the feature is negligible, as I need to toggle it on/off as I dock and undock the Deck to maintain a consistent color temperature between internal/external displays.
Potential solutions
- Allow the user to configure a custom color temperature per display
- Allow the user to enable
Native Color Managementper display type (internal/external) - [Probably Questionable/Niche applicability] Let the user configure which temp value should be chosen
- e.g. "always used highest value between custom color temp and native/default"
After posting, I noticed there is also https://github.com/ValveSoftware/steam-for-linux
Not sure which repo is best for this issue.
@kisak-valve this has been an issue for 2 years now. It is still ignored, with no indication of progress.
Is it safe to say that the Steam Deck LCD is considered deprecated / vintage hardware that is no longer receiving support? It is effectively the only device suffering from this issue.
You can disable color management entirely in the developer settings, though it doesn't play very well with the client as it darkens when you move the mouse.
That said, I don't understand what you are saying. Native toggle should mean the display colour temperature doesn't change. It doesn't on my external display when I have the toggle on and move the colour temperature slider around.
The problem is that you need Use Native Color Temperature toggled off for the LCD Deck (so Valve's custom sauce to get it closer to sRGB is applied), but you want it turned on (to use the native color temperature) for your external display, otherwise the special tuning applies to your external display, making it waay too warm.
This is not a problem on the OLED model display, which was properly tuned and thus always has Use Native Color Temperature toggled on.
The Use Native Color Temperature toggle should never be applied to external displays (effectively, it should always be on), as those have their own white balance controls.
Here is a Steam thread about the same thing: https://steamcommunity.com/app/1675200/discussions/1/4139438126590121003/
You would want native toggled on for LCD in bright conditions. Applying a colour profile does dim the screen as it has to adjust the LCD crystals to block some of the light to change the perceived colour temperature. This is part of why sometimes it's nice to create a profile where you use the native white point but adjust the colours from there. The LCD's white point is about 7800K btw.
I don't see the issue with native toggle for external displays. If it's ON, then nothing is changed and it's whatever the display is set to. If it's OFF, then it's like a software f.lux/night light thing and moving the slider around changes the white point exactly like Windows night light.
If your monitor is 6500K (mine is) and you have native mode OFF and colour temperature is set to 6500 in the slider, you shouldn't see any change since it would basically be the same thing.
I generally have native on all the time since I don't want the LCD dimmer, and I don't want the monitor changed.
So it seems like your issue might be that you have it set at 6500 for the deck, but your monitor isn't actually 6500 and is shifting as a result. So fix that. You can use a custom preset in the monitor menus with the R, G, B values. Look at the menu options.. Cool, Standard, Warm 1, Warm 2, etc. depending on your monitor. One of them will be close to 6500K. The names are not indicative. On an old TV I have I need to use the "Warm" preset.
I am not sure how I can express it any more clearly.
Use Native Color Temperature is a special toggle Valve created because the native color temperature of the LCD Deck is wrong. If you use the native LCD Deck color temperature, it will say "6500K" in Adjust Display Colors, but in reality it will be much cooler (7800K, as you mention).
Turning this toggle off means a special software offset (= non-native) is applied to the LCD Deck screen. Now 6500K actually matches 6500K.
However, this offset is also applied to external screens. This means that if you connect an external display perfectly tuned to 6500K, the offset will be applied and you will end up somewhere around 5200K.
This means LCD Deck users constantly have to dig into the menus to switch the toggle, every time they dock and undock. Comparatively, OLED Deck users can just always play with Use Native Color Temperature toggled on.
(I have tried just using Adjust Display Colors, but -1500K does not look similar to Use Native Color Temperature off).
Solutions:
- LCD offset curve needs to be set in the LCD firmware but without an extra toggle (users can just up their color temperature in 'Adjust Display Colors)
- LCD offset curve needs to be set in software at boot, but without an extra toggle (users can just up their color temperature in 'Adjust Display Colors)
- LCD offset needs to be a special toggle, just like
Use Updated Fan Control, which AFAIK only appears on Decks
I think someone else needs to chime in here because the function is working for me.. what is being disagreed upon is whether it is correct or not.
Use Native Color Temperature is a special toggle Valve created because the native color temperature of the LCD Deck is wrong. If you use the native LCD Deck color temperature, it will say "6500K" in Adjust Display Colors, but in reality it will be much cooler (7800K, as you mention).
It isn't wrong, it's just a colder temperature. 6500K is a preference based on the sRGB standard, it's not a requirement.
This means that if you connect an external display perfectly tuned to 6500K, the offset will be applied and you will end up somewhere around 5200K.
Are you sure it's 6500K? Because on mine, if I toggle it on and off I don't see it changing.
Comparatively, OLED Deck users can just always play with Use Native Color Temperature toggled on.
And this is the case for me as well, because there is no offset applied to the external display whether it's at 4K or 10K in the slider.
There is one thing though that I might be doing differently..
I am using a displayport to dvi dongle from the dock to the display. I also haven't updated the dock firmware in some time. It's possible if you're connecting from the dock to hdmi it's doing something different..
If that's the case, that's a bug yeah.
Would like to hear from others what they experience.
Here you can clearly see the color shift on my external display. Watch the toggle in the bottom. This is a real issue. Now can you please stop muddying the waters.
Replying to https://github.com/ValveSoftware/SteamOS/issues/1297#issuecomment-3559550381
I think I have a similiar issue, but with external TV (LCD). On Steam deck OLED when I change "Use Native Color Temparature", nothing visible happens, but when I turn it on when docked, colours (including steam menu) are blue-ish. Is "Use Native Color Temparature - OFF" the right choice for external LCD TV? For the same reason, I turn off HDR otherwise colours would become blueish, not talking about very high brightness especially during night gaming.