I believe it is possible to disable Dithering on Mac Os for Intel Video card (I'm using MacBook pro 2018 with Intel UHD Graphic 630).
I was researching driver's code via decompiler and found some interesting configuration parameters.
At first, I recommend looking at what kexts are loaded. This can be done using kextstat | grep Intel
command.
Here is my output:
https://ibb.co/tCDQKMY
I believe that the underlying issue lays one of the *Framebuffer.kext files, decompiled code for mine com.apple.driver.AppleIntelCFLGraphicsFramebuffer
looks like:
https://ibb.co/8YGC1Wh
AppleIntelFramebufferController::getFeatureControl
method seems to load data from underlying Info.Plist
All you need to do in order to disable dithering is simply add a new parameter to the section
IOKitPersonalities->AppleIntelFramebufferController->FeatureControl
in file /System/Library/Extensions/AppleIntelCFLGraphicsFramebuffer.kext/Contents/Info.plist
Right-click on FeatureControl
section in the xcode, and new Number
parameter.
name: DitherDisable
value: 1
Here are the contents of my Info.Plist file (with new parameter included):
https://ibb.co/dgqK0MS
Side note: in order to actually make changes to plist inside kext, you need to disable security protection
https://apple.stackexchange.com/a/251559/320465
In short, reboot mac, holding Command+R until recovery utility is loaded.
Open terminal there (from top menu), and type:
csrutil disable
Restart your mac normally. Now you need to add more permissions to be able to edit that file:
cd /System/Library/Extensions/AppleIntelCFLGraphicsFramebuffer.kext/
sudo chown $USER Contents/
cd Contents
sudo chown $USER Info.plist
Edit plist file as shown above in xcode.
Then I'd like to return file ownership back to root user:
sudo chown root Info.plist
cd ..
sudo chown root Contents/
Let me know if your eyes are better now. For me it seems to help a lot, but need few days.
Here is proof that colors are different after fix (banding appeared on intel):
https://ibb.co/pR807tD
https://ibb.co/PY4PZ71
Note: this will only work for Intel as for now. To check active video card - use activity monitor->Energy tab
I was trying to apply similar fix for integrated AMD video card, but stuck on apple logo screen.