Pairing WebKit and Wayland for Linux-based Embedded Web ......Testing it out on the Raspberry Pi...

20
Pairing WebKit and Wayland for Linux-based Embedded Web Content Presentation Systems Žan Doberšek Igalia Düsseldorf, October 13th, 2014 twitter @falconsigh www blogs.igalia.com/zdobersek

Transcript of Pairing WebKit and Wayland for Linux-based Embedded Web ......Testing it out on the Raspberry Pi...

Page 1: Pairing WebKit and Wayland for Linux-based Embedded Web ......Testing it out on the Raspberry Pi Targeting 720p, 1080p a sweet dream. 60FPS on simple CSS 3D animations, WebGL content.

Pairing WebKit and Wayland forLinux-based Embedded WebContent Presentation SystemsŽan DoberšekIgalia

Düsseldorf, October 13th, 2014

twitter @falconsighwww blogs.igalia.com/zdobersek

Page 2: Pairing WebKit and Wayland for Linux-based Embedded Web ......Testing it out on the Raspberry Pi Targeting 720p, 1080p a sweet dream. 60FPS on simple CSS 3D animations, WebGL content.

Topics

WebKitWaylandWeb Content Presentation SystemsRaspberry Pi

····

2/20

Page 3: Pairing WebKit and Wayland for Linux-based Embedded Web ......Testing it out on the Raspberry Pi Targeting 720p, 1080p a sweet dream. 60FPS on simple CSS 3D animations, WebGL content.

WebKit

Portable Web engine.

PCs, phones, TVs, IVI, smartwatchesMac, iOS, Windows, Enlightenment, GNOME, Haiku

··

3/20

Page 4: Pairing WebKit and Wayland for Linux-based Embedded Web ......Testing it out on the Raspberry Pi Targeting 720p, 1080p a sweet dream. 60FPS on simple CSS 3D animations, WebGL content.

Wayland

Successor to the X windowing system.

Deployed on PCs, phones, TVs, IVI.

4/20

Page 5: Pairing WebKit and Wayland for Linux-based Embedded Web ......Testing it out on the Raspberry Pi Targeting 720p, 1080p a sweet dream. 60FPS on simple CSS 3D animations, WebGL content.

Web Content Presentation Systems

Embedded systems presenting Web interface or content.

Smart TV interfacesIVIInfoboards

···

5/20

Page 6: Pairing WebKit and Wayland for Linux-based Embedded Web ......Testing it out on the Raspberry Pi Targeting 720p, 1080p a sweet dream. 60FPS on simple CSS 3D animations, WebGL content.

youtube.com/tv

6/20

Page 7: Pairing WebKit and Wayland for Linux-based Embedded Web ......Testing it out on the Raspberry Pi Targeting 720p, 1080p a sweet dream. 60FPS on simple CSS 3D animations, WebGL content.

Raspberry Pi

The popular single-board mini-computer.

Single-core 700MHz ARMv6 CPU512MB RAM (Model B)VideoCore IV GPU

···

7/20

Page 8: Pairing WebKit and Wayland for Linux-based Embedded Web ......Testing it out on the Raspberry Pi Targeting 720p, 1080p a sweet dream. 60FPS on simple CSS 3D animations, WebGL content.

Raspberry Pi - Wayland support

Drivers partially open.

Openly available implementation of the Wayland EGL platform.

Support in Mesa - in progress.

8/20

Page 9: Pairing WebKit and Wayland for Linux-based Embedded Web ......Testing it out on the Raspberry Pi Targeting 720p, 1080p a sweet dream. 60FPS on simple CSS 3D animations, WebGL content.

WebKit and Wayland

Wayland support provided by the toolkit.

Must be run under the parent compositor.

Complicated hardware-accelerated compositing of Web content.

A nested Wayland compositor needed in the UIProcess.·

9/20

