Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Same issue here. LG 27UK650 with a MacBook Air (M1) is "washed out" and white as compared to a MacBook Pro (Intel 2019)

I have a Caldigit T3 Plus with a USB-C in between the monitor / laptop.

The issue really sucks.
 
Same issue with my M1 Mac mini and LG 27UK850. Washed out appearance over usb c. I have 2 of these moitors hooked up to the mini. One over hdmi. One over usb c. Works fine with hdmi. You can slightly up the contrast in the accessibility System Preferences under display. This will take away the washed out look on the usb c monitor. However it over-saturates the monitor connected to hdmi that doesn't need any adjustment. If you only have one monitor this may help. If no solution comes soon I will be sending my mini back. Sad.
So, the issue is only with usb-c connection? How is the hdmi if only one monitor connected and what is the output color format - does it send signal in RGB
 
Hey you all, thanks for you help and your time trying to help us M1 Macs owners !

I found a solution that was never mentioned if it can still help someone who has not bought any new cable or dongle yet.

I went to monitor settings in system preferences and turned from 100hz to 60hz, then I went to my monitor's setting (lg ultra wide 35") and turned off display port 1.4 to 1.1, turned on HDR (back in Mac's settings), unplugged and replugged usb-c cable, then closed my Mac and reopened it and voilà my external monitor has true colours and not washed out colours anymore.

BUT, the weirdest thing is that it still has washed colours in clamshell mode only.
Hope I can help someone and sorry for my bad English I'm from France 😅
 
anyone still have issue with onscreen control lg app? i am still getting this screen
I'm also experiencing some problems with OnScreen Control.
It freezes for few second after start and then all functions except Screen Split are gone.
I can't control brightness/contrast or anything else with this app.
I have 27UP850 connected via USB-C.

Bildschirmfoto 2021-07-14 um 15.56.51.png

Yep. I read somewhere that LG will release a new version late this month 🤞
Any news about new version with fix?
I'm running latest OnScreen Control 4.64 from LG support page.
 
Hey again, I found a final and working solution : I found that the colour looked washed out only in one mode at the time, clamshell or normal mode. And that changing the refresh rate of the monitor in the system preferences would wash out the colour if they were not.
So you just need to change the hertz in clamshell mode (this will wash out colours instantly) and when you'll open your Mac again to use it in "not clamshell mode" the colour will look normal again. Vice versa if you want to use clamshell mode.
As simple as it is, it's stable, work every time and may be a durable solution.
For information I use a thunderbolt cable to connect my Mac to my external monitor.
Hope it'll work for you, hit me up if it does !
 
  • Like
Reactions: JCHH
Hey again, I found a final and working solution : I found that the colour looked washed out only in one mode at the time, clamshell or normal mode. And that changing the refresh rate of the monitor in the system preferences would wash out the colour if they were not.
So you just need to change the hertz in clamshell mode (this will wash out colours instantly) and when you'll open your Mac again to use it in "not clamshell mode" the colour will look normal again. Vice versa if you want to use clamshell mode.
As simple as it is, it's stable, work every time and may be a durable solution.
For information I use a thunderbolt cable to connect my Mac to my external monitor.
Hope it'll work for you, hit me up if it does !
This solution works y'all! My solution does NOT work in macOS Monterey beta and I was stuck with the washed-out colors once again, but I just gave this a go and it does indeed work!
 
The old mirror/unmirror it until things look right also does not work anyomre for me in the latest Monterey beta, more drastic solutions are needed. :)
 
Last edited:
Yeah, MonitorControl is a great app, I highly recommend it to everybody, it's a life saver! But please note that MonitorControl won't fix this specific washed out color issue as it is not designed to do so (MonitorControl controls the backlight brightness of the display via DDC/CI). The washed out colors arise from the fact that the new M1 macs tend to misconfigure the RGB range or appropriate color format (YCbCr vs RGB) on some displays and Apple cannot seem to fix this issue (probably the guy who wrote the graphics driver quit Apple or went to work on a different project or something).

---

For future reference here is the ultimate guide to fix the washed out display problem on M1. Tested to work on Monterey as well.

1. Download BBEdit (free)
2. Select the menu option Go » Go to Folder... in Finder
3. Enter ~/Library/Preferences/ByHost (please note the ~ character at the beginning!)
4. Look for the file called com.apple.windowserver.displays.[Very Long UUID].plist
5.
If it exists, delete it!
6. Select the menu option Go » Go to Folder... in Finder
7. Enter /Library/Preferences
8.
Look for the file called com.apple.windowserver.displays.plist
9.
Open the file using BBEdit (Note: a simple text editor will not suffice, since it is a compressed plist file)
10. Here comes the hard part:

Under every <key>CurrentInfo</key> item there is a longer <dict> ... </dict> section. If the resolution in this section seems to match the display with the washed out image (look for items like <real>1440</real> and <real>2560</real> for a display with 2560x1440 resolution for example), then under the closing </dict> you need to copy the following:

XML:
                    <key>LinkDescription</key>
                    <dict>
                        <key>BitDepth</key>
                        <integer>8</integer>
                        <key>EOTF</key>
                        <integer>0</integer>
                        <key>PixelEncoding</key>
                        <integer>0</integer>
                        <key>Range</key>
                        <integer>1</integer>
                    </dict>

You might need to do this in several places. You don't have to copy this block to items that DO NOT start with <key>CurrentInfo</key> but with other stuff (like <key>UnmirrorInfo</key>). Also you shouldn't have to copy this to items which belong to properly working displays, but it won't really hurt if you do.

Also it might be, that this section is already present but with different values (Big Sur usually places this section but with wrong values, Monterey tends not to place this section) - like the number under PixelEncoding might be 1 or the value under Range might be 0. If this is the case, then you need to correct these values to look like the example above.

11. Save the file
12. Reboot

If things went well, then the screen should have proper colors.

Here is an example of a properly fixed com.apple.windowserver.displays.plist file:

