4

My external display (HP 27f 4k) will not achieve full brightness when connected to my M1 MacBook Pro (2020, 13", Ventura 13.2) via the official Apple USB-C HDMI adapter.

  • The display's brightness is cranked all the way up
  • "True Tone" is off
  • "Automatically adjust brightness" is off
  • "Slightly dim display on battery" is off
  • I've recalibrated the display color, gamma, and white point (in macOS) and then restored it back to the factory default (because it made no difference to the brightness)

I noticed this because I sometimes need to use a Windows laptop with this display. The monitor on Windows was noticeably brighter. So, I measured the brightness with a screen calibration tool and compared the results of the same monitor in the same location (all the same external variables) with the monitor plugged into my MacBook and then into a Windows laptop. I measured against a fullscreen browser window displaying a page with nothing but #FFFFFF (white) as the background color. Results:

  • 290 nits from the MacBook
  • 335 nits from the Windows laptop

What's going on here?

I suspect this is a software thing because I think I've seen the display snap from full brightness to this dimmed state after login. I say "think" because now that I've decided to write this post, I can't reproduce it. But my memory is that I'll log in, and seconds after the desktop is displayed, the brightness snaps to this dimmed state.

10
  • Is the laptop plugged into the charger or running off the battery?
    – IconDaemon
    Feb 13, 2023 at 17:09
  • M1 Macs have no limit on their computing performance even in battery, and the question is about an external display. Why would the MBP running from battery make any differenzce
    – X_841
    Feb 13, 2023 at 17:54
  • @IconDaemon Interesting question. The laptop is plugged in and is charging. Both power and the HDMI video signal are running through the adapter. I unplugged the power so only HDMI was going through... no difference. It was worth a shot though!
    – Sam
    Feb 13, 2023 at 18:21
  • @X_841 -In System Settings > Displays > Advanced ... there is the option to 'Slightly dim the display on battery" Just checking all the options.
    – IconDaemon
    Feb 13, 2023 at 20:27
  • @IconDaemon Right... yes, that option is off too. I'll edit my question with that info. Thanks for the reminder.
    – Sam
    Feb 13, 2023 at 21:24

2 Answers 2

0

The short answer is you cannot change this because it's a limitation of the GPU kext (driver) in macOS.

Apple set the brightness level to be a range of two values - minimum and maximum brightness* - whereas the Windows driver uses min/max values sightly more/less than Apple's.

For a full explanation of this, see the answer in MacBook Air 2020 change screen brightness limit in macOS.

I attempted to get datasheets for the most recent AMD GPUs (RX 5600M), but unfortunately they are protected behind an “OEM Partner site” which I don’t have access to. However, in my research, I found this information about Adjusting Display Brightness for all AMD GPUs.

While this info is Windows centric, it illustrates that brightness control is via GPU through the driver (in Windows) or kext (in macOS). Even though you can adjust the brightness value, it’s limit is constrained by the driver/kext, not the OS itself.

As for what you experienced with Windows being brighter than macOS, this just illustrates the point that the driver in Windows is configured with a higher maximum value than macOS.

Why?

Only Apple can say for sure, but I would bet they limited the brightness to extract every minute they could from the battery.


* It's actually a value of dimness. By default, the panel is 100% bright and by controlling signaling to the panel, it dims it by lowering voltage within a pre-programmed range defined in the driver.

7
  • Hmm... but isn't the linked post referring specifically to the MacBook's built-in display? I'm seeing dimming on an external display.
    – Sam
    Feb 13, 2023 at 21:23
  • Yes, this answer here is about the built-in display, not the external display - so it doesn't apply to this question at all.
    – jksoegaard
    Feb 13, 2023 at 21:31
  • Actually it does @jksoegaard. Whether you are using an internal display on a MacBook Pro the GPU signal goes through a mux that routes video. That mux sends the same panel brightness signal to the dispkay.
    – Allan
    Feb 13, 2023 at 21:36
  • @Allan And what kind of signal might that be then? (I don't believe this to be correct)
    – jksoegaard
    Feb 13, 2023 at 21:40
  • @jksoegaard - It is the PWM signaling that directs the LCD driver chip which is present in both the Mac display panel and the external display panel. The GPU is what outputs that and the only thing that communicates with the GPU is the kext.
    – Allan
    Feb 13, 2023 at 21:55
-2

In general, a Mac does not control the brightness of an external monitor as such.

The explanations regarding min/max values in GPU kernel extensions and PWM signaling to LCD drivers chips are incorrect. That sort of thing applies only to the internal display on the laptop.

In your case, you have an external monitor connected over HDMI. There's no PWM brightness signal in a HDMI connector - it simply doesn't work that way.

Only some monitors actually support controlling their brightness from the computer - and again in some cases it's a proprietary interface. In general, external monitors that do support brightness control over HDMI, do so via DDC.

DDC is an I2C bus with a somewhat standardised, digital protocol on top that allows for information to flow to/from the monitor and the computer. The brightness "signal" is thus not analog voltages or a PWM signal, it's digital commands.

On top of DDC, there's a standard set of commands known as MCCS (Monitor Control Command Set). A few monitors also make MCCS available over USB (for example the old Apple Cinema HD display).

MacOS does not send out these MCCS commands over DDC to external monitors. Apple has their own system for managing brightness on their own external monitors, but it is not used with third-party external monitors.

To sum that part up - macOS is not asking the monitor to lower its brightness.

This means that there are two possibilities:

Either:

  1. The settings in the on-screen-display menu on the monitor has the brightness somehow set lower than maximum (unlikely given the information you have included in your answer)

or

  1. The Mac is not sending the same image data to the monitor to display as the Windows PC.

The latter can happen because of color profiles:

On the Mac, check System Settings > Displays and "Colour Profile". Try changing that to see if it changes the brightness output, you're measuring. Browsers can and will use colour profiles - so even if you display the same PNG file (for example) in two different browsers they can show different colours - even when the colour code is listed as #FFFFFF for example. The browser might apply a color profile as can the operating system in general.

If you want to try setting the monitor brightness from macOS, you can do that by installing a third party DDC utility. I think the best/easiest is to install BetterDisplay or MonitorControl.

It could also be for example the ddcctl tool available from HomeBrew, however I'm not sure how well it supports your M1-based Mac yet.

For the M1 specifically there's another tool named m1ddc. Unfortunately it is not clear whether that works when controlling a monitor connected over HDMI. So you might need to use a different cable to connect the monitor over DisplayPort instead.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .