@aiaf Tested and WORKING for an external monitor on M1 Max MacBook Pro with Sonoma 14.2.1. This is one of the best releases this community has seen in a long time, I am eternally grateful.

BTW I'll definitely get in touch with you soon — although I'm not experienced with reverse engineering, I've learned quite a lot of interesting info on how macOS does dithering and color management recently, and would love to provide any info I know that would help in creating an Intel version. Is it best to DM you here or on your Twitter?

My experience:

I have an ancient CCFL monitor with DVI in (Samsung SyncMaster 906BW) which I connect to the M1 Mac through a USBC»HDMI cable to an HDMI»DVI adapter.

(Fun fact: DVI displays provide RGB EDID to Macs by default, so the whole "force RGB instead of YbCbCr" ordeal infamous with HDMI monitors isn't actually necessary here!)

I'm pretty sure this monitor is native 6-bit with no FRC, since even when connecting to a M1 Mac with default "10-bit" settings, banding appears. (I was wrong, it's actually the monitor's own FRC pattern conflicting with Apple's dithering pattern, see my newer reply)

However, what's really funny is because of this limited hardware, it makes Apple Silicon temporal dithering EXTREMELY obvious.

Typically, connecting the 906BW to the M1 causes totally noticeable checkerboard patterns on some colors, and other colors will actually visibly flicker to the extent someone who's not sensitive could notice it. These get even more intense while I'm continuously moving my head.

For a while I thought this was either the ancient monitor starting to fail, a bad cable, LCD pixel inversion, or FRC that the monitor itself was producing… until I plugged it into an old Windows PC, and all those issues stopped happening.

For the first time ever, Stillcolor has immediately solved this issue. The moment it's enabled, all of these moving patterns disappear and the M1 finally gets clean external monitor output. Changing gamma and contrast with BetterDisplay finally causes obvious banding shifts, which it wasn't able to before.

So if anyone is dealing with "checkerboard pattern on dark mode backgrounds with external monitor on M1 Mac" — which I've seen some people in generic Apple communities mention before, Stillcolor resolves this issue too!! It is caused by temporal dithering.

And of course, enabling Stillcolor significantly reduces eye strain on the external monitor for me!

(Edit: The monitor still has its own FRC, but I'm definitely less sensitive to it than Apple's dither pattern — after all, I wasn't getting the same level of significant eye strain using this same monitor back when Windows XP was current.

However, I might have been running Windows XP back then in true 6-bit output mode, which I really wish was possible on a modern OS…

However I DO notice the monitor's FRC and find it a bit annoying, and am now trying to seek out a non-FRC monitor so I can use macOS 100% dither-free.)

Here's why it doesn't seem as effective on the internal XDR display though…

Mini-LED XDR MacBook Pros have some aspects of color calibration built into the display itself, that's why the display preferences looks different on these models and tries to push seemingly limited "Reference Modes" over color profiles.

This also means that certain aspects like gamma are processed by the display panel instead of the GPU as Macs usually so.

So on XDR Macs, even though Stillcolor actually does cause some changes in colors on the internal display, it doesn't solve dithering on the laptop screen entirely. Because if gamma is adjusted with BetterDisplay here — unlike with an external monitor, no banding shifts will happen and gradients will remain "just as smooth" (i.e. dithering) at any gamma level. Of course the internal screen has some PWM too.

(I suspect) that there's two layers of dithering on XDR Macs 😱 one at GPU level (which Stillcolor does disable) and one at display panel level (which it can't disable).

Or perhaps, if it's not dithering, this "second layer" is due to individual brightness control of the mini-LEDs (AKA different PWM rates per each area of the display) to achieve different gamma levels without seeming to affect the amount of available colors.

However, LCD Macs like M2 Air, and the low-end "Touch Bar" Pros, use standard color profiles (where only the GPU is involved) instead of this hardware-level color management. This is why people here with MacBook Airs are reporting great results, but MacBook Pro users are more hesitant.

In summary, Stillcolor has the same great effects on external monitors on both Air and Pro, but only will be able to fully improve the laptop display on LCD models like the Air.

(BTW, I'm guessing that forcing external output EDID to RGB mode is probably neccessary for Stillcolor to fully improve an HDMI monitor. This wasn't an issue for me though because my monitor uses DVI.)

Since this app exists now, and based on what I've just written above… I'm honestly about to start considering selling my M1 XDR Pro and swapping it for an M2 Air instead 😄