XML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>DisplayAnyUserSets</key>
    <dict>
        <key>Configs</key>
        <array>
            <array>
                <dict>
                    <key>CurrentInfo</key>
                    <dict>
                        <key>Depth</key>
                        <integer>8</integer>
                        <key>High</key>
                        <real>1440</real>
                        <key>Hz</key>
                        <real>60</real>
                        <key>IsLink</key>
                        <false/>
                        <key>OriginX</key>
                        <real>0.0</real>
                        <key>OriginY</key>
                        <real>0.0</real>
                        <key>Rotation</key>
                        <integer>0</integer>
                        <key>Scale</key>
                        <real>2</real>
                        <key>Wide</key>
                        <real>2560</real>
                    </dict>
                    <key>LinkDescription</key>
                    <dict>
                        <key>BitDepth</key>
                        <integer>8</integer>
                        <key>EOTF</key>
                        <integer>0</integer>
                        <key>PixelEncoding</key>
                        <integer>0</integer>
                        <key>Range</key>
                        <integer>1</integer>
                    </dict>
                    <key>MasterUUID</key>
                    <string>6C521F20-F01C-EC7C-0857-D6963E3104DB</string>
                    <key>Rotation</key>
                    <real>0.0</real>
                    <key>UUID</key>
                    <string>37D8832A-2D66-02CA-B9F7-7F50A321B130</string>
                    <key>UnmirrorInfo</key>
                    <dict>
                        <key>Depth</key>
                        <integer>8</integer>
                        <key>High</key>
                        <real>1200</real>
                        <key>Hz</key>
                        <real>60</real>
                        <key>IsLink</key>
                        <false/>
                        <key>OriginX</key>
                        <real>-1920</real>
                        <key>OriginY</key>
                        <real>0.0</real>
                        <key>Rotation</key>
                        <integer>0</integer>
                        <key>Scale</key>
                        <real>2</real>
                        <key>Wide</key>
                        <real>1920</real>
                    </dict>
                </dict>
                <dict>
                    <key>CurrentInfo</key>
                    <dict>
                        <key>Depth</key>
                        <integer>8</integer>
                        <key>High</key>
                        <real>1440</real>
                        <key>Hz</key>
                        <real>60</real>
                        <key>IsLink</key>
                        <false/>
                        <key>OriginX</key>
                        <real>0.0</real>
                        <key>OriginY</key>
                        <real>0.0</real>
                        <key>Rotation</key>
                        <integer>0</integer>
                        <key>Scale</key>
                        <real>2</real>
                        <key>Wide</key>
                        <real>2560</real>
                    </dict>
                    <key>LinkDescription</key>
                    <dict>
                        <key>BitDepth</key>
                        <integer>8</integer>
                        <key>EOTF</key>
                        <integer>0</integer>
                        <key>PixelEncoding</key>
                        <integer>0</integer>
                        <key>Range</key>
                        <integer>1</integer>
                    </dict>
                    <key>Rotation</key>
                    <real>0.0</real>
                    <key>UUID</key>
                    <string>6C521F20-F01C-EC7C-0857-D6963E3104DB</string>
                    <key>UnmirrorInfo</key>
                    <dict>
                        <key>Depth</key>
                        <integer>8</integer>
                        <key>High</key>
                        <real>1440</real>
                        <key>Hz</key>
                        <real>60</real>
                        <key>IsLink</key>
                        <false/>
                        <key>OriginX</key>
                        <real>0.0</real>
                        <key>OriginY</key>
                        <real>0.0</real>
                        <key>Rotation</key>
                        <integer>0</integer>
                        <key>Scale</key>
                        <real>2</real>
                        <key>Wide</key>
                        <real>2560</real>
                    </dict>
                </dict>
            </array>
            <array>
                <dict>
                    <key>CurrentInfo</key>
                    <dict>
                        <key>Depth</key>
                        <integer>8</integer>
                        <key>High</key>
                        <real>1440</real>
                        <key>Hz</key>
                        <real>60</real>
                        <key>IsLink</key>
                        <false/>
                        <key>OriginX</key>
                        <real>0.0</real>
                        <key>OriginY</key>
                        <real>0.0</real>
                        <key>Rotation</key>
                        <integer>0</integer>
                        <key>Scale</key>
                        <real>2</real>
                        <key>Wide</key>
                        <real>2560</real>
                    </dict>
                    <key>LinkDescription</key>
                    <dict>
                        <key>BitDepth</key>
                        <integer>8</integer>
                        <key>EOTF</key>
                        <integer>0</integer>
                        <key>PixelEncoding</key>
                        <integer>0</integer>
                        <key>Range</key>
                        <integer>1</integer>
                    </dict>
                    <key>Rotation</key>
                    <real>0.0</real>
                    <key>UUID</key>
                    <string>6C521F20-F01C-EC7C-0857-D6963E3104DB</string>
                    <key>UnmirrorInfo</key>
                    <dict>
                        <key>Depth</key>
                        <integer>8</integer>
                        <key>High</key>
                        <real>1440</real>
                        <key>Hz</key>
                        <real>60</real>
                        <key>IsLink</key>
                        <false/>
                        <key>OriginX</key>
                        <real>0.0</real>
                        <key>OriginY</key>
                        <real>0.0</real>
                        <key>Rotation</key>
                        <integer>0</integer>
                        <key>Scale</key>
                        <real>2</real>
                        <key>Wide</key>
                        <real>2560</real>
                    </dict>
                </dict>
            </array>
        </array>
        <key>Orientations</key>
        <dict>
            <key>37D8832A-2D66-02CA-B9F7-7F50A321B130</key>
            <integer>0</integer>
            <key>6C521F20-F01C-EC7C-0857-D6963E3104DB</key>
            <integer>0</integer>
        </dict>
        <key>Underscan</key>
        <dict>
            <key>37D8832A-2D66-02CA-B9F7-7F50A321B130</key>
            <real>1</real>
            <key>6C521F20-F01C-EC7C-0857-D6963E3104DB</key>
            <real>1</real>
        </dict>
        <key>Version</key>
        <integer>1</integer>
    </dict>
</dict>
</plist>

Hope this helps!
 
Last edited:
LG27UL850-w, MacMini M1 running BigSur

This didn't seem to work for me...

- Deleted com.apple.windowserver.displays.[Very Long UUID].plist
- Edited 'com.apple.windowserver.displays.plist' in BBEdit, saved & rebooted.

Only one section needed editing, all others had the values shown.

The section which needed editing was the first instance in the file, it's shown below. As soon as I turn on "High Dynamic Range" the value reverts back to the original setting, in the section I edited.

Is this anything to do with 27UL850-W being a 10 bit panel? (8 bits + FRC)

ORIGINAL SETTINGS

