SlideShare une entreprise Scribd logo
1  sur  79
Télécharger pour lire hors ligne
The Enlightenment of Wayland
The story of Enlightenment, EFL, Tizen & Wayland
Carsten Haitzler
c.haitzler@samsung.com
raster@rasterman.com
What
What is… ?
●
Tizen
– A Linux distribtion for Consumer Electronics
●
Mobile
– Samsung Z1, Z3
●
Wearables
– Samsung Gear 2, Gear 2 Neo, Gear S, Gear S2
●
TV
– Samsung Smart TVs 2016 and beyond (also part of 2015)
●
Fridges
– Samsung Smart Fridge
●
… and more
– Open Source - http://source.tizen.org
What is… ?
●
Enlightenment
– A window manager, compositor and desktop shell for X11
●
Now … also for Wayland
– Window manager and compositor for Tizen
●
On both X11 and now Wayland
●
EFL
– Enlightenment Foundation Libraries
– The libraries built to make Enlightenment and other applications
●
LGPLv2 + BSD Licensing
– Libraries behind Tizen native development and core apps and tools
https://www.enlightenment.org
What is… ?
●
Wayland
– Replaces X11
– A new display system protocol
– A new set of client and server libraries to build display servers with
– A set of conventions clients and servers agree to
– Primarily focused on Linux
– Built around the assumption of open drivers
●
Using DRM/KMS etc.
– Focus on “every frame is perfect”
– Focus on security and application isolation
– Merges Display Server, Window Manager and Compositor into one
http://wayland.freedesktop.org
Why Wayland?
●
It's cool
●
Everyone else is doing it
Why Wayland?
●
It's cool
●
Everyone else is doing it
But really ...
Why Wayland?
●
It's cool
●
Everyone else is doing it
But really ...
●
Wayland is …
– Free of legacy design issues X11 has to maintain
– Smaller codebase than X11
– Easier to get a “perfect UI” in than X11
– Easier to support hardware display features than X11
– More secure than X11
Why Wayland?
●
It's cool
●
Everyone else is doing it
But really ...
●
Wayland is …
– Free of legacy design issues X11 has to maintain
– Smaller codebase than X11
– Easier to get a “perfect UI” in than X11
– Easier to support hardware display features than X11
– More secure than X11
– Less mature and tested than X11
Connect/Display
Wayland vs. X11
X Server
Regular Application
Window Manager
Compositor
Display (or modification) of windows
Wayland vs. X11
X Server
Regular Application
Window Manager
Compositor
Display (or modification) of windows
Map Window
BUFFERS (PIXMAPS)
ALLOCATED HERE
Wayland vs. X11
X Server
Regular Application
Window Manager
Compositor
Display (or modification) of windows
Map Window
BUFFERS (PIXMAPS)
ALLOCATED HERE
Wayland vs. X11
X Server
Regular Application
Window Manager
Compositor
Display (or modification) of windows
Map Window
BUFFERS (PIXMAPS)
ALLOCATED HERE
WINDOW BUFFER∴
(PIXMAP) SIZES
CONTROLLED HERE
Read Property
Wayland vs. X11
X Server
Regular Application
Window Manager
Compositor
Display (or modification) of windows
Map Window
BUFFERS (PIXMAPS)
ALLOCATED HERE
WINDOW BUFFER∴
(PIXMAP) SIZES
CONTROLLED HERE
Read Property
Wayland vs. X11
X Server
Regular Application
Window Manager
Compositor
Display (or modification) of windows
Map Window
BUFFERS (PIXMAPS)
ALLOCATED HERE
WINDOW BUFFER∴
(PIXMAP) SIZES
CONTROLLED HERE
Read Property
Wayland vs. X11
X Server
Regular Application
Window Manager
Compositor
Display (or modification) of windows
Map Window
Read Property
BUFFERS (PIXMAPS)
ALLOCATED HERE
WINDOW BUFFER∴
(PIXMAP) SIZES
CONTROLLED HERE
Wayland vs. X11
X Server
Regular Application
Window Manager
Compositor
Display (or modification) of windows
Map Window
Read Property
BUFFERS (PIXMAPS)
ALLOCATED HERE
WINDOW BUFFER∴
(PIXMAP) SIZES
CONTROLLED HERE
Wayland vs. X11
X Server
Regular Application
Window Manager
Compositor
Display (or modification) of windows
Map Window
Read Property
BUFFERS (PIXMAPS)
ALLOCATED HERE
WINDOW BUFFER∴
(PIXMAP) SIZES
CONTROLLED HERE
Wayland vs. X11
X Server
Regular Application
Window Manager
Compositor
Display (or modification) of windows
Map Window
Read Property
Reparent and add decoration
Finally Show
LOTS OF ROUND TRIPS
BUFFERS (PIXMAPS)
ALLOCATED HERE
WINDOW BUFFER∴
(PIXMAP) SIZES
CONTROLLED HERE
Wayland vs. X11
X Server
Regular Application
Window Manager
Compositor
Display (or modification) of windows
Map Window
Read Property
Reparent and add decoration
Finally Show
Map Event
Expose Event
LOTS OF ROUND TRIPS
BUFFERS (PIXMAPS)
ALLOCATED HERE
WINDOW BUFFER∴
(PIXMAP) SIZES
CONTROLLED HERE
KNOW ABOUT BUFFER (PIXMAP)
SIZES LATER
(OFTEN AFTER RENDERING DONE)
Often results in this...
Decoration
Client application content
Undrawn parts of the application
buffer
(resized after rendering began)
Shadows drawn by
WM/Compositor
Background handled
by WM/Compositor
Wayland vs. X11
X Server
Regular Application
Window Manager
Compositor
Rendering updates
Wayland vs. X11
X Server
Regular Application
Window Manager
Compositor
Rendering updates
Render Commands
Often render client- side
then render commands
just “send” update
buffers
Wayland vs. X11
X Server
Regular Application
Window Manager
Compositor
Rendering updates
Render Commands
Often render client- side
then render commands
just “send” update
buffers
Damage Events
Older style
rendering done
server side
Wayland vs. X11
X Server
Regular Application
Window Manager
Compositor
Rendering updates
Render Commands
Often render client- side
then render commands
just “send” update
buffers
Damage Events
Older style
rendering done
server side
Wayland vs. X11
X Server
Regular Application
Window Manager
Compositor
Rendering updates
Render Commands
Often render client- side
then render commands
just “send” update
buffers
Damage Events
Older style
rendering done
server side
Wayland vs. X11
X Server
Regular Application
Window Manager
Compositor
Rendering updates
Render Commands
Often render client- side
then render commands
just “send” update
buffers
Damage Events
Render screen updates
Older style
rendering done
server side
Problems as a result
●
Sometimes compositor renders partial content
– Responds to first damage event, and misses others
●
Other damages are fixed up next frame
Tearing
Problems as a result
●
If rendering client-side, most pixels end up being copied to the target
– Huge amounts of memory bandwidth needed
●
~500MB/sec for 1080p @ 60HZ needing copying
– 2GB/sec for UHD ...
●
Even worse if you don't use OpenGL or MIT-SHM extension
●
This can easily drop framerates by 20-50%
●
Requires display server to have complete drawing subsystem
– A legacy decision for X11 before shared libraries existed
●
Allows sharing rendering code via the XServer process
– Must remain pixel-perfect to retain compatibility
Wayland vs. X11
X Server
Regular Application
Window Manager
Compositor
Input events
Input goes direct from server to
applications
WM/Compositor can't modify events
(scale windows, rotate etc.)
Problems here...
●
WM/Compositor can't rotate, zoom or transform content
– Input event co-ordinates can only match “original” window geometry
●
WM can set what window has focus
– Clients can too
●
Leads to possible fighting between clients and WM
●
Clients can listen to all input
– Huge security issue – e.g. any app can be a keylogger
●
Clients can steal input locking everyone out
– This can affect even screensavers and screenlocks by preventing screenlocks
●
The infamous “leave a menu open to prevent a screen locking” bug
Why does Tizen REALLY want Wayland
●
Security and client isolation
– Tizen needs to sandbox apps properly
– Apps may be downloaded and not audited or able to be trusted
●
May be closed source
●
Could contain backdoors or trojans
●
If 3rd party apps can't be trusted, they need to be isolated & secure
– Cannot get access to data unless approved by the user
●
e.g. Contacts, Photos, Microphone, Camera etc. etc.
– Cannot manipulate other apps
– Cannot listen into input except their own
Why does Tizen REALLY want Wayland
●
Far better zero-copy rendering support
– Tizen targets embedded devices which often have very little processing power
●
Need to limit copies
Why does Tizen REALLY want Wayland
●
Ensure you don't see partial updates
– Tizen is meant to have “commercial quality display”
●
Partial updates and tearing are not acceptable
– Major competitors have tear-free display
●
Can't compete without at least matching
Why does Tizen REALLY want Wayland
●
Massively reduce round-trips
– Performance matters much more on low-end embedded devices
– Users expect almost instant responsiveness
●
Wayland can improve startup time of applications on target devices by several 100ms vs X11
– Tests have shown ~400ms improvements
– Memory usage reduced
●
Apps can save between ~1 to ~11MB
●
Compositor saves ~ 48MB
– All of this while keeping the same (approximately) functionality, look and feel.
Why does Tizen REALLY want Wayland
●
Far better designed support for hardware layers
– Embedded hardware often supports several RGBA and YUV overlays
●
This allows zero-copy buffer assignment not just for fullscreen apps but for multiple windows
●
Regular mid-range hardware often supports 5 layers or more
– Wayland can make better use of this via Surfaces and Sub-Surfaces
– Allows compositor to effectively “turn off” and…
●
Wake up to deliver input events to client apps
●
Wake up on new buffer display
– Assign application output buffer handles/pointers to the correct display output layer
Why does Tizen REALLY want Wayland
●
Rotation
– We need good, clean rotation support for Tizen and Wayland delivers
●
Phones, Tablets and Wearables need to rotate
●
Even TVs need rotation (to become vertical banner displays)
●
We currently do it in X11 with lots of tricks and client-side support
– Wayland can clean this up.
– Opens up possibilities of things like shared “touch tables”
●
Multiple people around a single table
●
Different pieces of content (windows) at differing rotations per person or content
What Wayland Does
Wayland Compositor
Regular Application
Connect to Server
Create Surface
What Wayland Does
Wayland Compositor
Regular Application
Connect to Server
Create Surface Send Buffer End Transaction
What Wayland Does
Wayland Compositor
Regular Application
Connect to Server
Create Surface Send Buffer End Transaction Send Input Request Frame
What Wayland Does
Wayland Compositor
Regular Application
Connect to Server
Create Surface Send Buffer End Transaction Send Input Send Buffer
End Transaction
Request Frame
Rendering
X11 Rendering
●
There is only a single framebuffer
– There is offscreen data like pixmaps – can't be seen (just storage)
●
Xserver does the actual rendering to framebuffer or pixmaps
– Clients cannot directly render to these locations
●
There are exceptions and hacks – another discussion
– At most clients can:
●
Render to a local memory segment and upload
●
Render with GPU to OpenGL backbuffer then “swap” to a window to display
●
Xserver will “clip” rendering only to the correct output regions
– Invisible parts of windows can avoid beiing drawn entirely
– It is possible to bypass this – it is very anti-social
X11 Rendering
X11 Rendering
X11 Rendering
X11 Rendering
X11 Rendering
X11 Rendering
X11 Rendering (Composited)
●
Composited X11 forces rendering to a window to redirect
– Goes to off-screen pixmap that mimics window size
– Pixmap allocated by Xserver automatically on resize
– If window is obscured, all rendering still happens
X11 Rendering (Composited)
X11 Rendering (Composited)
X11 Rendering (Composited)
X11 Rendering (Composited)
X11 Rendering (Composited)
X11 Rendering (Composited)
X11 Rendering (Composited)
X11 Rendering (Composited)
X11 Rendering (Composited)
Wayland Rendering
●
Closer to X11 Composited Rendering
– Every Window (Surface) displays a buffer
●
Compositor is in charge of desicding how to display the buffer
– Clients allocate and fill buffers
●
Can render to buffer any way they like
– Compositor is not involved in rendering and doesn't know how
●
Send buffer to compositor when done
– Compositor may need to render to display buffer or assign to hardware scanout
Wayland Rendering
Wayland CompositorRegular Application
Wayland Rendering
Wayland CompositorRegular Application
1 2 3Spare Buffers
Request Frame
Wayland Rendering
Wayland CompositorRegular Application
1
2 3Spare Buffers
Get Buffer
Draw Frame Locally
Wayland Rendering
Wayland CompositorRegular Application
1
2 3Spare Buffers
Send Buffer
Wayland Rendering
Wayland CompositorRegular Application
1
2 3Spare Buffers
Display Buffer
(composite with GPU or
assign to display output)
Wayland Rendering
Wayland CompositorRegular Application
1
2 3Spare Buffers
Request Frame
Wayland Rendering
Wayland CompositorRegular Application
12
3Spare Buffers
Get Buffer
Draw Frame Locally
Wayland Rendering
Wayland CompositorRegular Application
1
2
3Spare Buffers
Send Buffer
Wayland Rendering
Wayland CompositorRegular Application
1
2
3Spare Buffers
Send Buffer
Display Buffer
(composite with GPU or
assign to display output)
Release Buffer
What this means
●
Display framerate is generally controlled by compositor
– Can be syncronized to screen refresh
●
Sending a buffer is zero-copy
– Application simply sends protocol with the buffer handle, not data
●
Buffers may be Posix Shared Memory
– mmap() the buffers and render directly from them or copy to texture or other
destination
●
Buffers may be GPU accessible memory
– Compositor can render them by wrapping texture around buffer or assign buffer to
display output hardware if possible
●
Result
– Smooth rendering with no tearing and no unnecessary copies
So...
Wayland is better than X11
Wayland is good for Tizen
Transition
How did the transition to Wayland happen
●
Had to transition 2 major things
– Client side application toolkit
●
Allow applications to display and get input from any Wayland compositor
– Compositor/Window Manager
●
Enlightenment uses same toolkit as clients
●
Client-side toolkit started first
– Had an existing compositor (Weston) to test against
Client-side
●
Ported window layer
– Windows in X11, Windows, OSX etc. - “surfaces” in Wayland
●
Ported rendering
– First SHM buffer rendering
●
Simpler and relied on no specific driver support
●
All rendering already done for other targets – just need a different target
●
Ported input
– Need to get Mouse and Keyboard input events
●
Are now extending more advanced input devices
●
Ported EGL/OpenGL-ES
– Similar to X11 EGL+GL but with surfaces not X11 windows
– EGL driver layer library takes care of buffer sending + management
Compositor-side
●
Needed to add display engine for:
– KMS/DRM display (configure display via KMS)
– Software rendering to fill DRM buffers
●
Map, fill, display
– EGL+GL for hardware acceleration
●
LibInput
– Use this library to get access to input devices
●
Send input to specific clients
Compositor-side
●
Compositor
– Had to make compositing non-optional
●
X11 allowed compositing as an add-on feature
●
Implmented by extra plug-in module and X11 infrastructure
●
Compositing in core as a non-optional design → the only sane way forward
– Use new engines
●
Use X11 engines (Software, GL) for X11 compositing
●
Use new DRM and GL DRM modules for software an hardware accelerated display direct to KMS/FB
– Remove/isolate X11 specific code
●
Window management code for X11 vs Wayland client management
●
X11 code for screen management (Randr)
●
X11 code for backlight controls
●
… and much more
Results
●
Enlightenment now is BOTH:
– X11 WM+Compositor
– Wayland Compositor (direct to KMS/FB)
●
(can even be Wayland compositor in-a-window in X11 like Weston)
●
EFL using apps
– Can work in X11 AND Wayland
●
And Windows, OSX, basic /dev/fb, …
●
Tizen can move to Wayland
– Enlightenment is now Tizen's Wayland compositor (Mobile, TV, Wearable ...)
– Most clients use EFL as the toolkit → so clients work too
– Still have lots of special use cases to solve for input and display
●
Working on them

Contenu connexe

Tendances

Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBase
Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBaseEmbeddable Databases for Mobile Apps: Stress-Free Solutions with InterBase
Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBaseEmbarcadero Technologies
 
Shipping Mobile Applications Using Qt for Symbian
Shipping Mobile Applications Using Qt for SymbianShipping Mobile Applications Using Qt for Symbian
Shipping Mobile Applications Using Qt for Symbianaccount inactive
 
ALSS14: Xen Project Automotive Hypervisor (Demo)
ALSS14: Xen Project Automotive Hypervisor (Demo)ALSS14: Xen Project Automotive Hypervisor (Demo)
ALSS14: Xen Project Automotive Hypervisor (Demo)The Linux Foundation
 
App Optimizations Using Qualcomm Snapdragon LLVM Compiler for Android
App Optimizations Using Qualcomm Snapdragon LLVM Compiler for AndroidApp Optimizations Using Qualcomm Snapdragon LLVM Compiler for Android
App Optimizations Using Qualcomm Snapdragon LLVM Compiler for AndroidQualcomm Developer Network
 
Qt - for stack overflow developer conference
Qt - for stack overflow developer conferenceQt - for stack overflow developer conference
Qt - for stack overflow developer conferenceNokia
 
S60 - Over the air
S60 - Over the airS60 - Over the air
S60 - Over the airNokia
 
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009Nokia
 
