SlideShare a Scribd company logo
1 of 45
Download to read offline
How Igalia is Driving Innovation
in Embedded Systems with
Open Source Technologies
Manuel Rego & Mario Sánchez-Prada
Embedded Open Source Summit 2023
1
About us
Manuel Rego Mario Sánchez-Prada
rego@igalia.com mario@igalia.com
2
3
About Igalia
Highly specialized Open Source consultancy founded in 2001
Worker-owned, employee-run, flat structure (140+ igalians)
Top contributors to Chromium, WebKit and Gecko
Active contributor to other OSS projects
V8, SpiderMonkey, JSC, LLVM, Node.js, GStreamer, Mesa, Linux Kernel...
Members of several working groups:
W3C, WHATWG, WPT, TC39, OpenJS, Test262, Khronos...
4
Embedded devices
Web UIs are used for a wide range of different use cases
GStreamer often used for multimedia (e.g. HW-accel, MSE, EME)
Wayland and DRM/KMS widely used in embedded devices
Good graphics drivers crucial to optimal performance
Linux as the most widely used OS in embedded devices
Virtual and Augmented reality
5
Igalia and embedded devices
Smart TVs, set-top-boxes and video game consoles
Smart home appliances and home automation devices
Hi-Fi audio systems and video editing devices
In-vehicle and in-flight infotainment systems
Navigational and GPS-based instrumentation
Virtual and Augmented reality headsets
Digital signage
6
Web Rendering Engines
7
WPE WebKit
8
WPE WebKit
WebKit: OSS Web rendering engine for desktop & embedded
WPE: WebKit port for embedded devices
Focus on flexibility, security and performance on lower-powered devices
Great for HW-based acceleration and specific integration requirements
Widely used for multimedia (i.e. MSE, EME, WebRTC, WebAudio...)
Also useful for other use cases e.g. server-side, headless Web rendering...
https://wpewebkit.org/
9
Igalia and WebKit
Second committer to WebKit project after Apple
15+ years of contributions. 22 reviewers, 44 committers
Lead developers of the two only Linux-based WebKit ports
WebKitGTK and WPE (started from scratch in 2014)
Implementation of Web standards and JavaScript features
GStreamer-based multimedia stack in WebKitGTK and WPE
Accessibility support on Linux
Other: 32-bit systems, performance, bugfixing, QA...
10
Igalia, WPE WebKit and embedded
Development and maintenance of WPE for RDK set-top-boxes
New HW-accelerated SVG engine in WebKit
Integration of WPE's GStreamer backends with DRM systems
Custom WPE backends for specific Hardware
Experiments about supporting WPE on Android devices
Maintenance of downstream forks for customers
11
12
Chromium
13
Chromium
Standalone Open Source Web browser (not just the engine)
Available for different platforms, desktop & mobile
Windows, Mac OS, Linux, Android and iOS
Used as the base of several browsers and apps:
e.g. Chrome & ChromeOS, Edge, Opera, Samsung Browser, CEF, Electron...
Also used on embedded devices for certain use cases
e.g. Automotive Grade Linux (AGL)
https://chromium.org/
14
Igalia and Chromium
Second committer to Chromium project after Google
10+ years of contributions. 14 owners, 25 committers
Lead developers of native Wayland support
Implementation of Web standards and JavaScript features
Accessibility support
Other: performance, bugfixing, refactoring, code health...
15
Igalia, Chromium and embedded
Ported Chromium to specific hardware platforms
Deployment of Chromium-based Web runtimes (e.g. WebOS)
Active members of the Automotive Grade Linux project
Maintenance of downstream forks for customers
16
17
18
Servo
Independent, modular, embeddable Web rendering engine
Focus on speed, security, API for embedders and cross-platform support (currently on
Windows, Mac, Linux)
Written in Rust: memory safety, concurrency
https://servo.org/
19
Igalia and Servo
R&D effort started in 2012 (Mozilla Research)
Initial participation from Igalia from 2014 to 2020.
Servo moved from Mozilla Research to the LF in 2020
Original mission remained unchanged
Igalia took over Servo maintenance in 2023
: upgrade main dependencies, CSS2 conformance, embeddable Web
engine experiments, Android
2023 roadmap
20
Igalia, Servo and embedded
Embedded devices that need a small, fast and secure Web view
Simple embedded Web applications (controlled environment)
Advanced Web features like WebGL, WebGPU, WebXR...
Use cases: kiosk mode applications, UI frameworks...
21
Multimedia & Graphics
22
23
GStreamer
Reference framework for Linux-based multimedia
Flexible architecture design i.e. pipelines & plugins
Multiple use cases: media players, Web browsers, video editors, transcoders, streaming
services, server-side rendering...
24
Igalia and GStreamer
Top consultancy company with GStreamer in Web engines
Second contributor to GStreamer in the past 5 years
15+ years of contributions to GStreamer. 9 contributors
Strong experience in multimedia in embedded devices
Lead development of GStreamer-based back-ends of WebKit:
Video playback, WebAudio, WebRTC, adaptive streaming, MSE, EME...
GStreamer-VA, Vulkan elements: HW-accelerated plugins
Video encoding, decoding, post-processing and rendering plugins
GStreamer Editing Services, Pitivi: API for nonlinear video editing, OpenTimelineIO-
compatible video editor
25
Igalia, GStreamer and embedded
New GStreamer features developed upstream (core & pugins)
Enable key features crucial for the embeddeding industry
GStreamer-based back-ends in different Web rendering engines
Direct impact in millions of embedded devices (e.g. set-top-boxes)
Improving performance by providing HW acceleration solutions
Key for constrained and lower-powered devices
Integration with different multimedia libraries
Adapt and develop GStreamer pipelines tailored to specific HW
26
Mesa 3D
27
Mesa
Mesa:
Open Source implementation (library) of OpenGL and Vulkan
Includes graphics drivers for different GPU vendors
OpenGL and Vulkan:
Cross-platform APIs to expose GPU HW to application programmers
Developed by the Khronos group
28
Igalia and Mesa
9+ years of contributions to the Mesa project
Development and maintenance of Mesa drivers for OpenGL and Vulkan aimed at
different GPU hardware platforms
Conformance Tests Suites (CTS): OpenGL and Vulkan
Work to expand API coverage to become conformant with different versions
29
Igalia, Mesa and embedded
OpenGL & Vulkan drivers development for different GPUs
e.g Raspberry Pi, Qualcomm Adreno, Vivante
Developed a Vulkan driver for Raspberry Pi 4
Started on January 2020, Vulkan 1.2 conformant
HW-accelerated encoding/decoding support
Optimization of graphics pipelines
Integration with the underlying graphical systems
e.g. Wayland, DRM/KMS
30
Operating systems
31
Operating systems
The Linux Kernel:
Low-level abstraction layers
Exposes I/O devices
Processes & memory management, filesystems, CPU schedulers, drivers...
Most common kernel used in embedded devices
Other components:
Windowing systems, drivers, desktop integration, i18n/l10n, sandboxing...
32
Igalia and Linux-based OS's
10+ years in the lower layers of the kernel
20+ years of experience as Debian developers
Maintenance of the RISC-V Debian port
Maintainers of the VKMS (virtual display i.e. for headless use)
Contributors to Linux kernel drivers for different GPUs:
VideoCore (vc4, c3d), AMD (amdgpu), Vivante (etnaviv)
Other: distros customization, power management, filesystems (btrfs), kdump/kexec,
udisks, futex2, flatpak, graphical toolkits...
33
Igalia, Linux and embedded
Build systems, tools and frameworks: Yocto, Buildroot...
Linux device drivers: networking, graphics...
Creation of Linux distributions and/or filesystems
Adaptation aimed at specific hardware requirements
Porting software to custom embedded OS's
34
Virtual & Augmented Reality
35
36
Wolvic
Open Source Web browser for Virtual Reality
Supports immersive experiences
Started by Mozilla as Firefox Reality in 2018, currently being developed and maintained
by Igalia since 2022
Available in several app stores from VR devices:
Huawei app gallery, Meta Quest app store, Pico XR app store
Support for a growing range of devices:
Meta Quest2 and Meta Quest Pro, Huawei VR Glasses, Pico4 and Pico4E, Qualcomm Snapdragon
Spaces...
https://wolvic.com
37
38
Vision of embedded
devices and technologies
39
Open Source
Embedded systems are attached to Open Source
High impact projects are basic assets in the embedding industry
Major organizations are contributing upstream to these projects
40
Web Platform
Web engines are extremely relevant for embedded devices
They are not just for Web browsers
Web-based UIs are getting more popular
The Web is an openly developed platform
Under continuous evolution
Alternatives can bring diversity to the Web platform ecosystem
41
Highly specialized expertise
Embedded devices have a different set of requirements and needs
Development of new features targeted for embedded systems
Performance optimizations across all the layers of the stack
42
Wrap up
Explosion of interconnected smart devices
Lower-powered and constrained devices
Reduce carbon footprint, focus on extending life of devices
Tension between product features, hardware capabilities and power consumption
(i.e. "more with less")
43
Thanks
44
45

