Skip to content

Instantly share code, notes, and snippets.

@GetVladimir
Last active December 31, 2024 10:19
Show Gist options
  • Save GetVladimir/c89a26df1806001543bef4c8d90cc2f8 to your computer and use it in GitHub Desktop.
Save GetVladimir/c89a26df1806001543bef4c8d90cc2f8 to your computer and use it in GitHub Desktop.
Force RGB Color on M1 Mac

Force RGB Color on M1 Mac

How to Force RGB Color Output instead of YPbPr on your M1 Apple Silicon Mac for an External Monitor.

This step-by-step video tutorial will guide you through the procedure of forcing RGB color output on your M1 Mac.

Force RGB Color on M1 Mac

Here is the direct link to the video tutorial: https://www.youtube.com/watch?v=Z1EqH3fd0V4

The video also has Closed Captions (Subtitles) that you can enable, to make it easier to follow if needed.



Please note that you're doing any changes on your own risk.

Terminal commands used in the video

Here are each of the Terminal commands mentioned in the tutorial, so that you can just copy and paste them:

open /Library/Preferences

plutil -convert xml1

plutil -convert binary1

plutil -lint



The step-by-step procedure on how to force RGB Color Output on M1 and M2 based Macs with Terminal commands

  1. Open Terminal and use this command to make Finder select the displays plist file:
    open -R /Library/Preferences/com.apple.windowserver.displays.plist

  2. Drag and drop the com.apple.windowserver.displays.plist file to Desktop manually. Don't use the cp command, as it won't add your current user with writing privileges.

  3. Convert the file to XML:
    plutil -convert xml1 ~/Desktop/com.apple.windowserver.displays.plist

  4. Open the converted file with the default plain text editor (avoid using the built-in TextEdit app if possible, since it might modify the file and make it unreadable by the system)
    open -t ~/Desktop/com.apple.windowserver.displays.plist
    or
    open -a CotEditor.app ~/Desktop/com.apple.windowserver.displays.plist

  5. Copy and paste the missing LinkDesription Key under the current display (check the screenshot below for an example of how it should look like):

				<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>
  1. Save the file and then convert it to binary again:
    plutil -convert binary1 ~/Desktop/com.apple.windowserver.displays.plist

  2. Check if the plist file is valid:
    plutil -lint ~/Desktop/com.apple.windowserver.displays.plist

  3. Open the /Library/Preferences/ folder again:
    open /Library/Preferences/

  4. Drag and drop the updated com.apple.windowserver.displays.plist file from Desktop to the Library folder manually. Don't use the cp command, as it won't add your current user with writing privileges.

  5. Right Click on the com.apple.windowserver.displays.plist file in the Library folder and click on Get Info

  6. Check the boxes for Stationery and Locked.

  7. Reboot the Mac.

That's it!



(Alternative) Terminal commands to force RGB Color Output on M1 and M2 based Macs and workaround for losing RGB color after waking up from sleep

  1. Open Terminal

  2. Paste the following commands to edit the User's displays plist file com.apple.windowserver.displays.[UUID].plist using the built-in PlistBuddy function in macOS:

/usr/libexec/PlistBuddy -c "add DisplaySets:Configs:DisplayConfig:DisplayConfig:DisplayConfig:LinkDescription:BitDepth integer" ~/Library/Preferences/ByHost/com.apple.windowserver.displays.*.plist
/usr/libexec/PlistBuddy -c "set DisplaySets:Configs:DisplayConfig:DisplayConfig:DisplayConfig:LinkDescription:BitDepth 8" ~/Library/Preferences/ByHost/com.apple.windowserver.displays.*.plist
/usr/libexec/PlistBuddy -c "add DisplaySets:Configs:DisplayConfig:DisplayConfig:DisplayConfig:LinkDescription:EOTF integer" ~/Library/Preferences/ByHost/com.apple.windowserver.displays.*.plist
/usr/libexec/PlistBuddy -c "add DisplaySets:Configs:DisplayConfig:DisplayConfig:DisplayConfig:LinkDescription:PixelEncoding integer" ~/Library/Preferences/ByHost/com.apple.windowserver.displays.*.plist
/usr/libexec/PlistBuddy -c "add DisplaySets:Configs:DisplayConfig:DisplayConfig:DisplayConfig:LinkDescription:Range integer" ~/Library/Preferences/ByHost/com.apple.windowserver.displays.*.plist
  1. Reboot your Mac

