Temporal Dithering Sensitivity - My Solution
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.
- Edited
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.
- Edited
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)
- Edited
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.
- Edited
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
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.
- Edited
I spoke with the developer of igfxtweak. His thoughts:
Intel for some reasons disables dithering on <8 bit screens, but enabled it on 8 bit. This seems opposite of what dithering is designed for: https://communities.intel.com/message/428034. However this does not explain why I don't see banding on a laptop screen that I suspect is 6bit.
The reason we can see dithering on the e-ink displays is likely because the display represents itself as having 8 bit panel. This means Intel will use diterthing.
Data sheets about Intel GPUs here: https://github.com/olvaffe/gpu-docs
igfxtweak tool does support external monitors, I don't know about ditherig.
- Edited
ryans Intel for some reasons disables dithering on <8 bit screens, but enabled it on 8 bit. This seems opposite of what dithering is designed for: https://communities.intel.com/message/428034. However this does not explain why I don't see banding on a laptop screen that I suspect is 6bit.
Laptops are 6-bit and have dithering by the GPU?
ryans The reason we can see dithering on the e-ink displays is likely because the display represents itself as having 8 bit panel. This means Intel will use diterthing.
Yes. Well I've never seen an external display that represents itself as being under 8-bit.
ryans Data sheets about Intel GPUs here: https://github.com/olvaffe/gpu-docs
I think I've already posted some data sheet PDF's a while back?
ryans igfxtweak tool does support external monitors, I don't know about ditherig.
igfxtweak supports it by the multiple "pipelines" as seen in the datasheet (one pipeline per GPU output connector).
Why do we call it ditherig and not dithering.exe? Someone made a typo once and it stuck? lol.
No promises but I might have something similar for AMD graphics under Windows/OSX/Linux in the future. I've been busy but be rest assured I'm still working on it