protocol: deprecate non-current wl_output.mode
authorSimon Ser <contact@emersion.fr>
Thu, 16 Apr 2020 17:08:53 +0000 (19:08 +0200)
committerSimon Ser <contact@emersion.fr>
Thu, 29 Oct 2020 13:07:20 +0000 (13:07 +0000)
The current wl_output.mode event has several issues when used to advertise
modes that aren't current:

- It's not possible to remove some modes. This is an issue for virtual
  outputs and when the kernel prunes some modes because of link limitations.
- wl_output.mode fails to carry metadata such as aspect ratio, which results
  in duplicated or missing modes.
- It's not clear, given the current set of protocols, how non-current modes
  are useful to clients. Xwayland ignores non-current modes.

GNOME and wlroots already only advertise the current mode because of these
issues.

If a protocol needs the clients to know about all available modes, it should
advertise these modes itself instead of relying on wl_output.mode.

Signed-off-by: Simon Ser <contact@emersion.fr>
Closes: https://gitlab.freedesktop.org/wayland/wayland/-/issues/92

protocol/wayland.xml

index f896818..dce579d 100644 (file)
        current.  In other words, the current mode is always the last
        mode that was received with the current flag set.
 
+       Non-current modes are deprecated. A compositor can decide to only
+       advertise the current mode and never send other modes. Clients
+       should not rely on non-current modes.
+
        The size of a mode is given in physical hardware units of
        the output device. This is not necessarily the same as
        the output size in the global compositor space. For instance,