(Workaround) If your Mac loses RGB color after waking up from sleep mode, either Reboot your Mac (recommended) or use this Terminal command to stop the WindowServer and login again (not recommended):

sudo killall -HUP WindowServer



End result

The end result is having your M1 mac output RGB color to your external monitor instead of YPbPr, potentially making the colors more accurate and the text a bit more crisp, even on older 1080p monitors.

Hopefully this tutorial would be useful to someone.

Please feel free to ask in the comment section if you have any questions regarding this procedure.



Background

While doing a lot of testing on how the Dual-Cable workaround makes RGB to work on M1, I've discovered what changes it makes to macOS, and managed to create a more streamlined workaround without the need to use a second cable.

To make things easier, I've created a step-by-step video tutorial of the whole procedure that should force RGB color output on your M1 Mac connected to an external monitor, and works on an HDMI-to-HDMI cable connection.

Credits

Big thanks goes to the amazing community and all their help over the years to solve issues like this:
https://gist.github.com/ejdyksen/8302862
https://gist.github.com/adaugherity/7435890

Useful Sources

Apple Open Source Project Files for Displays and Graphics
https://opensource.apple.com/source/IOKitUser/IOKitUser-1445.60.1/graphics.subproj/IODisplayLib.c
https://opensource.apple.com/source/IOGraphics/IOGraphics-517.17/IOGraphicsFamily/IOFramebuffer.cpp.auto.html

How to Edit and Convert binary plist files
http://hints.macworld.com/article.php?story=20050803111126899
https://apple.stackexchange.com/questions/155393/how-to-beautify-binary-dict-files
https://discussions.apple.com/thread/1768480

How to Edit plist files using defaults and PlistBuddy
https://ss64.com/osx/defaults.html
https://github.com/mathiasbynens/dotfiles/blob/master/.macos

Apps based on this method

@sudowork has created an awesome script written in Phyton that automates the steps and checks for duplicate files.
You can find more info about it here: https://github.com/sudowork/fix_m1_rgb

@dangh has created an alernative script for fishshell.
You can find more info about it here: https://github.com/dangh/force-rgb.fish

@GetVladimir I've also created a Shortcut to Force RGB Color Output using the built-in Shortcuts app.
You can find how to create the Shortcut here: https://gist.github.com/GetVladimir/c89a26df1806001543bef4c8d90cc2f8?permalink_comment_id=4531552#gistcomment-4531552

@entropyconquers has created a script based on this method written in Phyton that automates the steps, makes a backup and checks for duplicate files.
You can find more info about it here: https://github.com/entropyconquers/Force-RGB-Color-on-M1-M2-Mac-Script

Additional notes

Multiple PixelEncoding and Range keys in the same plist file
Note that there might be multiple instances of the PixelEncoding and Range keys in the same file, one for each output of your monitor and for different AirPlay devices. You might need to update the integer on each one to get RGB color output on all displays.

Getting RGB color only before login
There might be multiple duplicate plist files with the same name in different locations.

Make sure that you only have the main modified file in:
/Library/Preferences

Then make a backup and remove duplicate displays plist files from these locations (if any):
~/Library/Preferences
or
/Users/username/Library/Preferences
and
/Users/username/Library/Preferences/ByHost


Please note that you'll need to have administrator privileges in order to modify the file in /Library/Preferences. Thanks goes to @keegandent and @StrategicalIT for pointing this out.

Updates regarding macOS Monterey

USB-C to DisplayPort
From what I've seen, it seems that macOS Monterey 12.0.1 finally outputs RGB color by default on some monitors when using USB-C to DisplayPort cable on M1 Apple Silicone Macs.