<key>LinkDescription</key>
<dict>
<key>BitDepth</key>
<integer>10</integer>
<key>EOTF</key>
<integer>0</integer>
<key>PixelEncoding</key>
<integer>1</integer>
<key>Range</key>
<integer>0</integer>
</dict>

CHANGED SETTING

<key>LinkDescription</key>
<dict>
<key>BitDepth</key>
<integer>8</integer>
<key>EOTF</key>
<integer>0</integer>
<key>PixelEncoding</key>
<integer>0</integer>
<key>Range</key>
<integer>1</integer>
</dict>
 
Well, changing display configuration usually makes the values to revert and you have to start the process all over again. :( So this is not a permanent fix, the problem lies deeper in macOS.

Btw I don't think enabling HDR on a VESA 400 rated display like 27UL850-W makes too much sense (it is not a real HDR display but an SDR display with SDR contrast ratios typical for average IPS panels without mini-led or fald back lighting, that has some HDR decoding capabilities) - especially for desktop use as the only thing that will happen is that the desktop dynamic range will just be compressed (making everything dim and low contrast except the HDR video itself).
 
Well, changing display configuration usually makes the values to revert and you have to start the process all over again. :( So this is not a permanent fix, the problem lies deeper in macOS.

Btw I don't think enabling HDR on a VESA 400 rated display like 27UL850-W makes too much sense (it is not a real HDR display but an SDR display with SDR contrast ratios typical for average IPS panels without mini-led or fald back lighting, that has some HDR decoding capabilities) - especially for desktop use as the only thing that will happen is that the desktop dynamic range will just be compressed (making everything dim and low contrast except the HDR video itself).
Btw I don’t particularly care for your waffle on the monitors HDR performance 🙄. It’s an affordable 4K UHD HDR monitor not an Apple Pro Display XDR! It offers a decent step up from SDR, so I like most people in this thread would like that to function correctly!

Visa Certified DisplayHDR 400

First genuine entry point for HDR.

Significant step up from SDR baseline:

  • True 8-bit image quality – on par with top 15% of PC displays today
  • Global dimming – improves dynamic contrast ratio
  • Peak luminance of 400 cd/m2 – up to 50% higher than typical SDR
  • Minimum requirements for color gamut and contrast exceed SDR
 
Btw I don’t particularly care for your waffle on the monitors HDR performance 🙄. It’s an affordable 4K UHD HDR monitor not an Apple Pro Display XDR! It offers a decent step up from SDR, so I like most people in this thread would like that to function correctly!

Ok, I was just saying in general (not want to offend you personally or degrade your display in any way) that enabling HDR for desktop on these displays simply deteriorates the image quality so it is better not to use it (but it might make sense if you send full screen HDR video to it, but even then it is only marginally better only than not doing it). The 27UL850-W basically has the same panel as its predecessor (the 27UD88-W) and the its peak luminance in HDR mode is only slightly better than the previous generation's in SDR peak brightness (approx. +15%) while the contrast ratio did not change at all (typical for LG's previous generation of IPS panels - 1000:1) so the dynamic range is the same (while the single most important aspects of HDR would be what its name suggests: HIGH dynamic range). It has improvements in other areas (like it has speakers and supports DisplayPort 1.4 and has a slightly updated OSD design). I am not saying that this is a bad display (I have a rather similar LG display myself), just that VESA 400 was kind of made for the sake of the display industry so they can put the HDR badge on some of the existing display designs with minimal investment, so you are still better off using it as an SDR display. And that's ok. Obviously you can't compare these displays to displays that cost 8x as much.
 
For me things were fixed permanently after beta10 but I cannot be entirely sure that this was the cause as I also did a firmware update on the affected Display which might have fixed the issue by updating the EDID information.
 
For me things were fixed permanently after beta10 but I cannot be entirely sure that this was the cause as I also did a firmware update on the affected Display which might have fixed the issue by updating the EDID information.

Interesting, what monitor do you have?
 
LG 27UD88-W. Actually there was an old firmware update that I missed somehow and never installed. Gave it a try. I don't know if this fixed it or beta10 (I suspect the latter), but if it is not fixed for others then the former or it might be something else entirely.
 
LG 27UD88-W. Actually there was an old firmware update that I missed somehow and never installed. Gave it a try. I don't know if this fixed it or beta10 (I suspect the latter), but if it is not fixed for others then the former or it might be something else entirely.

Thanks -- 27UK650 here, which has no USB port and so it doesn't appear to be firmware updatable.

Oddly, first tried your plist soluition, without much luck. But then opening and closing the macbook lid, and suddenly colors are correct on the monitor. It's survived some suspends, but I expect it to revert to the limited range colors after a reboot-- haven't tried that yet. Hoping that Monterey fixes it-- trying the RC public beta ASAP if they come out with that ahead of next week's release, since I'd like to know if using this monitor is viable sooner rather than later to make a decision on moving up to an M1 Pro/Max.
 
Yeah, MonitorControl is such a great app! I love it, highly recommend to everybody, it's a life saver! The new 3.0.0 has amazing features and it works with M1 too. As I see the pace of how Feature Requests are now implemented, soon there will be an other great new release as well.

But please note that MonitorControl won't fix this specific washed out color issue as it is not designed to do so (MonitorControl controls the backlight brightness of the display via DDC/CI). The washed out colors arise from the fact that the new M1 macs tend to misconfigure the RGB range or appropriate color format (YCbCr vs RGB) on some displays and Apple cannot seem to fix this issue (probably the guy who wrote the graphics driver quit Apple or went to work on a different project or something).

---

For future reference here is the ultimate guide to fix the washed out display problem on M1. Tested to work on Monterey as well.

1. Download BBEdit (free)
2. Select the menu option Go » Go to Folder... in Finder
3. Enter ~/Library/Preferences/ByHost (please note the ~ character at the beginning!)
4. Look for the file called com.apple.windowserver.displays.[Very Long UUID].plist
5.
If it exists, delete it!
6. Select the menu option Go » Go to Folder... in Finder
7. Enter /Library/Preferences
8.
Look for the file called com.apple.windowserver.displays.plist
9.
Open the file using BBEdit (Note: a simple text editor will not suffice, since it is a compressed plist file)
10. Here comes the hard part:

Under every <key>CurrentInfo</key> item there is a longer <dict> ... </dict> section. If the resolution in this section seems to match the display with the washed out image (look for items like <real>1440</real> and <real>2560</real> for a display with 2560x1440 resolution for example), then under the closing </dict> you need to copy the following:

XML:
                    <key>LinkDescription</key>
                    <dict>
                        <key>BitDepth</key>
                        <integer>8</integer>
                        <key>EOTF</key>
                        <integer>0</integer>
                        <key>PixelEncoding</key>
                        <integer>0</integer>
                        <key>Range</key>
                        <integer>1</integer>
                    </dict>

You might need to do this in server places. You don't have to copy this block to items that DO NOT start with <key>CurrentInfo</key> but with other stuff (like <key>UnmirrorInfo</key>). Also you shouldn't have to copy this to items which belong to properly working displays, but it won't really hurt if you do.

Also it might be, that this section is already present but with different values (Big Sur usually places this section but with wrong values, Monterey tends not to place this section) - like the number under PixelEncoding might be 1 or the value under Range might be 0. If this is the case, then you need to correct these values to look like the example above.

11. Save the file
12. Reboot

If things went well, then the screen should have proper colors.

Here is an example of a properly fixed com.apple.windowserver.displays.plist file:



Hope this helps!
I got an LG 27UN850 yesterday for my Macbook Air M1. I was having an issue with a washed out display which I only noticed after tinkering with MonitorControl. Specifically, it happened on the LG screen when I was using sidecar with my iPad pro. When I disconnected sidecar, the display went back to normal. But if I enabled sidecar, it went back to being washed out. Anyway i found this thread after googling the issue, and your above fix worked for me so far (fingers crossed). I’m running Big Sur until someone confirms that custom resolutions in SwitchRes works on Monterey.

Also, I agree that this display is much better with HDR off.
 
Also, I agree that this display is much better with HDR off.
Yeah, all those fake HDR 400/600 specifications are lame, because you can't get really deep blacks and precise local dimming with regular IPS panel. You need OLED or miniLED/FALD display for real HDR, otherwise you will only burn your eyes with unnecessary high full screen brightness and see ****** oversaturated colors and washed out blacks.

Software tone-mapping HDR->SDR looks much better than trying to watch it in fake HDR mode.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.