4

External Monitor Color Space, Part 2: Big Sur

 3 years ago
source link: https://spin.atomicobject.com/2021/01/17/external-monitor-color-space-part-2-big-sur/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

As of MacOS 11, it’s still possible to override your display’s EDID in order to force RGB mode when you get a problematic YCbCr connection, at least on Intel macs. Here’s how.

Background

A couple of years ago, I wrote about a strange problem I encountered when I upgraded my Mac: my external display’s image looked terrible. It turned out that my new Mac was using the wrong color space, but there was a workaround to force it back into RGB.

I no longer have the problematic monitor, but the post still receives a fair amount of traffic, so I wanted to check if the procedure still works. To help anyone landing here in 2021, I set out to answer a few questions:

1. Is it still a problem?

I think so. I first encountered the issue on MacOS 10.13 (High Sierra). Comments on the original post suggest that the workaround was necessary (and successful) on 10.14 (Mojave) and 10.15 (Catalina). Googling around, I see evidence that people are still trying to force RGB on MacOS 11 (Big Sur), and that the previous version of the workaround no longer works.

2. Is it still possible to perform the workaround?

Fortunately, yes! With one small change.

One thing that made the old workaround so absurd was that you had to bend over backward to write to the protected /System directory. Since then, Apple has continued to tighten security, and it’s no longer practically possible.

Though MacOS’ built-in overrides still live there — specifically, in /System/Library/Displays/Contents/Resources/Overrides — it’s not necessary to put your new overrides there. Instead, you can put them in /Library, and you don’t even have to use recovery mode to write them. Just sudo.

As with the old workaround, I don’t deserve any credit for this discovery. I learned about it from this developer.apple thread.

For more specifics on Big Sur’s changes to MacOS’ System volume, see Ars Technica.

3. Does the workaround still fix the issue?

I can’t say firsthand, since I no longer have the problematic monitor. But I see reports of success (here and here), so I’m going to go with “yes.”

Well, it works on Intel Macs. Unfortunately, it looks like the workaround doesn’t work on M1 macs.

The Steps

As of MacOS Big Sur, here’s how to override your display’s EDID to force RGB mode:

  1. Connect the problematic display.
  2. Download and run patch-edid.rb, and take note of the directory it produces (e.g., DisplayVendorID-10ac).
  3. Create the new overrides directory: sudo mkdir -p /Library/Displays/Contents/Resources/Overrides.
  4. Copy in your new override: sudo cp -R DisplayVendorID-10ac /Library/Displays/Contents/Resources/Overrides/.
  5. Disconnect and reconnect the display (no reboot necessary!).

The End of the Road

I hope that this post is useful for anyone dealing with this now several-year-old problem on Big Sur. This may be the last hurrah for overriding EDIDs on MacOS, though, if Apple doesn’t decide to make it work on ARM Macs in the future.

If you’re in this unenviable position — a problematic display with an M1 Mac — you might have no choice but to shop for a new monitor. Or, if you’re really motivated, perhaps look into solving the problem in hardware with an EDID emulator.

Appendix 1: Other Things You Can Override

While investigating the status of this issue on Big Sur, I tried the displays around my house (three monitors and a TV), and none of them suffered from the color space issue.

So I set out to look for evidence of other fields MacOS respects in an overridden EDID. I found one that was interesting: display dimensions.

I learned that if you lie about the screen size (bytes 21 and 22 of the EDID), MacOS will dutifully report the false numbers and may also enable the Underscan adjustment (typically meant for TVs) in display settings:

edid-override-size.png

Do you see anything else in the EDID table that might be useful to override?





About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK