wayland/protocol
Julian Orth 6ab970464b protocol: add wl_display_upgrade global
This global allows the IPC library to upgrade the version of the
wl_display global. To ensure maximum flexibility, there are strict
requirements on the connection state at the time of the upgrade. In
particular, after the compositor has destroyed the wl_display_upgrade
object, the wl_display is the only object in the connection.

Since there are many consumers of wl_display and wl_registry, and the
version of these objects is fixed after the upgrade, care must be taken
not to break any of these consumers. Since no consumer checks the
version of these objects and there is no way to get a wl_registry with a
lower version, incrementing the minor version cannot change the
semantics of existing messages and no new events can be added to
wl_registry. As an exception, new events can be added to wl_display
since those events are handled internally by the IPC library which is
also in charge of upgrading the version.

An additional change that could be made in version 2 of wl_display is
adding a wl_display.delete_server_id request, implementing symmetric
delete_id. A global that wants to make full use of destructor events
could then specify that the global must only be exposed on a wl_registry
whose version (and therefore the version of the wl_display) is at least
2.

Signed-off-by: Julian Orth <ju.orth@gmail.com>
2026-03-16 18:34:23 +01:00
..
.gitignore Update .gitignore for protocol/ 2013-11-19 13:26:04 -08:00
generate-shm-formats.py Add an automated script to update wl_shm.format 2019-09-06 12:09:22 +00:00
tests.xml Replace initial 8 spaces with a tab for all xml files 2020-04-29 12:21:33 +00:00
wayland.dtd doc: add frozen=true interface attribute 2026-03-05 12:00:35 +00:00
wayland.xml protocol: add wl_display_upgrade global 2026-03-16 18:34:23 +01:00