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 -- 2.15.0 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel