This might not be adding much useful information to the topic at hand, but I thought I would experiment by overriding EDIDs to report 6-bit color depth instead of 8, and see what it would do. This was on my older Mac Pro 5,1 Intel system, macOS High Sierra, GTX 1080 FE, NVIDIA web drivers, and two 1080p 6-bit+FRC monitors (an unusual setup, so I'm unsure how far to extrapolate this).

There was definitely a difference, and not in a good way. The instability of the picture was perceptibly worse, and I could almost consciously see the dithering/flickering in real-time. Looking at the gradient image by @Blooey, the differences between 6, 7, and 8-bit (and arguably higher) were still very apparent. Furthermore, SwitchResX still reported millions of colors for both displays, and the System Information app still reported 24-bit color (ARGB8888) for both displays. Poking around in the platform SDK headers for CoreGraphics, it appeared that the only options may be ARGB8888, ARGB2101010, and two variants of YCbCr 4:2:0. So, we may be unable to reduce the base framebuffer depth below 8-bit. However, if we find a method to disable the temporal dithering on Intel macOS, that would still be huge.

One interesting thing was that on the lock screen, the color depth was visibly reduced, but only on one of the screens (right side):

    macsforme edids are tied to serial number of the display. In some cases monitors have the same serial and it turns into a giant mess with monitor placement. I've done this previously as well. But I never tried forcing a super slow refresh rate. Might be interesting. A bit harder to figure out the right way to do that with edids as timings are somewhat complex, but if you're up for it just search for edid timing calculator or something. There are other interesting things related to timings as well.

    Donux is that a Touch Bar model?

    Going back to this post by @DisplaysShouldNotBeTVs

    DisplaysShouldNotBeTVs Do you think that the M1 MacBook Air, M1 MBP 13" with Touch Bar and M2 MBP 13" with Touch Bar (the lower-end ones that don't have MagSafe) could potentially be a way around this?

    These 3 specific laptops are the only Apple Silicon laptops that are only marketed to display at "millions of colors", unlike the M2/M3 Air and all of the 14"/16" Pros with no Touch Bar, which all include "billions of colors" in their spec sheet.

    Can anyone check which TCON model these use?

    ioreg -lw0 | grep TCON

    There are a couple of possibilities here for those specific low-end models with "millions of colors":

    1. Native 8-bit panels that receive an 8/10-bit input signal to the TCON

    2. 6-bit+FRC panels that receive an 8/10-bit signal to the TCON

    We can make an informed guess based on the capabilities of the TCON.

    It's just that now I don't see a reality where any Apple product uses a TCON that doesn't have FRC built in. Would love to be proven wrong. TCON FRC is so cheap and easy.

      aiaf

      Macbook Pro 15' Intel 2018

      MacOS Big Sur 11.7.2

      | |   |   | |   "CFG_USE_TCON" = Yes

      | |   |   | |     "ATY,Tolten" = {"aty_config"={"CFG_USE_CP2"=Yes,"CFG_USE_SCANOUT"=Yes,"CFG_NVV"=2,"CFG_PTPL2_TBL"=<280000002700000026000000250000002400000023000000210000001f0000001d0000001b000000190000001700000015000000130000001100000006000000>,"CFG_USE_AGDC"=Yes,"CFG_USETCON"=Yes,"CFG_DIAG_LED"=2},"aty_properties"={"MM_EnableHEVCEncode"=No,"PP_SclkDpmTuning4"=2621696,"PP_SclkDpmTuning3"=1181184,"MM_EnableHEVCDecode"=No,"PP_MclkDpmTuning1"=575488,"PP_SclkDpmTuning2"=2621696,"PP_MclkDpmTuning0"=2319366,"PP_SclkDpmTuning7"=2621952,"PP_SclkDpmTuning1"=2621696,"PP_SclkDpmTuning6"=2621696,"PP_EnableLoadFalconSmcFirmware"=1,"PP_Falcon_QuickTransition_Enable"=1,"PP_SclkDpmTuning0"=2647040,"PP_SclkDpmTuning5"=2621696}}

      | |   |   | |     "ATY,Palena" = {"aty_config"={"CFG_USE_TCON"=Yes,"CFG_USE_SCANOUT"=Yes,"CFG_USE_FBC"=Yes,"CFG_PTPL2_TBL"=<2800000027000000260000002500000024000000230000002200000021000000200000001e0000001a0000001600000013000000100000000d0000000a000000>,"CFG_NVV"=2,"CFG_USE_CP2"=Yes},"aty_properties"={"MM_EnableHEVCEncode"=No,"PP_SclkDpmTuning4"=3932416,"PP_SclkDpmTuning3"=3932416,"MM_EnableHEVCDecode"=No,"PP_MclkDpmTuning1"=527360,"PP_DisableClockStretcher"=1,"PP_SclkDpmTuning2"=3932416,"PP_MclkDpmTuning0"=3957766,"PP_SclkDpmTuning7"=2622464,"PP_SclkDpmTuning1"=5900302,"PP_SclkDpmTuning6"=2623488,"PP_EnableLoadFalconSmcFirmware"=1,"PP_Falcon_QuickTransition_Enable"=1,"PP_SclkDpmTuning0"=5923858,"PP_SclkDpmTuning5"=2627590}}

      | |   |   | |     "ATY,Yelcho" = {"aty_config"={"CFG_USE_CP2"=Yes,"CFG_USE_SCANOUT"=Yes,"CFG_USE_TCON"=Yes},"aty_properties"={"PP_Falcon_QuickTransition_Enable"=1,"PP_EnableLoadFalconSmcFirmware"=1}}

      | |   |   | |     "aty_config" = {"CFG_USE_PSR"=No,"CFG_NO_HDCP"=No,"CFG_USE_LPT"=No,"CFG_INT_SSPC"=25,"CFG_USE_CPSTATUS"=Yes,"CFG_GEN_FLAGS"=0,"CFG_NO_SLS"=No,"CFG_USE_FBC"=No,"CFG_NO_MST"=No,"CFG_FORCE_MAX_DPS"=No,"CFG_NO_PP"=No,"CFG_USE_AGDC"=Yes,"CFG_USE_TCON"=Yes,"CFG_UFL_CHK"=No,"CFG_USE_DPT"=Yes,"CFG_PULSE_INT"=Yes,"CFG_USE_HDMI20"=Yes,"CFG_USE_STUTTER"=Yes,"CFG_NO_MSI"=No,"CFG_UFL_STP"=No,"CFG_USE_FEDS"=Yes,"CFG_FB_LIMIT"=0,"CFG_TRANS_WSRV"=Yes,"CFG_USE_SCANOUT"=Yes,"CFG_PAA"=0,"DALUseUrgencyWaterMarkOffset"=0,"CFG_USE_FBWRKLP"=Yes,"DALReadDelayStutterOff"=4,"CFG_NODM"=Yes,"CFG_USE_SRRB"=No,"CFG_FORCEMAXDPM"=No,"CFG_CAA"=0,"CFG_APER_MODE"=1}

      | |   |   | |     "ATY,Forrahue" = {"aty_config"={"CFG_USE_CP2"=Yes,"CFG_USE_SCANOUT"=Yes,"CFG_TPS1S"=Yes,"CFG_NVV"=2,"CFG_PTPL2_TBL"=<820000007c00000076000000700000006a000000640000005e00000058000000520000004c00000046000000400000003a000000340000002e00000028000000>,"CFG_USE_AGDC"=Yes,"CFG_USE_TCON"=Yes},"aty_properties"={"PP_DisableMCDownLoadFeature"=1,"PP_Falcon_QuickTransition_Enable"=1,"PP_EnableLoadFalconSmcFirmware"=1}}

      | |   |   | |     "ATY,Sinu" = {"aty_config"={"CFG_USE_CP2"=Yes,"CFG_USE_SCANOUT"=Yes,"CFG_NVV"=2,"CFG_PTPL2_TBL"=<820000007e0000007a00000076000000720000006e000000660000005e000000560000004e000000460000003e000000360000002e000000260000000a000000>,"CFG_USE_AGDC"=Yes,"CFG_USE_TCON"=Yes,"CFG_DIAG_LED"=2},"aty_properties"={"PP_DisableMCDownLoadFeature"=1,"MM_EnableHEVCEncode"=No,"PP_SclkDpmTuning4"=1181184,"PP_SclkDpmTuning3"=787456,"MM_EnableHEVCDecode"=No,"PP_MclkDpmTuning1"=527360,"PP_SclkDpmTuning2"=787456,"PP_MclkDpmTuning0"=2319366,"PP_SclkDpmTuning7"=2621952,"PP_SclkDpmTuning1"=787456,"PP_SclkDpmTuning6"=2621696,"PP_EnableLoadFalconSmcFirmware"=1,"PP_Falcon_QuickTransition_Enable"=1,"PP_SclkDpmTuning0"=1008640,"PP_SclkDpmTuning5"=2621696}}

      | |   |   | |     "ATY,Berbice" = {"aty_config"={"CFG_USE_CP2"=Yes,"CFG_USE_SCANOUT"=No,"CFG_NVV"=2,"CFG_PTPL2_TBL"=<230000002200000021000000200000001f0000001e0000001d0000001c0000001b0000001a000000190000001700000015000000130000001000000006000000>,"CFG_USE_HDMI20"=No,"CFG_USE_TCON"=No,"CFG_USE_FBC"=Yes},"aty_properties"={"MM_EnableHEVCEncode"=No,"PP_SclkDpmTuning4"=1967622,"PP_SclkDpmTuning3"=5898240,"MM_EnableHEVCDecode"=No,"PP_MclkDpmTuning1"=527360,"PP_DisableClockStretcher"=1,"PP_SclkDpmTuning2"=5898240,"PP_MclkDpmTuning0"=3957766,"PP_SclkDpmTuning7"=1968128,"PP_SclkDpmTuning1"=5900302,"PP_SclkDpmTuning6"=1968128,"PP_EnableLoadFalconSmcFirmware"=1,"PP_Falcon_QuickTransition_Enable"=1,"PP_SclkDpmTuning0"=5923858,"PP_SclkDpmTuning5"=1968128}}

      Macbook Pro 14' M3

      MacOS: Sonoma 14.1.2

      https://pastebin.com/raw/S3KdxmdV

      • aiaf replied to this.

        madmozg thanks for the additional data point. Unfortunately this particular test only works notebook M-series Macs, and possibly not all of them.

          aiaf I've posted for M3 as well, will post for M1 later.

          aiaf Sorry I misunderstood. Shouldn't post info for my model 🙂 Was thinking that you are collecting data from all current models.

          • aiaf replied to this.

            Sentiny no not at all, it's always good to have additional data points. We just haven't seen any reports on the bare M1 yet.

              aiaf Sentiny mentioned the M2 Air model of which there is no touch bar version.

              Hunter20 Intel arc a770 LE uses a TCON chip and supposedly does not dither on default settings. Unsure what tcon model it is..

              ryans

              Unfortunately, those instructions for Intel Macs don't work.

              I get:

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

              I'm wondering if Stillcolor would work there instead.

              P.S. Read elsewhere that disabling system integrity protection can do it, so I shouldn't need Stillcolor. But 'll leave this up in case someone else has the same problem.

                Ananiujitha for dither=0 you have to do it after booting into recovery mode terminal

                although dither=0 has varying effects on different Intel macs…

                here's my experience with it:

                • 2015 MacBook 12-inch (Mojave 10.14.6, Intel HD): Best effect, it seems to have fully and successfully disabled dithering, internal screen feels still now. This screen was already pretty usable compared to other Macs, but still used to have some text shimmer — but now, it's noticeably better and the most comfortable it's ever been.
                • 2015 Retina MacBook Pro 15-inch (Monterey 12.6.8, Intel Iris integrated graphics mode): It seemed to disable additional dithering on color profiles and gamma table adjustments (adjusting Software Brightness in BetterDisplay now introduces banding, which it didn't before) but didn't seem to actually fully disable it. Still looks like solid color backgrounds are moving and text is shimmering. Disappointing
                • 2018 Retina MacBook Air 13-inch (Mojave 10.14.6, Intel UHD): Did not work at ALL, the log says "dither disabled" but there is no banding even when changing Software Brightness implying that dithering wasn't actually disabled (because it's still obviously showing in-between colors more precisely than the screen is capable of, even when trying to reduce color range by lowering color table brightness.) Screen feels exactly the same with an extreme amount of shimmer

                (However, the 2018 Air screen can actually become fully usable with Windows and older display drivers, implying that this is still a problem at the software level, not the screen just being a low quality panel. But unfortunately, dither=0 does not make it any better while on macOS, even on an old version like Mojave)

                  DisplaysShouldNotBeTVs

                  Thanks.

                  log show --predicate "processID == 0" | grep Dither

                  shows that neither setting dither=0 nor enableDither=0 will turn off dithering. So Stillcolor support for Intel Macs may still help.

                  @aiaf Did you explore /dyld-cache-arm64e/usr/lib/updaters/libAppleTCONUpdater.dylib?

                  I'm way out of my league here as I don't have any swift / c background, so I don't know how easy it is to work out and use functions from dylib stuff. Seems to be quite a few functions to read and set options on AppleParadeDP855TCON. I guess in theory it should be configurable where some things can be turned off for debugging, without having to reflash the entire thing?

                  • aiaf replied to this.
                    dev