mirza "Unfortunately you can't really change the bit-depth on M1 systems afaik if lower bit-depth mode options are not available in the set-resolution list. The bit-depth options depend on what the display reports about itself and how the display connection is negotiated. There are some ways to change color encoding and bit depth by editing the windowserver configuration files though. Normally M1 macOS will opt for "billions of colors" (10-bit color depth) if it can which might create dithering at the display end. Dummies use "millions of colors" (8-bit depth) so if these get mirrored it might help with this. But to be honest I'd need to dive into the entire issue a bit more."
Great. That clarifies a few things. Does these apps work by creating EDID overwrites or modify the windowserver plists? I'm not that knowledgeable about this stuff.
If someone that went deep into what is handled where in the entire chain of Mac OS, display profiles, video output, cable, monitor wants to create a flowchart with https://www.lucidchart.com/ or something it would surely help more people get some ideas for how to solve this
Some more thoughts and questions:
- Is there pixel changes on the monitor faster than the refresh rate on the stuff that comes from the OS? As far as I see it running at 30hz would dither at max that speed if the OS is responsible for dithering. This obviously doesn't apply to the dithering that the monitor does on a 10 bit signal. If this is true it would open up some things: Capturing OS dither with 240fps slow motion video, and using LOW quality video cable to force a too low bitrate for 10 bit.
- Is anyone aware of a way to capture the raw cable output and render it somehow? That would open up stuff like quickly measuring the amount of noise and changes to get a gauge for flickering intensity and similar. I guess a photodiode targeting the smallest possible area could also work. Is anyone aware of a photodiode or similar that works with colors? Can it somehow be connected to the mac thru an aux to usb solution? This would also allow creating a more general flicker meter that might be helpful.
- Did anyone get some thoughts from the company that had a Kext to disable dithering?
- Is there any way to find all options for com.apple.CoreGraphics.plist? Mine currently has DisplayUseForcedGray and DisplayUseInvertedPolarity. https://github.com/search?q=DisplayUseInvertedPolarity&type=code
- Did anyone look into the IsVRR of windowserver plist? I would guess that it is variable refresh rate. Can it be used to kill off the ProMotion variable refresh rate?