SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
Towards shipping Ozone/Wayland
BlinkOn 10 (April/2019)
Toronto, Canada
Maksim Sisov, msisov@
Agenda
● About Igalia
● Why Wayland
● High-level Design Overview
● Current Status
● Other Key Concepts
● Wayland with GBM
● Future Plans and Ozone/X11
About Igalia
● Worker-owned, employee-run Open Source consultancy
company, based in Galicia, Spain.
About Igalia
● ~80 employees around the world.
● Areas
○ Chromium/Blink, WebKit and Servo; W3C member;
○ Compilers, JavaScript engines (V8, JSC);
○ Multimedia, Kernel, Networking;
○ Accessibility, Virtualization & Cloud.
About Igalia
Why Wayland
Why Wayland
● Refined and more secure protocol
○ Sandboxed windows (no keyloggers)
○ Own protocol extensions
● Simple graphics stack
○ Does not provide drawing APIs (shares a DRM handle
instead)
○ Can manage compositing
● Demand from industries
○ Automotive
○ Entertainment
○ Phones
High-level Design Overview
High-level Design Overview
● Platform independent DesktopWindowTreeHost implementation
for browser frame.
○ Uses PlatformWindow
○ Communicates to Ozone
● Wayland connection in the browser process.
● GPU process uses SurfacelessEGL and GBM.
● Browser process imports Wayland buffers (wl_buffer) and handles
GPU process’ requests to damage and commit buffers.
High-level Design Overview
Current status
Project management status
● Upstreamed all the Ozone/Wayland the patches from the
downstream Igalia repository (about 150 patches since
April/2018)
● Switched the work to be 100% in the upstream
● Moved all the pending issues to Wayland umbrella bug
● Continued keeping V4L2 patches in downstream
Features completed/merged
● Wayland IME
● Support for maximize/fullscreen/restore + restore size of
windows
● Window move/resize
● Clipboard support
● Tooltips support
● Non-English layouts support
Features completed/merged
● Delegated placement of menu and context windows
● Cursor bitmaps
● Opaque regions
● Session restore
● Multiple displays support
● Drag and Drop support
Features completed/merged
● Viz/GPU process support. Including
○ NativePixmap support
○ GpuNativeMemory buffers support
● ZeroCopy support.
● Fixed software rendering path
● File Dialogs
○ WebUI or GTK
○ Design document
● Tab Drag
○ Completed single-window tab dragging
○ Pending to complete tab detach/attach to other window
● HiDPI support
○ No well-defined spec
○ Implementation workarounds for different compositors
○ Dynamic scale change on display relocation
○ 90% complete
● Primary Selection support
Features Pending
● Regression with VizDisplayCompositor enabled
○ Enabled by default since Chromium 73
○ Regressed from 1-20% depending on hardware
○ Blocked sending frames by the submission and
presentation callbacks:
■ Split SwapCompletion and Presentation callbacks
■ Move pending frame logic to the
WaylandBufferManager
■ Use pre-waiting for the frame callback
■ Possibly move Wayland display polling and buffer
management to evdev IO thread
Performance
● Performance gain with opaque region set:
○ Optimization hint for the Wayland compositor
○ 100% performance gain on Raspberry pi3 (30 to 60 FPS)
○ Stable FPS running Aquarium WebGL demo
Performance
● Buildbot running in the Chromium community infrastructure.
● Enabled tests:
○ ozone_unittests
○ services_unittests
Testing
● Based on Chromium 73.0.3683.75 (official channel)
● Contains backported Ozone/Wayland patches
● Merged to OSSystem upstream GitHub repository
Meta-browser
Other Key Concepts
● Does not provide global space coordinates
○ Assume the top-level window is located 0,0 in 99% of cases
○ Only local surface coordinates are provided
● Requires placing popup windows (menus, tooltips) relative to the
parent surface
○ Translate bounds from screen coordinates to local surface
coordinates
○ Calculate correct anchor bounds and choose right positioner
anchor
Positioning of Wayland Windows
● WaylandOutput represents one real physical display
● WaylandOutputManager
○ Manages outputs
○ Notifies WaylandScreen
● WaylandScreen
○ Implements PlatformScreen
○ Keeps and manages the list of displays
○ Provides displays to aura::ScreenOzone
Multiple Displays
aura::ScreenOzone ui::WaylandScreen
ui::WaylandOutputManager
ui::WaylandOutput
Multiple Displays
● No primary display concept (GetPrimaryDisplay)
○ Use the one nearest to the zero origin
● No most occupied display window concept
(GetDisplayForAcceleratedWidget)
○ Use output listener
○ Assume the very first entered display is the most occupied
● No cursor position in screen coordinates
(GetCursorScreenPoint)
○ Listen to mouse events
○ Store locations in local surface coordinates
○ Return location which is out of the bounds of the largests
window
Multiple Displays
Wayland with GBM
Wayland with GBM
● Problem
- How to access Wayland surfaces on the browser process
side?
■ Stick with in process gpu mode
■ Use xdg importer/exporter
■ Use libgbm
How Buffers Are Created
WaylandSurfaceFactory GbmPixmapWayland
gbm_wrapper
libgbm
WaylandConnectionProxy
WaylandBufferManager
Wayland
Associated mojo pipe
How Buffers Are Swapped
GbmSurfacelessWayland WaylandConnectionProxy
WaylandBufferManager
Associated mojo pipe
Wayland
Attach
Damage
Commit
Setup frame callback
Setup presentation
OnScheduleBufferSwap(
gfx::SwapResult,
gfx::PresentationFeedback)
How Buffers Are Swapped
Splitting Callbacks
GbmSurfacelessWayland WaylandConnectionProxy
WaylandBufferManager
Associated mojo pipe
Wayland
OnSubmission (gfx::SwapResult)
OnPresentation (gfx::PresentationFeedback)
Splitting Callbacks
● PassThroughImageTransportSurface needed to be fixed:
Swap[0]
Swap[1]
Swap-Ack[0]
PresentationCallback[0]
Swap-Ack[1]
PresentationCallback[1]
Swap[0]
Swap-Ack[0]
Swap[1]
PresentationCallback[0]
Swap-Ack[1]
PresentationCallback[1]
Splitting Callbacks
More Improvements
● Switch from the post frame callback wait to pre frame callback
wait.
More Improvements
Future Plans and Ozone/X11
Future Plans
● Complete and upstream pending features
● Resolve open Ozone/Wayland issues
● Add more tests to the linux-ozone-rel buildbot
● Ship Ozone/Wayland as part of the stable Chrome releases
Ozone/X11
● Avoid having two paths for X11 and Wayland backends
○ Move X11 under Ozone
○ Decide on LinuxUi
○ Have single CI bot for X11 and Wayland
● Let Chromium choose the Ozone backend
Thanks to
tonikitoo@igalia.com - Antonio Gomes
fwang@igalia.com - Frédéric Wang
msisov@igalia.com - Maksim Sisov
jkim@igalia.com - Jeongeun Kim (Julie)
nickdiego@igalia.com - Nick Diego Yamane
adunaev@igalia.com - Alexander Dunaev
rjkroege@chromium.org - Robert Kroeger
spang@chromium.org - Michael Spang
sky@chromium.org - Scott Violet
sadrul@chromium.org - Sadrul Habib Chowdhury
kylechar@chromium.org - Kyle Charbonneau
Questions?
msisov@igalia.com - Maksim Sisov
nickdiego@igalia.com - Nick Diego Yamane
adunaev@igalia.com - Alexander Dunaev

Weitere ähnliche Inhalte

Was ist angesagt?

CodiLime Tech Talk - Wojciech Urbański: Cloud Native
CodiLime Tech Talk - Wojciech Urbański: Cloud NativeCodiLime Tech Talk - Wojciech Urbański: Cloud Native
CodiLime Tech Talk - Wojciech Urbański: Cloud NativeCodiLime
 
Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)Igalia
 
Contributions to an open source project: Igalia and the Chromium project
Contributions to an open source project: Igalia and the Chromium projectContributions to an open source project: Igalia and the Chromium project
Contributions to an open source project: Igalia and the Chromium projectIgalia
 
Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...
Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...
Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...Igalia
 
Building Websites using Drupal 7
Building Websites using Drupal 7Building Websites using Drupal 7
Building Websites using Drupal 7Kartik Singhal
 
BKK16-403 Android HAL Consolidation Status
BKK16-403 Android HAL Consolidation StatusBKK16-403 Android HAL Consolidation Status
BKK16-403 Android HAL Consolidation StatusLinaro
 
Chromium on Wayland Desktop (BlinkOn 7)
Chromium on Wayland Desktop (BlinkOn 7)Chromium on Wayland Desktop (BlinkOn 7)
Chromium on Wayland Desktop (BlinkOn 7)Igalia
 
Fixing Gaps. Strengthening the Chromium platform for content blocking
Fixing Gaps. Strengthening the Chromium platform for content blockingFixing Gaps. Strengthening the Chromium platform for content blocking
Fixing Gaps. Strengthening the Chromium platform for content blockingIgalia
 
2015-09-16 georchestra @ foss4g2015 Seoul
2015-09-16 georchestra @ foss4g2015 Seoul2015-09-16 georchestra @ foss4g2015 Seoul
2015-09-16 georchestra @ foss4g2015 Seoulfvanderbiest
 
georchestra SDI: Project Status Report
georchestra SDI: Project Status Reportgeorchestra SDI: Project Status Report
georchestra SDI: Project Status ReportCamptocamp
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersJon Peck
 
WPE, a New WebKit Port Optimised for Embedded (IBC 2017)
WPE, a New WebKit Port Optimised for Embedded (IBC 2017)WPE, a New WebKit Port Optimised for Embedded (IBC 2017)
WPE, a New WebKit Port Optimised for Embedded (IBC 2017)Igalia
 
Nimble - iOS dependency management
Nimble - iOS dependency managementNimble - iOS dependency management
Nimble - iOS dependency managementNimble
 
Last Month in PHP - September 2016
Last Month in PHP - September 2016Last Month in PHP - September 2016
Last Month in PHP - September 2016Eric Poe
 
Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)
Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)
Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)Igalia
 
K9s - Kubernetes CLI To Manage Your Clusters In Style
K9s - Kubernetes CLI To Manage Your Clusters In StyleK9s - Kubernetes CLI To Manage Your Clusters In Style
K9s - Kubernetes CLI To Manage Your Clusters In StyleRaphaël PINSON
 
Codemotion Madrid 2018 - Microservicios Reactivos con Micronaut
Codemotion Madrid 2018 - Microservicios Reactivos con MicronautCodemotion Madrid 2018 - Microservicios Reactivos con Micronaut
Codemotion Madrid 2018 - Microservicios Reactivos con MicronautIván López Martín
 
Code:Nation Tech Stack
Code:Nation Tech StackCode:Nation Tech Stack
Code:Nation Tech StackElton Minetto
 
WPE: Current Status and Future (Web Engines Hackfest 2018)
WPE: Current Status and Future (Web Engines Hackfest 2018)WPE: Current Status and Future (Web Engines Hackfest 2018)
WPE: Current Status and Future (Web Engines Hackfest 2018)Igalia
 
GeoMapFish, the Open Source WebGIS
GeoMapFish, the Open Source WebGISGeoMapFish, the Open Source WebGIS
GeoMapFish, the Open Source WebGISCamptocamp
 

Was ist angesagt? (20)

CodiLime Tech Talk - Wojciech Urbański: Cloud Native
CodiLime Tech Talk - Wojciech Urbański: Cloud NativeCodiLime Tech Talk - Wojciech Urbański: Cloud Native
CodiLime Tech Talk - Wojciech Urbański: Cloud Native
 
Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)
 
Contributions to an open source project: Igalia and the Chromium project
Contributions to an open source project: Igalia and the Chromium projectContributions to an open source project: Igalia and the Chromium project
Contributions to an open source project: Igalia and the Chromium project
 
Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...
Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...
Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...
 
Building Websites using Drupal 7
Building Websites using Drupal 7Building Websites using Drupal 7
Building Websites using Drupal 7
 
BKK16-403 Android HAL Consolidation Status
BKK16-403 Android HAL Consolidation StatusBKK16-403 Android HAL Consolidation Status
BKK16-403 Android HAL Consolidation Status
 
Chromium on Wayland Desktop (BlinkOn 7)
Chromium on Wayland Desktop (BlinkOn 7)Chromium on Wayland Desktop (BlinkOn 7)
Chromium on Wayland Desktop (BlinkOn 7)
 
Fixing Gaps. Strengthening the Chromium platform for content blocking
Fixing Gaps. Strengthening the Chromium platform for content blockingFixing Gaps. Strengthening the Chromium platform for content blocking
Fixing Gaps. Strengthening the Chromium platform for content blocking
 
2015-09-16 georchestra @ foss4g2015 Seoul
2015-09-16 georchestra @ foss4g2015 Seoul2015-09-16 georchestra @ foss4g2015 Seoul
2015-09-16 georchestra @ foss4g2015 Seoul
 
georchestra SDI: Project Status Report
georchestra SDI: Project Status Reportgeorchestra SDI: Project Status Report
georchestra SDI: Project Status Report
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for Publishers
 
WPE, a New WebKit Port Optimised for Embedded (IBC 2017)
WPE, a New WebKit Port Optimised for Embedded (IBC 2017)WPE, a New WebKit Port Optimised for Embedded (IBC 2017)
WPE, a New WebKit Port Optimised for Embedded (IBC 2017)
 
Nimble - iOS dependency management
Nimble - iOS dependency managementNimble - iOS dependency management
Nimble - iOS dependency management
 
Last Month in PHP - September 2016
Last Month in PHP - September 2016Last Month in PHP - September 2016
Last Month in PHP - September 2016
 
Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)
Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)
Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)
 
K9s - Kubernetes CLI To Manage Your Clusters In Style
K9s - Kubernetes CLI To Manage Your Clusters In StyleK9s - Kubernetes CLI To Manage Your Clusters In Style
K9s - Kubernetes CLI To Manage Your Clusters In Style
 
Codemotion Madrid 2018 - Microservicios Reactivos con Micronaut
Codemotion Madrid 2018 - Microservicios Reactivos con MicronautCodemotion Madrid 2018 - Microservicios Reactivos con Micronaut
Codemotion Madrid 2018 - Microservicios Reactivos con Micronaut
 
Code:Nation Tech Stack
Code:Nation Tech StackCode:Nation Tech Stack
Code:Nation Tech Stack
 
WPE: Current Status and Future (Web Engines Hackfest 2018)
WPE: Current Status and Future (Web Engines Hackfest 2018)WPE: Current Status and Future (Web Engines Hackfest 2018)
WPE: Current Status and Future (Web Engines Hackfest 2018)
 
GeoMapFish, the Open Source WebGIS
GeoMapFish, the Open Source WebGISGeoMapFish, the Open Source WebGIS
GeoMapFish, the Open Source WebGIS
 

Ähnlich wie Towards shipping Ozone/Wayland (BlinkOn 10)

The pathway to Chromium on Wayland (Web Engines Hackfest 2018)
The pathway to Chromium on Wayland (Web Engines Hackfest 2018)The pathway to Chromium on Wayland (Web Engines Hackfest 2018)
The pathway to Chromium on Wayland (Web Engines Hackfest 2018)Igalia
 
Servo: A Web View From Somewhere Else
Servo: A Web View From Somewhere ElseServo: A Web View From Somewhere Else
Servo: A Web View From Somewhere ElseIgalia
 
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...Igalia
 
Inject the Web into your GStreamer pipeline with WPE using a GStreamer/WebKit...
Inject the Web into your GStreamer pipeline with WPE using a GStreamer/WebKit...Inject the Web into your GStreamer pipeline with WPE using a GStreamer/WebKit...
Inject the Web into your GStreamer pipeline with WPE using a GStreamer/WebKit...Igalia
 
