• OS
  • Disable dithering on M1/M2 devices

Hey guys. I just had a chance to take a look quickly at the M1 GPU driver. At the first glance, dithering can also be controlled by the NVRAM variable.

In the case of M1 chipset and its driver, this parameter is "enableDither".

So, to disable dithering on M1 devices, open the terminal in normal mode (NVRAM variables are controlled from the normal mode on M1 devices) and enter the command

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

and type your password.

To verify the command was accepted, use the command:
log show --process 0 | grep "Dither"

The expected output is:

xxxx-xx-xx xx:xx:xx 0x180b     Default     0x0                  0      0    kernel: (Sandbox) System Policy: nvram(831) allow boot-arg-set enableDither

I am not sure this will help as most of M1 devices have pretty low frequency PWM. But some devices, like MacBook AIR 2022 has no PWM.

It would be nice to get your feedback. Just type what exactly device you use and your feeling…

Update1: the command was extended to

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

Update2: macOS Ventura has redesigned approach of using kernel extensions. More likely, this solution doesn’t work there. So try it on all earlier macOS versions.

    NewDwarf changed the title to Disable dithering on M1/M2 devices .

    I get Error setting variable - 'boot-args': (iokit/common) not permitted.

      Both I get same error, in normal and recovery mode…

        mirza and you used it with sudo?

        If yes, please enter in recovery mode, open the terminal there and disable the SIP by the command “csrutil disable”

        Then enter the normal mode and try again to set the nvram parameter.

        mirza BTW, what device you use?

        I tried it on MacBook Pro M1 2020.

          NewDwarf Yes, MacBook Air M1 2020 here too. I think I managed to do it now, here is when I tap log show command:

          2022-11-18 20:26:09.371933+0100 0x1f7ba    Error       0x0                  0      0    kernel: (Sandbox) System Policy: nvram(3532) deny(1) boot-arg-set enableDither

          2022-11-18 20:28:15.041513+0100 0x1fba6    Error       0x0                  0      0    kernel: (Sandbox) System Policy: nvram(3561) deny(1) boot-arg-set enableDither

          2022-11-18 20:30:26.325331+0100 0x1ff72    Error       0x0                  0      0    kernel: (Sandbox) System Policy: nvram(3592) deny(1) boot-arg-set enableDither

          2022-11-18 20:35:55.447516+0100 0x1797     Error       0x0                  0      0    kernel: (Sandbox) System Policy: nvram(791) deny(1) boot-arg-set enableDither

          2022-11-18 20:37:44.060383+0100 0x1678     Error       0x0                  0      0    kernel: (Sandbox) System Policy: nvram(703) deny(1) boot-arg-set enableDither

          2022-11-18 21:43:40.607977+0100 0x250e     Default     0x0                  0      0    kernel: (Sandbox) System Policy: nvram(1290) allow boot-arg-set enableDither

          2022-11-18 21:43:40.607984+0100 0x250e     Default     0x0                  0      0    kernel: [System Event] [9361451525] [INFO] [Subsystem: nvram] [Event: write] boot-args to enableDither=0

          2022-11-18 21:48:05.225821+0100 0x3bd9     Default     0x0                  0      0    kernel: (Sandbox) System Policy: nvram(1672) allow boot-arg-set enableDither

          2022-11-18 21:48:05.225835+0100 0x3bd9     Default     0x0                  0      0    kernel: [System Event] [15712279907] [INFO] [Subsystem: nvram] [Event: write] boot-args to enableDither=0

            NewDwarf Difficult to say right away, I will test it and let you know. Thanks a lot.. Do you feel any difference?

              mirza I sit about 10 minutes after entering this command. Currently, I don't have this laptop on the hand and I can check only on Monday. As my laptop has PWM, I can still have side effect of PWM. It would be nice if one who have MacBook Air 2022 check this command as according to reports it is PWM free.

              It's probably placebo, but I have a feeling it's better. We'll see.

              Once again, maybe it's placebo, but I have feeling things did improve somewhat after this command in terminal. Would be nice if some other folks try this a give some feedback.

              Hello! I have MacBook Air 2022 M2 and have tried this command. Output is ok. After 30 min of testing it seems that I have feeling better. More testing is needed.

              Thank you, NewDwarf!

              I'm not sure anymore 😃 I hoped that it's at least better on my external display (closed MacBook) but I have burning eyes again, stiff neck etc. I guess I need whole day to test it properly.

                mirza MacBook Pro’s have PWM. So it can be side effect of PWM.

                To get clean and reliable results, it would be nice to get MacBook Air 2022 user feedbacks as many as possible.

                @insta42014 - I tried everything possible, nothing worked so far. Will try to return it to my local autorised resseler, if that doesn't work will try to sell it.

                  dev