Now that Apple Silicon Mac users have been helped by Stillcolor, I am trying to assess the known options for disabling temporal dithering on Intel Macs.

The thread OSX dithering - Help wanted suggests that the Amulet Hotkey ahkinject.kext kernel extension had much potential. @JTL seemed to have information from reverse-engineering the plugin, and it appears this information was being circulated privately but I never saw it posted publicly. @si_edgey was also in contact with the original kernel extension author, who shared some limited information about its function. @NewDwarf also seemed to have reverse-engineered ahkinject.kext in the topic Who used the Amulet hotkey kernel driver to disable dithering?, as well as patching it for later macOS versions (not sure which versions specifically), and suggested in that same thread that he had determined how it works functionally (without sharing further details).

Was the functional method of ahkinject.kext determined? When I load the kernel extension on my system, the system log suggest that it sets an "attribute," and this occurs at a specific phase (perhaps waiting on other initialization) and is repeated a certain number of times. The specific what and why of its function would be significantly helpful information.

Through reverse-engineering, NewDwarf (and others) also showed us the method of nvram boot-args="dither=0", which I believe works on AMD GPUs in later Intel Macs and specifically those Macs with P3 color gamut support (as far as MacBooks, generally 2016 and later I believe).

@DisplaysShouldNotBeTVs alluded (a few times) to another possible method for disabling temporal dithering on AMD GPUs, but so far the details have not been forthcoming.

In my own experiments with the Blackmagic Design capture device and ffmpeg method, the Intel iGPUs I tested seemed to not exhibit temporal dithering on external output. Conversely, the AMD Radeon Pro WX 5100 (in my 2009 Mac Pro) and the AMD Radeon R9 M370X (in my 2015 15" MacBook Pro, mini-DP and HDMI outputs) both did exhibit temporal dithering on external outputs. In both cases (I'm 90% confident I tried this on the Mac Pro), nvram boot-args="dither=0" did not disable temporal dithering on external outputs. On High Sierra on my Mac Pro, ahkinject.kext appeared to load correctly (per the messages in the system log), but the picture still appeared unstable visually. I later observed in the capture card output that the picture was only still for thirty seconds after first turning on at boot, after which temporal dithering was detected again (this was a preliminary finding which I want to test further).

DisplaysShouldNotBeTVs also pointed out here some interesting IO registry values possibly related to dithering, namely kConnectionControllerDitherControl as well as simply dith. Later on in that topic (from memory), it appeared that some attempts were made to manipulate those but without success.

To summarize, it seemed like we had (or were close to having) one or more solutions for disabling temporal dithering on Intel macOS, but so far, on my hardware, I have not found any of these to work consistently. Other solutions, as well as technical details in general, were alluded to but never seemed to be forthcoming. If anyone has details to add to (or correct on) this summary here, this would be appreciated. I am hoping to get any one of my existing machines to work for me, but I am starting to sense that I may need either a Mac desktop with an Intel iGPU, or a newer Apple Silicon model with StillColor.

Edit 2/5/2025: Since this post attempted to capture all known methods to disable dithering on Intel macOS, for the sake of posterity I wanted to link to a method for disabling dithering on NVIDIA GPUs using a kernel extension.

    6 days later

    I compiled some info back in the day on mbp 16 2019 5500m, if you want you can dig through

    Helpful links to disable ditherings:

    macos disable dithering

    https://ledstrain.org/d/268-osx-dithering-help-wanted/171

    If you are using intel based laptops with windows you can try ditherig.exe to disable dithering in windows

    https://kawamoto.no-ip.org/henteko/myapp_en.html#application

    If you are using windows with AMD videocards you can disable dithering by changing following registry keywords on the path of 2d driver(can be found inside amd catalyst or adrenalin drivers):

    "DP_DisableDither"=dword:00000001

    "Embedded_DisableDither"=dword:00000001

    "HDMI_DisableDither"=dword:00000001

    "TMDS_DisableDither"=dword:00000001

    You can find instructions here:

    https://ledstrain.org/d/1093-temporal-dithering-issues-with-laptops/5

      8 days later

      Yvetox

      I've seen this registry thing posted before and tried it. I did not work for me. Others posted it did not work for them either.

      Also, the Ditherig.exe is no longer supported. It stopped working some time during Win 10 22h2.

      Have you tried these things yourself?

      a month later

      Thanks for posting this. This solution appears complex, but the components of it appear to be open-source (after a quick glance), so perhaps with further research we can distill the pertinent function (disabling temporal dithering) down to its core. I hope to dig into this further as time allows.

      I know we had a few people looking into the ahkinject.kextmethod at the assembly code level as well. It would be fantastic if those findings could be described here.

      8 months later

      I edited the original post to add a link to a forum topic I was not aware of originally, which has a macOS kernel extension to disable temporal dithering on NVIDIA GPUs.

      I still have not had a chance to explore the 2015 Retina MacBook Pro solution posted above, as this particular MacBook model now triggers significant next-day symptoms when I use it for any decent length of time (which seems bizarre, as in the past I used one almost daily). Still, having the details here for reference opens the door to future exploration.

      I will also reiterate, it would be fantastic if those who analyzed ahkinject.kext and determined how it works on a technical level, could share those findings with the community. The kernel extension did not work consistently for me on an AMD Radeon Pro WX 5100. It would work for about thirty seconds and then revert to dithering (per a capture card analysis), and hot-plugging monitors resulted in further inconsistent behavior.

      IIRC there is a command for the terminal that can check if ā€œenableDitherā€ is true on intel macs. On my A1708 13 inch MacBook Pro from 2017 (non Touch Bar) this value returned false by default on Catalina and Ventura (at least up through 13.7.0, I havenā€™t tried the newer dot releases). Coincidentally this laptop has been the easiest on my eyes of all of the 13 inch intel series. System profiler also reports 8 bit color whereas most of the newer machines report 10 bit, presumably due to dithering.

      The weird thing is, it does seem to support wide color, at least if you explicitly load an image or web site in that color space. (It passes the wide color tests and shows P3 images in Safari). Those images do cause eye strain and recent versions of Safari seem to be entirely rendering in a color space that induces the same eye strain even for basic web page elements and text. But in general the UI and apps on this system do not cause strain.

      This system uses the intel graphics 640 iGPU.

      Over the weekend, I had the chance to experiment with a 13-inch MacBook Pro 2017 (non-Touch Bar, iris 640). Initially, I tested it on Mojave, Catalina, and Ventura. While the display didn't hurt my eyes, looking at the screen was unpleasant, and I felt like looking away after about 5 minutes. After 20-30 minutes, a slight feeling of nausea started to appear. I experienced issues not only when viewing images with wide color gamut support but also when working in Terminal and Xcode.

      In my case, System Info reports that 8-bit is being used; dithering on the GPU side is disabled.

      I tried installing Linux Mint Cinnamon with a modified kernel (dithering disable fix for 6-bit) and switched to 6-bit mode. It got much better, but still not perfect.

      I believe the display on my unit has FRC.

        This didn't work for me unfortunatelyā€¦

        WhisperingWind itā€™s worth noting that since Catalina Iā€™ve had to do the following to make the 2017 MacBook Pro 13 (non Touch Bar) acceptable to me.

        1.) Set the desktop background to solid black. The default desktop background in Big Sur, Monterrey, and Ventura causes strain.

        2.) Set the accent color to the ā€œgreenā€ color that was default on the green M1 iMac.

        3.) Change the default message font in the Mail.app to ā€œHelvetica 12ā€. I think it is 11 by default.

        With these settings itā€™s comfortable with the exception of web browsers which sometimes have their own eye strain issues that I am sometimes able to work around with settings. At the moment, none of the browsers are super comfortable.

        I was able to use Catalina with no settings modifications until they started updating Safari which caused its own issues starting with version 14.

        dev