river
river copied to clipboard
[feature request] VRR support
wlroots has the ability to enable variable refresh rate support on a monitor (under the name adaptive sync), and it would be nice to have the ability to use that feature with this compositor as I have a monitor which supports it.
I know that dwl just has it enabled by default on all monitors so I imagine that it should be safe to the same, but having it as a configuration option would likely work as well.
but having it as a configuration option would likely work as well.
River outsources the output configuration UI to external clients, using dedicated protocol extensions ( wlr-output-power-management-unstable-v1
and wlr-output-management-unstable-v1
). If VRR is not an option exposed by any of these protocols, a configuration option is not going to happen.
If you want river to support VRR, maybe try by proposing the necessary changes to the output management protocol.
sorry if I was unclear, by "configuration option" I meant as in a toggle via riverctl to enable or disable it in case there are any unpredictable issues. Wlroots offers just offers a function that can be used to allow adaptive sync/VRR to be used on an output. I used dwl as an example because it just has is enabled by default on all outputs (by running the function whenever an output is created). It should be as possible with as little as 1 line of code (before you ask, I did try and do it myself to little avail. granted I gave up quite quickly and might give it another crack later).
I know exactly what you meant. But I would prefer to either implement this the right way, or not at all. And since we do not want riverctl to get output configuration options, the right way is to extend the output management protocol.
ok, so having it be configurable by the end user isn't an option (maybe global configuration is an option?). Either way, I've managed to get it working (using the method I mentioned dwl uses). I'll set up a pull request if you want to test it/take a look to see if it's okay, as it is just one line.
I've added support for adaptive sync to the wlr-output-management protocol upstream: https://gitlab.freedesktop.org/wlroots/wlr-protocols/-/commit/4264185db3b7e961e7f157e1cc4fd0ab75137568
When wlroots 0.16.0 is released river upgrades this issue can be closed.