Could someone with dithering problems who is using a Mac do these steps for me?

Go to Terminal/iTerm, run kextstat and save the output to a file?

Also please list what model of Mac you have, OS X version, and what GPU and if it has switchable graphics.

This is useful: http://www.everymac.com/mac-identification/how-to-find-apple-model-family-numbers-for-mac-identification.html

An example (in my case): 2015 15" Macbook Pro, Switchable Intel Iris Pro and AMD R9 370X graphics.

You can use code tags to paste it without it obscuring the rest of the post

```
like this
```

like this

Or if it's too big email me, jtl at teamclassified dot ca

I tested this morning and might have a way to modify the code of the kexts, which might allow to me to disable the dithering. Let's face it. Amulet Hotkey and the others are useless. Seems like I'm the best shot for the time being.

Thanks

  • JTL replied to this.

    JTL Oops. And I accidently caused my laptop to stop booting because I accidently corrupted one of the .kexts while editing it.

    Goes to show you should always make backups.

    Note: Modifying the existing kexts and just injecting code to turn off dithering would be safer and survive OS upgrades. Being able to edit the kext code is a good first step though.

    The only information about Amulet Hotkey's kext is this screenshot

    https://2.bp.blogspot.com/-gf7GValbbu4/UIqMb-KqKKI/AAAAAAAAAas/3e5uUtw3ItU/s1600/photo%2B%252810%2529.JPG

    Notice after ahkinject the <4 3>. That corresponds with the other "required" kexts I think, kext number 3 is IOKit which is a method for drivers to interface with haradware. Don't know much about it.

    I'd love it if you got somewhere with this. I'll pull a couple different Macbooks' data for you later today.

    • JTL replied to this.

      Gurm Thanks.

      The hard part after this is figuring out what functions actually control the dithering. Like I mentioned above I accidently NOP'd (no operation) the wrong function causing my laptop to stop booting. I just copied the kext back into place and it was fixed though. Still annoying.

      Very excited by this prospect JTL - it could make a big difference to a lot of people's lives if you could work it out. I no longer use Macbooks I'm afraid, had to chop them out my life!

      • JTL replied to this.

        si_edgey Unfortunate.

        Not making any promises but now that my vision is stabilizing and I have more time, why not do it?

        6 days later

        I think the best goal would be for me to develop a new NVinject of sorts that does IORegistry injection, but works with newer OS X versions and 64-bit, etc.

        If you disable SIP it let's the kext be fully used without signing (which costs $100 a year) so this is good for testing. If we have a full version that works and we know it I can just pony up the $100 to make an easy-to-use signed version.

        Also I was looking through the AMD kexts and saw something interesting.

        jtl-macbookpro:Apple kexts jtl$ strings AMDSupport |grep AAPL
        AAPL,slot-name
        AAPL%02X,
        AAPL,gray-value
        AAPL00,T1
        AAPL00,T2
        AAPL00,T3
        AAPL00,T4
        AAPL00,T5
        AAPL00,T6
        AAPL00,T7
        AAPL00,LinkFormat
        AAPL00,PixelFormat
        AAPL00,Dither
        [sic]

        Now if we check the NVinject's Info.plist

        			<key>entriesToAdd</key>
        			<dict>
        				<key>AAPL01,Dither</key>
        				<data>
        				AAAAAQ==
        				</data>
        			</dict>

        So there is a difference.

        @vinkenvvt I remember you did something with Clover EFI and it didn't work, which one was that?

        6 days later

        Good work JTL, sounds like progress of some kind. Any joy with the AAPL00 / AAPL01 thing?

        • JTL replied to this.

          si_edgey Haven't gotten the injector working yet. I think previous attempts failed because the AAPL entry was injected to the wrong object. And there's no guarantee that this works for Intel graphics either.

          24 days later

          Looks like I got the KEXT injector working on El Capitan 😃

          Can't speak for the dithering part though.

          Should work:
          - AMD
          - NVIDIA

          Probably won't work without patching
          - Any Intel Graphics chip

          https://i.imgur.com/xErxWFt.png

            JTL Will Intel be a possibility in the future? Or could the ditherig tool be ported over to OS X?

            • JTL replied to this.

              diop

              diop Or could the ditherig tool be ported over to OS X?

              It would be hard. I could also see a Linux port in the future. (easier)

              JTL Does it mean you managed to turn off the eyestrain issue with the KEXT? Or that is still a long way to go?

              • JTL replied to this.

                martin The dithering itself hasn't been fixed.

                All that's been done is I managed to sort out the KEXT injection itself. Still some way to go.

                If I get a second computer setup (doesn't necessarily have to be a Mac I can do live debugging which should let me check if the dithering is being turned off by the driver, etc.)

                20 days later

                If anyone has an OS X machine with an Nvidia GPU and possibly has dithering "sensntivity" I might have a working Nvidia injector working for you on short notice. No promises though.

                • Gurm replied to this.

                  JTL We'd need to be able to lock the nVidia GPU "on", right? So not sure this would work on my 2013 MBP with nVidia+Intel?

                  • JTL replied to this.

                    Gurm Well. I don't think that's going to be an issue.

                    Unlike nVidia Optimus the switchable graphics on Macbooks are fundamentally different. According to an Apple display engineer I spoke with a number of years ago the switchable graphics works via a "mux chip" that's hooked up to the display and the output of the nVidia and Intel cards. It has a driver on OS X that "signals it" to switch cards when needed and it completely disconnects the screen from the Intel card and "connects it" to the nVidia card. And before you say "Well the screen doesn't turn off when switching cards". That's probably because it switches so fast it just drops a frame or two. This is 100% confirmed under Linux with raw I/O access.

                    dev