NewDwarf

I think the question of weather this works or not may come down to the bit depth of the display panel. There is a command to show what vendors display panel is installed. I don't know if the bit depth information might be available also.

Can you run this command and give us the output please?

ioreg -lw0 | grep IODisplayEDID | sed "/[^<]*</s///" | xxd -p -r | strings -6

A prefix of LTH is Samsung, while LP is LG. All the Samsung displays I have seen are 8-bit. With LG, it may be a mix depending on how old the panel is. The older LG are 6-bit. I am not sure of the newer ones. Again, I don't know what other information may be hidden in the output of "ioreg" (such as bit depth).

The above command will not work on M1 macs. It may or may not work on Monterey on Intel.

    NewDwarf

    caboy Dithering is used to hide banding in our brains only. Enabled dithering doesn't increase bit-ness of the screen/GPU.

    My understanding is that dithering is used to emulate missing colors when a GPU has more colors than a display panel can support. eg an 8-bit GPU with a 6-bit display panel. A rapid flicker between two colors to get an average of a missing color.

    The banding appears on low bit depth displays (6-bit) because they don't have enough colors to show a smooth gradient. Dithering is used to mask / hide the banding.

    It seems most vendors have enabled it by default in all devices this year.

    Well i think every manufacterer is saying true 8bit screen, but the monitor may have a weakness at some level with e.g. gray and dithers is always on as a choice of the manufacterer. True 8bit could be just "nearly true" 8-bit.

    caboy There is more advanced option to get the display information by parsing the EDID blob. Below is my display.

    00 ff ff ff ff ff ff 00 06 10 3e a0 00 00 00 00

    10 1b 01 04 b5 1d 12 78 02 0f 81 ae 52 43 b0 26

    0d 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01

    01 01 01 01 01 01 d9 65 00 50 a0 40 2e 60 08 20

    08 08 1e b3 10 00 00 1a 00 00 00 fc 00 43 6f 6c

    6f 72 20 4c 43 44 0a 20 20 20 00 00 00 10 00 00

    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10

    00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 72

    70 12 79 03 00 7f 81 3f fa 10 00 03 01 18 0f 28

    17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    4c 50 31 33 33 57 51 35 2d 53 4a 41 37 0a 20 00

    44 43 4e 31 33 30 32 30 30 32 58 50 58 47 54 41

    4b 0a 20 20 20 20 20 7f 81 29 fa 10 00 02 01 00

    11 00 00 02 90 03 65 04 89 06 18 08 38 0b 20 0f

    19 14 8a 1c 00 26 3d 34 51 47 ae 62 5a 87 21 b9

    e3 ff 7d 00 00 00 00 00 00 00 00 00 00 00 b3 90

    ----------------

    Block 0, Base EDID:

      EDID Structure Version & Revision: 1.4

      Vendor & Product Identification:

        Manufacturer: APP

        Model: 41022

        Made in: week 16 of 2017

      Basic Display Parameters & Features:

        Digital display

        Bits per primary color channel: 10

        DisplayPort interface

        Maximum image size: 29 cm x 18 cm

        Gamma: 2.20

        Supported color formats: RGB 4:4:4

        First detailed timing includes the native pixel format and preferred refresh rate

      Color Characteristics:

        Red  : 0.6796, 0.3203

        Green: 0.2646, 0.6904

        Blue : 0.1503, 0.0507

        White: 0.3125, 0.3291

      Established Timings I & II: none

      Standard Timings: none

      Detailed Timing Descriptors:

        DTD 1:  2560x1600   60.000828 Hz   8:5     98.761 kHz    260.730000 MHz (286 mm x 179 mm)

                     Hfront    8 Hsync  32 Hback   40 Hpol P

                     Vfront   32 Vsync   8 Vback    6 Vpol N

        Display Product Name: 'Color LCD'

        Dummy Descriptor:

        Dummy Descriptor:

      Extension blocks: 1

    Checksum: 0x72

    ----------------

    Block 1, DisplayID Extension Block:

      Version: 1.2

      Extension Count: 0

      Display Product Type: Standalone display device

      Vendor-Specific Data Block (0x7f) (Apple), OUI 00-10-FA:

        Type: 3, Version: 1

        18 0f 28 17 00 00 00 00 00 00 00 00 00 00 00 00 '..(.............'

        00 00 00 4c 50 31 33 33 57 51 35 2d 53 4a 41 37 '...LP133WQ5-SJA7'

        0a 20 00 44 43 4e 31 33 30 32 30 30 32 58 50 58 '. .DCN1302002XPX'

        47 54 41 4b 0a 20 20 20 20 20                   'GTAK.     '

      Vendor-Specific Data Block (0x7f) (Apple), OUI 00-10-FA:

        Type: 2, Version: 1

        00 11 00 00 02 90 03 65 04 89 06 18 08 38 0b 20 '.......e.....8. '

        0f 19 14 8a 1c 00 26 3d 34 51 47 ae 62 5a 87 21 '......&=4QG.bZ.!'

        b9 e3 ff 7d                                     '...}'

      Checksum: 0xb3

    Checksum: 0x90

      devilgrove

      I tried this (with dither=0) on my Early 2015 13“ MacBook Pro with an Intel GPU and felt no difference in eye strain unfortunately.

      log show --predicate "processID == 0" | grep Dither

      Does not return anything

      nvram -p | grep dither

      returns boot-args dither=0

        devilgrove

        Can you give us more details about your macbook model please?

        You said 16".

        Which year?
        Which GPU?
        Which OS version do you have?

        Thank you

          karut I also have the MacBook Pro 13'' 2015 but it doesn't have dithering by default. And yes, log show --predicate "processID == 0" | grep Dither

          returns nothing.

            NewDwarf

            Interesting…I assume you also run the latest version of OSX Monterey. I will test the MacBook with an external monitor. The display should at least have no PWM according to Notebookcheck.

            caboy my MacBook is actually a 16,2 meaning it's part of the 16th generation of MacBook Pros.

            It'a a 2020 13" 4 TB3 running Catalina 10.15.7. It uses Intel Iris Plus from the Ice Lake generation.

              NewDwarf

              From what I can tell, the display panel is LG. Denoted by: LP133WQ5-SJA7

              Looking online at the closest match to that model number it seems to be an 8-bit display (16.7 million colors). https://www.lcdsolar.com/products/ProductDetail.aspx/LGDISPLAY/LP133WQ1-SJA2/43520

              I think the line with Bits per primary color channel: 10means that the GPU is a 10-bit GPU.

              Thank you for posting and for your research finding a possible solution. I ordered a refurbished Macbook Pro Intel and will test when it arrives.

              [Edit to add]

              The LG panels previously gave me really bad eye strain (in 2012 models and others). This gives some hope. Thank you.

                devilgrove Update to this:

                I disabled AppleIntelICLGraphics.kext and AppleIntelSlowAdaptiveClocking.kext, and the display is now exactly like Safe Mode (as far as I'm aware). The only problem with this is that the display rendering is just as slow and just as glitchy as Safe Mode as well. Not sure if this is usable for me in the long run, but for those who can use Safe Mode but want full access to their Mac, give this a go.

                Also, I have a rough idea of how I would go about trying to keep Safe Mode-level strain while being able to speed up the rendering. AppleIntelICLGraphics.kext is broken down into four bundles: The GLDriver, MTLDriver, VADriver, and VAME bundles. My theory is that I could disable or modify a combination of these bundles and keep ICLGraphics.kext enabled so that the render is back to normal speed. If anyone has ideas it would be appreciated, thanks.

                Edit: too many applications required the use of OpenGL / Metal to run properly, so I reloaded AppleIntelICLGraphics.kext. I'll try to think of another solution (if there is one).

                  caboy

                  I think the line with Bits per primary color channel: 10means that the GPU is a 10-bit GPU.

                  No. According to the EDID specification, this is "Basic display parameters". So, this parameter is not related to the GPU. Primary colours are Red, Green, Blue. So each primary colour can be sampled by 210 levels.

                  caboy yeah, it's still there unfortunately, but it's way more usable. My old configuration (which was like 10-15 different things going on in the setup) was a 4-5/10 in terms of pain. This is like a 1.5/10, and for the most part uses macOS on its default settings other than the nvram argument, color profile, and font smoothing. I even have the resolution on default now, versus having to use the non-HiDPI resolution before. I'm gonna try to find a true 8-bit display to hook up my MacBook to so that I can test if it'll get rid of the last bit of strain.

                  ryans I would say the same answer as devilgrove, eyestrain improved from 4/10 pain to 1/10. Problem is that the banding is completely the same as before (at least on my MacBook Pro) so we have no objective way to prove it's not placebo and that it has a real effect

                    ryans Additionally, you can try to change gamma of the screen in the expert mode. It also has some effect.

                    https://discussions.apple.com/thread/8167595

                    But I use the predefined "Display P3" colour profile. BTW, my laptop has the LG screen. Probably, users will have another experience with the Samsung screens.

                    And, yes, I can confirm that I absolutely happy when dithering is disabled on my laptop.

                    …recently I bought the avalanche photodiode and I am going to build new very sensitive application to measure high frequency PWM on low brightness.

                    dev