More Related Content

Similar to How Igalia Is Driving Innovation In Embedded Systems With Open Source Technologies

Pearce Barry Resume
Pearce Barry ResumePearce Barry Resume
Pearce Barry ResumePearce Barry
 
Kahuna Systems : Product Engineering Services
Kahuna Systems : Product Engineering ServicesKahuna Systems : Product Engineering Services
Kahuna Systems : Product Engineering Serviceskahunasystems
 
Android seminar-report-body.doc
Android seminar-report-body.docAndroid seminar-report-body.doc
Android seminar-report-body.docDeepak Yadav
 
Develop, deploy and manage your IoT Fleet with Balena - IoT Portugal Meetup
Develop, deploy and manage your IoT Fleet with Balena - IoT Portugal MeetupDevelop, deploy and manage your IoT Fleet with Balena - IoT Portugal Meetup
Develop, deploy and manage your IoT Fleet with Balena - IoT Portugal MeetupBalena
 
Getting started with android
Getting started with androidGetting started with android
Getting started with androidamitgb
 
Android..overwiew
Android..overwiewAndroid..overwiew
Android..overwiewSai Teja
 
Android Meetup, Илья Лёвин
Android Meetup, Илья ЛёвинAndroid Meetup, Илья Лёвин
Android Meetup, Илья ЛёвинGDG Saint Petersburg
 
