Hacker News new | past | comments | ask | show | jobs | submit login
Trying to get past the 500 nits limit of the MacBook Pro (and failing) (alinpanaitiu.com)
157 points by alin23 on Feb 4, 2022 | hide | past | favorite | 82 comments



I was amazed by how bright this page could get, on both Macbook and iPhone — https://kidi.ng/wanna-see-a-whiter-white/ — and I want to figure out how to use this superwhite on my interactive tutorials. But as far as I can see, canvas, svg, and webgl can't access it.


Further info: https://prolost.com/blog/edr

What’s nuts is that this also works on displays without the ability to control luminosity on individual parts of the screen. The link you posted works on my 2020 11” iPad Pro, which has an LCD with no local dimming.

However, it slowly ramps up over a second or two, whereas my OLED iPhone (which can of course set luminosity per pixel) enters retina-searing mode immediately.


My iPhone X ramps up as well.


Even on 100% brightness, an iPhone Pro 13 shows the "White" text significantly brighter than the background white.

Some other interesting observations:

- If I zoom in, the over-100%-bright text fades until it blends in with the background. This is expected (OLEDs have higher peak brightness for small areas), but what isn't expected is that it seems to do it in discontinuous steps.

- If I go outside into full sunlight, the contrast between the page and text is lower. This is again an iPhone feature in action where "maximum brightness" is actually further boosted in bright conditions.

- The text takes a few seconds to reach maximum brightness. I expected it to start at full brightness and fade, but it seems to do the opposite...

I can understand why the notion programmers have that "color" is an RGB triple of 8-bit integers from 0 to 255 is so attractive. It's a simple mental model with no complexity. But to get the most out of modern displays, we have to abandon such childishly simple models. Each color channel will need to be 10 bit minimum, 16 if using linear light. Peak brightness becomes this complex many-faceted thing with per channel maximums, all-channel maximums, and variations based on both time and area!


The reason why it acts this way is because of oled heat, power and burn in limits. On a microled display such limits wouldn’t occur nearly as much. HDR color in programming will mostly just be a bigger color value. All the other stuff is display by display model specific. We have such variation in sdr displays too, and most programmers never really think about the color profile of the display either.


> Even on 100% brightness, an iPhone Pro 13 shows the "White" text significantly brighter than the background white.

Same with the new MBP.

The text does fade in over a second or two, and while that happens, I can notice the entire screen flicker ever so slightly. There's clearly some very impressively calibrated interplay between the LCD panel and the backlight going on.

> I can understand why the notion programmers have that "color" is an RGB triple of 8-bit integers from 0 to 255 is so attractive.

Most of the time when dealing with color, it's colors of UI elements. And those are assumed to be sRGB anyway.


> And those are assumed to be sRGB anyway.

You mean the 16 EGA colors, right? /s

But more seriously, I was hugely disappointed to see Microsoft unwind their wide-gamut and HDR GUI capabilities that they introduced as far back as Vista while simultaneously Apple is making wide-gamut (Display P3) and HDR standard across all of their devices.

Someone at Microsoft was forward thinking, and now some idiot is undoing that good work just when displays are catching up to the software capabilities.

Sooner or later, Windows will cap framerates at 60 Hz to make sure 120 Hz monitors don't deliver any visible benefit either...


The way Apple handles HDR clearly suggests that you aren't meant to use HDR colors in UIs. The mouse pointer has a pure white (#FFFFFF) outline, but when you put it over an HDR video, that outline appears grey. Then after you've closed the video, your vision needs some time to readjust back to the UI white level. The APIs (Metal and whatever videos are played through, VideoToolbox?) also suggest that it's for games and media content only.

Now, of course you could circumvent this and add retina-burning-bright controls to your app. Your users would probably hate you for doing this.

