fifo-v1: new protocol implementation

Implement fifo-v1 protocol: the capability for clients to explicitly queue wl_surface
commits.

The design of the wl_surface interface defines a double buffer, which is intended to support only
(from the point of view of the client) what is sometimes called the 'mailbox' presentation mode:
each request on a wl_surface operates on an accumulated pending state until a .commit request is
issued, immediately and atomically replacing the wl_surface's current state. This means that only
the state related to the latest .commit request will be latched onto.

fifo-v1 is a protocol that aims to support an important use case, namely the FIFO display
presentation mode, which allows to queue the accumulated pending state until the next latching
deadline occurs.

Signed-off-by: Sergio Gómez <sergio.g.delreal@gmail.com>
This commit is contained in:
Sergio Gómez 2025-11-26 10:55:35 -05:00
parent f73b8e1ea8
commit c78bce9cc2
4 changed files with 473 additions and 0 deletions

View file

@ -76,6 +76,7 @@ wlr_files += files(
'wlr_presentation_time.c',
'wlr_primary_selection_v1.c',
'wlr_primary_selection.c',
'wlr_fifo_v1.c',
'wlr_region.c',
'wlr_relative_pointer_v1.c',
'wlr_screencopy_v1.c',