Droidcon 2013 france - The Growth of Android in Embedded Systems
Droidcon 2013 france - The Growth of Android in Embedded SystemsDroidcon 2013 france - The Growth of Android in Embedded Systems
Droidcon 2013 france - The Growth of Android in Embedded SystemsBenjamin Zores
 
COMPUTER GRAPHICS AND MULTI MEDIA SOFTWARE LIST
COMPUTER GRAPHICS AND MULTI MEDIA SOFTWARE LISTCOMPUTER GRAPHICS AND MULTI MEDIA SOFTWARE LIST
COMPUTER GRAPHICS AND MULTI MEDIA SOFTWARE LISTtarun kumar sharma
 
A164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdkA164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdkToby Corbin
 
A Special Introduction to the Upcoming InduSoft Web Studio 8.0
A Special Introduction to the Upcoming InduSoft Web Studio 8.0A Special Introduction to the Upcoming InduSoft Web Studio 8.0
A Special Introduction to the Upcoming InduSoft Web Studio 8.0AVEVA
 
Firefox OS - Hive Pilani 2015
Firefox OS - Hive Pilani 2015Firefox OS - Hive Pilani 2015
Firefox OS - Hive Pilani 2015Nilay Binjola
 
Csc533 ch3a mm_framework
Csc533 ch3a mm_frameworkCsc533 ch3a mm_framework
Csc533 ch3a mm_frameworkErkks Hohoho
 
Streaming Multimedia content distribution system using mobile application by...
Streaming  Multimedia content distribution system using mobile application by...Streaming  Multimedia content distribution system using mobile application by...
Streaming Multimedia content distribution system using mobile application by...Grey Matter India Technologies PVT LTD
 
Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...
Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...
Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...Codemotion
 

Similar to How Igalia Is Driving Innovation In Embedded Systems With Open Source Technologies (20)

