We know there is a way to disable dithering on MacOS if you own an Amulet Hotkey device. The kext is available now.

So.. with communities like tonymacx86 and a plethora of developers working on MacOS, would a crowd-funded kext be a possibility? In other communities such as emulation/retro gaming, many programming obstacles have been overcome due to offering a bounty.

Even though I don't have any Apple gear at the moment, if I knew a software solution was available to allow me to use all Apple computers, I'd switch tomorrow. This isn't a Mac VS Windows argument, but because of the fragmented nature of PC's, Windows updates suddenly causing strain and the amount of different Graphics Cards/Drivers available, an Apple solution seems much closer to being a reality.

I've thought about this before as well, I think this is a great idea if we're able to properly organize it.

Why we didn’t try to send emails to concerned Apple executives ?

Step 1, get someone with a capture card to confirm that these devices are dithering, and who can test the finished result to ensure it works.

  • JTL replied to this.

    Some notes from my research

    • From my understanding of GPU drivers, the "output stage" (which includes dithering) handles different display outputs (internal LCD, DVI, HDMI, etc) separately.

    • For each graphics chipset type (AMD, Intel, NVIDIA) a different method needs to researched and developed. Might also depend on the model of the GPU in question

    • Many Linux graphics drivers are open source, so while the code wouldn't be useful directly, it kind of serves as a "blueprint" of what needs to be done and how to do it.

    For what it's worth. I realize some people complain about the display output on Linux, but right here. I have a workstation with a AMD Radeon Pro graphics card under Linux, and I can confirm that by default, no temporal dithering is used whatsoever, either in BIOS or the running OS.

    Seagull Step 1, get someone with a capture card to confirm that these devices are dithering, and who can test the finished result to ensure it works.

    For an external display output, that's easy points under desk. For a laptop display, given how the output stages are different, you're either looking at disassembling the laptop screen (Not something you'd want to do) or possibly use a high speed camera (expensive)


    • The elephant in the room. Appleisms.

    Over time. macOS is becoming more of a "black box", and while the M1 hardware is interesting in some ways, it also presents some new challenges here, seeing how it uses a (somewhat custom) GPU, based on what the iPhone uses.

    I do worry, that with Apple's transition to ARM, that at some point in the future x86 Mac's are going to be left in the cold with a lack of updates, causing them to be the new "dinosaurs" we don't want to be stuck using.

    Best bet here is that if the Linux porting efforts are "usable", we could potentially figure out what it's doing differently. But that's still some time (1+ years) away.

      JTL Many Linux graphics drivers are open source, so while the code wouldn't be useful directly, it kind of serves as a "blueprint" of what needs to be done and how to do it.

      An example of what I'm talking about. These are internal variables in the Linux amdgpu driver.

      Ctrl-F + "DITHER"

      • diop replied to this.

        JTL I do worry, that with Apple's transition to ARM, that at some point in the future x86 Mac's are going to be left in the cold with a lack of updates, causing them to be the new "dinosaurs" we don't want to be stuck using.

        I already feel the planned obsolescence is happening to Intel Macs in Monterey macOS, less than one year after M1 introduction. I've looked through this preview: https://www.apple.com/macos/monterey-preview/features/

        and the new features relating to dictation (primary reason for me to try Mac in the first place) are only introduced on M1 models (notes 8 "On-device dictation" and 9 "Continuous dictation" at the bottom of the page), while Voice Control is still limited to a couple of languages (in the 3rd macOS version after the feature introduction) and my rare languages are not among them. And I don't know whether those new features will be even usable. Looking at Voice Control implementation and Apple dictation engine quality, they might have issues. Not falling for marketing.

        So I believe that the owners of Intel Macs will come across more and more limitations, even though technically their machines will be supported and will get new macOS versions for some more time.

        Would it be worth spending money on the machine that will soon be deprecated? And the way the new systems are closed down and seemingly as straining is not reassuring either.

        As for me, I still have the iMac in the household and will keep it while my family members want to use it for graphics and entertainment, as it's not suitable for text. I've moved all my work to Windows and like this OS much more. I'm very happy with this switching back and find that Windows usability is far better. And I have no strain with my setup. Being annoyed with Mac, I wish to eventually get rid of the iMac and build a PC desktop for each of my family, if they also agree to such switching.

        JTL An example of what I'm talking about. These are internal variables in the Linux amdgpu driver.

        Ctrl-F + "DITHER"

        Presumably using a value that represents 'off' under FMT_TEMPORAL_DITHER_PATTERN_CONTROL would disable dithering completely, right?

        I would imagine Amulet will continue to support M1 devices, so maybe an updated kext is in the works.

        • JTL replied to this.

          diop Presumably using a value that represents 'off' under FMT_TEMPORAL_DITHER_PATTERN_CONTROL would disable dithering completely, right?

          It's a bit more complicated than that, but that's the idea

          5 days later

          There are websites like "Rent A Coder". If we had access to the Kext, we could pay someone to disassemble it (with IDA Pro or similar, similar to what anti-virus companies do). This definitely requires some niche expertise and will not be cheap (a web dev or mobile dev is unlikely to have this expertise).

          However, apparently Apple no longer recommends Kexts…the new alternative is to run things in user space -- I don't think writing to a driver is possible in user space, but I am far from an expert in this area.

          I am happy to help pay for this, especially if the result is open source. I just used a 16" Mac today and it was horrible -- dizziness, motion sickness, felt sick. I can see the "shimmering" on the display.

          Does anyone even have the Kext available? It appears even the binary is not distributed.

          Has anyone tried this post from @gleb?

          Or this post on Reddit describing switching to sRGB IEC61966-2.1 Color Profile.

          • diop replied to this.

            ryans However, apparently Apple no longer recommends Kexts…the new alternative is to run things in user space -- I don't think writing to a driver is possible in user space, but I am far from an expert in this area.

            I am sure AHK will need to continue supporting the next gen of Apple Macs and provide a dithering fix, as PCoIP isn't going anywhere.

            8 days later

            I came across this pciutils library (libpci and associated Python bindings) that supports Darwin (Mac), Linux, and Windows (although Windows lacks a maintainer -- but ditherig does work on Windows).

            I am pretty sure ditherig's source code is just writing to a PCI register for Intel GPU, which may be possible to change with pciutils setpci. They also have a a "PCI ID Repository" of all sorts of PCI devices, which is cool, but is mostly used to show the name of the device.

            This might be worth looking into (but this is far from my area of expertise -- don't want to get anyone's hopes up).

            dev