Lowering the refresh rate of the display isn't really useful. The refresh rate of the monitor only acts as an upper limit on visual updates - you can always just skip frames at no cost outside display cable bandwidth utilization if you don't want to update.
Note: VRR is unrelated to modesets, works through an entirely different mechanism, and is supported by a few compositors.
woah woah woah there, what about if you have a panning camera shot in a movie at 24 FPS and try to watch that movie on a 60 hz display? You'll get tiny micro-stutters AKA "judder". They're subtle but if you can notice them, they ruin your moviewatching experience every time
The solution to this is higher refresh rate and/or VRR.
VRR would allow you to sync to any needed timing (regardless of VRR range, as multiples of fps are fine), dynamically, with no need to modeset to fixed supported refresh rates.
120Hz not only happens to be a multiple of both 24 and 30, but judder from such low framerate input becomes irrelevant at these rates, with VRR instead serving high-framerate content that is slightly out of phase.
Others like VLC only do motion interpolation, and some work is ongoing for VRR support (notably, AMD GPUs on Linux, but they work with Low Framerate Compensation so it's conside red hacky and with a higher power draw).
Of course, higher refresh rates are better, but it's quite wasteful anyway if you only have a 24 FPS. Moreover, not evvery mode is a multiple of that.
This is not hacky or has higher power draw - the display has a minimum refresh rate, and sudden large changes in refresh rate can lead to visible flickering.
The GPU and driver is required to handle this. The alternative is much more intelligent display controllers than is currently available anywhere, so the CRTC lives in the display and just receives framebuffer content whenever.
> Of course, higher refresh rates are better, but it's quite wasteful
It is negligible. Your GPU will do nothing most frames, and the panel power consumption comes from backlight.
> Moreover, not every mode is a multiple of that
Slow framerates do not need to be a multiple of high framerates, as the error becomes irrelevant.
VRR is the solution for fine-tuning for perfectionism.
I get that[1]. It's a shame we can't specify next frame latency as well, it should be fairly predictable for video (or enable triple-buffering on the monitor side).
> It is negligible. Your GPU will do nothing most frames, and the panel power consumption comes from backlight.
I was basing this on a recent patchset with the following quote[2]:
> Enabling this feature also have the potential side effect of causing higher power consumption due to running a mode with lower resolution and base clock frequency with the highest base clock supported on the monitor as per its advertised modes
[1]: https://github.com/swaywm/wlroots/issues/1406#issuecomment-4... [2]: https://www.phoronix.com/scan.php?page=news_item&px=AMDGPU-F...
Wayland in a nutshell