InduSoft Thin Client Webinar 2012
InduSoft Thin Client Webinar 2012InduSoft Thin Client Webinar 2012
InduSoft Thin Client Webinar 2012AVEVA
 
Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)
Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)
Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)Andreas Jakl
 
Qt everywhere
Qt everywhereQt everywhere
Qt everywhereNokia
 
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...Andreas Jakl
 
Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010Nokia
 
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3Qualcomm Developer Network
 
Qt S60 Technical Presentation Fn Stripped
Qt S60 Technical Presentation Fn StrippedQt S60 Technical Presentation Fn Stripped
Qt S60 Technical Presentation Fn StrippedNokia
 
Presentation technical deep dive of horizon 6 and mirage 5
Presentation   technical deep dive of horizon 6 and mirage 5Presentation   technical deep dive of horizon 6 and mirage 5
Presentation technical deep dive of horizon 6 and mirage 5solarisyougood
 
Qt For Maemo - getting to the fast-lane (v2)
Qt For Maemo - getting to the fast-lane (v2)Qt For Maemo - getting to the fast-lane (v2)
Qt For Maemo - getting to the fast-lane (v2)Nokia
 
Windows Accelerate IT Pro Bootcamp: App-V (Module 6 of 8)
Windows Accelerate IT Pro Bootcamp: App-V (Module 6 of 8)Windows Accelerate IT Pro Bootcamp: App-V (Module 6 of 8)
Windows Accelerate IT Pro Bootcamp: App-V (Module 6 of 8)Intergen
 
Exor jmobile introduction
Exor jmobile introductionExor jmobile introduction
Exor jmobile introductionJimmy Hsu
 
Compartmentalized Continuous Integration: Enabling Rapid, Flexible Collaborat...
Compartmentalized Continuous Integration: Enabling Rapid, Flexible Collaborat...Compartmentalized Continuous Integration: Enabling Rapid, Flexible Collaborat...
Compartmentalized Continuous Integration: Enabling Rapid, Flexible Collaborat...Perforce
 
Droid con 2012 bangalore v2.0
Droid con 2012   bangalore v2.0Droid con 2012   bangalore v2.0
Droid con 2012 bangalore v2.0Premchander Rao
 

Tendances (20)

Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBase
Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBaseEmbeddable Databases for Mobile Apps: Stress-Free Solutions with InterBase
Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBase
 
Shipping Mobile Applications Using Qt for Symbian
Shipping Mobile Applications Using Qt for SymbianShipping Mobile Applications Using Qt for Symbian
Shipping Mobile Applications Using Qt for Symbian
 
ALSS14: Xen Project Automotive Hypervisor (Demo)
ALSS14: Xen Project Automotive Hypervisor (Demo)ALSS14: Xen Project Automotive Hypervisor (Demo)
ALSS14: Xen Project Automotive Hypervisor (Demo)
 
App Optimizations Using Qualcomm Snapdragon LLVM Compiler for Android
App Optimizations Using Qualcomm Snapdragon LLVM Compiler for AndroidApp Optimizations Using Qualcomm Snapdragon LLVM Compiler for Android
App Optimizations Using Qualcomm Snapdragon LLVM Compiler for Android
 
Qt - for stack overflow developer conference
Qt - for stack overflow developer conferenceQt - for stack overflow developer conference
Qt - for stack overflow developer conference
 
S60 - Over the air
S60 - Over the airS60 - Over the air
S60 - Over the air
 
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
 
InduSoft Thin Client Webinar 2012
InduSoft Thin Client Webinar 2012InduSoft Thin Client Webinar 2012
InduSoft Thin Client Webinar 2012
 
Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)
Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)
Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)
 
Qt everywhere
Qt everywhereQt everywhere
Qt everywhere
 
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...
 
Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010
 
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
 
Qt S60 Technical Presentation Fn Stripped
Qt S60 Technical Presentation Fn StrippedQt S60 Technical Presentation Fn Stripped
Qt S60 Technical Presentation Fn Stripped
 
Presentation technical deep dive of horizon 6 and mirage 5
Presentation   technical deep dive of horizon 6 and mirage 5Presentation   technical deep dive of horizon 6 and mirage 5
Presentation technical deep dive of horizon 6 and mirage 5
 
Qt For Maemo - getting to the fast-lane (v2)
Qt For Maemo - getting to the fast-lane (v2)Qt For Maemo - getting to the fast-lane (v2)
Qt For Maemo - getting to the fast-lane (v2)
 
Windows Accelerate IT Pro Bootcamp: App-V (Module 6 of 8)
Windows Accelerate IT Pro Bootcamp: App-V (Module 6 of 8)Windows Accelerate IT Pro Bootcamp: App-V (Module 6 of 8)
Windows Accelerate IT Pro Bootcamp: App-V (Module 6 of 8)
 
Exor jmobile introduction
Exor jmobile introductionExor jmobile introduction
Exor jmobile introduction
 
Compartmentalized Continuous Integration: Enabling Rapid, Flexible Collaborat...
Compartmentalized Continuous Integration: Enabling Rapid, Flexible Collaborat...Compartmentalized Continuous Integration: Enabling Rapid, Flexible Collaborat...
Compartmentalized Continuous Integration: Enabling Rapid, Flexible Collaborat...
 
Droid con 2012 bangalore v2.0
Droid con 2012   bangalore v2.0Droid con 2012   bangalore v2.0
Droid con 2012 bangalore v2.0
 

Similaire à The Story of Enlightenment, EFL, Tizen and Wayland

ZENworks Configuration Management 11.4.1 and Windows 10
ZENworks Configuration Management 11.4.1 and Windows 10ZENworks Configuration Management 11.4.1 and Windows 10
ZENworks Configuration Management 11.4.1 and Windows 10Roel van Bueren
 
Future-Proof Your Desktops - How City of Kent is Implementing VDI for 800 Wor...
Future-Proof Your Desktops - How City of Kent is Implementing VDI for 800 Wor...Future-Proof Your Desktops - How City of Kent is Implementing VDI for 800 Wor...
Future-Proof Your Desktops - How City of Kent is Implementing VDI for 800 Wor...Unidesk Corporation
 
MT147_Thinking Windows 10? Think simple, scalable, and secure deployments wit...
MT147_Thinking Windows 10? Think simple, scalable, and secure deployments wit...MT147_Thinking Windows 10? Think simple, scalable, and secure deployments wit...
MT147_Thinking Windows 10? Think simple, scalable, and secure deployments wit...Dell EMC World
 
interface 9 technical overview
interface 9 technical overviewinterface 9 technical overview
interface 9 technical overviewAtHand Solutions
 
It's Time to Debloat the Cloud with Unikraft
It's Time to Debloat the Cloud with UnikraftIt's Time to Debloat the Cloud with Unikraft
It's Time to Debloat the Cloud with UnikraftScyllaDB
 
V mware+thin app+-+gcvmug
V mware+thin app+-+gcvmugV mware+thin app+-+gcvmug
V mware+thin app+-+gcvmugAlan Maloney
 
Server Virtualization - Smashing Success! Desktop Virtualization - Not So Mu...
Server Virtualization - Smashing Success!  Desktop Virtualization - Not So Mu...Server Virtualization - Smashing Success!  Desktop Virtualization - Not So Mu...
Server Virtualization - Smashing Success! Desktop Virtualization - Not So Mu...Unidesk Corporation
 
A Citrix Masterclass
A Citrix MasterclassA Citrix Masterclass
A Citrix Masterclassbluechipper
 
Desktop virtualisation
Desktop virtualisationDesktop virtualisation
Desktop virtualisationBlueChipICT
 
Make VDI Personal, Make VDI for Everyone
Make VDI Personal, Make VDI for EveryoneMake VDI Personal, Make VDI for Everyone
Make VDI Personal, Make VDI for EveryoneUnidesk Corporation
 
DNUG - Workshop: Alles was Du schon immer über den IBM Notes-Client wissen wo...
DNUG - Workshop: Alles was Du schon immer über den IBM Notes-Client wissen wo...DNUG - Workshop: Alles was Du schon immer über den IBM Notes-Client wissen wo...
DNUG - Workshop: Alles was Du schon immer über den IBM Notes-Client wissen wo...Christoph Adler
 
W PROSTOCIE SIŁA - wirtualizacja sposobem na uproszczenie infrastruktury IT
W PROSTOCIE SIŁA - wirtualizacja sposobem na uproszczenie infrastruktury ITW PROSTOCIE SIŁA - wirtualizacja sposobem na uproszczenie infrastruktury IT
W PROSTOCIE SIŁA - wirtualizacja sposobem na uproszczenie infrastruktury ITPeter Ocasek
 
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIY
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIYWhy Pay for Open Source Linux? Avoid the Hidden Cost of DIY
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIYEnterprise Management Associates
 
Planning Analytics client-server architecture.pptx
Planning Analytics client-server architecture.pptxPlanning Analytics client-server architecture.pptx
Planning Analytics client-server architecture.pptxHemant571882
 
VMworld 2013: VMware Horizon View Clients: Your Data, Applications and Deskto...
VMworld 2013: VMware Horizon View Clients: Your Data, Applications and Deskto...VMworld 2013: VMware Horizon View Clients: Your Data, Applications and Deskto...
VMworld 2013: VMware Horizon View Clients: Your Data, Applications and Deskto...VMworld
 
engage 2019 Workshop - Dirty Secrets of the Notes Client
engage 2019 Workshop - Dirty Secrets of the Notes Clientengage 2019 Workshop - Dirty Secrets of the Notes Client
engage 2019 Workshop - Dirty Secrets of the Notes ClientChristoph Adler
 
System management & cloud solution on z update
System management & cloud solution on z updateSystem management & cloud solution on z update
System management & cloud solution on z updateNico Chillemi
 
DB2 11 for z/OS Migration Planning and Early Customer Experiences
DB2 11 for z/OS Migration Planning and Early Customer ExperiencesDB2 11 for z/OS Migration Planning and Early Customer Experiences
DB2 11 for z/OS Migration Planning and Early Customer ExperiencesJohn Campbell
 

Similaire à The Story of Enlightenment, EFL, Tizen and Wayland (20)

Tizen Window System
Tizen Window SystemTizen Window System
Tizen Window System
 
ZENworks Configuration Management 11.4.1 and Windows 10
ZENworks Configuration Management 11.4.1 and Windows 10ZENworks Configuration Management 11.4.1 and Windows 10
ZENworks Configuration Management 11.4.1 and Windows 10
 
ThinClient
ThinClientThinClient
ThinClient
 
Future-Proof Your Desktops - How City of Kent is Implementing VDI for 800 Wor...
Future-Proof Your Desktops - How City of Kent is Implementing VDI for 800 Wor...Future-Proof Your Desktops - How City of Kent is Implementing VDI for 800 Wor...
Future-Proof Your Desktops - How City of Kent is Implementing VDI for 800 Wor...
 
MT147_Thinking Windows 10? Think simple, scalable, and secure deployments wit...
MT147_Thinking Windows 10? Think simple, scalable, and secure deployments wit...MT147_Thinking Windows 10? Think simple, scalable, and secure deployments wit...
MT147_Thinking Windows 10? Think simple, scalable, and secure deployments wit...
 
interface 9 technical overview
interface 9 technical overviewinterface 9 technical overview
interface 9 technical overview
 
It's Time to Debloat the Cloud with Unikraft
It's Time to Debloat the Cloud with UnikraftIt's Time to Debloat the Cloud with Unikraft
It's Time to Debloat the Cloud with Unikraft
 
V mware+thin app+-+gcvmug
V mware+thin app+-+gcvmugV mware+thin app+-+gcvmug
V mware+thin app+-+gcvmug
 
Server Virtualization - Smashing Success! Desktop Virtualization - Not So Mu...
Server Virtualization - Smashing Success!  Desktop Virtualization - Not So Mu...Server Virtualization - Smashing Success!  Desktop Virtualization - Not So Mu...
Server Virtualization - Smashing Success! Desktop Virtualization - Not So Mu...
 
A Citrix Masterclass
A Citrix MasterclassA Citrix Masterclass
A Citrix Masterclass
 
Desktop virtualisation
Desktop virtualisationDesktop virtualisation
Desktop virtualisation
 
Make VDI Personal, Make VDI for Everyone
Make VDI Personal, Make VDI for EveryoneMake VDI Personal, Make VDI for Everyone
Make VDI Personal, Make VDI for Everyone
 
DNUG - Workshop: Alles was Du schon immer über den IBM Notes-Client wissen wo...
DNUG - Workshop: Alles was Du schon immer über den IBM Notes-Client wissen wo...DNUG - Workshop: Alles was Du schon immer über den IBM Notes-Client wissen wo...
DNUG - Workshop: Alles was Du schon immer über den IBM Notes-Client wissen wo...
 
W PROSTOCIE SIŁA - wirtualizacja sposobem na uproszczenie infrastruktury IT
W PROSTOCIE SIŁA - wirtualizacja sposobem na uproszczenie infrastruktury ITW PROSTOCIE SIŁA - wirtualizacja sposobem na uproszczenie infrastruktury IT
W PROSTOCIE SIŁA - wirtualizacja sposobem na uproszczenie infrastruktury IT
 
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIY
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIYWhy Pay for Open Source Linux? Avoid the Hidden Cost of DIY
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIY
 
Planning Analytics client-server architecture.pptx
Planning Analytics client-server architecture.pptxPlanning Analytics client-server architecture.pptx
Planning Analytics client-server architecture.pptx
 
VMworld 2013: VMware Horizon View Clients: Your Data, Applications and Deskto...
VMworld 2013: VMware Horizon View Clients: Your Data, Applications and Deskto...VMworld 2013: VMware Horizon View Clients: Your Data, Applications and Deskto...
VMworld 2013: VMware Horizon View Clients: Your Data, Applications and Deskto...
 
engage 2019 Workshop - Dirty Secrets of the Notes Client
engage 2019 Workshop - Dirty Secrets of the Notes Clientengage 2019 Workshop - Dirty Secrets of the Notes Client
engage 2019 Workshop - Dirty Secrets of the Notes Client
 
System management & cloud solution on z update
System management & cloud solution on z updateSystem management & cloud solution on z update
System management & cloud solution on z update
 
DB2 11 for z/OS Migration Planning and Early Customer Experiences
DB2 11 for z/OS Migration Planning and Early Customer ExperiencesDB2 11 for z/OS Migration Planning and Early Customer Experiences
DB2 11 for z/OS Migration Planning and Early Customer Experiences
 

Plus de Ryo Jin

Why is EFL used on Tizen?
Why is EFL used on Tizen?Why is EFL used on Tizen?
Why is EFL used on Tizen?Ryo Jin
 
Samsung Z4 User Manual
Samsung Z4 User ManualSamsung Z4 User Manual
Samsung Z4 User ManualRyo Jin
 
Samsung ARTIK 050 (ARTIK ZERO) Modules Data Sheet
Samsung ARTIK 050 (ARTIK ZERO) Modules Data SheetSamsung ARTIK 050 (ARTIK ZERO) Modules Data Sheet
Samsung ARTIK 050 (ARTIK ZERO) Modules Data SheetRyo Jin
 
Introduction to Watch Face Development with Tizen Studio
Introduction to Watch Face Development with Tizen StudioIntroduction to Watch Face Development with Tizen Studio
Introduction to Watch Face Development with Tizen StudioRyo Jin
 
Tizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan Driver
Tizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan DriverTizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan Driver
Tizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan DriverRyo Jin
 
Panduan Penggunaan Perangkat Wearable Tizen
Panduan Penggunaan Perangkat Wearable TizenPanduan Penggunaan Perangkat Wearable Tizen
Panduan Penggunaan Perangkat Wearable TizenRyo Jin
 
Cara Menggunakan Smartphone Tizen
Cara Menggunakan Smartphone TizenCara Menggunakan Smartphone Tizen
Cara Menggunakan Smartphone TizenRyo Jin
 
Gear Fit2 Watchface Design Guide
Gear Fit2 Watchface Design GuideGear Fit2 Watchface Design Guide
Gear Fit2 Watchface Design GuideRyo Jin
 
Samsung Indonesia: Tizen Store
Samsung Indonesia: Tizen StoreSamsung Indonesia: Tizen Store
Samsung Indonesia: Tizen StoreRyo Jin
 
Samsung Indonesia: Tizen Wearables
Samsung Indonesia: Tizen WearablesSamsung Indonesia: Tizen Wearables
Samsung Indonesia: Tizen WearablesRyo Jin
 
Samsung Indonesia: Tizen Web Apps
Samsung Indonesia: Tizen Web AppsSamsung Indonesia: Tizen Web Apps
Samsung Indonesia: Tizen Web AppsRyo Jin
 
Samsung Indonesia: Tizen Native App
Samsung Indonesia: Tizen Native AppSamsung Indonesia: Tizen Native App
Samsung Indonesia: Tizen Native AppRyo Jin
 
Samsung Indonesia: Tizen Platform Overview and IoT
Samsung Indonesia: Tizen Platform Overview and IoTSamsung Indonesia: Tizen Platform Overview and IoT
Samsung Indonesia: Tizen Platform Overview and IoTRyo Jin
 
Russian Tizen Project
Russian Tizen ProjectRussian Tizen Project
Russian Tizen ProjectRyo Jin
 
Samsung SM-R360 Tizen User Manual
Samsung SM-R360 Tizen User ManualSamsung SM-R360 Tizen User Manual
Samsung SM-R360 Tizen User ManualRyo Jin
 
Tizen Micro Profile for IoT device
Tizen Micro Profile for IoT deviceTizen Micro Profile for IoT device
Tizen Micro Profile for IoT deviceRyo Jin
 
Panduan Dasar Pemrograman Tizen
Panduan Dasar Pemrograman TizenPanduan Dasar Pemrograman Tizen
Panduan Dasar Pemrograman TizenRyo Jin
 
Tizen PASS
Tizen PASSTizen PASS
Tizen PASSRyo Jin
 
Tizen PASS
Tizen PASSTizen PASS
Tizen PASSRyo Jin
 
Samsung Gear UI Design Guidelines
Samsung Gear UI Design GuidelinesSamsung Gear UI Design Guidelines
Samsung Gear UI Design GuidelinesRyo Jin
 

Plus de Ryo Jin (20)

Why is EFL used on Tizen?
Why is EFL used on Tizen?Why is EFL used on Tizen?
Why is EFL used on Tizen?
 
Samsung Z4 User Manual
Samsung Z4 User ManualSamsung Z4 User Manual
Samsung Z4 User Manual
 
Samsung ARTIK 050 (ARTIK ZERO) Modules Data Sheet
Samsung ARTIK 050 (ARTIK ZERO) Modules Data SheetSamsung ARTIK 050 (ARTIK ZERO) Modules Data Sheet
Samsung ARTIK 050 (ARTIK ZERO) Modules Data Sheet
 
Introduction to Watch Face Development with Tizen Studio
Introduction to Watch Face Development with Tizen StudioIntroduction to Watch Face Development with Tizen Studio
Introduction to Watch Face Development with Tizen Studio
 
Tizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan Driver
Tizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan DriverTizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan Driver
Tizen 3.0's Window System Integration Layer of OpenGLES/EGL & Vulkan Driver
 
Panduan Penggunaan Perangkat Wearable Tizen
Panduan Penggunaan Perangkat Wearable TizenPanduan Penggunaan Perangkat Wearable Tizen
Panduan Penggunaan Perangkat Wearable Tizen
 
Cara Menggunakan Smartphone Tizen
Cara Menggunakan Smartphone TizenCara Menggunakan Smartphone Tizen
Cara Menggunakan Smartphone Tizen
 
Gear Fit2 Watchface Design Guide
Gear Fit2 Watchface Design GuideGear Fit2 Watchface Design Guide
Gear Fit2 Watchface Design Guide
 
Samsung Indonesia: Tizen Store
Samsung Indonesia: Tizen StoreSamsung Indonesia: Tizen Store
Samsung Indonesia: Tizen Store
 
Samsung Indonesia: Tizen Wearables
Samsung Indonesia: Tizen WearablesSamsung Indonesia: Tizen Wearables
Samsung Indonesia: Tizen Wearables
 
Samsung Indonesia: Tizen Web Apps
Samsung Indonesia: Tizen Web AppsSamsung Indonesia: Tizen Web Apps
Samsung Indonesia: Tizen Web Apps
 
Samsung Indonesia: Tizen Native App
Samsung Indonesia: Tizen Native AppSamsung Indonesia: Tizen Native App
Samsung Indonesia: Tizen Native App
 
Samsung Indonesia: Tizen Platform Overview and IoT
Samsung Indonesia: Tizen Platform Overview and IoTSamsung Indonesia: Tizen Platform Overview and IoT
Samsung Indonesia: Tizen Platform Overview and IoT
 
Russian Tizen Project
Russian Tizen ProjectRussian Tizen Project
Russian Tizen Project
 
Samsung SM-R360 Tizen User Manual
Samsung SM-R360 Tizen User ManualSamsung SM-R360 Tizen User Manual
Samsung SM-R360 Tizen User Manual
 
Tizen Micro Profile for IoT device
Tizen Micro Profile for IoT deviceTizen Micro Profile for IoT device
Tizen Micro Profile for IoT device
 
Panduan Dasar Pemrograman Tizen
Panduan Dasar Pemrograman TizenPanduan Dasar Pemrograman Tizen
Panduan Dasar Pemrograman Tizen
 
Tizen PASS
Tizen PASSTizen PASS
Tizen PASS
 
Tizen PASS
Tizen PASSTizen PASS
Tizen PASS
 
Samsung Gear UI Design Guidelines
Samsung Gear UI Design GuidelinesSamsung Gear UI Design Guidelines
Samsung Gear UI Design Guidelines
 

Dernier

Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Dernier (20)

Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 

