Versions Compared

Key

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

...

In traditional approach, the central role of X-Server and the steps required to get contents on to the screen is presented in below diagram.

draw.io Diagram
diagramName
Gliffy Diagram
macroId9a44e691-f2d6-4e98-97b9-172b5111336d
nameA Traditional approach for rendering.drawio
pagePinrevision1

Wayland Approach for Rendering

...

Removed X-Server and the compositor is the display server. Lets the compositor send the input event directly to the client and lets the client sent the damage event directly to the compositor.

draw.io Diagram
diagramName
Gliffy Diagram
macroId681961a5-20a4-4a57-a1c3-f9c3242affbe
nameWayland approach for rendering.drawio
pagePinrevision1

Wayland - What and Why?

“Wayland is a protocol for a compositor to talk to its client as well as a C lib implementation of that protocol”. Weston is the reference implementation for wayland. Westeros is a compositor, a replacement of Weston. This provides clear interface towards graphics and input.

draw.io Diagram
diagramNamewayland.drawio
revision
Gliffy Diagram
macroIdb93a2570-86d0-4e43-80ef-cb42656752ff
namewayland
pagePin1

Wayland Process flow:

draw.io Diagram
diagramName
Gliffy Diagram
macroIdf0b7d688-5742-42ef-a444-68b60b513977
namewayland process flow.drawio
pagePinrevision1

Why Westeros?

  • 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.

...

Gives the hosting application (MSO Guide) control over the presentation and composition of 3rd party applications.

Gliffy Diagramdrawio
diagramName
macroIdefda7236-b23e-4ae7-8cde-ccb657d1636b
namewesteros use case.drawio
pagePinrevision1

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

draw.io Diagram
diagramNamewayland2.drawio
revision1
Gliffy Diagram
macroId25d6e06b-ec0f-4b1f-aac4-b9548b906b44
displayNamewayland2
namewayland2
pagePin2

WPE and Wayland Clients

Gliffy Diagramdrawio
diagramName
macroIdf9f4f787-a8b9-4c35-a033-a8e3a97b1bce
displayNameWebkit for Wayland architecture.drawio
nameWebkit for Wayland architecture
pagePin4
revision1

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

Gliffy Diagramdrawio
diagramName
macroId383cafa3-d460-4cd8-8f74-78ff402d67e3
nameCode restructure.drawio
pagePinrevision1

Work Accomplished in RDK

...