New attempt to disable dithering on M1/M2 chipsets
Thank you, NewDwarf !
I entered your command (MacBook Air M2).
Command
log show --predicate "processID == 0" | grep Dither
shows that:
2023-01-24 01:31:52.026676+0300 0x41b9 Default 0x0 0 0 kernel: (Sandbox) System Policy: nvram(3507) allow boot-arg-set iomfb_force_block_Dither
Need time for testing.
Is there any way to further check that dithering is off?
Display mode will remain 10 bit?
- Edited
thanks @NewDwarf, ive been following this intently. I just tried to new command. will report back tomorrow morning. Usually notice the dithering feeling then. Is there a way to check if the command was run in terminal?
Edit: just ran the command and rebooted and a swear the screen looks better/different running the same sRGB IEC61966-2.1 profile. Was wondering, in a P3/sRGB example image like this one https://webkit.org/blog-files/color-gamut/comparison.html. Obviously if I keep my sRGB IEC61966-2.1 profile I shouldn't be able to see the differences in the image. Now, if I run the command and set the profile to P3 display, should it still mimmic 8 bit color and prevent me from seeing the differences? When I it now, P3 profile and the above dithering command run and rebooted, im still seeing the differences in the images.
edit 2: I had previously disabled “csrutil disable” in recovery mode when trying the original method you posted. was wondering if I could re-enable “csrutil" after entering this command?
At this point I'm honestly hoping for a OLED MBP in 2023/2024. Even if it PWMs at 99% brightness and under, I would be fine to keep it at 100% and used third part/OS tricks to dim the display, assuming it was a true 10(or 12) bit display there for no dithering. I can use I phone X thru 12 at 100% brightness no problem, acutely my preferred device, dim it at all and the PWM starts and its a no go. iPhone 13/14 PWM at 100% and could feel it in the store almost immediately. Also, my 2020 MBP M1 is fine hooked up to one or more external monitors, however when I airplay via my Apple TV 4K on my Samsung 2017? 65" LCD TV, It'd not as bad as the MBP screen but here is some dithering or font smoothing or something that I notice being slightly irritating afterwards. Nowhere near like looking at the actual dithering M1 screen.
All that being said it seems like they could make it DC dim like any of these new OLED TVs that DC dim with just a slight dip in brightness every 8ms that coincides with the refresh rate and not full PWM. Although, I haven't spent much time in front of one of these, sounds good in theory though..
- Edited
I tried the command line above after partly disabling SIP on my MBA M1 2020 system (in recovery mode terminal: csrutil enable --without nvram).
When running the log command after reboot I also see the confirmation, that the boot parameters where somehow at least read into the system:
2023-06-02 12:11:35.698427+0200 0x2676 Default 0x0 0 0 kernel: (Sandbox) System Policy: nvram(1001) allow boot-arg-set iomfb_disable_dfr_display
2023-06-02 12:11:35.698431+0200 0x2676 Default 0x0 0 0 kernel: (Sandbox) System Policy: nvram(1001) allow boot-arg-set iomfb_force_block_Dither
Since I was not sure if this changes anything, I looked with a hand Microscope (up to 60x magnification) on the pixels and also filmed it with 240fps slow motion with my iPhone with and without this option. In both cases I saw no flicker on the pixels.
It looked in both cases like in this video from Notebookcheck, where they also found no temporal dithering on MBA M1 devices.
MacBook Air M1 Temporal Dithering Test
In contrast they found temporal dithering on iPad Pro 11" M2 devices with same method.
Apple iPad Pro 11" 2022 M2 Temporal Dithering
I also looked with the tool AllRez from github into the Display and grafics values on my M1.
In both cases that tool read out that dither is enabled (enableDither = true ?) what is in contrast to what Notebookcheck and I saw under the Microscope (but maybe we have a systematic problem how we look for it ?).
Here the AllRez output:
IOMobileFramebuffer: /AppleARMPE/arm-io@10F00000/AppleT810xIO/dispext0@70000000/AppleCLCD2 = {
IOMobileFramebuffer 0x5317 = {
IOMFBTemperatureCompensationEnable = false;
enableDither = true;
PDCSaveRepeatUnstablePCC = false;
...
IOMobileFramebuffer: /AppleARMPE/arm-io@10F00000/AppleT810xIO/disp0@30000000/AppleCLCD2 = {
IOMobileFramebuffer 0x5153 = {
APTEnablePRC = false;
APTEnableLogs = false;
...
PCCTrinityEnable = true;
enableDither = true;
IOMFBSupportsXFlip = true;
@NewDwarf:
I wonder in what binaries you found the iomfb_disable_dfr_display and iomfb_force_block_Dither ?
The strings you mentioned in the other thread here like enableDither and iomfb_RuntimeProperty_enableDither I found with Hopper Disassembler in IOMobileGraphicsFamily.kext but not those from this thread here.
- Edited
Do you still get eye pain from it?
There have been displays I have captured slow-mo video showing no flicker and yet still get eye pain. Others have reported the same experience. It seems not all sources can be rooted out via slow-mo capture.
In the past talking with the CEO of blurbuster, he told me that 240fps is too low, we need at least 5000fps camera to identify dithering.
- Edited
I did not saw any improvement or worsening when using this boot options or not using them. As long as I have no 5000fps camera to measure it I can not see if this boot option did anything or not.
But there was one change that I tried in the last 1-2 weeks that helped quit a bit to reduce eye strain in my opinion. I used the calibrated color profile from notebookcheck for the MBA M1 display that shifts the colors back to a more realistic color gamut in compare to the oversaturated default color profile from Apple. Especially the white did not hurt so much anymore when using the color profile from notebookcheck. Additionally I also disabled "true tone" and I use "night shift" only with a fixed blue light reduction (custom schedule from 6:00 to 5:59 with 'turn on until tomorrow') that I change manually depending of the time of the day and how I feel. During daytime mostly cool color with just a tiny bit of warm color. At evening or night a bit more warm color but never over 50% of slider and still in the cool half.
Here the link to the calibrated color profile from Notebookcheck for the MBA M1 display. It was a bit hidden on their review site. Just copy the icc file after download to the folder /Users/your_username/Library/ColorSync/Profiles and it will be available in the display options.