For now, at least I can finally use my M1 Pro as a desktop!

    Sunspark there's clearly so many variables to be tested. What are you sensitivities and which display are you currently comfortable with?

    Sentiny it should be plenty safe. I don't like True Tone personally but I don't think of these options will re-enable dithering, but again can only be known with proper testing. You can also re-check iroeg to see enableDither was set to Yes again.

    Donux try your phone manual video mode option with the fastest shutter speed. You need to test an image with a white background. Do you trust this method?

    async the idea would be to edit the EDID in the capture card, and then capture the output to see how the a particular config affects the image. You can then diff and run the capture through ffmpeg or whatever other tools to see the difference.

    twomee Which external display brand and model are you using?

    DisplaysShouldNotBeTVs I'm not working on an iOS version since I don't use iPhones and currently do not have the time to pursue this. I'll tinker around but no promises. In any case, my code and methodology are open source so anyone can pick up where I left.

    photon78s thanks for the Carson MicroFlip recommendation. Because despite disabling dithering at the GPU level there's the question of whether the external display panel does dithering/FRC on its own. Can't trust manufacturer specs when it comes to these things.

    markdotpeters5 do you have an M1 Mac? Download the app and try it. I tested with M2 and M3 and it worked flawlessly. Would love an M1 datapoint.

      DisplaysShouldNotBeTVs would the m2 MacBook air 15" also be safe or only 13"? In terms of LCD/mini led free. I think I'm going to buy one 😅 unless we can get a fix on Intel/Nvidia too?!

      markdotpeters5

      I was going to try the M1 Air (hard for me to switch ecosystems) at some point but these observations… It might still be a combination of extremely high frequency dithering plus the high frequency PWM. I remember watching an Apple event in the past couple of years where they had someone come up to talk about "screen safety". Seems hilarious to me.

        photon78s I'm very sensitive to stuff like this but use the M1 Air fine. Phone wise I'm stuck on the iPhone 11 - I literally can't find any newer handset that I can use, Android or iPhone.

        I have no real reason to upgrade from the M1 Air at the moment, but I really would like a newer iPhone!

        DisplaysShouldNotBeTVs that's an amazing setup! Feel free to get in touch any time.

        w/r/t to an additional layer of dithering on XDR displays-- will need proof for this. I see the banding clearly (on the Lagom gradient test) on the built-in display when I disable dithering, and the screen becomes a lot more eye-friendly. There's still PWM. But how would additional dithering look like and how would it play along with GPU dithering? You can only show 1 pixel color per refresh? Spatial dithering perhaps? We should also not forget these are supposedly high-end 8-bit panels

          Will this work on a m2 Mac mini?

          DisplaysShouldNotBeTVs and would love to provide any info I know that would help in creating an Intel version

          @NewDwarf has a technique here for disabling temporal dithering on Intel Macs and also AMD (it's different technique than the one linked by op). I don't believe it was tested with a lossless capture card but some have reported success on Intel Macs.

          DisplaysShouldNotBeTVs There's two layers of dithering on XDR Macs 😱 one at GPU level (which Stillcolor does disable) and one at display panel level (which it can't disable)

          This is interesting and unfortunate. It's hard to imagine two separate temporal dithering algorithms look good on a screen even to "normal" people?

            smilem

            Thanks.

            From Harrison at https://ledstrain.org/d/125-monitor-overclock/3:

            "If dithering is the problem, a higher Refresh rate will also lead to a higher dithering frequency. Always the half of the refreshing rate of the display."

            Good to know if true. Well, a multiple factor approach is needed. Too bad the Xiaomi 14 Ultra 1920fps mode is not really 1920fps.

            aiaf

            Thank you! I hope now we can really see how monitors and maybe cables behave differently independent of software issues.

            smilem AFAIA dithering can be disabled with Intel GPUs using the Dithering app and on Nvidia GPUs using the app ColorControl. Unless you know any different?

              This is amazing, after doing visual therapy for years, trying to getting adjusted to see these new screens as the unaffected people do (with significant measureable success, but never 100%) and pushing plethora of eye exercises here with very variable results from person to person, this is the tech solution Ive been hoping for.

              However I only have 2018 Intel and AMD mac, is there any chance this could be made work for those too? I have old Mojave on it, postponed updating as long as I could due to distrust in updated graphics in new OS.

                martin The ideal solution is to have 1 universal app for disabling dithering on all Intel, AMD, and Apple Macs, and also a feature that reports whether a display is true 8-bit or 10-bit, as opposed to 6-bit+FRC, and 8-bit+FRC which a lot of monitor enthusiasts seem to dismiss as an irrelevant detail, but we know that it makes all the difference in the world. What displays are you using right now? Are they true 8/10-bit?

                  dev