mirror of
https://gitlab.freedesktop.org/wayland/wayland-protocols.git
synced 2025-12-20 14:00:08 +01:00
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 <xaver.hugl@kde.org>
This commit is contained in:
parent
ce96b5f177
commit
3d27f2033d
1 changed files with 15 additions and 2 deletions
|
|
@ -25,7 +25,7 @@
|
||||||
DEALINGS IN THE SOFTWARE.
|
DEALINGS IN THE SOFTWARE.
|
||||||
</copyright>
|
</copyright>
|
||||||
|
|
||||||
<interface name="wp_presentation" version="2">
|
<interface name="wp_presentation" version="3">
|
||||||
<description summary="timed presentation related wl_surface requests">
|
<description summary="timed presentation related wl_surface requests">
|
||||||
|
|
||||||
<!-- Introduction -->
|
<!-- Introduction -->
|
||||||
|
|
@ -123,7 +123,7 @@
|
||||||
|
|
||||||
</interface>
|
</interface>
|
||||||
|
|
||||||
<interface name="wp_presentation_feedback" version="2">
|
<interface name="wp_presentation_feedback" version="3">
|
||||||
<description summary="presentation time feedback event">
|
<description summary="presentation time feedback event">
|
||||||
A presentation_feedback object returns an indication that a
|
A presentation_feedback object returns an indication that a
|
||||||
wl_surface content update has become visible to the user.
|
wl_surface content update has become visible to the user.
|
||||||
|
|
@ -263,6 +263,19 @@
|
||||||
The content update was never displayed to the user.
|
The content update was never displayed to the user.
|
||||||
</description>
|
</description>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
|
<event name="content_update_deadline" since="3">
|
||||||
|
<description summary="The content update deadline for the presentation cycle">
|
||||||
|
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.
|
||||||
|
</description>
|
||||||
|
<arg name="tv_nsec" type="uint" summary="duration in nanoseconds"/>
|
||||||
|
</event>
|
||||||
</interface>
|
</interface>
|
||||||
|
|
||||||
</protocol>
|
</protocol>
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue