From 3d27f2033d92d904914dce2fcd7e09d8ae9a0bd4 Mon Sep 17 00:00:00 2001 From: Xaver Hugl Date: Fri, 17 Oct 2025 16:49:27 +0200 Subject: [PATCH] presentation-time: add an event describing the commit deadline Currently, the client has no information on when it should commit its surface for optimal (low latency) presentation. There have been many discussions on how to improve this situation, but they mostly died down because of the complexity of the topic. This implements a different strategy from previous discussions - instead of telling the client when to commit next, the compositor should just communicate the latest time the client could've committed the last frame. This allows the client to estimate when it should commit in the next presentation cycle, without conflicting with potentially more complete future solutions (that could for example handle VRR better). The use case I specifically want to solve with this is nested Wayland compositors, which currently do not have any accurate information for timing commits. Signed-off-by: Xaver Hugl --- stable/presentation-time/presentation-time.xml | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/stable/presentation-time/presentation-time.xml b/stable/presentation-time/presentation-time.xml index c2431c5..3fd2b39 100644 --- a/stable/presentation-time/presentation-time.xml +++ b/stable/presentation-time/presentation-time.xml @@ -25,7 +25,7 @@ DEALINGS IN THE SOFTWARE. - + @@ -123,7 +123,7 @@ - + A presentation_feedback object returns an indication that a wl_surface content update has become visible to the user. @@ -263,6 +263,19 @@ The content update was never displayed to the user. + + + + Describes the latching deadline for the presentation of the relevant + content update, expressed as a duration before the presentation + timestamp. This information can be used by the client to make better + decisions on when to commit in the next compositing cycle. + + This event is sent before the "presented" event. It is not sent if + the content update was discarded. + + +