The Story of Enlightenment, EFL, Tizen and Wayland

  • 1. The Enlightenment of Wayland The story of Enlightenment, EFL, Tizen & Wayland Carsten Haitzler c.haitzler@samsung.com raster@rasterman.com
  • 3. What is… ? ● Tizen – A Linux distribtion for Consumer Electronics ● Mobile – Samsung Z1, Z3 ● Wearables – Samsung Gear 2, Gear 2 Neo, Gear S, Gear S2 ● TV – Samsung Smart TVs 2016 and beyond (also part of 2015) ● Fridges – Samsung Smart Fridge ● … and more – Open Source - http://source.tizen.org
  • 4. What is… ? ● Enlightenment – A window manager, compositor and desktop shell for X11 ● Now … also for Wayland – Window manager and compositor for Tizen ● On both X11 and now Wayland ● EFL – Enlightenment Foundation Libraries – The libraries built to make Enlightenment and other applications ● LGPLv2 + BSD Licensing – Libraries behind Tizen native development and core apps and tools https://www.enlightenment.org
  • 5. What is… ? ● Wayland – Replaces X11 – A new display system protocol – A new set of client and server libraries to build display servers with – A set of conventions clients and servers agree to – Primarily focused on Linux – Built around the assumption of open drivers ● Using DRM/KMS etc. – Focus on “every frame is perfect” – Focus on security and application isolation – Merges Display Server, Window Manager and Compositor into one http://wayland.freedesktop.org
  • 7. Why Wayland? ● It's cool ● Everyone else is doing it But really ...
  • 8. Why Wayland? ● It's cool ● Everyone else is doing it But really ... ● Wayland is … – Free of legacy design issues X11 has to maintain – Smaller codebase than X11 – Easier to get a “perfect UI” in than X11 – Easier to support hardware display features than X11 – More secure than X11
  • 9. Why Wayland? ● It's cool ● Everyone else is doing it But really ... ● Wayland is … – Free of legacy design issues X11 has to maintain – Smaller codebase than X11 – Easier to get a “perfect UI” in than X11 – Easier to support hardware display features than X11 – More secure than X11 – Less mature and tested than X11
  • 11. Wayland vs. X11 X Server Regular Application Window Manager Compositor Display (or modification) of windows
  • 12. Wayland vs. X11 X Server Regular Application Window Manager Compositor Display (or modification) of windows Map Window BUFFERS (PIXMAPS) ALLOCATED HERE
  • 13. Wayland vs. X11 X Server Regular Application Window Manager Compositor Display (or modification) of windows Map Window BUFFERS (PIXMAPS) ALLOCATED HERE
  • 14. Wayland vs. X11 X Server Regular Application Window Manager Compositor Display (or modification) of windows Map Window BUFFERS (PIXMAPS) ALLOCATED HERE WINDOW BUFFER∴ (PIXMAP) SIZES CONTROLLED HERE Read Property
  • 15. Wayland vs. X11 X Server Regular Application Window Manager Compositor Display (or modification) of windows Map Window BUFFERS (PIXMAPS) ALLOCATED HERE WINDOW BUFFER∴ (PIXMAP) SIZES CONTROLLED HERE Read Property
  • 16. Wayland vs. X11 X Server Regular Application Window Manager Compositor Display (or modification) of windows Map Window BUFFERS (PIXMAPS) ALLOCATED HERE WINDOW BUFFER∴ (PIXMAP) SIZES CONTROLLED HERE Read Property
  • 17. Wayland vs. X11 X Server Regular Application Window Manager Compositor Display (or modification) of windows Map Window Read Property BUFFERS (PIXMAPS) ALLOCATED HERE WINDOW BUFFER∴ (PIXMAP) SIZES CONTROLLED HERE
  • 18. Wayland vs. X11 X Server Regular Application Window Manager Compositor Display (or modification) of windows Map Window Read Property BUFFERS (PIXMAPS) ALLOCATED HERE WINDOW BUFFER∴ (PIXMAP) SIZES CONTROLLED HERE
  • 19. Wayland vs. X11 X Server Regular Application Window Manager Compositor Display (or modification) of windows Map Window Read Property BUFFERS (PIXMAPS) ALLOCATED HERE WINDOW BUFFER∴ (PIXMAP) SIZES CONTROLLED HERE
  • 20. Wayland vs. X11 X Server Regular Application Window Manager Compositor Display (or modification) of windows Map Window Read Property Reparent and add decoration Finally Show LOTS OF ROUND TRIPS BUFFERS (PIXMAPS) ALLOCATED HERE WINDOW BUFFER∴ (PIXMAP) SIZES CONTROLLED HERE
  • 21. Wayland vs. X11 X Server Regular Application Window Manager Compositor Display (or modification) of windows Map Window Read Property Reparent and add decoration Finally Show Map Event Expose Event LOTS OF ROUND TRIPS BUFFERS (PIXMAPS) ALLOCATED HERE WINDOW BUFFER∴ (PIXMAP) SIZES CONTROLLED HERE KNOW ABOUT BUFFER (PIXMAP) SIZES LATER (OFTEN AFTER RENDERING DONE)
  • 22. Often results in this... Decoration Client application content Undrawn parts of the application buffer (resized after rendering began) Shadows drawn by WM/Compositor Background handled by WM/Compositor
  • 23. Wayland vs. X11 X Server Regular Application Window Manager Compositor Rendering updates
  • 24. Wayland vs. X11 X Server Regular Application Window Manager Compositor Rendering updates Render Commands Often render client- side then render commands just “send” update buffers
  • 25. Wayland vs. X11 X Server Regular Application Window Manager Compositor Rendering updates Render Commands Often render client- side then render commands just “send” update buffers Damage Events Older style rendering done server side
  • 26. Wayland vs. X11 X Server Regular Application Window Manager Compositor Rendering updates Render Commands Often render client- side then render commands just “send” update buffers Damage Events Older style rendering done server side
  • 27. Wayland vs. X11 X Server Regular Application Window Manager Compositor Rendering updates Render Commands Often render client- side then render commands just “send” update buffers Damage Events Older style rendering done server side
  • 28. Wayland vs. X11 X Server Regular Application Window Manager Compositor Rendering updates Render Commands Often render client- side then render commands just “send” update buffers Damage Events Render screen updates Older style rendering done server side
  • 29. Problems as a result ● Sometimes compositor renders partial content – Responds to first damage event, and misses others ● Other damages are fixed up next frame
  • 31. Problems as a result ● If rendering client-side, most pixels end up being copied to the target – Huge amounts of memory bandwidth needed ● ~500MB/sec for 1080p @ 60HZ needing copying – 2GB/sec for UHD ... ● Even worse if you don't use OpenGL or MIT-SHM extension ● This can easily drop framerates by 20-50% ● Requires display server to have complete drawing subsystem – A legacy decision for X11 before shared libraries existed ● Allows sharing rendering code via the XServer process – Must remain pixel-perfect to retain compatibility
  • 32. Wayland vs. X11 X Server Regular Application Window Manager Compositor Input events Input goes direct from server to applications WM/Compositor can't modify events (scale windows, rotate etc.)
  • 33. Problems here... ● WM/Compositor can't rotate, zoom or transform content – Input event co-ordinates can only match “original” window geometry ● WM can set what window has focus – Clients can too ● Leads to possible fighting between clients and WM ● Clients can listen to all input – Huge security issue – e.g. any app can be a keylogger ● Clients can steal input locking everyone out – This can affect even screensavers and screenlocks by preventing screenlocks ● The infamous “leave a menu open to prevent a screen locking” bug
  • 34. Why does Tizen REALLY want Wayland ● Security and client isolation – Tizen needs to sandbox apps properly – Apps may be downloaded and not audited or able to be trusted ● May be closed source ● Could contain backdoors or trojans ● If 3rd party apps can't be trusted, they need to be isolated & secure – Cannot get access to data unless approved by the user ● e.g. Contacts, Photos, Microphone, Camera etc. etc. – Cannot manipulate other apps – Cannot listen into input except their own
  • 35. Why does Tizen REALLY want Wayland ● Far better zero-copy rendering support – Tizen targets embedded devices which often have very little processing power ● Need to limit copies
  • 36. Why does Tizen REALLY want Wayland ● Ensure you don't see partial updates – Tizen is meant to have “commercial quality display” ● Partial updates and tearing are not acceptable – Major competitors have tear-free display ● Can't compete without at least matching
  • 37. Why does Tizen REALLY want Wayland ● Massively reduce round-trips – Performance matters much more on low-end embedded devices – Users expect almost instant responsiveness ● Wayland can improve startup time of applications on target devices by several 100ms vs X11 – Tests have shown ~400ms improvements – Memory usage reduced ● Apps can save between ~1 to ~11MB ● Compositor saves ~ 48MB – All of this while keeping the same (approximately) functionality, look and feel.
  • 38. Why does Tizen REALLY want Wayland ● Far better designed support for hardware layers – Embedded hardware often supports several RGBA and YUV overlays ● This allows zero-copy buffer assignment not just for fullscreen apps but for multiple windows ● Regular mid-range hardware often supports 5 layers or more – Wayland can make better use of this via Surfaces and Sub-Surfaces – Allows compositor to effectively “turn off” and… ● Wake up to deliver input events to client apps ● Wake up on new buffer display – Assign application output buffer handles/pointers to the correct display output layer
  • 39. Why does Tizen REALLY want Wayland ● Rotation – We need good, clean rotation support for Tizen and Wayland delivers ● Phones, Tablets and Wearables need to rotate ● Even TVs need rotation (to become vertical banner displays) ● We currently do it in X11 with lots of tricks and client-side support – Wayland can clean this up. – Opens up possibilities of things like shared “touch tables” ● Multiple people around a single table ● Different pieces of content (windows) at differing rotations per person or content
  • 40. What Wayland Does Wayland Compositor Regular Application Connect to Server Create Surface
  • 41. What Wayland Does Wayland Compositor Regular Application Connect to Server Create Surface Send Buffer End Transaction
  • 42. What Wayland Does Wayland Compositor Regular Application Connect to Server Create Surface Send Buffer End Transaction Send Input Request Frame
  • 43. What Wayland Does Wayland Compositor Regular Application Connect to Server Create Surface Send Buffer End Transaction Send Input Send Buffer End Transaction Request Frame
  • 45. X11 Rendering ● There is only a single framebuffer – There is offscreen data like pixmaps – can't be seen (just storage) ● Xserver does the actual rendering to framebuffer or pixmaps – Clients cannot directly render to these locations ● There are exceptions and hacks – another discussion – At most clients can: ● Render to a local memory segment and upload ● Render with GPU to OpenGL backbuffer then “swap” to a window to display ● Xserver will “clip” rendering only to the correct output regions – Invisible parts of windows can avoid beiing drawn entirely – It is possible to bypass this – it is very anti-social
  • 52. X11 Rendering (Composited) ● Composited X11 forces rendering to a window to redirect – Goes to off-screen pixmap that mimics window size – Pixmap allocated by Xserver automatically on resize – If window is obscured, all rendering still happens
  • 62. Wayland Rendering ● Closer to X11 Composited Rendering – Every Window (Surface) displays a buffer ● Compositor is in charge of desicding how to display the buffer – Clients allocate and fill buffers ● Can render to buffer any way they like – Compositor is not involved in rendering and doesn't know how ● Send buffer to compositor when done – Compositor may need to render to display buffer or assign to hardware scanout
  • 64. Wayland Rendering Wayland CompositorRegular Application 1 2 3Spare Buffers Request Frame
  • 65. Wayland Rendering Wayland CompositorRegular Application 1 2 3Spare Buffers Get Buffer Draw Frame Locally
  • 66. Wayland Rendering Wayland CompositorRegular Application 1 2 3Spare Buffers Send Buffer
  • 67. Wayland Rendering Wayland CompositorRegular Application 1 2 3Spare Buffers Display Buffer (composite with GPU or assign to display output)
  • 68. Wayland Rendering Wayland CompositorRegular Application 1 2 3Spare Buffers Request Frame
  • 69. Wayland Rendering Wayland CompositorRegular Application 12 3Spare Buffers Get Buffer Draw Frame Locally
  • 70. Wayland Rendering Wayland CompositorRegular Application 1 2 3Spare Buffers Send Buffer
  • 71. Wayland Rendering Wayland CompositorRegular Application 1 2 3Spare Buffers Send Buffer Display Buffer (composite with GPU or assign to display output) Release Buffer
  • 72. What this means ● Display framerate is generally controlled by compositor – Can be syncronized to screen refresh ● Sending a buffer is zero-copy – Application simply sends protocol with the buffer handle, not data ● Buffers may be Posix Shared Memory – mmap() the buffers and render directly from them or copy to texture or other destination ● Buffers may be GPU accessible memory – Compositor can render them by wrapping texture around buffer or assign buffer to display output hardware if possible ● Result – Smooth rendering with no tearing and no unnecessary copies
  • 73. So... Wayland is better than X11 Wayland is good for Tizen
  • 75. How did the transition to Wayland happen ● Had to transition 2 major things – Client side application toolkit ● Allow applications to display and get input from any Wayland compositor – Compositor/Window Manager ● Enlightenment uses same toolkit as clients ● Client-side toolkit started first – Had an existing compositor (Weston) to test against
  • 76. Client-side ● Ported window layer – Windows in X11, Windows, OSX etc. - “surfaces” in Wayland ● Ported rendering – First SHM buffer rendering ● Simpler and relied on no specific driver support ● All rendering already done for other targets – just need a different target ● Ported input – Need to get Mouse and Keyboard input events ● Are now extending more advanced input devices ● Ported EGL/OpenGL-ES – Similar to X11 EGL+GL but with surfaces not X11 windows – EGL driver layer library takes care of buffer sending + management
  • 77. Compositor-side ● Needed to add display engine for: – KMS/DRM display (configure display via KMS) – Software rendering to fill DRM buffers ● Map, fill, display – EGL+GL for hardware acceleration ● LibInput – Use this library to get access to input devices ● Send input to specific clients
  • 78. Compositor-side ● Compositor – Had to make compositing non-optional ● X11 allowed compositing as an add-on feature ● Implmented by extra plug-in module and X11 infrastructure ● Compositing in core as a non-optional design → the only sane way forward – Use new engines ● Use X11 engines (Software, GL) for X11 compositing ● Use new DRM and GL DRM modules for software an hardware accelerated display direct to KMS/FB – Remove/isolate X11 specific code ● Window management code for X11 vs Wayland client management ● X11 code for screen management (Randr) ● X11 code for backlight controls ● … and much more
  • 79. Results ● Enlightenment now is BOTH: – X11 WM+Compositor – Wayland Compositor (direct to KMS/FB) ● (can even be Wayland compositor in-a-window in X11 like Weston) ● EFL using apps – Can work in X11 AND Wayland ● And Windows, OSX, basic /dev/fb, … ● Tizen can move to Wayland – Enlightenment is now Tizen's Wayland compositor (Mobile, TV, Wearable ...) – Most clients use EFL as the toolkit → so clients work too – Still have lots of special use cases to solve for input and display ● Working on them