Seagull I don't want to be the parade pisser, but I don't think this is enough for legal action. The writing of patents, and the granting of patents is not rigorous. I could patent a necktie for aliens, doesn't mean they are real. This stuff about flicker perception is inconsequential, it is merely background context for the invention itself.

Fair enough, however we know that Apple are using temporal dithering on AppleOS so this patent may have useful information on how it is performed.

Seagull The first patent mentions dithering may cause discomfort, but in no way proves it.

It stipulates the conditions in which discomfort could be caused. It's difficult to conclude that is proof when only a small minority are affected by dithering anyway, so it's going to be subjective.

If the pixels displayed at the same screen location (with a frame rate of 60 Hz) have a repeating sequence of intensities (within a limited intensity range) that repeats every four frames due to dithering, a viewer will likely perceive annoying 15 Hz flicker, especially where each frame contains a set of identical pixels of this type that are displayed contiguously in a large region of the display screen.

Seagull If you want to put something together, look in research journals. They are rigorous and peer reviewed, where the peers in question are generally the most experienced and most highly qualified in their field. That is the proof you will need.

That may be so, unfortunately for the lay person this is a monumental task. I wouldn't know where to begin looking, otherwise I would have prepped a case years ago.

2 months later

It seems we are going to be waiting a long time if we expect changes to be made by the big companies. I have been aware of these issues for five years, and I'm sure some others here for much longer. I didn't expect to still be experiencing symptoms for this long and without a way to control dithering five years later. I thought it would have been updated or resolved by now. I want to continue to support the tech industry but find that I am no longer excited by anything new, because I know I won't be able to use it.