You might need to make a backup and delete these 2 files:
/Library/Preferences/com.apple.windowserver.displays.plist
and
/Users/yourname/Library/Preferences/ByHost/com.apple.windowserver.displays.[UDID].plist

Restart your Mac and it should properly output RGB color on the monitor on the next boot.

HDMI to HDMI
The situation with HDMI seems to got a bit more complicated. Now the whole section for the LinkDescription might be missing from the com.apple.windowserver.displays.plist on a clean install and doesn't seem to be recreated when rotating the screen either.

Luckily, the solution still works, but you might need to manually add this whole section in the displays plist file:

					<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>



The section usually goes right under the CurrentInfo key, and it should look something like this:

pixelencoding

This should get your RGB color output working on M1 Mac mini, even when connected with HDMI to HDMI cable.

Multiple monitors when one them is using HDMI to HDMI
Additional thanks goes to @somogyi-ede who tested this with multiple monitors and confirmed that the LinkDescription key needs to be added under each monitor instance in order for all of them to receive RGB color output. Link to the comment

Updates regarding macOS 13 Ventura

USB-C to DisplayPort
The macOS 13 Ventura beta seems to outputs RGB color by default on some monitors when using USB-C to DisplayPort cable on M1 Apple Silicone Macs.

You might need to make a backup and delete these 2 files:
/Library/Preferences/com.apple.windowserver.displays.plist
and
/Users/yourname/Library/Preferences/ByHost/com.apple.windowserver.displays.[UDID].plist

Restart your Mac and it should properly output RGB color on the monitor on the next boot.

HDMI to HDMI
Similar as macOS Monterey, the situation with HDMI on macOS Venturs seems a bit more complicated. Usually the whole section for the LinkDescription might be missing from the com.apple.windowserver.displays.plist on a clean install and doesn't seem to be recreated when rotating the screen either.

Luckily, the solution still works, and you still need to manually add this whole section in the displays plist file:

					<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>



The section usually goes right under the CurrentInfo key, and it should look something like this:

pixelencoding

This should get your RGB color output working on M1 Mac mini, even when connected with HDMI to HDMI cable.

(Optional) Lock the plist file and set it as stationary
After the macOS Ventura 13.3 update, the plist file seems to get overwritten on reboot.

After you make the edits in the file, you can try setting the file /Library/Preferences/com.apple.windowserver.displays.plist as Stationery pad and Locked, so that it doesn't get overwritten on every reboot

Stationery Pad Locked

To do this, right click on the plist file, click on Get Info and check the boxes next to Stationery pad and Locked

This requires further testing and might cause some issues, like not being able to remember new resolutions or display settings. Please note that you're making any changes at your own risk.

Updates regarding macOS 14 Sonoma Beta

USB-C to DisplayPort
The macOS 14 Sonoma seems to outputs RGB color by default when using USB-C to DisplayPort cable.

HDMI to HDMI
The macOS 14 Sonoma seems to outputs YCbCr color by default when using HDMI to HDMI cable.

  • Forcing RGB Color Output still seems to work with the original procedure of modifying the plist files

  • Modifying the display plist files still works with the alternative version

  • After the plist files are modified, putting the Mac to sleep and waking it, it seem to keep the RGB Color output (this seems to be fixed at least on a M1 Mac mini)

If you have any additional questions, please feel free to contact me.

@wdormann
Copy link

wdormann commented Feb 8, 2023

In my experience (USB-C to Displayport cable, M1 Macbook), this trick (editing the com.apple.windowserver.displays.[UDID].plist file) works when the Mac is first booted. The OSD on my monitor will show whether it's RGB or YPrPb. However, if I unplug the monitor and plug it back in again, or if I let the Mac put the display to sleep, when it comes back up again, it's back to YPrPb mode. I have to reboot to get back to RGB mode.

  1. Is there any way to make this change persistent across sleep/unplug cycles?
  2. Why on earth would Apple be preferring a YPrPb colorspace on a DISPLAYPORT connection? Unless the choice of USB-C to Displayport has some effect on how the display connection presents itself to the computer? I see no HDR option in my Mac settings, FWIW.

@GetVladimir
Copy link
Author

@wdormann Thank you for your comment.

  1. Yes, it seems to be a known issue with the recent macOS versions. Earlier versions didn't have a problem when going to sleep/reconnecting the monitor. At the moment, there doesn't seem to be a workaround for this other than restarting
  2. Good question. USB-C to DisplayPort should always default to RGB color output. Unless there is a Dock or Adapter in the middle that alters the connection, it's very likely a bug in macOS

@traderdude123
Copy link

traderdude123 commented Feb 9, 2023

Hi All,

Where do I begin, I am currently running a Hackintosh with 6800 XT connected to my LG CX. I am using DP 1.4 to HDMI 2.1 adapter and let me tell you the colours are fantastic. So natural and wonderful. I am able to get RGB or YCBCR with EDID override method with the Hackintosh. Both RGB and YCBCR give same colours and looks fantastic.

Recently, bought the new Mac book pro M2 16 inch with has a HDMI 2.1 port. Sure enough connected to the LG CX and let me tell you I have tried every method mentioned here in this thread and I am not able to force RGB. with hdmi 2.1 on Mac book pro connnected to LG CX, the colours look washed out and complete shit. I am able to get 4k/120hz/RGB/10 bit here. note the 4k = 1080p retina resolution.

Text is nice , but colours are total shit.

So I got a USB-C to HDMI 2.1 8k adapter , and with this I am not even getting 10 bit color no matter what I do. I tried changing bit depth in the com window server plist file with correct display ID , no luck. Everytime I make a change and reboot , it just gets overridden. I always get YCBCR422 8b. This makes colours look bad and text is crisp and still not good enough.

BTW I m on Ventura 13.2 both on Hackintosh and Mac book pro M2.

Somehow I feel the AMD 6800 xt is giving better colours than the M2 GPU. But this requires more testing to confirm. Even with hdmi 2.1 full bandwidth on the Mac book pro m2 connected to LG CX, the colours are washed out.

Anyone have these kind of issues and observations , please share.

Till today no proper support for external displays from apple. For a trillion dollar company , that is abysmal.

@traderdude123
Copy link

@GetVladimir Thanks for this tutorial and putting in all the work to find a solution. Unfortunately, my Macbook Pro M1 connected to an LG C2 42" OLED TV does not respond to any of the suggestions. In the plist file (only one of them existing in the main /Library/Preferences folder, and not separate one in the user preferences folder) there are a list of like 12 DisplayConfig sections each with different UUIDs, and each with a section that does not contain the LinkDescription section you suggest be added. Do you think I should add that snippet of config to each section as a next step? Or is there a way to determine which one to add it to? I did add that snippet to the top section as your screen shot shows, but it did not work. I am connecting using USB-C to HDMI (no DisplayPort on the TV). Thanks!

UPDATE: @GetVladimir I ended up finding a plist file in the user preferences folder that was in the format of "com.apple.windowserver.displays.[UUID].plist" that somehow I had not noticed. After removing this file, the TV reported that it was displaying RGB color! The only other issue I now need to figure out is how to enable the 60Hz mode in Display Preferences, as it currently only shows 30, 25, and 24Hz.

I m not able to find the com.apple.windowserver.displays.[UUID].plist in the /Library/Preferences. I searched the entire system. cannot find this file. How does this file get generated?

@GetVladimir
Copy link
Author

@traderdude123 Thank you for your comment.

Yes, it's very weird that this is still an issue with Macs, while RGB color output is the default on everything else.

Regarding the plist file that needs to be modified, you can find it in either /Library/Preferences/com.apple.windowserver.displays.plist
or
/Users/yourname/Library/Preferences/ByHost/com.apple.windowserver.displays.[UDID].plist

Please note that the plist file only gets generated on Apple Silicon based Macs.

The x86 based Macs don't have this file and use the display Override files instead.

@traderdude123
Copy link

traderdude123 commented Feb 9, 2023

Some good news, the latest Better Display app has the ability to edid override for apple silicon. Finally, this is huge upgrade.

