AshX I’m also curious why you chose to not go the route of Stillcolor and offer HzHold outside of the App Store?
I appreciate you asking this. It really connects to how I’ve been trying to approach this whole topic.
The process of publishing an app through the App Store has some real advantages. But the App Store also comes with rules that I actually appreciate. One of those rules, which I fully agree with, is not positioning anything as a medical or comfort product. That is why I try to keep the focus on perception. What we can see, measure, or record is a solid way to talk about these topics, rather than how someone might feel physically. And I think that is to everyone’s advantage. Once health enters the discussion, companies have to go quiet, and it becomes harder to have an open conversation. But there is still a huge amount we can talk about if we keep it centered on perception.
There is plenty to study in areas like PWM, inversion, dithering, and how all of these relate to refresh cadence. That is where HzHold fits in. Even beyond this community, HzHold is meant as a simple general toggle for anyone doing macro filming, or using sensors or instruments that may not have interacted temporally as smoothly as they wanted. It is just a toggle.
I should probably clarify that when I say if a panel uses a four-frame temporal pattern, I really mean if. Apple has not published that level of detail, and until someone measures the signals directly, all we can do is make educated guesses. I do not have any insider information, just what can be observed and compared, particularly when looking at tech specs and marketing.
I think the standards science has not quite caught up with the pace of display technology. Hardware has advanced quickly. From what I have seen, Apple and others have stayed within the boundaries of what is published. What seems to be missing now are modern benchmarks for perception. I am literally referencing a lighting specification to map onto various temporal effects in a display, which shows how far behind the standards are compared with where hardware has gone.
To summarize where I come from on all of this, people often say "Apple does not care," but I really do not believe that. For example, I can see genuine care in how they have handled their transition to OLED. They made decisions that make no sense unless you realize they are working under considerable trade-offs. This might be one of the hottest topics on these sorts of forums, but to me the issue is that perception science has not caught up yet, while display technology has leapt ahead of what I think are missing guidelines. That gap can look like indifference when I do not believe it is. There is also a lot of misinformation about how exactly these displays work, as we all try to make sense of the tech at different paces.
AshX I don’t know anyone on this forum who wants to update to MacOS Tahoe because of the legibility problems of Liquid Glass
For sure, but I have full confidence that if there is a legibility issue, Apple will address it in time. They have always shown attention to those details, even if it takes a few iterations. I don't think any issues are universal. There are people running HzHold on Tahoe.
Maybe I could run a TestFlight build for an older OS at some point. For now, HzHold runs well on Tahoe, and I can easily test it all day myself. Ultimately, everyone will move to Tahoe once they are happy with it, and HzHold will be there when that happens.
AshX Am I correct in assuming FRC would be applying a similar 30Hz flicker on the MiniLED MBPs at 120Hz? I wonder if there’s a way to tease out how GPU and FRC dither interact.
If there is FRC, yes, that is how the math checks out for 120 Hz. I think what you are asking is whether temporal dithering at the display controller would behave differently from an OS-level temporal dither. Or would somehow interact with an OS-level dither. To clarify, a temporal dither is a form of quantization, and a downstream quantization should have no effect on an upstream quantization.
In other words, once a signal is quantized to a native bit depth, it cannot be quantized again in a meaningful way. It is already bit-aligned. For example, if we take a value of 1023 and quantize it to 8 bits temporally, it might look like this:
frame 1: 255
frame 2: 255
frame 3: 255
frame 4: 254
When a further quantization downstream receives those bit-aligned values, it should simply pass them through exactly the same:
frame 1: 255
frame 2: 255
frame 3: 255
frame 4: 254