Wayland - What and Why?
- Primarily a protocol for compositionof different surfaces/layers.
- compositor + display server + window manager.
- Uses EGLto avoid OS specific windowing functionality.
- Started as a replacement for the X Windowing System (X11).
- Unlike X has no rendering API.
- Its implementations are lightweightwith a small footprint
- Wayland is primarily focused on performance, code maintainability and security
...
- Westeros is smalland simple.
- Being small, easier to understand and maintain.
- Caters to needs of embedded systems over traditional desktop computing.
- Shared library that provides an APIfor creating and operating a compositor.
- Use the included sample compositor app OR implement a custom compositor.
- Allows an application to create a Wayland display within itself to create what we call an embedded compositor.
- Main UI can then control application windowandlifecycle.
Westeros Use Case
Gives the hosting application (MSO Guide) control over the presentation and composition of 3rd party applications.
Image Added
Why WPE
- Newer WebKit= newer features
- WebKit2 w/ Threaded compositor vs. QT single thread WebKit1 architecture.
- New JavaScript Core optimization feature: “Faster Than Light” JIT
- Compared to QTWebkit, WPE is about 30% smaller —around 22 Megabytes.
WPE Architecture
Image Added
WPE and Wayland Clients
Image Added
Code Restructure
- Code move:
- Source / WPE —> ThirdParty/ WPE & ThirdParty/ WPE-platform
- Easier up-streaming
- Port acceptance
- Refactor WPE to C back-ends
- New IPC mechanism
Image Added
Work Accomplished in RDK
- Ported on RPI
- MIPS support for BCM targets
- Addition of Intel-CE and other BCM configurations
- MSE and EME implementation for YouTube leanback
- Parity or better than QtWebKit.
- Shadow Dom
- Wayland Support
- Fullscreen API
- MIPS JIT Architecture Change
- Walyland Reference Backend
- Speech APIs & reference implementation
- Geolocation
- Notifications
- PlayReady DRM
- Automated test runner
- IndexdDB Support
- Injected Bundles
- Full MSE Compliance
- WebCrypto
- View Backends for non-Wayland
- Gamepad Support
Functional Test (HTML5): QTWebkit Vs WPEWebKit
These tests are based on the site https://html5test.com/
Image Added
Functional Test(CSS3): QTWebkit Vs WPEWebKit
These tests are based on the site http://css3test.com/
Image Added
Repositories
WPE Support with RDK - Recipes
Weston:
- meta-rdk/recipes-graphics/wayland/
waylandwayland_1.6.0.bbwayland-native_1.6.0.bbwestonweston_1.6.0.bb
Westeros:
- meta-rdk/recipes-graphics/westeros
westeros.bb westeros.inc westeros-simplebuffer.bbwesteros-simpleshell.bbwesteros-sink.bb
WPE Webkit:
- meta-rdk/recipes-extended/wpe-webkit/
wpe-webkit_0.1.bbwpe-webkit_0.2.bb wpe-webkit.inc
WPE Support with RDK - Build
- WPE Support is provided with specific image types
- Source meta-cmf/setup-environment
- Select the required machine configuration
- Build the image with WPE package support. E.g.
- bitbakerdk-generic-hybrid-wpe-image
- bitbakerdk-generic-mediaclient-wpe-image
How to work with WPE
- Step 1: Fork WPE on GitHub.com
- Step 2: Apply changes on your fork
- Step 3: Test your changes
- Step 4: Submit pull request to WPE master
- Step 5: Prepare for comments, rework if necessary
- Step 6: Wait for merge notification