Now I m able to get full 10 bit RGB with HDR on my Mac book pro m2 after edid override.

My observations

All TV settings were set the same for both AMD 6800 XT and apple GPU.

with Apple GPU , with hdmi 2.1 4k@120hz / 10 bit / RGB / HDR , the colors were dull compared to the AMD 6800 XT.
with Apple GPU , USB-C to hdmi2.1 , I could only get 10 bit RGB 4k @ 30hz , but the colours were still dull compared to the AMD 6800 XT.

I tried the best to calibrate the TV with Apple M2 GPU to match the AMD 6800 XT output , but no go. The colors are simply dull and dark with low brightness compared to AMD 6800 XT.

This leads me to believe that Apple's M2 GPU drivers still need work. Still very disappointing and sad that apple M2 GPU comes no where near to output color quality of AMD 6800 XT.

I was planning to buy the M2 Mac mini based on my test results , but that is a no go now.

@GetVladimir
Copy link
Author

@traderdude123 that is interesting news indeed.

Try setting up your color output to be RGB but without HDR. This might solve the issues with the dull colors on Apple Silicon based Macs.

@traderdude123
Copy link

@GetVladimir

But isn't that like a downgrade?

@GetVladimir
Copy link
Author

@traderdude123 if the colors are better without it, then not really. macOS UI is not really made for HDR anyway at the moment, so you're not loosing much. Usually, it mostly affects videos and games, and only the ones that support it.

@traderdude123
Copy link

traderdude123 commented Feb 9, 2023

@GetVladimir

you were right about not enabling HDR on apple silicon Macs.

After a lot of testing and calibration , I managed to get the same output as my 6800 XT.

Thanks a lot for the suggestion.

So on apple silicon Macs, HDR gives washed out colours. but on 6800 XT , HDR works correct. This means it's a GPU driver issue in MacOS.

I also had to tweak a lot with color profiles to match the 6800 XT output , but its doable.

Also, very important point to note on the m2 Macs that only HDMI 2.1 port can give you 4k/120hz/RGB/10 bit.
on the usb-c to HDMI 2.1 adapter , i can get 10 bit color at 30hz only. if I go above it , it switches to 8 bit color. probably due to limited bandwidth on the usb-c port.

@GetVladimir
Copy link
Author

@traderdude123 thank you so much for the update and for the details.

I'm glad that you got a decent RGB color output without HDR

@traderdude123
Copy link

traderdude123 commented Feb 9, 2023

But another issue I m facing now is with text.

Text is a bit hard to read without hdr.

edit: Disabled font smoothing. Slightly better to read now.

@GetVladimir
Copy link
Author

@traderdude123 You might need to look into enabling HiDPI for the text clarity or to remove any font smoothing changes that were might have been applied earlier

@traderdude123
Copy link

oh never mind. Its fine. Display reverted back to YCBCR after rebooting. you will need to auto enable uploaded edid in better display app.

Text is crisp and fine in RGB 10 bit, but not in YCBCR 10 bit.

@traderdude123
Copy link

For anyone interested , if you have a LG OLED display and want to use it with M2 Mac. use the following settings with M2.

  1. use RGB mode. Do not use YCBCR as text is hard to read.
  2. use DCI-P3 color profile for LG OLEDs. for best image calibration. Do not use other profile including the LG TV SSCR2 profile created by default. DCI-P3 color profile is built in and a standard.
  3. adjust the brightness and color of you TV as per your room lighting.

You will probably have to buy the better display app to keep the edid override settings.

@waydabber
Copy link

Hi guys, here is a brief step by step on how to force RGB with EDID override on Apple Silicon:

waydabber/BetterDisplay#1473 (comment)

Somewhat related, an other example of how to use EDID overrides on Apple Silicon is to force 4K@120Hz with an external HDMI 2.1 dongles on M1 Macs:

https://forums.macrumors.com/threads/mac-mini-4k-120hz.2267035/post-31952813

