• OS
  • Disable dithering on M1/M2 devices

mirza It is interesting whether that part of the driver is executed at all…

Let's check it by the command

log show --process 0 | grep "applying boot-arg"

works something for a while, and then shows nothing, just goes to new line again

    mirza Thanks for the check. This means that the class IOMobileFramebufferLegacy (which contains the dithering control code) is not used.

    Ok, then I have to look for the dithering control in other classes.

    mirza Could you please also grep for the keyword "IOMobileFramebuffer"?

    2022-11-17 19:54:24.597743+0100 0x5231     Error       0x0                  0      0    kernel: (Sandbox) Sandbox: gamed(1158) deny(1) iokit-open-user-client IOMobileFramebufferUserClient

    2022-11-17 19:54:24.597750+0100 0x5231     Default     0x0                  0      0    kernel: IOUC IOMobileFramebufferUserClient failed MACF in process pid 1158, gamed

    2022-11-17 19:54:24.598049+0100 0x5231     Error       0x0                  0      0    kernel: (Sandbox) Sandbox: gamed(1158) deny(1) iokit-open-user-client IOMobileFramebufferUserClient

    2022-11-17 19:54:24.598050+0100 0x5231     Default     0x0                  0      0    kernel: IOUC IOMobileFramebufferUserClient failed MACF in process pid 1158, gamed

    2022-11-19 11:00:06.641234+0100 0x4b90     Error       0x0                  0      0    kernel: (Sandbox) Sandbox: gamed(1150) deny(1) iokit-open-user-client IOMobileFramebufferUserClient

    2022-11-19 11:00:06.641241+0100 0x4b90     Default     0x0                  0      0    kernel: IOUC IOMobileFramebufferUserClient failed MACF in process pid 1150, gamed

    2022-11-19 11:00:06.641620+0100 0x4b90     Error       0x0                  0      0    kernel: (Sandbox) Sandbox: gamed(1150) deny(1) iokit-open-user-client IOMobileFramebufferUserClient

    2022-11-19 11:00:06.641622+0100 0x4b90     Default     0x0                  0      0    kernel: IOUC IOMobileFramebufferUserClient failed MACF in process pid 1150, gamed

    2022-11-19 16:59:20.454849+0100 0x2905     Error       0x0                  0      0    kernel: (Sandbox) Sandbox: gamed(1015) deny(1) iokit-open-user-client IOMobileFramebufferUserClient

    2022-11-19 16:59:20.454856+0100 0x2905     Default     0x0                  0      0    kernel: IOUC IOMobileFramebufferUserClient failed MACF in process pid 1015, gamed

    2022-11-19 16:59:20.455145+0100 0x2905     Error       0x0                  0      0    kernel: (Sandbox) Sandbox: gamed(1015) deny(1) iokit-open-user-client IOMobileFramebufferUserClient

    2022-11-19 16:59:20.455147+0100 0x2905     Default     0x0                  0      0    kernel: IOUC IOMobileFramebufferUserClient failed MACF in process pid 1015, gamed

      mirza Could you also please grep for "IOMobileGraphicsFamily"?

      it's huge, and when I try to attach txt file here, it says that this file type is not allowed. What info are you looking for? I can try to copy paste part of it.

        mirza Maybe you can put it in the zip archive and upload here?

        mirza Let's try to make booting more verbose by adding the -v parameter

        Please, try to input

        sudo nvram boot-args="-v enableDither=0 PE_i_can_has_debugger=1 iomfb_RuntimeProperty_enableDither=0"

        Then make sure the boot-args was accepted:

        nvram -p | grep "boot-args"

        The output must be the same as the previous input.

        Reboot your laptop.

        run the command

        log show --process 0 | grep "IOMobileFramebufferLegacy"

        Same issues unfortunately. And, just to be on a clear side, I'm pluggin my external monitor back and forth with PC and MBA, while closing MBA, just to make sure. For hours I'm using my Benq without any issues, in fact feels relaxing on the eyes, I plug it to MBA, wait 5 mins or so, eyes start to burn a bit, light headache, and whole nine yards. But please, do keep trying 🙂 Maybe you will be the one to solve hundreds or thousands of people's issues. I mean, it has to be software issue, otherwise it doesn't make sense from this I wrote above…

          mirza Did log show --process 0 | grep "IOMobileFramebufferLegacy" print something?

            mirza In this case, direct kernel debugging can only help. Not sure it is possible on the Apple silicon devices.

            But before, it still worth to check more drivers. Maybe I missed something.

            mirza But the shared solution would definitely work in the case if the IOMobileFramebufferLegacy class is used. It is unclear why its debug messages are missed in the log. This class is initialized in the kext's global constructor.

            I read somewhere (I think macroumors) that temporal dithering is not used at all on macbook air m1… Is that a possibllity? Then what is generating this problem?

              mirza It is difficult to say right now as I never have M1/M2 based devices. I will get such device on Monday so I will have more flexibility.

              mirza To speed up the process, could you share the output of the 'kextstat' command?

              And it would be very useful to get all kexts itself. You can do it by zipping the folder /System/Library/Extensions

              mirza …and, please, the output of the "kextstat" command.

              dev