Android
AndroidAndroid
Android
 
Pearce Barry Resume
Pearce Barry ResumePearce Barry Resume
Pearce Barry Resume
 
Kahuna Systems : Product Engineering Services
Kahuna Systems : Product Engineering ServicesKahuna Systems : Product Engineering Services
Kahuna Systems : Product Engineering Services
 
Android seminar-report-body.doc
Android seminar-report-body.docAndroid seminar-report-body.doc
Android seminar-report-body.doc
 
Android
Android Android
Android
 
Develop, deploy and manage your IoT Fleet with Balena - IoT Portugal Meetup
Develop, deploy and manage your IoT Fleet with Balena - IoT Portugal MeetupDevelop, deploy and manage your IoT Fleet with Balena - IoT Portugal Meetup
Develop, deploy and manage your IoT Fleet with Balena - IoT Portugal Meetup
 
Getting started with android
Getting started with androidGetting started with android
Getting started with android
 
Android..overwiew
Android..overwiewAndroid..overwiew
Android..overwiew
 
Android Meetup, Илья Лёвин
Android Meetup, Илья ЛёвинAndroid Meetup, Илья Лёвин
Android Meetup, Илья Лёвин
 
Droidcon 2013 france - The Growth of Android in Embedded Systems
Droidcon 2013 france - The Growth of Android in Embedded SystemsDroidcon 2013 france - The Growth of Android in Embedded Systems
Droidcon 2013 france - The Growth of Android in Embedded Systems
 
COMPUTER GRAPHICS AND MULTI MEDIA SOFTWARE LIST
COMPUTER GRAPHICS AND MULTI MEDIA SOFTWARE LISTCOMPUTER GRAPHICS AND MULTI MEDIA SOFTWARE LIST
COMPUTER GRAPHICS AND MULTI MEDIA SOFTWARE LIST
 
A164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdkA164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdk
 
A Special Introduction to the Upcoming InduSoft Web Studio 8.0
A Special Introduction to the Upcoming InduSoft Web Studio 8.0A Special Introduction to the Upcoming InduSoft Web Studio 8.0
A Special Introduction to the Upcoming InduSoft Web Studio 8.0
 
Firefox OS - Hive Pilani 2015
Firefox OS - Hive Pilani 2015Firefox OS - Hive Pilani 2015
Firefox OS - Hive Pilani 2015
 
Introduction to Android.ppt
Introduction to Android.pptIntroduction to Android.ppt
Introduction to Android.ppt
 
Csc533 ch3a mm_framework
Csc533 ch3a mm_frameworkCsc533 ch3a mm_framework
Csc533 ch3a mm_framework
 
Streaming Multimedia content distribution system using mobile application by...
Streaming  Multimedia content distribution system using mobile application by...Streaming  Multimedia content distribution system using mobile application by...
Streaming Multimedia content distribution system using mobile application by...
 
Android Presentation
Android PresentationAndroid Presentation
Android Presentation
 
Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...
Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...
Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...
 
Window IoT Mod 1.pdf
Window IoT Mod 1.pdfWindow IoT Mod 1.pdf
Window IoT Mod 1.pdf
 

More from 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
 

More from 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
 

Recently uploaded

Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 

Recently uploaded (20)

Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 