As @traderdude123 pointed out, EDID overrides is somewhat different on Apple Silicon, it is not applied as a display override like in the past but requires active involvement from an app to apply the new EDID (communicate it to the DCP) and reconnect the display with it - so if you want to enjoy the benefits you'll need to set BetterDisplay to auto start and also enable Automatically apply custom EDID upon detection of this display in the app. The positive of this is that the EDID can be applied on the fly and the factory EDID can be reapplied any time also on-the-fly, so it's super easy to experiment with various settings and EDID mods, no need to reboot all the time like on Intel - it literally takes about a second to apply the new EDID (the app will disconnect and reconnect the display briefly).

@GetVladimir
Copy link
Author

@waydabber thank you so much for the comment and for the additional info.

I'm glad that applying EDID on-the-fly is now an option

@Viktor-Osika
Copy link

Viktor-Osika commented Feb 10, 2023

Thanks @waydabber it works! I just followed your steps and edited the EDID.
I can finally have RGB output without restarting every time I unplug my display or put my mac to sleep!

Now only if there was a way to bring back subpixel font smoothing...

@LetrixZ
Copy link

LetrixZ commented Feb 10, 2023

Hi guys, here is a brief step by step on how to force RGB with EDID override on Apple Silicon:

waydabber/BetterDisplay#1473 (comment)

Is there any way to do it manually without BetterDisplay to check if it looks different? The trial just ended today.
I have a Gigabyte G27Q and have no way to check if it's using RGB or YPbPr.

@waydabber
Copy link

Hi @LetrixZ - for a configuration based approach @GetVladimir's solution is the way to go. The method for EDID override that worked on Intel (simply adding a display override configuration item) does not work on Apple Silicon, there is only a rather convoluted programmatic solution to the problem (there might be other ways of course that I am not aware of, but might be discovered in the future, or Apple may add a configuration based solution in the future). Vladimir's solution should yield the same result in terms of forcing RGB as the EDID override approach so if you want to see if there is any difference with your display, why not do that?

@traderdude123
Copy link

traderdude123 commented Feb 14, 2023

I m still facing the text fringing issue. It the same over DP and HDMI and also YCBCR or RGB makes no difference.

1080p HiDpi - Text is fine.
anything about 1080p HiDpi , text is not clear and fringing on my LG CX(4k) OLED. I believe that Apple removed the sub pixel rendering.

Windows has some tools to fix this i believe, but what about MacOS.

After googling, it looks i m stuck with 1080p resolution.

Does anyone have any solution to this problem?

Edit: I used the same hdmi 2.1 cables and DP1.4 Adapters to check with my hackintosh with 6800 XT. At 1440p HiDPi , there is NO TEXT FRINGING.

So clearly this is now an issue between intel and apple silicon Macs.

I hope someone can find a fix.

Latest Edit: I finally found the issue with text fringing on higher resolution. This was happening due to gamma. I adjusted the gamma and now i get clear and proper text at higher resolution(1440p HiDpi and above) on Apple Silicon. Although this gamma issue is not there in Intel/Hackintosh Macs.

So anyone reading this and has a text rendering issue , please check you gamma with external monitors.

@traderdude123
Copy link

Another observation and reporting.

I cannot believe the issues apple has created with M Series chips.

The M Series connected to External monitors use 24 bit by default. Switchres and http://www.lagom.nl/lcd-test/display_settings.php both confirm this.

The same test in my hackintosh gives billions of colors in switchresx. But M chips dont.

I had to enable hdr to get 10 bit mode.

you can test 10 bit mode here only http://www.lagom.nl/lcd-test/display_settings.php.

The 24 bit mode was giving dull and dark colors on my desktop. After enabling hdr , the colors were correct on the UI.

I wished apple stuck with intel instead of making their own chips.

@GetVladimir
Copy link
Author

@traderdude123 Thank you for your comment and for the additional info.

Please note that the color output is also not correct on x86 based Macs by default. They still require a display override or using Bootcamp in order to display RGB color output over HDMI. The issue seems to be more with macOS and the software.

Perhaps someone that has tested Asahi Linux on M1 based Macs can confirm if the color is also fixed with the software.

@traderdude123
Copy link

@GetVladimir

Yes, M2 feels like a downgrade.

LG TV shows 10 bit RGB, but macos is sending 24bit True colors(million colors).

if i enable HDR, i get 30bit(billion colors) , but then colors are washed out.

This is very bad.

@Jasshl
Copy link

Jasshl commented Feb 17, 2023

Hi All,

Where do I begin, I am currently running a Hackintosh with 6800 XT connected to my LG CX. I am using DP 1.4 to HDMI 2.1 adapter and let me tell you the colours are fantastic. So natural and wonderful. I am able to get RGB or YCBCR with EDID override method with the Hackintosh. Both RGB and YCBCR give same colours and looks fantastic.

Recently, bought the new Mac book pro M2 16 inch with has a HDMI 2.1 port. Sure enough connected to the LG CX and let me tell you I have tried every method mentioned here in this thread and I am not able to force RGB. with hdmi 2.1 on Mac book pro connnected to LG CX, the colours look washed out and complete shit. I am able to get 4k/120hz/RGB/10 bit here. note the 4k = 1080p retina resolution.

Text is nice , but colours are total shit.

So I got a USB-C to HDMI 2.1 8k adapter , and with this I am not even getting 10 bit color no matter what I do. I tried changing bit depth in the com window server plist file with correct display ID , no luck. Everytime I make a change and reboot , it just gets overridden. I always get YCBCR422 8b. This makes colours look bad and text is crisp and still not good enough.

BTW I m on Ventura 13.2 both on Hackintosh and Mac book pro M2.

Somehow I feel the AMD 6800 xt is giving better colours than the M2 GPU. But this requires more testing to confirm. Even with hdmi 2.1 full bandwidth on the Mac book pro m2 connected to LG CX, the colours are washed out.

Anyone have these kind of issues and observations , please share.

Till today no proper support for external displays from apple. For a trillion dollar company , that is abysmal.

Do you have RGB + 4k 120hz with your hackintosh? If so could you share exactly how you made that work? I am trying to accomplish the same thing with rx 6600 but have been unsuccessful so far.

@traderdude123
Copy link

@Jasshl

With hackintosh (6800XT) i m using DP1.4 to HDMI 2.1 adapter. I m only getting 4k/60/10bit/RBG. I m on 13.2 on hackintosh.

@traderdude123
Copy link

traderdude123 commented Feb 17, 2023

@GetVladimir

I finally found a fix for LG OLED.

The issue was with color cablibration. I switched to Rec2020-rec1886.icc profile downloaded from the color.org. The UI is now showing proper colors and also did gradient test from Lagom LCD Test Webpage. The profile gives better contrast and smoother gradients.

The BT2020 profiles that comes built in with macos give very muted colors with LG OLDED.

The Rec2020-rec1886.icc corrected the colors and gamma.

I m now getting a xrite colorimeter to better build a color profile for my LG OLED.

The text is also very smooth and readable now at higher resolutions.

Getting 4k/120/10bit was a big hurdle , but getting the correct color profile with LG OLEDs is EQUALLY important, otherwise there is no benefit of higher refresh rates or resolution.

Also disabling font smoothing gives very clear and crisp text.

@GetVladimir
Copy link
Author

@traderdude123 thank you for the update and the suggestion regarding the custom profile.

That is an interesting workaround, but please note that if the signal itself is not RGB, the colors will not be accurate, regardless of which color profile you use. They might look better though.

Let us know how it goes with the color calibration

@traderdude123
Copy link

@GetVladimir

Signal is RGB. I have the M2 MacBook Pro with hdmi 2.1 port. I m getting 4k/120/10bit/RGB on my LG CX using the EDID modification method.

Now , the issue is with color calibration, since none of the profiles that come with macOS will correctly match LG OLEDs. you can use reference icc profiles like the one I mentioned , but looks like I have to calibrate it to get the best out of the display.

Will let you know how the calibration goes.

@GetVladimir
Copy link
Author

@traderdude123 awesome that it's already RGB. Thank you so much, I'm curious to know how it will work

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment