Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Changing the refresh rate makes the screen go blank for a second or so.

GP of this thread links to a post arguing that Apple is going out of their way to avoid just that during the boot sequence.



Except it doesn't... because during use the dynamic refresh rate changes between 1Hz and 120Hz...


Well, I can only tell you what happens when you manually change the resolution from 60 Hz to "ProMotion" in macOS.

Presumably ProMotion is a specific mode that the display/display controller/... first needs to be set to. If you start out in anything other than that and then switch to it later in the boot process, you'd get that blank screen for a second, and Apple avoids that by writing the startup mode to non-volatile memory.

Otherwise they could also just always start out in ProMotion mode – but then you'd get flicker every time you (re)boot into any other mode, like 60 Hz for people who prefer that.


...so this is where I'm confused, and where I think GP is confused. Why is there a separate 60 Hz mode that requires blanking the display? Why not just keep dynamic refresh enabled on the panel, and then lock it to updating 60 times per second (which it can do, since it's dynamic) for people who prefer that for whatever reason? What is the difference?


No idea, but if I'd had to speculate: Probably ProMotion activates a quite different internal rendering mode, and fixed 60 Hz mode offers a way to opt out of that?

Many applications have a way of synchronizing their drawing loop to the monitor refresh rate, for example; ProMotion must be doing something clever to support them, or they'd just force the refresh rate to 120 Hz.

macOS also supports variable refresh rate external monitors these days (via both DisplayPort and HDMI); I'm not sure if that would be labeled "ProMotion" in the display settings, but in any case there are things that can go wrong there, and having a way to opt out of that at the HDMI/DisplayPort signal level (and not just fixing the frame rate at the GPU level while driving the external link under VRR) seems like a good idea.


> Why is there a separate 60 Hz mode that requires blanking the display?

I'm guessing it probably has to do with compliance with the original VESA standard, or whatever the completely basic support of multiple resolutions and refresh rates in all monitors is called.

The bootstrap of booting a system always ends up relying on the most basic supported things to start with (such as 640x480@60Hz using the VESA standard) and then upping it from there.


If I understand correctly, ProMotion is the feature that allows dynamically changing the refresh rate without screen blanking. So the reason refresh rate matters in early bootup is that if ProMotion is not enabled, you get brief screen blanking. Setting the screen to 1 Hz in early bootup and then changing it to the user setting later would require screen blanking.


That's not a modeset though, that's just the display working as intended. Basically a VSYNC that runs at a variable clock rather than a fixed refresh.


Pretty sure VRR is a mode as far as the display (controller) is concerned.

There’s very likely still a scan out rate determined by the maximum refresh rate, just that the source can delay the next frame if it’s not ready yet.

In other words, e.g. 120 Hz and 144 Hz of VRR aren’t the same even when displaying a 60 Hz signal at the moment – the faster signal would have more pauses and a higher signal rate.


VRR is a property, node a mode. A VRR display showing 60hz will be running at 60hz. They can typically clock down in 1hz intervals.


As far as I understand it, nothing "clocks down"; rather, frames are delayed as required to achieve the frame rate desired (or reachable, in the case of gaming) by the source, down to 1 Hz.

So, yes, fixed 120 Hz and 120 Hz with VRR and without any skipped frames might well be the same mode to a GPU, but it also might be a different one, requiring a mode switch. I don't know how Apple has implemented it.

But in any case, for the bug at hand it's irrelevant: Apple's ProMotion uses a refresh rate of 120 Hz, so switching between that and 60 Hz is definitely a mode switch.




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

Search: