Hi hpst, I have the following laptops:

Lenovo Z51-70 and Lenovo Ideapad 310. I will check on the panels and get back. I also got improvement on my Dell desktop with a Dell monitor (which doesn't seem to be true 8-bit). I also have couple of other monitors which claim to be true 8-bit. I will try my above solution with 24 as the bpp value and see if it gives improvement.

Please let me know any specific questions that you might have on the solution I posted. I will be more than happy to give all the details.

Ravi

    ravipra Thanks. The fact that if helped on an external display too is encouraging. Is it the etc/default/grub file? Is this the right place to edit and exactly what and where do I do so?

    Yes, that is the right file.

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" would become
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=eDP1:1920x1080-16"

    My output of xrandr | head

    Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
    eDP1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 340mm x 190mm
       1920x1080     60.01*+  59.93  
       1680x1050     59.88  
       1400x1050     59.98  
       1600x900      60.00    59.95    59.82  
       1280x1024     60.02  
       1400x900      59.96    59.88  
       1280x960      60.00  
       1368x768      60.00    59.88    59.85  

    I have other optimizations also, which might be contributing to the +ve effect. If so, mine is:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet norandmaps nokaslr audit=0 cgroups_disable=memory video=eDP1:1920x1080-16"

      ravipra Thanks. I am newer to KDE than linux in general and for some reason I cannot open Dolphin file manager as root to edit the grub file...working on that. So basically changing those 2 or 3 grub command line entries to exactly what you wrote should work? Or I need to modify the "-16" to a number specific to my panel? Should the resolution you use be the panel's native resolution or what you have it set to?

      Do you have any other changes like compositing off or font antialiasing etc set to anything specific? I tried those things to no effect before. Also have you tried with just the video=edp1:1920x1080-16" and is it just as good or are the other things needed. What do those other additions do?

      So by making these changes you are noticing an obvious relief? Like not a maybe or placebo sort of effect but a clear difference which makes you think dithering is off? If so that would be an amazing find.

        hpst , You might be able to edit the file using:
        sudo nano /etc/default/grub

        Only the line containing GRUB_CMDLINE_LINUX_DEFAULT.
        There are three components to the value of video: display-name, resolution, and bpp
        I see that the display-name is always eDP1 for laptops. Do double check run xrandr. The second line should give you your display-name
        resolution is of course the resolution of your screen
        As far as I know, there are very few true 8-bit laptop panels. So 16 should be good for you. You could try 24 as well and compare. Only some values are accepted (..., 15, 16, 24, 32).

          ravipra Yeah all panels I tried in Thinkpads are listed as 6+2 on panelook.com

          I am not understanding why the bpp (what is that exactly? Bits per pixel?) needs to be -16 for a 6+2bit panel but 24 for an 8bit panel...is there some formula you are using?

          It's late here and I am already feeling bad so will need to see if the changes help after some rest. Do you notice dramatic and obvious effects? Were you getting strain/headaches etc before and this relieves it or the testing image is the only obvious difference for you? Those dithering test images never worked for me as they always looked the same regardless of what I tried but will revisit them tomorrow.

          I tried changing compositing settings etc on KDE, But I found that the defaults (on Manjaro KDE) are good. As far as I know the default Manjaro KDE does not use sub-pixel rendering, so that is good (for me) . I had problems with DEs which use sub-pixel rendering. So, yes that is a contributing factor for text.

          The options that I set other than video are not required to for the solution (dithering).

          Just to make it clear, all the lines in your file are required. Just change the line containing GRUB_CMDLINE_LINUX_DEFAULT and do "sudo update-grub"

            ravipra Thanks I made the simple change and not the additional ones but won't be able to tell how it feels until I get rest and spend a few days testing. Can you explain what those other changes are? I also have some other specific questions to make sure my variables are the same as yours:

            1. Are you using redshift or f.lux or any color temp application?
            2. Have you made any manual adjustments to gamma or anything else on the display?
            3. You said you are not using subpixel AA but what about the hinting setting on the none-strong scale?
            4. Are you using any icc color profiles?
            5. How do you arrive at what bpp setting to use for a given native panel's bits?
            6. What are the other xorg changes you mentioned that might be cumulative so we can test with and without those as well. Just one little setting somewhere might be the key.

            @hpst Yes, I did notice a dramatic and obvious effect as soon as I boot with the new parameters. Yes, I definitely had unexplainable strain, inability to focus and making sense of the text that is being displayed etc. Those are gone (touch wood) since yesterday and after a day its even better.

            Sure, please try it at your convenience. I sincerely hope that it helps you as well.

              ravipra Sorry I am excited and editing after you replied and screwing up the flow. I made the changes and will test further. If you could look at my last response to make sure we are using the same settings otherwise I would appreciate it. What time zone are you in? I am in central US time. I will test tomorrow and the next days and am crossing fingers this works. I wish there was an objective test I could do as well to see if this DOES turn off dithering and be sure. It would be incredible if dithering was the problem and it was this simple to shut off in linux.

              A related thought...some people have noticed new Gmail and Firefox etc to be more straining on an otherwise good device. IF that is due to those apps specifically dithering, I wonder if this setting will override that, or if we need to find a way to shut off the apps dithering instructions individually.

              @hpst

              The other changes are to minimize the kernel overheads:
              norandmaps nokaslr - disable address randomization which is a security feature
              audit=0 - disable kernel auditing
              cgroups_disable=memory - disable cgroups for the memory subsystem (something like a quota system for memory used by the processes)

              1. I tried using redshift several times. initially it felt good, but using it for few hours gave me strain. So, gave up on that line
              2. Again I tried changing it using xgamma. The experience was similar to redhift. So not doing anything now.
              3. I am not sure what is none-strong scale, but I used to fiddle with hinting a lot, but never needed to do that I after shifted to Manjaro KDE. The output of "xrdb -query | grep Xft" for me is:
                Xft.antialias: 1
                Xft.hinting: 1
                Xft.hintstyle: hintmedium
                Xft.rgba: none
              4. Since mine is a 6-bit panel, I thought a maximum value which is less than or equal to (6 *3) would be good and tried that, 3 being for the three channels (rgb).

              Yes, a majority of my symptoms (strain, inability to focus) are gone. But like I said, it might be a cumulative effect. If this itself does not work, I can compile and post all my settings.

              I am in IST (India) timezone.

              Sure, I will keep checking this thread and post what I could.

                ravipra . If this itself does not work, I can compile and post all my settings.

                Thanks for all your help. Yes please do post all your settings as soon as you can. I'd like to make the exact same changes you did, and if it works then remove things one at a time and see if that narrows down key elements.

                I have a bad habit of getting excited when there is some new possibility of hope so am trying to restrain myself, but if this works for others as well as it did you this will be a major breakthrough and one that is very simple to implement. We'd then just need to figure out how to translate it to those with Windows and MacOS as well since most people use those.

                @hpst you are welcome! I too am looking at an objective way. Tried to use a cell phone camera in slow motion etc, but to no avail! Hopefully we all together can find one.

                  ravipra You might want to make a new post just for your theory and instructions when you have them ready. Something like "Linux users please test these settings that helped me" etc. That way we can consolidate all results and questions there.

                  Another user @JTL is working on some dithering stuff and should have some good input on this when he is on next. I really hope your idea works as I need a linux solution badly so the timing is perfect.

                  Does anyone have an idea how strong the temporal dithering flicker might typically be? Surely it must be very low? If we have 256 colors for each subpixel and look at grey scale flicker, the lowest flicker percentage could be as low as 1/256 = 0.39%. Which means we could react to 0.39% ripple flicker. That seems incredibly low. The real life value shouldn't be too far away from this? Like, a dark grey with RGB value 64/64/64 could flicker 4 times stronger but at 1.56% would still seem pretty low. Thoughts?

                  • hpst replied to this.

                    KM The only time I have "seen" it is in the Dasung videos but who knows if that display is translating how it actually looks on an LCD that is more capable? On the Dasung's it looks like wiggly maggots and not very fast. But I also don't know that it really matters since looking at any image that you think is static, but its constantly wiggling, can't be comfortable for the visual system to parse I'd think. I have said before if dithering is the issue I think its more the movement of what is displayed, even a white background, than flickering that's an issue. That may sound like a pedantic difference but I mean that flickering is just "on/off" of a point in a regular frequency and happens all around us even in incandescent lighting....apparent movement of the elements/background is a different thing and adds complication to what the brain/eyes have to process.

                    @ravipra I am not seeing any super obvious relief with just the one GRUB setting change on my painful laptop. I haven't used it for a long time but it's still a harder to look at than my 12yo CCFL laptop just at first glance, but it's also hard to trust subjective opinions in the short term as I am afraid of this bad laptop anyway and don't know if symptoms are real or imagined. I'd really like to see how it is with an identical setup to yours. I have a 16.04 iso of Manjaro KDE but have never used it...though I don't see how that should be different than KDE Neon for this issue. Was the difference obvious to you immediately? Or it took some time to adjust?

                    ravipra norandmaps nokaslr - disable address randomization which is a security feature
                    audit=0 - disable kernel auditing
                    cgroups_disable=memory - disable cgroups for the memory subsystem (something like a quota system for memory used by the processes)

                    Why these though?

                    Could we make a list with good (ergonomic) LCD's, internal or external? My laptop screen has issues, and I cannot find a good alternative, I've tried 2 newer models, they all give headaches.

                      dev