Taking Action
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.
- Edited
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"?
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).
- Edited
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.
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
- Edited
Intel are going to include Color Depth/Subsampling controls later this year in the updated Graphics Command Center.
We wanted to include the option to manually select Color Depth and Subsampling by end of Q4'19 or earlier Q1'20, but it was necessary to push it back (that is why I usually don't like providing ETAs as dates can shift). Rest assured that the feature is still on track for implementation in a next Intel Graphics Command Center release (updated target is Q2'20).
Edward 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".
Thanks for this information. Have just done this on my laptop and it's much easier to look at. Of course my graphics card is now endlessly bombarding me with notifications that the driver isn't working properly.
The only negative is that I can't seem to change the brightness of the screen. But I can live with that.
It's gone bad already. I started feeling nauseous about 2 mins ago. Oh well ... it felt good for maybe about 5 mins. Back to the drawing board again.