protocol: deprecate non-current wl_output.mode

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
This commit is contained in:
Simon Ser 2020-04-16 19:08:53 +02:00
parent d42b39ccab
commit 6741dafbf7

View file

@ -2547,6 +2547,10 @@
current. In other words, the current mode is always the last current. In other words, the current mode is always the last
mode that was received with the current flag set. 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 size of a mode is given in physical hardware units of
the output device. This is not necessarily the same as the output device. This is not necessarily the same as
the output size in the global compositor space. For instance, the output size in the global compositor space. For instance,