ryans I looked at the Amulet Hotkey PDF. If someone was able to obtain the .dmg, I think that'd disable dithering and we wouldn't have to use their video capture boxes.

I presume it checks for the box first. That being said, there are zero downloads of the .dmg that are public.

ryans A few years ago I filed a bug report with Apple Accessibility about an unrelated issue with an API call and it eventually got fixed. Maybe we can petition Apple to make dithering user customizable on OS X and iOS.

How complex was the bug?

ryans Does anyone know if Ubuntu does temporal dithering?

It depends if the graphics driver itself dithers.

    JTL How complex was the bug?

    Not super complex, I'm not OS Kernel developer, but I think it was at most a month's worth of engineering time.

    JTL t depends if the graphics driver itself dithers.

    Sure, but our understanding is OS X will dither no matter if Intel, Nvidia, etc graphics driver, because the code that does dithering is in the OS X Kernel and not graphics driver code?

    • JTL replied to this.

      ryans Sure, but our understanding is OS X will dither no matter if Intel, Nvidia, etc graphics driver, because the code that does dithering is in the OS X Kernel and not graphics driver code?

      No. I've seen seperate dither control functions in the AMD and Nvidia driver kexts.

      23 days later

      Kray Here's a picture taken with a Canon 80D of a BenQ GW2760HS connected to a desktop with a Quadro K4000 with dithering disabled.

      https://i.imgur.com/DjlwGdg.jpg

      Even though it's a compressed image meaning lower quality, try zooming in and out. You can see a similar pattern on a static image.

        JTL I emailed someone from a mailing list (he's a CS professor, so I assume he's pretty technical) about Intel graphics. This is his response:

        What happened is that over time (say, maybe three months), my eyes stopped noticing the temporal dithering. I can sort of notice it if I pay close attention, but it doesn't cause me any more eyestrain. I was really surprised that this happened, and very grateful! This is in sharp contrast to (say) PWM flickering, which you never get used to. The other thing that can be done is to switch to Linux, because the Linux Intel drivers turn off temporal dithering (actually, you can configure it whichever way you want). Right now I'm using Mac computers (a laptop and a Mac Pro), both of which use temporal dithering. I also use F.Lux to cut down on the blue light, but that's a separate issue.

        So he claims:
        1. Linux drivers turn off temporal dithering? Really? Or it's a configuration, which maybe explains why some sufferers are okay and others are not?
        2. Maybe I should ask intel-gfx (mailing list about intel drivers) about it?
        3. I wonder what dithering is like on a virtual machine? Let's say I disable dithering on Linux and run Ubuntu in VMWare or VirtualBox. If that Windows 10 Anniversary Build nonsense is fixed, perhaps Windows would be usable. IIRC the vm would not use Intel graphics drivers.

        • JTL replied to this.

          ryans 1. Linux drivers turn off temporal dithering? Really? Or it's a configuration, which maybe explains why some sufferers are okay and others are not?

          It depends on the driver.

          ryans 2. Maybe I should ask intel-gfx (mailing list about intel drivers) about it?

          Good luck

          ryans 3. I wonder what dithering is like on a virtual machine? Let's say I disable dithering on Linux and run Ubuntu in VMWare or VirtualBox. If that Windows 10 Anniversary Build nonsense is fixed, perhaps Windows would be usable. IIRC the vm would not use Intel graphics drivers.

          Unless your using PCIe passthrough to pass through a "real" GPU into the virtual machine it would just use the emulated GPU hardware you configure in the virtual machine settings. Here's OS X running under a KVM hypervisor with a generic VESA graphics adapter, the image looks steady 🙂

          https://cdn.jtl.pw/osxvm/ (feel free to download and zoom into the individual pixels if you'd like)

            there is some source of dithering that looks almost identical to temporal dithering, but it is triggered my movement on the screen, such as mouse movement. I can see on youtube videos of windows, mac, and Linux that it is in all three OS. Anyone know what that would be called? the temporal dithering is halted by

            xrandr --output HDMI1 --set "Dither" "off"

            but the dithering pattern is still there statically. the mouse movement makes the pattern dither always down and to the right. on all 3 OS. It has to be an OS thing because
            xrandr --output HDMI1 --set "Dither" "on" causes the identical pattern on the whole screen all the time.

              ShivaWind Nope 😐

              You're "patient zero" if you will.

              After I work on fixing dithering for OS X I might buy a lossless capture and do some experiments of my own.

              ShivaWind That --set Dither "off" is only for nouveau drivers?

              Could the other dithering be related to screen tearing?

              Do you have a video (the e-ink display maybe) that shows this so we can see what you're talking about?

              ShivaWind Looking at that YouTube video has me confused. Only the GPU should be doing dithering, not any OS kernel. Those e-ink displays attach via USB so should bypass any Intel graphics. Right?

              I spoke to someone to developed the AMD Amulet Kext and Android Developers at Google and they both say they do not think the operating system kernel does any dithering at all (and this makes sense). The GPU does.

              • JTL replied to this.

                ryans Those e-ink displays attach via USB so should bypass any Intel graphics

                No. The Dasung connects by HDMI. It does have USB, but for power and some driver software (I read)

                  JTL Ahh, so the dithering we saw on that video could come from an Intel GPU.

                  • JTL replied to this.

                    ryans Hmm. Maybe the video was taken with a video capture card? Or could the Windows 10 shenanigans play a role?

                      JTL It's an e-ink display with low refresh rate. I think Intel GPU does do dithering on the HDMI output?

                      • JTL replied to this.

                        ryans I know.

                        I was talking about the video he was watching, how was that recorded?

                          JTL
                          the patterns seen in the video, diagonally moving dots of 3 to 5 pixel diameter or writhing Celtic knots of 6 to 7 pixel width is pretty much universal. It is what I see on my computer if I do not take steps to disable dithering. I have tried every manufacturer of video card including matrox on Linux and windows 7-10. the pattern that is actively moving when dithering is enabled (dots and Celtic knots) is still present when dithering is disabled, but it is static and does not move unless you pass the mouse pointer over it. if you toggle dithering on and off it moves and stops moving on cue. this is independent of driver and video card manufacturer so long as there is a method to disable dithering in the driver. I can see the same pattern I see on my own machine in videos people have uploaded to Utube. the flicker shadow that follows mouse movement on my own machine can also be seen in the mouse movement of users who have recorded their own desktop. it extend in a triangle of maybe 30 degrees with apex at the mouse pointer extending down and to the right but not necessarily along the diagonal.

                          I know this is not a product of the eink because:

                          1: it can be toggled by toggling dithering in the driver
                          2: the pattern seen on my machine is also seen when watching recorded video of other users desktops (mac,Linux, and windows) but the dynamic interference follows the mouse of the user in the video.
                          3: it can be recorded. the recorded pattern in the video signal can be viewed in slow motion or stopped.

                          the eink display forces 32bit color into a variable 16 shades of gray. I am assuming that this "binning" makes the subtle color differences that are used to temporally approximate a color that cannot natively be displayed by the lcd panel visible by making the difference in the colors more extreme than they would be on an lcd. the slow refresh rate helps to make this even more visible.

                          • JTL replied to this.
                          • KM likes this.
                            dev