Skip to content

Eye care: prevent PWM and or temporal dithering

waydabber edited this page Aug 14, 2024 · 11 revisions

Two common issues with computer monitors that cause eye strain for people who are sensitive to high frequency flickering are the following:

  • PWM is a technique (Pulse Width Modulation) used in some displays to control brightness or achieve a dimming effect. It involves rapidly turning the screen's LED backlight (or for OLED screens, pixels) on and off at a specific high frequency, creating the illusion of different brightness levels.
  • Temporal dithering is a technique to produce more colors than what a display's panel (or display connection) can support (for example showing colors with 10 bit color depth - "billions of colors" - on an 8 bit - "millions of colors" - panel). When the display does not have the capability to show the full color depth, it will emulate missing colors by rapidly change between two adjacent color levels thus creating a middle ground.

BetterDisplay has some capabilities to help with these issues.

Note

The article reflects app version v2.2.3

Preventing PWM

In order to prevent PWM flicker, you first need to figure out the hardware brightness threshold below which PWM is activated. For most displays this is somewhere between the 30% and 50% range. You can use various techniques to figure out the exact treshold or you can simply assume 40% which should be safe for most displays.

In order to prevent the display to use hardware brightness levels below the PWM threshold and use BetterDisplay's software dimming instead (which does not trigger PWM), you should change the Combined brightness - minimum allowed hardware brightness level setting under the display's Advanced control settings section (make sure Combined brightness is enabled for the display).

This technique works both for built-in displays and external displays with hardware birghtness control.

Help with temporal dithering

Preventing temporal dithering on Apple Silicon Macs

Note

In app version v3.x the GPU Dithering option mentioned below can be found under the Color Mode menu.

Apple Silicon Macs automatically select the best available color depth for a display connection - this usually results in 10-bit color depth with no option to change this and thus prevent temporal dithering (or FRC - a high frequency switching between color levels to achieve an interim color).

Starting with version v2.3.0 you can toggle GPU Dithering under Image Adjustments to turn temporal dithering on and off for Apple Silicon Macs. This option is available and useful both for the built-in and external displays. Please note that this setting changes GPU side dithering and disables dithering for built-in Apple displays - external displays that have their might have their own additional hardware temporal dithering algorithms (still disabling GPU dithering helps).

Screenshot 2024-04-12 at 10 30 46

A possible alternate option is to create a virtual screen using the app (which always uses a 8-bit color depth) and mirror it to your real screen (go to Settings > Displays > Create New Virtual Screen..., select Match aspect ratio..., select the display and toggle on Configure virtual screen mirroring, then click Create Virtual Screen). Based on user feedback this helps with temporal dithering issues.

Note

Using virtual screen mirroring to prevent temporal dithering is a workaround with some drawbacks. Virtual screen mirroring has some bugs (mouse cursor issues, color issues, sleep issues) in macOS when employed on Apple Silicon Macs.

Preventing temporal dithering on Intel Macs

Intel Macs allow you to switch between 8-bit and 10-bit color depth. In order to prevent temporal dithering for most displays, you simply need to switch to 8-bit color depth under the display's Color Depth submenu in the app menu.

Creating an e-book like appearance and limit number of on-screen colors

A great way to reduce the number of rendered color is to use the quantization filter. This, combined with grayscale rendering can create an e-book like appearance which some find soothing to the eyes (to access the Grayscale Framebuffer option - available on Apple Silicon only -, hold the OPTION key while opening Image Adjustments).

Screenshot 2024-04-12 at 10 34 41