Power Consumption Implications of Liquid Retina XDR/MiniLED on MacBook Pro

MiniLED, baby

LCD Backlight comparison (source TCL, via CNET)

Apple’s shift towards MiniLED display technology on the 2021 M1 Pro/Max MacBook Pro’s represents a huge leap in image quality as many reviewers have found. Contrast and colour accuracy are best in class, and blooming (a common issue with Full Array Local Dimming (FALD) displays) is well controlled.

However, one aspect of MiniLED which I haven’t seen discussed in as much detail is power consumption. The platform power consumption of Apple Silicon Macs (and to a lesser extent, recent Intel/AMD based notebooks) has become so low that for many everyday tasks, it is the display, not the SOC, which is the primary power draw. I regularly notice massive battery life fluctuations on my 14 inch MacBook Pro despite workload being the same, which can be attributed to display brightness.

So how do MiniLED displays compare to non-FALD LED displays or OLED panels? Well, you won’t find the answer here, but hopefully my observations below will bring us a little closer to the answer.

Method

To obtain display power, I measured total system power consumption at idle (iStat Menus) and subtracted platform power (which was calculated as total system power with display off). A better way to do this would have been to probe the display power rails directly, but this was out of the scope of a lunch-break project (and my expertise).

FALD displays work by dimming or turning off backlight zones in areas of the image which are dark or black, which can reduce display power consumption. Therefore, the impact of Average Picture Level (APL) was also measured by using test images with solid blocks of black and white at various ratios.

Results

Display power consumption under various brightness and APL conditions on 2021 MacBook Pro 14

As expected, higher display brightness corresponds to higher power consumption up to a maximum of ~6.1W for SDR (500nits) content. The difference between 100% brightness and 6.25% (one step above “off” on the brightness controls) corresponds to approximately 7.5 hours vs 20 hours of battery life under light usage, which is a huge range.

Power draw increases dramatically after ~50% brightness. The almost-exponential increase in power consumption at higher display brightness can be attributed in part to the luminous efficacy of LEDs, which decreases logarithmically with increasing power. Furthermore, our eyes are less sensitive to changes in brightness at higher brightness levels, and so the display brightness controls on the MacBook Pro are non-linear to accommodate for this.

Viewing HDR content pushes the display up to 1600nits peak brightness or 1000nits sustained. I don’t have a way of quantifying brightness or APL of my HDR sample videos yet, but clearly running the display at 2 or 3X the brightness of SDR will cause power consumption to skyrocket, as can be seen in the graph above.

Saving power with dark mode?

When taking APL into account, lower APLs result in lower power draw at every brightness level, which I am sure is a surprise to no-one. However, this result got me thinking, maybe we could reduce display power (and increase battery life) by changing the UI of the display to reduce APL. Fortunately, MacOS features Dark Mode which does just that.

Opinion Alert: I much prefer light mode over dark mode in MacOS and iOS, but that’s a rant for another post. Anyway, now I that I have offended half the MacOS userbase..

Display power consumption on 2021 MacBook Pro 14 in Light and Dark mode at maximum brightness viewing a static document on Microsoft Word

Well would you look at that, the difference between dark and light mode is 0.4W, which is probably the first surprising result of this post. For context, this translates to a measly 20 minute difference in battery life, and not what I expected based on the brightness/APL test graph above. My guess is that the high contrast white text causes the backlight in those areas to stay on at high brightness, which is what would have happened anyway in light mode (black text on white background). However, there are large areas of the display devoid of text which are darker in dark mode than light mode, and I suspect the small power saving I observed in the dark mode scenario would be due to this. It’s important to note that an OLED display would see a much greater relative power savings in this scenario, as OLEDs have per-pixel brightness control.

So, the MiniLED display of the MacBook Pro can be more frugal in terms of power consumption when the backlight is given an opportunity to turn off in certain parts of the display (as can be seen in the brightness/APL graph testing methodology). However, in mixed everyday use, even in dark mode, the power savings were less pronounced. Based on my brief observations, it would appear that the main benefit of Apple using MiniLED in the 2021 MacBook Pros was for image quality and HDR support, rather than power savings.

Automatic Graphics Switching woes on the Macbook Pro

Apple has used multiple GPU’s in their 15” MacBook Pro’s since 2011, and have also implemented a system to automatically switch between the slower but power efficient integrated GPU (iGPU) and higher performance discrete GPU (dGPU) depending on what the user’s applications require.

At first, many applications didn’t play nice with automatic graphics switching and unnecessarily activated the dGPU when it was clearly not needed. A well known example was the official Twitter application, which kept the dGPU running constantly when open, resulting in dramatically decreased battery life and increased system temperature.

Thankfully, most popular Mac OS applications behave themselves on systems with multiple GPUs and don’t activate the dGPU unless they actually require the higher performance. For example, Steam games and Adobe Photoshop activate the dGPU, but Evernote, MS Office and Spotify rightfully do not. However, there are a few applications that still stubbornly activate the dGPU upon opening, and keep the dGPU running as long as they’re open (even when in the background). The Radeon Pro 460 dGPU on the 2016 MacBook Pro idles at ~3W which is quite low for a dGPU, but 3W is still significant especially if it means the difference between 5 hours or 9 hours of battery life.

Screen Shot 2017-04-06 at 16.53.13
Idling with the dGPU on has a power/battery life cost

This small trick can prevent specific applications from activating the dGPU. I’m going to be using an app called Mendeley for this example. Mendeley activates the dGPU when open, and being a reference manager and PDF reader, I see no reason for the application requiring the extra performance a dGPU provides.

1) Navigate to the Applications folder

2) Right click Mendeley and select “Show Package Contents”

3) Click on “Contents”

4) Right click “Info.plist” and open with TextEdit

Screen Shot 2017-04-05 at 23.38.40

5) You’ll see something like this. You’ll want to paste the following (highlighted text in image) into the file

6) Save and close Info.plist

7) Open Mendeley and enjoy the extra 2+ hours of battery life by keeping the dGPU off

Every time Mendeley is updated, you’ll need to re-do this “mod”

For me, this method has worked for Mendeley, Graphpad Prism and Adobe Reader (for Adobe Reader you’ll need to find the helper application and change the info.plist file for that too). Some websites can activate the dGPU depending on the services they request, such as Facebook chat. I’m not sure how to stop this from happening (Facebook chat shouldn’t really be using my dGPU), so if anyone knows how to prevent this I’d love to know.

For those who want to keep an eye on which GPU is being used in their Macs, there’s a handy menu bar application called gfxCardStatus by Cody Krieger that can notify you when the system switches between GPUs. Within the application you can also force the integrated or discrete GPU, but there are limitations as he describes here.

I don’t think I should conclude about the “state of graphics switching in Mac OS”, as Mac OS and applications are constantly being updated and things should improve over time. Developers should be aware of the power cost of their applications, especially when a single application unnecessarily activating the dGPU on a MacBook Pro can cut battery life in half.

On the hardware front, integrated GPUs are currently not fast enough and discrete GPUs can’t idle low enough, so the solution naturally is graphics switching. Maybe someday in the future we’ll have a single GPU that can span the entire power/performance range that consumers and Apple are looking for today, but for now we’ll just have to put up with the minor niggles of graphics switching, such fun.