wiki:WebKitGTK/Wayland

Version 3 (modified by siglesias@igalia.com, 11 years ago) (diff)

--

Tasks

WebGL

EGL context creation for offscreen rendering creates a pixmap or a pbuffer. Wayland-egl does not support pixmaps so we should try to use pbuffers in this case.

Fullscreen video playback

Fullscreen video involves the creation of a fullscreen window and a sink that can render to that window using the video overlay interface. Current waylandsink from gst-plugins-bad does not implement the video overlay interface though. As an alternative, we can try to do composited video also for fullscreen.

Plugins

The plugin process requires GTK2, which does not support Wayland. Plugins are not expected to be ported to GTK3 so this will be a problem.

Using XWayland is possible to execute plugins -tested with Oracle Java plugin-. Remember to define $DISPLAY environment variable if it's not done already.

Accelerated Compositing

There are two parts to this problem:

  • Sharing a surface between the UI and Web processes.
    • There is no surface sharing API in Wayland at the moment though so this is a problem that needs to be solved. An alternative could be to have one of the processes play the role of a wayland compositor so thet that both of them can share the surface (in the same way a regular weston client can share a buffer with the weston compositor). If this does not work for us we may need to discuss a surface-sharing API with the Wayland community. If that is not possible we may end up having to resort to using DRM APIs directly, but that would work for MESA only.
    • Paint the surface with GTK without having to download the surface to the main memory.
  • Some of this work may require support in GTK/Cairo/Wayland.

Layout Tests

We need a way to run layout tests in Wayland. Current tests run with Xvfb, we should try to run them with Weston instead and see if Weston can run offscreen.