Can we crowdfund somebody to fix this issue? If Amulet Hotkey can create dithering tools then we know it can be done. Is it complicated? I'm sure it is, but for the right person it is a cinch, and perhaps less than a few hour's work.

    diop Can we crowdfund somebody to fix this issue? If Amulet Hotkey can create dithering tools then we know it can be done. Is it complicated? I'm sure it is, but for the right person it is a cinch, and perhaps less than a few hour's work.

    Don't ask, but reverse engineering closed source drivers and binary patching takes more then "a few hours". It's a compuer science skill in itself.

    Linux would be an easy "prototyping" platform though. Since (with the exception of the Nvidia binary driver) all GPU drivers on Linux are open source. The problem there is for finding the right code for controlling a feature (let's say dithering) it's a "needle in a haystack" sort of problem. A single GPU driver can have a dozen copies of the same function for different models of GPUs and it's often not clear which function is for what GPU (no labels).

    I have some announcements to make regarding a research project related to that. Will be within the month.

      JTL
      macOS: Amulet Hotkey, safe mode on macOS start up
      Linux: drivers
      Windows: Microsoft Basic Display Adapter, ditherig, igfxtweak

      Do these count as starting points? Not tried Amulet, safe mode on macOS changes the type of discomfort I have, but doesn't remove it. Microsoft Basic Display Adapter is what I use daily and the best solution I have found for my case.

        Edward Let me address some of your points

        Edward macOS: Amulet Hotkey

        Not publicly available. All it proves is this is possible, assuming no other factors causing strain.

        Edward Linux: drivers

        See above post

        Edward safe mode on macOS start up

        I believe it runs with only "basic" drivers that are running the hardware in a different way so the "vendor" drivers are doing "something" different. Side effects include lower performance and instability with certain applications.

        Edward Windows: Microsoft Basic Display Adapter

        Similar as above

        Edward ditherig, igfxtweak

        I think some people had some issues. Might be fixable. A Linux port should be doable.

        Edward Do these count as starting points?

        Close but no 'cigar.

          JTL Obviously solving the visual impacts are primary. But security and stability (OS updates, driver updates, hardware compatibility, and other things I don't understand) are - for many - just as important. I don't have much of a clue about the tech side of things. Could you say which likely solutions are likely the best for security and stability?

          • JTL replied to this.

            Edward Could you say which likely solutions are likely the best for security and stability?

            With context of current OS's and eyestrian, or in general?

            That's a complicated topic that's made my career really. Way too long to fit into a single forum post.

            I'd be willing to discuss more in depth another time.

              Edward Can you describe your solution with the Microsoft Basic Display Adapter more in detail?

                JTL Don't ask, but reverse engineering closed source drivers and binary patching takes more then "a few hours". It's a compuer science skill in itself.

                So as an example in Amulet Hotkey's case, their Windows Nvidia tool (nvdithctrl) can be run manually or scheduled to run on startup. So am I correct in understanding that these tools don't "re-write" the driver so to speak but rather know how to talk to the driver to disable dithering? Do you believe Amulet would have worked directly with Nvidia/AMD/Apple to create these tools?

                Presumably there are people that are looking to develop apps that interact on a driver/low level. So If I wanted to create an app to control dithering, how would one start? Is there a 'Driver Bible' that these companies can give developers with known workings of drivers or is it not as simple as that?

                • JTL replied to this.

                  JTL That's a complicated topic that's made my career really

                  Wow. Glad you're here.

                  diop So as an example in Amulet Hotkey's case, their Windows Nvidia tool (nvdithctrl) can be run manually or scheduled to run on startup.

                  Correct

                  diop So am I correct in understanding that these tools don't "re-write" the driver so to speak but rather know how to talk to the driver to disable dithering?

                  Or they talk directly with the GPU, but the concept is similar enough

                  diop Do you believe Amulet would have worked directly with Nvidia/AMD/Apple to create these tools?

                  It's entirely possible they have an inside contact which would make things easier, but given enough knowledge and effort you could do it independently without such contacts.

                  diop Presumably there are people that are looking to develop apps that interact on a driver/low level

                  Such as myself, but I am a busy man.

                  diop So If I wanted to create an app to control dithering, how would one start?

                  Know low level C and x86 assembly language, how to use a debugger, how memory management works on the given platform (Windows, OS X, Linux, etc.) how to use said debugger to modify driver code at runtime, etc. Run experiments from there.

                  diop Is there a 'Driver Bible' that these companies can give developers with known workings of drivers

                  In theory these documents could exist, but often they'ree given to employees only or are NDA. What I can say is everything I know I learned from either myself or non NDA sources.

                    Markus To enable it in Windows 10 go to "Device Manager" and in the main part of the display "Display Adaptors" I select the Intel integrated graphics and I right click on "Disable Device".

                    You can check if you are on Microsoft Basic Display Driver by running dxdiag.exe and selecting the display tab. It will state "Microsoft Basic Display Driver" near the top. It is very easy to enable the drivers again if you want to play games, do colour sensitive work, etc. For office applications and web browsing, I am happy to use the basic display driver.

                    I am currently using a laptop with no discrete graphics card.

                    If I set the resolution to 19201080 I still get headaches but much better than without. Probably similar to using ditherig. If I set the resolution to 1024768 (a 4:3 aspect ratio) using "Display Settings">"Display Resolution" then I get the best set up for my eyes. This stretches the 4:3 graphics output to fit the 16:9 laptop screen, so the images are distorted (stretched in the horizontal direction).

                    My main experiences when using screens I don't like are feelings of tightness in my head and eyes, headaches, and often a sense that the screen is moving (both on PWM screens and screens I have read are PWM free). Over time this leads to tiredness and what I've read as brain fog. When I use macOS the whole page seems to be constantly changing. No images are moving, there are no afterimages, but I get the sensation of constant change from a screen that is displaying a static image. All of that goes when I use the Basic Display Driver on Windows 10. I have been using computers since the mid 1980s. I used them as the main part of my work for decades. I had no problems until 2012 when I bought a Mac Mini and MacBook Air. I've tried many different solutions since. The differences between a good set up and a bad one are obvious. To the people who say that these symptoms are normal or I am a freak, I say that I have had tired eyes at many different points in my life before 2012. But the symptoms I talk about have as much to do with tired eyes as a broken bone has to do with a bruise. The worst example of my symptoms comes in expensively lit rooms, such as museums, jewellery shops, and conference venues. Obviously not all venues impact me, but I can feel physically nauseous in minutes in some places.

                      JTL Know low level C and x86 assembly language, how to use a debugger, how memory management works on the given platform (Windows, OS X, Linux, etc.) how to use said debugger to modify driver code at runtime, etc. Run experiments from there.

                      As you've mentioned before, Linux is a good starting point as most of it is open to play around with. However checking out the AMD freedesktop link on the Linux thread, it seems there is no black and white solution, and lots of talk of register changes. It's well above my level of knowledge but it confounds me how even the developers themselves don't say if dithering is enabled or how to disable it. It didn't just appear by magic one day! Does enough documentation exist to build a 'dither-free' Intel driver on Linux, or develop a way to disable it?

                      Edward I had no problems until 2012 when I bought a Mac Mini and MacBook Air. I've tried many different solutions since. The differences between a good set up and a bad one are obvious. To the people who say that these symptoms are normal or I am a freak, I say that I have had tired eyes at many different points in my life before 2012. But the symptoms I talk about have as much to do with tired eyes as a broken bone has to do with a bruise. The worst example of my symptoms comes in expensively lit rooms, such as museums, jewellery shops, and conference venues. Obviously not all venues impact me, but I can feel physically nauseous in minutes in some places.

                      I haven't actually tried disabling the Intel drivers, I may give this a shot. I remember in the mid/late 00's getting eye strain at my desk job, however I define eye strain as actual eye muscle pain (in my case I believe it was caused by a bad monitor position). This newer issue is more like nausea/motion-sickness than actual eye strain for me.

                      The very fact that we have no control over dithering means it can't be ruled out. Having researched into what temporal dithering actually is, I don't see what else it could be. Pixel colors are changing on our screens in ways they didn't before; fact. Even if I didn't have symptoms and was 'normal', knowing what PWM is (essentially an on/off strobe) and temporal dithering (a pixel flickering between two colors to generate the intermediate color), I wouldn't want either of them.

                        diop but it confounds me how even the developers themselves don't say if dithering is enabled or how to disable it

                        I think part of the issue is even independent of the operating system and/or driver in use the video card can have it's own "starting settings", which the driver can either "use as is" or override it. This can impact things in unknown ways.

                        diop Does enough documentation exist to build a 'dither-free' Intel driver on Linux, or develop a way to disable it?

                        Documentation: No

                        But I suspect I myself could come up with something with enough free time and such. Not right now though.

                        diop knowing what PWM is (essentially an on/off strobe) and temporal dithering (a pixel flickering between two colors to generate the intermediate color), I wouldn't want either of them.

                        Agreed for sure

                        JTL I believe it runs with only "basic" drivers that are running the hardware in a different way so the "vendor" drivers are doing "something" different. Side effects include lower performance and instability with certain applications.

                        Could you please tell what are "vendor" drivers? And what does it mean "doing something different"?

                        • JTL replied to this.

                          diop, I could disable dithering in linux intel driver (on Manjaro Linux kernel). However, since the xserver uses 8-bit color, and also presumably majority of the images on web pages are 8-bit, it results into visible banding. That somehow was not comfortable to me. But if someone is interested in trying out I can try again and give you a compiled intel driver or a source code patch for anyone who wants to try compiling on their own (or review my changes and see if there is anything wrong).

                          Edward You can check if you are on Microsoft Basic Display Driver by running dxdiag.exe and selecting the display tab. It will state "Microsoft Basic Display Driver" near the top. It is very easy to enable the drivers again if you want to play games, do colour sensitive work, etc. For office applications and web browsing, I am happy to use the basic display driver.

                          Thanks for the tip. I gave it a try on a known bad device. It defaulted at 1024x768 and when attempting to change it to a higher res, it went to a black screen (hmm..). It definately looked calmer compared to the Intel driver, however IMO there is still some strain going on. I would say it would prolong my use on the machine but not for more than a few hours at most. I suspect maybe it's W10 shennanigans or just something in the VBIOS of this device. I may try it at a later date on a known good device to see if it makes a difference.

                          Which is making me realise, we could get a dither toggle tomorrow, but it is useless unless we can control what the VBIOS is doing first.

                            diop IMO there is still some strain going on

                            Yeah, agreed. I don't know if that's just LED lights or the software or both.

                            annv what are "vendor" drivers

                            Drivers that come from the GPU manufacturer, as opposed to the generic drivers that come with the operating system and have limited functionality

                            annv And what does it mean "doing something different"?

                            The vendor drivers may potentially be initializing the card in a different manner, which causes dithering or other eyestrain inducing modes to activate. Just a plausible theory why there is a difference.

                            diop Which is making me realise, we could get a dither toggle tomorrow, but it is useless unless we can control what the VBIOS is doing first.

                            I suspect some GPUs have a preset "dither mode" when it boots up that the driver can override, but this is just some "informed speculation" from my research

                            dev