Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

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