Montreal.rb 2022-10-05 - Glimmer DSL for SWT - Ruby Desktop Development GUI ...
 Montreal.rb 2022-10-05 - Glimmer DSL for SWT - Ruby Desktop Development GUI ... Montreal.rb 2022-10-05 - Glimmer DSL for SWT - Ruby Desktop Development GUI ...
Montreal.rb 2022-10-05 - Glimmer DSL for SWT - Ruby Desktop Development GUI ...Andy Maleh
 
WPEWebKit, the WebKit port for embedded platforms (Linaro Connect San Diego 2...
WPEWebKit, the WebKit port for embedded platforms (Linaro Connect San Diego 2...WPEWebKit, the WebKit port for embedded platforms (Linaro Connect San Diego 2...
WPEWebKit, the WebKit port for embedded platforms (Linaro Connect San Diego 2...Igalia
 
Integration of the Chromium Browser in the GENIVI Platform (16th GENIVI AMM)
Integration of the Chromium Browser in the GENIVI Platform (16th GENIVI AMM)Integration of the Chromium Browser in the GENIVI Platform (16th GENIVI AMM)
Integration of the Chromium Browser in the GENIVI Platform (16th GENIVI AMM)Igalia
 
Parallel programing in web applications - public.pptx
Parallel programing in web applications - public.pptxParallel programing in web applications - public.pptx
Parallel programing in web applications - public.pptxGuy Bary
 
HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)
HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)
HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)Igalia
 
Software Defined Datacenter with Proxmox
Software Defined Datacenter with ProxmoxSoftware Defined Datacenter with Proxmox
Software Defined Datacenter with ProxmoxGLC Networks
 
How Brave update works
How Brave update worksHow Brave update works
How Brave update worksIgalia
 
HTML5 New Features and Resources
HTML5 New Features and ResourcesHTML5 New Features and Resources
HTML5 New Features and ResourcesRon Reiter
 
Android Lollipop: The developer's perspective
Android Lollipop: The developer's perspectiveAndroid Lollipop: The developer's perspective
Android Lollipop: The developer's perspectiveSebastian Vieira
 
The Chromium/Wayland Project (Lightning Talk) (BlinkOn 9)
The Chromium/Wayland Project (Lightning Talk) (BlinkOn 9)The Chromium/Wayland Project (Lightning Talk) (BlinkOn 9)
The Chromium/Wayland Project (Lightning Talk) (BlinkOn 9)Igalia
 
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...Igalia
 
Ustream Techtalks: Google Chrome Developer Tools
Ustream Techtalks: Google Chrome Developer ToolsUstream Techtalks: Google Chrome Developer Tools
Ustream Techtalks: Google Chrome Developer ToolsMáté Nádasdi
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...Haggai Philip Zagury
 
Iteria lowcode 2022-01-10
Iteria lowcode 2022-01-10Iteria lowcode 2022-01-10
Iteria lowcode 2022-01-10Jozef Slezak
 
You Can Work on the Web Patform! (GOSIM 2023)
You Can Work on the Web Patform! (GOSIM 2023)You Can Work on the Web Patform! (GOSIM 2023)
You Can Work on the Web Patform! (GOSIM 2023)Igalia
 

Ähnlich wie Towards shipping Ozone/Wayland (BlinkOn 10) (20)

The pathway to Chromium on Wayland (Web Engines Hackfest 2018)
The pathway to Chromium on Wayland (Web Engines Hackfest 2018)The pathway to Chromium on Wayland (Web Engines Hackfest 2018)
The pathway to Chromium on Wayland (Web Engines Hackfest 2018)
 
Chromium wayland
Chromium waylandChromium wayland
Chromium wayland
 
Servo: A Web View From Somewhere Else
Servo: A Web View From Somewhere ElseServo: A Web View From Somewhere Else
Servo: A Web View From Somewhere Else
 
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
 
Inject the Web into your GStreamer pipeline with WPE using a GStreamer/WebKit...
Inject the Web into your GStreamer pipeline with WPE using a GStreamer/WebKit...Inject the Web into your GStreamer pipeline with WPE using a GStreamer/WebKit...
Inject the Web into your GStreamer pipeline with WPE using a GStreamer/WebKit...
 
Montreal.rb 2022-10-05 - Glimmer DSL for SWT - Ruby Desktop Development GUI ...
 Montreal.rb 2022-10-05 - Glimmer DSL for SWT - Ruby Desktop Development GUI ... Montreal.rb 2022-10-05 - Glimmer DSL for SWT - Ruby Desktop Development GUI ...
Montreal.rb 2022-10-05 - Glimmer DSL for SWT - Ruby Desktop Development GUI ...
 
WPEWebKit, the WebKit port for embedded platforms (Linaro Connect San Diego 2...
WPEWebKit, the WebKit port for embedded platforms (Linaro Connect San Diego 2...WPEWebKit, the WebKit port for embedded platforms (Linaro Connect San Diego 2...
WPEWebKit, the WebKit port for embedded platforms (Linaro Connect San Diego 2...
 
Integration of the Chromium Browser in the GENIVI Platform (16th GENIVI AMM)
Integration of the Chromium Browser in the GENIVI Platform (16th GENIVI AMM)Integration of the Chromium Browser in the GENIVI Platform (16th GENIVI AMM)
Integration of the Chromium Browser in the GENIVI Platform (16th GENIVI AMM)
 
Parallel programing in web applications - public.pptx
Parallel programing in web applications - public.pptxParallel programing in web applications - public.pptx
Parallel programing in web applications - public.pptx
 
HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)
HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)
HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)
 
Software Defined Datacenter with Proxmox
Software Defined Datacenter with ProxmoxSoftware Defined Datacenter with Proxmox
Software Defined Datacenter with Proxmox
 
How Brave update works
How Brave update worksHow Brave update works
How Brave update works
 
HTML5 New Features and Resources
HTML5 New Features and ResourcesHTML5 New Features and Resources
HTML5 New Features and Resources
 
Android Lollipop: The developer's perspective
Android Lollipop: The developer's perspectiveAndroid Lollipop: The developer's perspective
Android Lollipop: The developer's perspective
 
The Chromium/Wayland Project (Lightning Talk) (BlinkOn 9)
The Chromium/Wayland Project (Lightning Talk) (BlinkOn 9)The Chromium/Wayland Project (Lightning Talk) (BlinkOn 9)
The Chromium/Wayland Project (Lightning Talk) (BlinkOn 9)
 
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
 
Ustream Techtalks: Google Chrome Developer Tools
Ustream Techtalks: Google Chrome Developer ToolsUstream Techtalks: Google Chrome Developer Tools
Ustream Techtalks: Google Chrome Developer Tools
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
 
Iteria lowcode 2022-01-10
Iteria lowcode 2022-01-10Iteria lowcode 2022-01-10
Iteria lowcode 2022-01-10
 
You Can Work on the Web Patform! (GOSIM 2023)
You Can Work on the Web Patform! (GOSIM 2023)You Can Work on the Web Patform! (GOSIM 2023)
You Can Work on the Web Patform! (GOSIM 2023)
 

Mehr von Igalia

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEIgalia
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Automated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesAutomated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesIgalia
 
Embedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to MaintenanceEmbedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to MaintenanceIgalia
 
Optimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfOptimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfIgalia
 
Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JITIgalia
 
To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!Igalia
 
Implementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerImplementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerIgalia
 
8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in MesaIgalia
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIgalia
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera LinuxIgalia
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVMIgalia
 
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsturnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsIgalia
 
Graphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesGraphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesIgalia
 
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSDelegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSIgalia
 
MessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webMessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webIgalia
 
Replacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersReplacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersIgalia
 
I'm not an AMD expert, but...
I'm not an AMD expert, but...I'm not an AMD expert, but...
I'm not an AMD expert, but...Igalia
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on RaspberryIgalia
 

Mehr von Igalia (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPE
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Automated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesAutomated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded Devices
 
Embedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to MaintenanceEmbedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to Maintenance
 
Optimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfOptimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdf
 
Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JIT
 
To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!
 
Implementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerImplementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamer
 
8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera Linux
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVM
 
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsturnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
 
Graphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesGraphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devices
 
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSDelegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
 
MessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webMessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the web
 
Replacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersReplacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shaders
 
I'm not an AMD expert, but...
I'm not an AMD expert, but...I'm not an AMD expert, but...
I'm not an AMD expert, but...
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on Raspberry
 

Kürzlich hochgeladen

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 

Kürzlich hochgeladen (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 

Towards shipping Ozone/Wayland (BlinkOn 10)

  • 1. Towards shipping Ozone/Wayland BlinkOn 10 (April/2019) Toronto, Canada Maksim Sisov, msisov@
  • 2. Agenda ● About Igalia ● Why Wayland ● High-level Design Overview ● Current Status ● Other Key Concepts ● Wayland with GBM ● Future Plans and Ozone/X11
  • 3. About Igalia ● Worker-owned, employee-run Open Source consultancy company, based in Galicia, Spain.
  • 4. About Igalia ● ~80 employees around the world. ● Areas ○ Chromium/Blink, WebKit and Servo; W3C member; ○ Compilers, JavaScript engines (V8, JSC); ○ Multimedia, Kernel, Networking; ○ Accessibility, Virtualization & Cloud.
  • 7. Why Wayland ● Refined and more secure protocol ○ Sandboxed windows (no keyloggers) ○ Own protocol extensions ● Simple graphics stack ○ Does not provide drawing APIs (shares a DRM handle instead) ○ Can manage compositing ● Demand from industries ○ Automotive ○ Entertainment ○ Phones
  • 9. High-level Design Overview ● Platform independent DesktopWindowTreeHost implementation for browser frame. ○ Uses PlatformWindow ○ Communicates to Ozone ● Wayland connection in the browser process. ● GPU process uses SurfacelessEGL and GBM. ● Browser process imports Wayland buffers (wl_buffer) and handles GPU process’ requests to damage and commit buffers.
  • 12. Project management status ● Upstreamed all the Ozone/Wayland the patches from the downstream Igalia repository (about 150 patches since April/2018) ● Switched the work to be 100% in the upstream ● Moved all the pending issues to Wayland umbrella bug ● Continued keeping V4L2 patches in downstream
  • 13. Features completed/merged ● Wayland IME ● Support for maximize/fullscreen/restore + restore size of windows ● Window move/resize ● Clipboard support ● Tooltips support ● Non-English layouts support
  • 14. Features completed/merged ● Delegated placement of menu and context windows ● Cursor bitmaps ● Opaque regions ● Session restore ● Multiple displays support ● Drag and Drop support
  • 15. Features completed/merged ● Viz/GPU process support. Including ○ NativePixmap support ○ GpuNativeMemory buffers support ● ZeroCopy support. ● Fixed software rendering path
  • 16. ● File Dialogs ○ WebUI or GTK ○ Design document ● Tab Drag ○ Completed single-window tab dragging ○ Pending to complete tab detach/attach to other window ● HiDPI support ○ No well-defined spec ○ Implementation workarounds for different compositors ○ Dynamic scale change on display relocation ○ 90% complete ● Primary Selection support Features Pending
  • 17. ● Regression with VizDisplayCompositor enabled ○ Enabled by default since Chromium 73 ○ Regressed from 1-20% depending on hardware ○ Blocked sending frames by the submission and presentation callbacks: ■ Split SwapCompletion and Presentation callbacks ■ Move pending frame logic to the WaylandBufferManager ■ Use pre-waiting for the frame callback ■ Possibly move Wayland display polling and buffer management to evdev IO thread Performance
  • 18. ● Performance gain with opaque region set: ○ Optimization hint for the Wayland compositor ○ 100% performance gain on Raspberry pi3 (30 to 60 FPS) ○ Stable FPS running Aquarium WebGL demo Performance
  • 19. ● Buildbot running in the Chromium community infrastructure. ● Enabled tests: ○ ozone_unittests ○ services_unittests Testing
  • 20. ● Based on Chromium 73.0.3683.75 (official channel) ● Contains backported Ozone/Wayland patches ● Merged to OSSystem upstream GitHub repository Meta-browser
  • 22. ● Does not provide global space coordinates ○ Assume the top-level window is located 0,0 in 99% of cases ○ Only local surface coordinates are provided ● Requires placing popup windows (menus, tooltips) relative to the parent surface ○ Translate bounds from screen coordinates to local surface coordinates ○ Calculate correct anchor bounds and choose right positioner anchor Positioning of Wayland Windows
  • 23. ● WaylandOutput represents one real physical display ● WaylandOutputManager ○ Manages outputs ○ Notifies WaylandScreen ● WaylandScreen ○ Implements PlatformScreen ○ Keeps and manages the list of displays ○ Provides displays to aura::ScreenOzone Multiple Displays
  • 25. ● No primary display concept (GetPrimaryDisplay) ○ Use the one nearest to the zero origin ● No most occupied display window concept (GetDisplayForAcceleratedWidget) ○ Use output listener ○ Assume the very first entered display is the most occupied ● No cursor position in screen coordinates (GetCursorScreenPoint) ○ Listen to mouse events ○ Store locations in local surface coordinates ○ Return location which is out of the bounds of the largests window Multiple Displays
  • 27. Wayland with GBM ● Problem - How to access Wayland surfaces on the browser process side? ■ Stick with in process gpu mode ■ Use xdg importer/exporter ■ Use libgbm
  • 28. How Buffers Are Created WaylandSurfaceFactory GbmPixmapWayland gbm_wrapper libgbm WaylandConnectionProxy WaylandBufferManager Wayland Associated mojo pipe
  • 29. How Buffers Are Swapped GbmSurfacelessWayland WaylandConnectionProxy WaylandBufferManager Associated mojo pipe Wayland Attach Damage Commit Setup frame callback Setup presentation OnScheduleBufferSwap( gfx::SwapResult, gfx::PresentationFeedback)
  • 30. How Buffers Are Swapped
  • 31. Splitting Callbacks GbmSurfacelessWayland WaylandConnectionProxy WaylandBufferManager Associated mojo pipe Wayland OnSubmission (gfx::SwapResult) OnPresentation (gfx::PresentationFeedback)
  • 32. Splitting Callbacks ● PassThroughImageTransportSurface needed to be fixed: Swap[0] Swap[1] Swap-Ack[0] PresentationCallback[0] Swap-Ack[1] PresentationCallback[1] Swap[0] Swap-Ack[0] Swap[1] PresentationCallback[0] Swap-Ack[1] PresentationCallback[1]
  • 34. More Improvements ● Switch from the post frame callback wait to pre frame callback wait.
  • 36. Future Plans and Ozone/X11
  • 37. Future Plans ● Complete and upstream pending features ● Resolve open Ozone/Wayland issues ● Add more tests to the linux-ozone-rel buildbot ● Ship Ozone/Wayland as part of the stable Chrome releases
  • 38. Ozone/X11 ● Avoid having two paths for X11 and Wayland backends ○ Move X11 under Ozone ○ Decide on LinuxUi ○ Have single CI bot for X11 and Wayland ● Let Chromium choose the Ozone backend
  • 39. Thanks to tonikitoo@igalia.com - Antonio Gomes fwang@igalia.com - Frédéric Wang msisov@igalia.com - Maksim Sisov jkim@igalia.com - Jeongeun Kim (Julie) nickdiego@igalia.com - Nick Diego Yamane adunaev@igalia.com - Alexander Dunaev rjkroege@chromium.org - Robert Kroeger spang@chromium.org - Michael Spang sky@chromium.org - Scott Violet sadrul@chromium.org - Sadrul Habib Chowdhury kylechar@chromium.org - Kyle Charbonneau
  • 40. Questions? msisov@igalia.com - Maksim Sisov nickdiego@igalia.com - Nick Diego Yamane adunaev@igalia.com - Alexander Dunaev