• OS
  • Disable dithering on M1/M2 devices

dirtydenim yes please! Would be incredible if this solution actually works for eye strain

dirtydenim Could you please check the results of the command

sudo nvram boot-args="enableDither=0 PE_i_can_has_debugger=1 iomfb_RuntimeProperty_enableDither=0"

whether it will have any effect.

Also, it would be useful to see the output of the command

log show --process 0 | grep "IOMobileFramebufferLegacy"

    I was able to successfully execute the command. I do not see any changes in my test image but sometimes it requires lowering the color depth as I mentioned to show the steps instead of a smooth gradient.

    Note, I first had to use the "csrutil disable" command in recovery mode.

    Difficult to tell if there is a comfort improvement yet, I will report back after some time and try some other objective tests- images, etc. to validate dithering is indeed disabled.

    Also @NewDwarf there was no result from the log show --process 0 | grep "IOMobileFramebufferLegacy" command.

    Is there a log I need to review?

      dirtydenim Thanks. If the log command returns nothing, this means this part of the driver is not used and the boot parameters we passed by the nvram command don’t work.

      …it is sad, but it requires more effort by digging in other directions.

      @NewDwarf - Make an app that disables this, and set price whatever you want, you have hundreds of customers who will buy it 100% 😃

        mirza BTW, I can see the output of log show --process 0 | grep "IOMobileFramebufferLegacy"

        2022-11-21 0xbb       Default     0x0                  0      0    kernel: (IOMobileGraphicsFamily) virtual bool IOMobileFramebufferLegacy::start(IOService *)

          mirza Hmm…

          It's interesting you got nothing. This is important string in the log which gives a hope to disable dithering.

          I use macOS Monterey (12.4).

          Also, it is unclear why there is no feedback from others.

            NewDwarf after last update command my output log is:

            2022-11-19 19:09:32.853323+0300 0x3497     Default     0x0                  0      0    kernel: (Sandbox) System Policy: nvram(2318) allow boot-arg-set enableDither

            2022-11-19 19:09:32.853327+0300 0x3497     Default     0x0                  0      0    kernel: (Sandbox) System Policy: nvram(2318) allow boot-arg-set iomfb_RuntimeProperty_enableDither

            MacBook Air M2 2022 macOS Monterey (12.6)

            Curious how the folks trying this, have you had success?

            Doesn't help for me. The problem is we don't know whether this disables temporal dithering or not. I didn't use MBA for 3-4 days, and now I tried to use it, instant vertigo and neck pain, so, yeah… I hope someone else has some solution. Tried to take my MBA to the store where I bought it (authorised reseller), they said nothing is wrong with the laptop so they cannot return my money. So, before selling it, I hope someone comes with some good news…

              mirza For me the same - eye strain after entering command.

              I'm currently using the temporary solution. I mirrored the internal screen using the utility BetterDisplay. And after that, I do not feel any eye strain.

              I think this is because the virtual mirror monitor is 8 bit.

              I also recommend disabling True Tone and Night Shift while using mirroring.

              Can anyone also try and test this?

                JesHD I downloaded it, I will try it. Can you tell me where you set bit depth in this app?

                edit: ok got it. I mirrored the display… So you're saying when it's mirrored from MB that it's lowering bit depth?

                  mirza Yes, this is my guess.

                  You can check bit depth in utility SwitchResX.

                  For internal display it shows «Billions of colors» (10 bit), and for virtual mirror - «Millions of colors» (8 bit).

                  JesHD Thank you, thank you, thank you! This is exactly why I love this website and the exchange with other people that have similar issues. Your workaround helped me to finally use a MacBook (Air) again - still not perfect but already feeling much better. Here's what I've done:

                  1. Created a dummy with before-mentioned app.
                  2. Scaled my screen to 1256x785, 60 Hz HiDPI 16:10 (that's about 55% in the app)
                  3. Color Profile: Adobe RGB 1998 and colors are at millions iso billions of colors.

                  Again, it's not perfect and I'll have to test it out a bit more but plugging my MBA M2 into my monitor finally feels much better too. I don't want to jinx it and I'm hoping this could be a long-term solution.

                  JesHD thank you very much! It really helped me, I just made dummy display, mirrored it to my original display of a Macbook Pro m1 and set sRGB preset, then optimized display for dummy display and here it is - no issues.

                  I also tried Asahi linux for my mbp m1 and it also helped alot with eye strain symptoms. I found out that the main issue was temporal dithering or macos scaling/antialiasing issues and not PWM for me.

                    dev