And regarding wide gamut, I'm not sure what kinds of benefits this brings to UIs either. It does make photos and videos feel more lifelike, especially when combined with HDR. But I've seen an extension to CSS that allows specifying wide-gamut colors, and you can also use them in native UIs (I've managed to do that in my aforementioned experiments https://news.ycombinator.com/item?id=30219169).

> wide-gamut and HDR GUI capabilities that they introduced as far back as Vista

Wow. That was quite the future proofing at the time when everyone was transitioning from CRTs, and LCDs of the time were noticeably crappier than CRTs.

The thing with Windows though is that it's really hard to get so many companies involved in the chain to agree on something like this. Apple has complete end-to-end control of both the hardware and the software/APIs which allows them to casually pull off this kind of stuff.


One aspect that I haven't seen considered is how useful increasing the brightness for folks who are disabled like myself. I have a rare eye condition where the amount of light omitted really matters to me. It's one reason why I look at nit brightness each year on phones and monitors. I can say it really helps the more light these devices can output and how it impacts my vision. It's why I try to upgrade more frequently.


How long before a plague of brighter-than-white ads, I wonder...


On my iPad mini 5th gen, the message and background appear identical at about 95% brightness.

I think it's pretty weird trying to get more than maximum brightness from an Apple device. I think it would be far more useful to get a spectrum of usable levels of lower than minimum brightness. Apple's maximum brightnesses have always been close or the brightest devices available, but Apple devices minimum brightnesses have always been way too bright with no reason for it.


I think if you zoom in whilst showing a corner of the viewport it works because the hdr videos are still in play but if you zoom so the corners are not visible it will fade out


Isn’t it fading because safari knows the HDR content in the corner is no longer on the screen?


For anybody like me not 'getting it', the for me at least on my m1 pro macbook pro needed to use this in Safari, chrome unfortunately wasn't showing the white text.


Same with Edge/Brave, however they all support HDR videos on Youtube, so I'm not sure what's the reason.

Additionally, the site claims it works (worked?) on 2020 MBA M1.


I have 2020 MBA M1 and it works on its internal screen if I use Safari. External SDR monitor doesn't show it. Chrome/Firefox don't show it.

There seems to be a strange bug in Safari. If I change the tab from/to that page, the mouse cursor jumps to the bottom left corner of the screen.


There seems to be a bug specific to safari, that's why it doesn't "work" on anything else.


By that logic, WebUSB is a bug specific to Blink-based browsers, since it doesn't work on anything else?


I don't understand. WebUSB seems to be a feature/standard.


WebUSB is yet another attempt at turning a hypertext viewer into an operating system. Documents were never meant to be Turing-complete.


HTML is far from the first document format that's turing complete. See Postscript, PowerPoint (No macros needed), Excel (No macros needed), PDF (if you count the embedded JS), Word (If you use macros), etc.


HDR works for the Photos app. Though it doesn’t work for social apps I’ve tried, I’ve seen similarly high brightness static images in Safari. If you can’t do it with canvas, I’m betting you can do it with a Blob object/blob: URL or even just a plain data: URL. You’ll also need to set the appropriate color space, otherwise it’ll default to sRGB. You very well may also need to use some non-web APIs (pick your binary interface of choice), if canvas clamps to 8-bit (which I’m too lazy to look up on mobile at this particular moment, but I’d be surprised if it doesn’t).


Nuts, I clicked the brightness toggle to bring it lower than 100% and it was already at 50%


This was serious cool to see


It's easy to write an app that displays arbitrary graphics at 1600 nits on the MacBook Pro. You just have to use the Metal API, an "extended" color space, and a Float colorPixelFormat.

I'm not sure that this blog post author is trying to accomplish, possibly they are trying to use some other API besides Metal?


I’m not trying to draw HDR content. I want to increase to overall UI brightness (basically, make the brightness of where backlight LEDs go past the software defined limit)

I’m testing Apple’s claim of 1000 nits sustained brightness which led many people to believe that they can finally use their laptop in direct sunlight without squinting at the screen.

I’m aware of thermal limitations and that even sustained might not mean “whole screen at 1000 nits for 8 hours”. But it would be nice to be able to use 1 hour of my work time to work in the park outside my apartment with a bright enough screen for that time.

The system has thermal capping implemented from what I saw in the CoreBrightness framework, so it should be safe as long as the system can detect that LEDs are starting to overheat and lower the brightness automatically.


As a suggestion to help you with your quest - try polarised sunglasses. I used them with my M1 mac this summer quite successfully! The macbook screen is polarised so that the screen light goes straight through the sunglasses, while the surrounding sunlight gets dimmed.


Yes, I noticed that sunglasses help, but they still darken the screen a bit because of their tint.

This is a video I took last summer on this: https://files.alinpanaitiu.com/ff-polarized-macbook.mp4


What specific glasses are these? I'd guess that the direction of the polarisation of the glasses makes a big difference


I think polarized sunglasses are always vertically polarized, to block glare off horizontal surfaces.


Correct. This page explained it nicely: https://nigerianscholars.com/tutorials/wave-optics/polarizat...

"Vertically polarized light is preferentially refracted at the surface, so that the reflected light is left more horizontally polarized" and you use vertically polarised sunglasses to filter out the reflected horizontally polarised light.


> I’m testing Apple’s claim of 1000 nits sustained brightness which led many people to believe that they can finally use their laptop in direct sunlight without squinting at the screen.

How about increasing the brightness of just the text, and not the background, like https://kidi.ng/wanna-see-a-whiter-white?

No reason to crank up the brightness for the background as far as I can see.


Well yes, even that would be useful if working with text. (although I’m sure some will also be doing some graphic work)

But this can’t be done either. That website has the whiter-than-white text because it chose to do that. It’s known that every app has the possibility of rendering HDR content at more than 500 nits.

The problem I was trying to solve is how to do that from the outside, on apps that haven’t implemented HDR logic (which is about all of them)


The author is the author of lunar - https://lunar.fyi/ - an app for controlling screen brightness on external (and internal) screens on the Mac. He is trying to force the system to brighten the entire screen to the levels it will brighten light spots in an HDR video.


I believe the author wanted the entire screen framebuffer to be displayed at 1600 nits. I.e. effectively cranking the brightness up to 11.


Or, like, 800.


I see they finally invented the at home xray


Heh, interesting. When I just got my new macbook, I did try to draw something with a "whiter than white" color to see what the display is capable of. But I didn't think of Metal, I poked around in a custom NSView with various NSColor constructors passing values more than 1, and that didn't work.


Even if they don't want to use Metal, there's stuff like MoltenVK that you can probably use to access the same functionality


A couple things: the Objective-C methods you listed are often accessible via the runtime APIs unless they are marked as being direct calls. And kSLSBrightnessRequestEDRHeadroom is unlikely to be a function; from its name it is probably a constant of some kind.


Oh right, I knew the k prefix seemed familiar. It is a constant.

Can you elaborate more on the Objective-C methods? Are you talking about the “not exported” ones?


Since Obj-C methods are looked up at runtime not at link time, you should be able to just declare it yourself and then call it normally.


The iOS app Radiance+ [1] allows you to take an existing photo and generate an extended dynamic range image that has this effect. The results are compelling where the whites are far brighter than the system white.

You need iPhone 12 or better to support.

[1] https://apps.apple.com/gb/app/radiance/id1573366225


For those wondering what a nit is (in this context): https://en.wikipedia.org/wiki/Candela_per_square_metre


Absolutely love that someone's trying to do this. I was scouting around for a way too [1]

I take 5 minutes to ride from home/office to a table in a nearby park to work from there for 1-2 hours. It's so healthy and invigorating, and the change of scenery can inspire creativity.

But it's hard to justify when nuances on the screen become imperceptible under bright sun light. 1-200 more nits would change that. And the 2021 16" MBPs are technically capable of up to 1600 nits!

[1] https://apple.stackexchange.com/q/429798


Another approach I finally found outside of seeking a higher brightness screen or eink is having the screen on a stand and closer to your face - particularly with a tablet pc. Between this and some tree cover it's been manageable to have longer outdoor sessions.


This is hilarious, I imagine a future where you have to pay extra on Netflix to view special content above 500 nits.

Apple building in this framework creates brand new business opportunities to take money from customers.


I thought the future is now? You have to be on the highest plan for resolution right? Do they have SD HDR?


Dolby already implemented that with Dolby Vision IQ

Dolby Vision requires the whole chain to perfectly respect what the content says, both in color and brightness, so if you have a bright film, it'll blind you in the dark. But they now license (I assume for an additional fee) adaptive brightness for Dolby Vision!


Pay the Apple 30% tax to get 30% brighter pixels


Tesla asks you to pay $200 to enable to heated seats that are already installed in the back of your car


Keurig won’t make your drink because you didn’t buy their capsules.

https://www.reddit.com/r/assholedesign/comments/r7n8cd/keuri...


All the commentary seems to be accepting framing of the situation as a "over max brightness" band you can access when they're just dimming normal content. Brings to mind the business with doubling pixel sizes with the 4K displays and requiring tricks from apps and web content to access the native resolution.


They’re not dimming the SDR content. It is an optical illusion.

The HDR white is actually a lot brighter than the SDR white (which means the LEDs behind those pixels are allowed to go to full brightness).

You can see that effect if you watch this video in Safari on a 2021 MacBook Pro: https://files.alinpanaitiu.com/hdr-test-pattern.webm

Here's an article where the nits value is measured using a calibration device: https://www.notebookcheck.net/The-new-MacBook-Pro-14-only-ma...

The measurement shows that SDR content goes up to 500 nits (which was the peak value of previous MacBook displays as well) while HDR content goes up to 1607 nits.


If we have a monitor that has a brightness of 1600 nits, and whites of some content ("sdr") shows up much dimmer, the pixels the monitor is asked to display by the systmes are dimmed relative to max brightness - no?


Yes, that’s another way of putting it.

But people usually look at this, relative to previous displays, not relative to peak brightness (since the peak brightness is not achievable for prolonged periods of time because of overheating)


Overheating sounds interesting! So what happens if you display a max brightness hdr image on the screen for a long time, does the monitor shut off?

Edit: apparently at least on some laptops your screen may automatically adjust brightness downwards if you are in a hot climate and the cooling system fails to keep up: https://9to5mac.com/2022/02/04/macbook-pro-limited-brightnes...


Yes, the system monitors the display temperature and caps the brightness accordingly. Here are some interesting functions I found related to this inside the system frameworks:

    SkyLight.framework:
        SLSDisplayIsThermallyLimited
    
    CoreBrightness.framework
        -[CBDisplayModuleSKL hasThermalMitigation]
        -[CBThermalBrightnessCap getCurrentCap]
        -[CBThermalBrightnessCap setJetMode:]


Is there a technical reason for not enabling going beyond 500 nits when a user just ramps screen brightness? I'm no expert but if that can peak at 1600 nits for a while, it should have been able to sustain 800-1000ish for quite a long time?


I think that long time might not be higher than an hour or two given how much heat the LEDs need to dissipate.

A lot of non-technical users might get used to that brightness and then start complaining about their display dimming by itself randomly.


Apple claims on its website to support 1,000 nits sustained brightness and 1,600 nits peak brightness. If in reality they can only sustain 500 nits brightness, that's probably a disappointment to people who spent extra on the newer, fancier display in the hopes of working on the laptop outside.

If they can't sustain their sustained brightness, that might even be false advertising.


Yeah, I'm people; got a 14" MBP expecting to be able to ramp up the brightness, and was surprised to find it caps out at exactly the same brightness as my previous 16" Intel. I think their marketing claims here are extremely deceptive. Apple should be above engaging in such shenanigans!

(Nevertheless, still super happy w/ the computer as a whole; it's an amazing machine.)


Then why is Apple advertising it as 1000nits sustained?

If it can sustain 1000 nits for HDR content, it can for SDR too. The display isn't going to say "hey it's SDR let me piss them off" and suddenly start dissipating more heat at 1000 nits at SDR compared to HDR after all.


Well most likely because HDR content doesn’t mean full bright white for extended periods of time.

Even if you watch 8 hours of HDR content, only some of the LEDs will get to peak brightness for small periods of time. That will allow the LEDs to cool down enough to sustain that brightness.

The macOS UI and webpages on the other hand are mostly bright white and that can cause trouble on extended periods of time.


That's perfectly reasonable, but Apple lists different brightness capabilities for "sustained" and "peak". I don't think anyone expects their excellent 1600 nits peak brightness to be constantly available, but the 1000 nits sustained brightness is supposed to be, well, sustained.

Perhaps "sustained" is some kind of jargon from the laptop industry but I consider myself to be more educated than the average Joe when it comes to computers and I would've expected a 1000 nits screen based on their advertisements. I don't see what Apple has to gain by either lying or deceptively using jargon like this.


Makes sense, but still, the advertising is a bit misleading, and I honestly think that it's on purpose.

As a dark mode user I'd love to see 1000 nits though, maybe something like iPhone thermal throttling the brightness when it gets too hot.


IMO the best approach is developer opt-in.

- developers render UI to an HDR buffer

- developers standardize on a open-source brightness slider in the Menu Bar

- or, each app has an individual 'brightness' slider.

It's a lot of work and a shame that Apple is making us to do this, but if a handful of apps start to do it then perhaps they'll come to their senses and just let users control their own damn screen brightness.


A "nit" is also an alternate term for a "nat", the natural logarithm counterpart to a Shannon information "bit".

This headline really threw me, trying to guess at what level of organization there was an information bandwidth issue with the MacBook Pro that would be measured as "500 nits".


Idea: create a small web browser or movie player app which plays a 1x1 nearly invisible HDR video in some corner and get the nits limit higher.

I had sometimes problems with color management on mac on fullscreen videos and to prevent that I put a small window from Helium or Pennywise (always on top browsers) into some corner to fix it.


Unfortunately that doesn’t work. The pixels of the SDR content will still be capped at 500 nits as you can see in the article: https://alinpanaitiu.com/blog/over-500nits-failed/#sdr-cap-i...


Does anyone know how to read or measure the brightness of a screen? I wasn’t able to get the reading the author has from Console.app


ioreg usually reports the nits value in some property.

On an M1 you can run the following:

    ioreg -r -c AppleCLCD2 | grep -i nits


at least on the iMac it doesn't work, tried:

  ioreg -l -f | grep nits
which should list properties of all objects, and the display I could find:

  ioreg -r -c AppleBacklightDisplay


Isn't like ... 200 nits ... a healthy upper limit for looking at a screen all day?


Depends on surrounding environment.

If you are a dark area 200 nits would even be high.

If you are in a well-lit area or outside in a sunny day, 200 nits would be super dark, and by that definition if it was unhealthy, looking at almost anything in a well lit day would be unhealthy.


You know what I mean. Almost no one looks at a screen all day outdoors.


Isn’t this highly dependent on the ambient light around you?


He's using an Apple laptop. If he's trying to work outside... i'd like to know how long till his keyboard breaks from the tiniest speck of dust.

Thus, I'm assuming indoors.


The butterfly keyboard mechanism responsible for breaking on dust particles is gone on newer laptops.

The current MacBook keyboards are quite nice, they have the same mechanism as the external Magic Keyboard sold by Apple, and they seem quite resilient. I had no stuck key in the last 2 years.


Only the new Magic Keyboard with the roundrect corners and the Globe key have the new, dust-resilient key switches from the new laptops (which preceded it).

The prior model of Magic Keyboards with the Fn key use older defective dust-vulnerable switches.


You use it outdoors? I'm typing this on one of the emoji keyboard laptops and it works so "well" that I'm not in a rush to give Apple more money for a portable...

Note that I bought the 2018 or 2019 model with extra isolation under the keys. That didn't help at all.


Yes, since the beginning of 2020 I’ve used the MacBook Pro in parks and botanical gardens where there are a lot of particles flying around (after an hour I usually had to wipe the screen to be able to see something).

The keyboard worked perfectly fine.

I haven’t had a chance to test the 2019 Intel MacBook too much, but the M1 2020 was heavily used outdoors. I believe the M1 2020 model was the first one to get the Magic Keyboard mechanism: https://support.apple.com/kb/SP824




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: