RFC: Add zwp_vrr_v1
This protocol allows client surfaces to provide a hint to the compositor to employ Variable Refresh Rate (VRR) mechanisms to optimize their frame presentations.
VRR mechanisms allow outputs to vary their frame timings in order to optimally accommodate frame submissions that occur at irregular rates, or rates that don't match the configured rate of the these outputs. Such irregular submissions often occur in video games, whereas in video playback.
Frame timings have been historically regular and some clients have come to implicitly or explicitly depend on this regularity. The benefit of having a client opt-in mechanism for VRR, compared to the compositor employing it at will without client agreement, is that it provides additional assurance that clients are properly equipped to deal with the irregularity in frame timings.
This protocol provides a simple version of VRR where the client implicitly drives presentation based on submission timings. Depending on the scenario, the timing accuracy of this mechanism may not be sufficient and some other more complex mechanism (e.g., in the form of a target presentation timestamps) may be required.
Signed-off-by: Alexandros Frantzis alexandros.frantzis@collabora.com