[PATCH 0/13] Add stereoscopy support

Emmanuel Gil Peyrot linkmauve at linkmauve.fr
Tue Nov 14 15:05:47 UTC 2017

This series adds a new protocol to specify the stereoscopic layout of a
surface, and a way for a compositor to tell the client what the native
layout is, in order to allow direct scanout in the fullscreen case.  It
then implements said protocol in Weston.

The only stereoscopy-enabled backend is currently the DRM backend using
gl-renderer; the Wayland one will follow shortly after, I have no plan
to implement it anywhere else for now.

I’m not too happy with the mode selection as it is currently, ideally
the compositor would expose all of the available modes, and only modeset
to the best stereo mode once a client asks for stereo, to avoid
rendering twice at any time, but this can probably be left to a
follow-up series as well.

I wrote a blog post[1] detailing my approach, it can be interesting in
relation to this series.  You can also find git branches of
wayland-protocols[2] and weston[3] for easier testing.

Thanks for your feedback!

[1] https://linkmauve.fr/blog/post/2017/09/08/adding-a-third-dimension-to-wayland/
[2] https://gitlab.collabora.com/emmanuel/wayland-protocols/tree/stereoscopy
[3] https://gitlab.collabora.com/emmanuel/weston/tree/stereoscopy

Emmanuel Gil Peyrot (13):
  wayland-protocols: Add stereoscopy protocol
  clients: Add a simple-stereo client, based on simple-shm.
  compositor: Implement stereoscopy as a noop.
  compositor: Add a stereoscopy capability.
  compositor: Display the correct default buffer.
  compositor: Store the stereoscopy layout of an output.
  compositor-drm: Enable the stereo capability.
  compositor-drm: Print stereo modes as such.
  compositor-drm: Create a correctly-sized gbm buffer.
  gl-renderer: Add stereoscopy support.
  compositor-drm: Cursors need to be broken with stereoscopy.
  main, compositor: Add a stereoscopy config option.
  compositor-drm: Select stereo modes based on the configuration.

 Makefile.am                                      |  27 +-
 clients/simple-stereo.c                          | 647 +++++++++++++++++++++++++++++++++++++++++++++
 compositor/main.c                                |  60 +++++
 libweston/compositor-drm.c                       |  90 ++++++-
 libweston/compositor.c                           | 224 +++++++++++++++-
 libweston/compositor.h                           |  22 ++
 libweston/gl-renderer.c                          | 135 ++++++++--
 libweston/gl-renderer.h                          |   6 +
 man/weston-drm.man                               |   6 +-
 unstable/stereoscopy/README                      |   4 +
 unstable/stereoscopy/stereoscopy-unstable-v1.xml | 187 +++++++++++++++++++++++
 11 files changed, 1377 insertions(+), 31 deletions(-)
 create mode 100644 clients/simple-stereo.c
 create mode 100644 unstable/stereoscopy/README
 create mode 100644 unstable/stereoscopy/stereoscopy-unstable-v1.xml


More information about the wayland-devel mailing list