How Igalia Is Driving Innovation In Embedded Systems With Open Source Technologies

  • 1. How Igalia is Driving Innovation in Embedded Systems with Open Source Technologies Manuel Rego & Mario Sánchez-Prada Embedded Open Source Summit 2023 1
  • 2. About us Manuel Rego Mario Sánchez-Prada rego@igalia.com mario@igalia.com 2
  • 3. 3
  • 4. About Igalia Highly specialized Open Source consultancy founded in 2001 Worker-owned, employee-run, flat structure (140+ igalians) Top contributors to Chromium, WebKit and Gecko Active contributor to other OSS projects V8, SpiderMonkey, JSC, LLVM, Node.js, GStreamer, Mesa, Linux Kernel... Members of several working groups: W3C, WHATWG, WPT, TC39, OpenJS, Test262, Khronos... 4
  • 5. Embedded devices Web UIs are used for a wide range of different use cases GStreamer often used for multimedia (e.g. HW-accel, MSE, EME) Wayland and DRM/KMS widely used in embedded devices Good graphics drivers crucial to optimal performance Linux as the most widely used OS in embedded devices Virtual and Augmented reality 5
  • 6. Igalia and embedded devices Smart TVs, set-top-boxes and video game consoles Smart home appliances and home automation devices Hi-Fi audio systems and video editing devices In-vehicle and in-flight infotainment systems Navigational and GPS-based instrumentation Virtual and Augmented reality headsets Digital signage 6
  • 9. WPE WebKit WebKit: OSS Web rendering engine for desktop & embedded WPE: WebKit port for embedded devices Focus on flexibility, security and performance on lower-powered devices Great for HW-based acceleration and specific integration requirements Widely used for multimedia (i.e. MSE, EME, WebRTC, WebAudio...) Also useful for other use cases e.g. server-side, headless Web rendering... https://wpewebkit.org/ 9
  • 10. Igalia and WebKit Second committer to WebKit project after Apple 15+ years of contributions. 22 reviewers, 44 committers Lead developers of the two only Linux-based WebKit ports WebKitGTK and WPE (started from scratch in 2014) Implementation of Web standards and JavaScript features GStreamer-based multimedia stack in WebKitGTK and WPE Accessibility support on Linux Other: 32-bit systems, performance, bugfixing, QA... 10
  • 11. Igalia, WPE WebKit and embedded Development and maintenance of WPE for RDK set-top-boxes New HW-accelerated SVG engine in WebKit Integration of WPE's GStreamer backends with DRM systems Custom WPE backends for specific Hardware Experiments about supporting WPE on Android devices Maintenance of downstream forks for customers 11
  • 12. 12
  • 14. Chromium Standalone Open Source Web browser (not just the engine) Available for different platforms, desktop & mobile Windows, Mac OS, Linux, Android and iOS Used as the base of several browsers and apps: e.g. Chrome & ChromeOS, Edge, Opera, Samsung Browser, CEF, Electron... Also used on embedded devices for certain use cases e.g. Automotive Grade Linux (AGL) https://chromium.org/ 14
  • 15. Igalia and Chromium Second committer to Chromium project after Google 10+ years of contributions. 14 owners, 25 committers Lead developers of native Wayland support Implementation of Web standards and JavaScript features Accessibility support Other: performance, bugfixing, refactoring, code health... 15
  • 16. Igalia, Chromium and embedded Ported Chromium to specific hardware platforms Deployment of Chromium-based Web runtimes (e.g. WebOS) Active members of the Automotive Grade Linux project Maintenance of downstream forks for customers 16
  • 17. 17
  • 18. 18
  • 19. Servo Independent, modular, embeddable Web rendering engine Focus on speed, security, API for embedders and cross-platform support (currently on Windows, Mac, Linux) Written in Rust: memory safety, concurrency https://servo.org/ 19
  • 20. Igalia and Servo R&D effort started in 2012 (Mozilla Research) Initial participation from Igalia from 2014 to 2020. Servo moved from Mozilla Research to the LF in 2020 Original mission remained unchanged Igalia took over Servo maintenance in 2023 : upgrade main dependencies, CSS2 conformance, embeddable Web engine experiments, Android 2023 roadmap 20
  • 21. Igalia, Servo and embedded Embedded devices that need a small, fast and secure Web view Simple embedded Web applications (controlled environment) Advanced Web features like WebGL, WebGPU, WebXR... Use cases: kiosk mode applications, UI frameworks... 21
  • 23. 23
  • 24. GStreamer Reference framework for Linux-based multimedia Flexible architecture design i.e. pipelines & plugins Multiple use cases: media players, Web browsers, video editors, transcoders, streaming services, server-side rendering... 24
  • 25. Igalia and GStreamer Top consultancy company with GStreamer in Web engines Second contributor to GStreamer in the past 5 years 15+ years of contributions to GStreamer. 9 contributors Strong experience in multimedia in embedded devices Lead development of GStreamer-based back-ends of WebKit: Video playback, WebAudio, WebRTC, adaptive streaming, MSE, EME... GStreamer-VA, Vulkan elements: HW-accelerated plugins Video encoding, decoding, post-processing and rendering plugins GStreamer Editing Services, Pitivi: API for nonlinear video editing, OpenTimelineIO- compatible video editor 25
  • 26. Igalia, GStreamer and embedded New GStreamer features developed upstream (core & pugins) Enable key features crucial for the embeddeding industry GStreamer-based back-ends in different Web rendering engines Direct impact in millions of embedded devices (e.g. set-top-boxes) Improving performance by providing HW acceleration solutions Key for constrained and lower-powered devices Integration with different multimedia libraries Adapt and develop GStreamer pipelines tailored to specific HW 26
  • 28. Mesa Mesa: Open Source implementation (library) of OpenGL and Vulkan Includes graphics drivers for different GPU vendors OpenGL and Vulkan: Cross-platform APIs to expose GPU HW to application programmers Developed by the Khronos group 28
  • 29. Igalia and Mesa 9+ years of contributions to the Mesa project Development and maintenance of Mesa drivers for OpenGL and Vulkan aimed at different GPU hardware platforms Conformance Tests Suites (CTS): OpenGL and Vulkan Work to expand API coverage to become conformant with different versions 29
  • 30. Igalia, Mesa and embedded OpenGL & Vulkan drivers development for different GPUs e.g Raspberry Pi, Qualcomm Adreno, Vivante Developed a Vulkan driver for Raspberry Pi 4 Started on January 2020, Vulkan 1.2 conformant HW-accelerated encoding/decoding support Optimization of graphics pipelines Integration with the underlying graphical systems e.g. Wayland, DRM/KMS 30
  • 32. Operating systems The Linux Kernel: Low-level abstraction layers Exposes I/O devices Processes & memory management, filesystems, CPU schedulers, drivers... Most common kernel used in embedded devices Other components: Windowing systems, drivers, desktop integration, i18n/l10n, sandboxing... 32
  • 33. Igalia and Linux-based OS's 10+ years in the lower layers of the kernel 20+ years of experience as Debian developers Maintenance of the RISC-V Debian port Maintainers of the VKMS (virtual display i.e. for headless use) Contributors to Linux kernel drivers for different GPUs: VideoCore (vc4, c3d), AMD (amdgpu), Vivante (etnaviv) Other: distros customization, power management, filesystems (btrfs), kdump/kexec, udisks, futex2, flatpak, graphical toolkits... 33
  • 34. Igalia, Linux and embedded Build systems, tools and frameworks: Yocto, Buildroot... Linux device drivers: networking, graphics... Creation of Linux distributions and/or filesystems Adaptation aimed at specific hardware requirements Porting software to custom embedded OS's 34
  • 35. Virtual & Augmented Reality 35
  • 36. 36
  • 37. Wolvic Open Source Web browser for Virtual Reality Supports immersive experiences Started by Mozilla as Firefox Reality in 2018, currently being developed and maintained by Igalia since 2022 Available in several app stores from VR devices: Huawei app gallery, Meta Quest app store, Pico XR app store Support for a growing range of devices: Meta Quest2 and Meta Quest Pro, Huawei VR Glasses, Pico4 and Pico4E, Qualcomm Snapdragon Spaces... https://wolvic.com 37
  • 38. 38
  • 39. Vision of embedded devices and technologies 39
  • 40. Open Source Embedded systems are attached to Open Source High impact projects are basic assets in the embedding industry Major organizations are contributing upstream to these projects 40
  • 41. Web Platform Web engines are extremely relevant for embedded devices They are not just for Web browsers Web-based UIs are getting more popular The Web is an openly developed platform Under continuous evolution Alternatives can bring diversity to the Web platform ecosystem 41
  • 42. Highly specialized expertise Embedded devices have a different set of requirements and needs Development of new features targeted for embedded systems Performance optimizations across all the layers of the stack 42
  • 43. Wrap up Explosion of interconnected smart devices Lower-powered and constrained devices Reduce carbon footprint, focus on extending life of devices Tension between product features, hardware capabilities and power consumption (i.e. "more with less") 43
  • 45. 45