Page 10: Pairing WebKit and Wayland for Linux-based Embedded Web ......Testing it out on the Raspberry Pi Targeting 720p, 1080p a sweet dream. 60FPS on simple CSS 3D animations, WebGL content.

10/20

Page 11: Pairing WebKit and Wayland for Linux-based Embedded Web ......Testing it out on the Raspberry Pi Targeting 720p, 1080p a sweet dream. 60FPS on simple CSS 3D animations, WebGL content.

... but why the toolkit?

Adds unnecessary complexity in the architecture.

No need for various widgets, theming support.

Not run under the traditional desktop environment.

11/20

Page 12: Pairing WebKit and Wayland for Linux-based Embedded Web ......Testing it out on the Raspberry Pi Targeting 720p, 1080p a sweet dream. 60FPS on simple CSS 3D animations, WebGL content.

The idea

Merge the UIProcess and the compositor.

Have the WebProcess interact directly with the compositor.

12/20

Page 13: Pairing WebKit and Wayland for Linux-based Embedded Web ......Testing it out on the Raspberry Pi Targeting 720p, 1080p a sweet dream. 60FPS on simple CSS 3D animations, WebGL content.

Benefits

Removes the intermediate purpose of the UIProcess.

Reduces the architectural complexity.

Enables simplifying the compositor.

13/20

Page 14: Pairing WebKit and Wayland for Linux-based Embedded Web ......Testing it out on the Raspberry Pi Targeting 720p, 1080p a sweet dream. 60FPS on simple CSS 3D animations, WebGL content.

14/20

Page 15: Pairing WebKit and Wayland for Linux-based Embedded Web ......Testing it out on the Raspberry Pi Targeting 720p, 1080p a sweet dream. 60FPS on simple CSS 3D animations, WebGL content.

Implementation

UIProcess now a shared library that the compositor loads.

Compositor shows the single surface designated to the WebProcess.

Input events originate from the compositor, handled by the UIProcess.

15/20

Page 16: Pairing WebKit and Wayland for Linux-based Embedded Web ......Testing it out on the Raspberry Pi Targeting 720p, 1080p a sweet dream. 60FPS on simple CSS 3D animations, WebGL content.

Testing it out on the Raspberry Pi

Targeting 720p, 1080p a sweet dream.

60FPS on simple CSS 3D animations, WebGL content.

Fluent 720p video playback (hardware decoder).

Reducing memory consumption.

Still, weak and limiting hardware.

16/20

Page 17: Pairing WebKit and Wayland for Linux-based Embedded Web ......Testing it out on the Raspberry Pi Targeting 720p, 1080p a sweet dream. 60FPS on simple CSS 3D animations, WebGL content.

Simplified Wayland compositor

Initially stuck with Weston.

DE-oriented compositors include window management.

Target use cases give leeway to simpler implementations.

Simplicity yields better performance.

17/20

Page 18: Pairing WebKit and Wayland for Linux-based Embedded Web ......Testing it out on the Raspberry Pi Targeting 720p, 1080p a sweet dream. 60FPS on simple CSS 3D animations, WebGL content.

The future

Eventually address more complex use cases.

Some sort of window management might be required.

Support for additional forms of input.

Web standards support.

18/20

Page 19: Pairing WebKit and Wayland for Linux-based Embedded Web ......Testing it out on the Raspberry Pi Targeting 720p, 1080p a sweet dream. 60FPS on simple CSS 3D animations, WebGL content.

Other (better!) hardware

#1 dependency: Wayland EGL platform implementation.

NVIDIA Tegra (Jetson TK1)Intel HD graphics (Minnowboard MAX)ARM Mali (Odroid U3)

···

19/20

Page 20: Pairing WebKit and Wayland for Linux-based Embedded Web ......Testing it out on the Raspberry Pi Targeting 720p, 1080p a sweet dream. 60FPS on simple CSS 3D animations, WebGL content.

Questions

Thank you.

20/20