SlideShare a Scribd company logo
1 of 22
Download to read offline
H/W accelerated WebKitGTK+
on Raspberry Pi

ChangSeok Oh
shivamidow@gmail.com
Good to see you!
ChangSeok Oh (changseok)
Software engineer at Collabora.Ltd located in U.K
WebKit committer since April 2013
Worked for SAMSUNG Electronics for 4 Years
Got Bachelor's degree of Engineering at Ajou Univ.
Preparing to go abroad to study more and get a better job, life?
Interested in WebKit, Chromium, Firefox, GNOME, GStreamer, F/OSS,
Computer graphics, Mac, RaspberryPi and Travel.
http://uk.linkedin.com/in/ohchangseok/
Raspberry Pi
" The Raspberry Pi is a credit-card sized computer that plugs into your TV and
a keyboard. It’s a capable little PC which can be used for many of the things
that your desktop PC does, like spreadsheets, word-processing and games. It
also plays high-definition video. We want to see it being used by kids all over
the world to learn programming. "
Raspberry Pi
Specifications of Raspberry Pi
CPU : ARM 176JZF-S 700MHz, up to 1GHz
Memory : 512 MB (Model B)
Graphics : Broadcom VideoCore IV GPU
OS : Raspbian based on Linux
See more http://en.wikipedia.org/wiki/Raspberry_Pi
Raspberry Pi
Raspberry Pi

Yes. It's poor but not that poor.

Performance is NOTHING!
Raspberry Pi
Raspberry Pi
Why Raspberry Pi?
Educational purpose but it's getting popular among develoeprs
● Very attractive price.
● Poor CPU capacity but not that bad GPU performance.
● Standard platform to everyone.
● Adaptable operating system.
● Abundant community supports.
● Much possibility with extensions.
● Challenge your programming skills.
● All resources (except some commercial codecs) are open sourced!
WebKit
A layout engine to render web pages, but it's NOT an internet browser itself.
The most popular open source browser engine for embedded devices yet..
Forked from KHTML and KJS.
LGPL v2.1 & BSD v2.0
Safari, Chromium, Epiphany, Android browser, Dolphin, Konqueror, Midori etc.
Allows many different ports like Mac, GTK+, QT, EFL, Clutter, Blackberry etc.
WebKit analysis report Jan 2013
WebKit
Midori browser
The default internet browser powered by WebKitGtk in Raspberry Pi
Not supported HW acceleration for some reasons.
Midori browser
What is wrong with that?
No EGL/GLES driver connecting to X window system.
Ordering issue among X windows.
Mismatched position and size between seperated layers.
Not displayed cursor and context menu etc since they are hidden by HW layers.
What is wrong with that?
Anyway let's go forward..
What I've done
● Set up a cross compile environment. That is the most painful work. :(
● Provide EGL surfaces through the DispManX interface.
● Fit a position and a size of EGL surface to those of its parent x window.
● Fix no animation issue caused by not to be triggered XDamage event with
GL calls.
● Paint a fake cursor over the EGL surface on the screen.
Demo
Remaining issues
Ordering issue among windows.
Context menu hidden by HW layers.
Cursor mess.
Quite low video frame rate.

Will be covered by Wayland support

Under working..

Eventually, we'll shift from X to Wayland for the raspberrypi windowing system.
Wayland on the Raspberry Pi
Have interest?
This is also opensourced!
● http://cgit.collabora.com/git/user/kevino/WebKit.git/
● $ git clone http://cgit.collabora.com/git/user/kevino/WebKit.git
Upstream
● https://bugs.webkit.org/show_bug.cgi?id=118444
My blog
● http://developersnote.blogspot.com
Supports from Raspberry pi community
● http://www.raspberrypi.org
Thank you for listening

More Related Content

What's hot

Hardware Acceleration in WebKit
Hardware Acceleration in WebKitHardware Acceleration in WebKit
Hardware Acceleration in WebKitJoone Hur
 
Kiosk-mode browser using Chromium Embedded Framework (CEF)
Kiosk-mode browser using Chromium Embedded Framework (CEF)Kiosk-mode browser using Chromium Embedded Framework (CEF)
Kiosk-mode browser using Chromium Embedded Framework (CEF)Igalia
 
GStreamer support in WebKit. what’s new?
GStreamer support in WebKit. what’s new?GStreamer support in WebKit. what’s new?
GStreamer support in WebKit. what’s new?philn2
 
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
 
Chromium Ozone
Chromium OzoneChromium Ozone
Chromium OzoneIgalia
 
Writing native Linux desktop apps with JavaScript
Writing native Linux desktop apps with JavaScriptWriting native Linux desktop apps with JavaScript
Writing native Linux desktop apps with JavaScriptIgalia
 
Embedding Chromium into AGL demo platform with WAM
Embedding Chromium into AGL demo platform with WAMEmbedding Chromium into AGL demo platform with WAM
Embedding Chromium into AGL demo platform with WAMIgalia
 
WebKit for Wayland (Web Engines Hackfest 2014)
WebKit for Wayland (Web Engines Hackfest 2014)WebKit for Wayland (Web Engines Hackfest 2014)
WebKit for Wayland (Web Engines Hackfest 2014)Igalia
 
What's new with JavaScript in GNOME: The 2020 edition (GUADEC 2020)
What's new with JavaScript in GNOME: The 2020 edition (GUADEC 2020)What's new with JavaScript in GNOME: The 2020 edition (GUADEC 2020)
What's new with JavaScript in GNOME: The 2020 edition (GUADEC 2020)Igalia
 
Driving and virtualizing control systems: the Open Source approach used in Wh...
Driving and virtualizing control systems: the Open Source approach used in Wh...Driving and virtualizing control systems: the Open Source approach used in Wh...
Driving and virtualizing control systems: the Open Source approach used in Wh...Igalia
 
How to use WebKitGtk+
How to use WebKitGtk+How to use WebKitGtk+
How to use WebKitGtk+Joone Hur
 
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
 
Essential parts to implement own Ozone backend
Essential parts to implement own Ozone backendEssential parts to implement own Ozone backend
Essential parts to implement own Ozone backendIgalia
 
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
 
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
 
Infrastructure Management in GCP
Infrastructure Management in GCPInfrastructure Management in GCP
Infrastructure Management in GCPDana Hoffman
 
About OpenGL and Vulkan interoperability (XDC 2020)
About OpenGL and Vulkan interoperability (XDC 2020)About OpenGL and Vulkan interoperability (XDC 2020)
About OpenGL and Vulkan interoperability (XDC 2020)Igalia
 
Overview of the open source Vulkan driver for Raspberry Pi 4 (XDC 2020)
Overview of the open source Vulkan driver for Raspberry Pi 4 (XDC 2020)Overview of the open source Vulkan driver for Raspberry Pi 4 (XDC 2020)
Overview of the open source Vulkan driver for Raspberry Pi 4 (XDC 2020)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
 

What's hot (20)

Hardware Acceleration in WebKit
Hardware Acceleration in WebKitHardware Acceleration in WebKit
Hardware Acceleration in WebKit
 
Kiosk-mode browser using Chromium Embedded Framework (CEF)
Kiosk-mode browser using Chromium Embedded Framework (CEF)Kiosk-mode browser using Chromium Embedded Framework (CEF)
Kiosk-mode browser using Chromium Embedded Framework (CEF)
 
GStreamer support in WebKit. what’s new?
GStreamer support in WebKit. what’s new?GStreamer support in WebKit. what’s new?
GStreamer support in WebKit. what’s new?
 
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)
 
Chromium Ozone
Chromium OzoneChromium Ozone
Chromium Ozone
 
Writing native Linux desktop apps with JavaScript
Writing native Linux desktop apps with JavaScriptWriting native Linux desktop apps with JavaScript
Writing native Linux desktop apps with JavaScript
 
Embedding Chromium into AGL demo platform with WAM
Embedding Chromium into AGL demo platform with WAMEmbedding Chromium into AGL demo platform with WAM
Embedding Chromium into AGL demo platform with WAM
 
WebKit for Wayland (Web Engines Hackfest 2014)
WebKit for Wayland (Web Engines Hackfest 2014)WebKit for Wayland (Web Engines Hackfest 2014)
WebKit for Wayland (Web Engines Hackfest 2014)
 
What's new with JavaScript in GNOME: The 2020 edition (GUADEC 2020)
What's new with JavaScript in GNOME: The 2020 edition (GUADEC 2020)What's new with JavaScript in GNOME: The 2020 edition (GUADEC 2020)
What's new with JavaScript in GNOME: The 2020 edition (GUADEC 2020)
 
The shift to the edge
The shift to the edgeThe shift to the edge
The shift to the edge
 
Driving and virtualizing control systems: the Open Source approach used in Wh...
Driving and virtualizing control systems: the Open Source approach used in Wh...Driving and virtualizing control systems: the Open Source approach used in Wh...
Driving and virtualizing control systems: the Open Source approach used in Wh...
 
How to use WebKitGtk+
How to use WebKitGtk+How to use WebKitGtk+
How to use WebKitGtk+
 
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...
 
Essential parts to implement own Ozone backend
Essential parts to implement own Ozone backendEssential parts to implement own Ozone backend
Essential parts to implement own Ozone backend
 
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 ...
 
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
 
Infrastructure Management in GCP
Infrastructure Management in GCPInfrastructure Management in GCP
Infrastructure Management in GCP
 
About OpenGL and Vulkan interoperability (XDC 2020)
About OpenGL and Vulkan interoperability (XDC 2020)About OpenGL and Vulkan interoperability (XDC 2020)
About OpenGL and Vulkan interoperability (XDC 2020)
 
Overview of the open source Vulkan driver for Raspberry Pi 4 (XDC 2020)
Overview of the open source Vulkan driver for Raspberry Pi 4 (XDC 2020)Overview of the open source Vulkan driver for Raspberry Pi 4 (XDC 2020)
Overview of the open source Vulkan driver for Raspberry Pi 4 (XDC 2020)
 
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)
 

Similar to Hw accelerated webkitgtk+ on raspberry pi

Whats new in flutter.pptx
Whats new in flutter.pptxWhats new in flutter.pptx
Whats new in flutter.pptxAhmed Fathy
 
Flutter - Pixel by Pixel
Flutter - Pixel by PixelFlutter - Pixel by Pixel
Flutter - Pixel by PixelThomas Gazzoni
 
Cross Platform Development Strategies with vendor review and PhoneGap case study
Cross Platform Development Strategies with vendor review and PhoneGap case studyCross Platform Development Strategies with vendor review and PhoneGap case study
Cross Platform Development Strategies with vendor review and PhoneGap case studyElegant Technologies, LLC
 
WebGL games with Minko - Next Game Frontier 2014
WebGL games with Minko - Next Game Frontier 2014WebGL games with Minko - Next Game Frontier 2014
WebGL games with Minko - Next Game Frontier 2014Minko3D
 
Vietnam mobile day 2012 html5 game using impact js - aiti-aptech
Vietnam mobile day 2012   html5 game using impact js - aiti-aptechVietnam mobile day 2012   html5 game using impact js - aiti-aptech
Vietnam mobile day 2012 html5 game using impact js - aiti-aptechQuang Anh Le
 
Develop Game HTML5 for mobile by ImpactJS Engine
Develop Game HTML5 for mobile by ImpactJS Engine Develop Game HTML5 for mobile by ImpactJS Engine
Develop Game HTML5 for mobile by ImpactJS Engine action.vn
 
Rapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTRapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTManuel Carrasco Moñino
 
HTML5 Games Status and issues
HTML5 Games Status and issuesHTML5 Games Status and issues
HTML5 Games Status and issuesJ.h. Liu
 
Seattle javascript game development - Overview
Seattle javascript game development - OverviewSeattle javascript game development - Overview
Seattle javascript game development - OverviewGrant Goodale
 
Multi-platform Mobile apps with Phonegap
Multi-platform Mobile apps with PhonegapMulti-platform Mobile apps with Phonegap
Multi-platform Mobile apps with PhonegapGautam Chaudhary
 
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5Amanda Lam
 
HTML5 GAME USING IMPACT JS
HTML5 GAME USING IMPACT JSHTML5 GAME USING IMPACT JS
HTML5 GAME USING IMPACT JSwe20
 
PhoneGap Framework for smartphone app developement
PhoneGap Framework for smartphone app developementPhoneGap Framework for smartphone app developement
PhoneGap Framework for smartphone app developementTrieu Nguyen
 
Green flag Wrap up Google Solution Challenge.pdf
Green flag Wrap up Google Solution Challenge.pdfGreen flag Wrap up Google Solution Challenge.pdf
Green flag Wrap up Google Solution Challenge.pdfGoogleDeveloperStude22
 
Html5 game using impact js
Html5 game using impact jsHtml5 game using impact js
Html5 game using impact jsHa Bogay
 
Casual Engines 2009
Casual Engines 2009Casual Engines 2009
Casual Engines 2009David Fox
 
Phonegap for Engineers
Phonegap for EngineersPhonegap for Engineers
Phonegap for EngineersBrian LeRoux
 
DevChatt 2011 - PhoneGap: For Fun and Science
DevChatt 2011 - PhoneGap: For Fun and ScienceDevChatt 2011 - PhoneGap: For Fun and Science
DevChatt 2011 - PhoneGap: For Fun and ScienceCameron Kilgore
 
Building a Raspberry Pi Robot with Dot NET 7, Blazor and SignalR - TechDays 2023
Building a Raspberry Pi Robot with Dot NET 7, Blazor and SignalR - TechDays 2023Building a Raspberry Pi Robot with Dot NET 7, Blazor and SignalR - TechDays 2023
Building a Raspberry Pi Robot with Dot NET 7, Blazor and SignalR - TechDays 2023Peter Gallagher
 

Similar to Hw accelerated webkitgtk+ on raspberry pi (20)

Whats new in flutter.pptx
Whats new in flutter.pptxWhats new in flutter.pptx
Whats new in flutter.pptx
 
Flutter - Pixel by Pixel
Flutter - Pixel by PixelFlutter - Pixel by Pixel
Flutter - Pixel by Pixel
 
Cross Platform Development Strategies with vendor review and PhoneGap case study
Cross Platform Development Strategies with vendor review and PhoneGap case studyCross Platform Development Strategies with vendor review and PhoneGap case study
Cross Platform Development Strategies with vendor review and PhoneGap case study
 
WebGL games with Minko - Next Game Frontier 2014
WebGL games with Minko - Next Game Frontier 2014WebGL games with Minko - Next Game Frontier 2014
WebGL games with Minko - Next Game Frontier 2014
 
Vietnam mobile day 2012 html5 game using impact js - aiti-aptech
Vietnam mobile day 2012   html5 game using impact js - aiti-aptechVietnam mobile day 2012   html5 game using impact js - aiti-aptech
Vietnam mobile day 2012 html5 game using impact js - aiti-aptech
 
Develop Game HTML5 for mobile by ImpactJS Engine
Develop Game HTML5 for mobile by ImpactJS Engine Develop Game HTML5 for mobile by ImpactJS Engine
Develop Game HTML5 for mobile by ImpactJS Engine
 
Rapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTRapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWT
 
HTML5 Games Status and issues
HTML5 Games Status and issuesHTML5 Games Status and issues
HTML5 Games Status and issues
 
Seattle javascript game development - Overview
Seattle javascript game development - OverviewSeattle javascript game development - Overview
Seattle javascript game development - Overview
 
Multi-platform Mobile apps with Phonegap
Multi-platform Mobile apps with PhonegapMulti-platform Mobile apps with Phonegap
Multi-platform Mobile apps with Phonegap
 
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
 
HTML5 GAME USING IMPACT JS
HTML5 GAME USING IMPACT JSHTML5 GAME USING IMPACT JS
HTML5 GAME USING IMPACT JS
 
PhoneGap Framework for smartphone app developement
PhoneGap Framework for smartphone app developementPhoneGap Framework for smartphone app developement
PhoneGap Framework for smartphone app developement
 
Green flag Wrap up Google Solution Challenge.pdf
Green flag Wrap up Google Solution Challenge.pdfGreen flag Wrap up Google Solution Challenge.pdf
Green flag Wrap up Google Solution Challenge.pdf
 
Html5 game using impact js
Html5 game using impact jsHtml5 game using impact js
Html5 game using impact js
 
Casual Engines 2009
Casual Engines 2009Casual Engines 2009
Casual Engines 2009
 
Web Leaps Forward
Web Leaps ForwardWeb Leaps Forward
Web Leaps Forward
 
Phonegap for Engineers
Phonegap for EngineersPhonegap for Engineers
Phonegap for Engineers
 
DevChatt 2011 - PhoneGap: For Fun and Science
DevChatt 2011 - PhoneGap: For Fun and ScienceDevChatt 2011 - PhoneGap: For Fun and Science
DevChatt 2011 - PhoneGap: For Fun and Science
 
Building a Raspberry Pi Robot with Dot NET 7, Blazor and SignalR - TechDays 2023
Building a Raspberry Pi Robot with Dot NET 7, Blazor and SignalR - TechDays 2023Building a Raspberry Pi Robot with Dot NET 7, Blazor and SignalR - TechDays 2023
Building a Raspberry Pi Robot with Dot NET 7, Blazor and SignalR - TechDays 2023
 

More from gnomekr

Korean input overview in the linux desktop
Korean input overview in the linux desktopKorean input overview in the linux desktop
Korean input overview in the linux desktopgnomekr
 
20180519 hangul processing
20180519 hangul processing20180519 hangul processing
20180519 hangul processinggnomekr
 
The way of approaching to foss for nursing care business
The way of approaching to foss for nursing care businessThe way of approaching to foss for nursing care business
The way of approaching to foss for nursing care businessgnomekr
 
Chromium ui framework(shared)
Chromium ui framework(shared)Chromium ui framework(shared)
Chromium ui framework(shared)gnomekr
 
뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예
뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예
뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예gnomekr
 
Gnome on wayland at a glance
Gnome on wayland at a glanceGnome on wayland at a glance
Gnome on wayland at a glancegnomekr
 
My ubuntu life-dklee
My ubuntu life-dkleeMy ubuntu life-dklee
My ubuntu life-dkleegnomekr
 
Vision and dream for youth startup company
Vision and dream for youth startup companyVision and dream for youth startup company
Vision and dream for youth startup companygnomekr
 
Gnome.asia.summit2013 report-pdf
Gnome.asia.summit2013 report-pdfGnome.asia.summit2013 report-pdf
Gnome.asia.summit2013 report-pdfgnomekr
 
System hacking basics
System hacking basicsSystem hacking basics
System hacking basicsgnomekr
 

More from gnomekr (10)

Korean input overview in the linux desktop
Korean input overview in the linux desktopKorean input overview in the linux desktop
Korean input overview in the linux desktop
 
20180519 hangul processing
20180519 hangul processing20180519 hangul processing
20180519 hangul processing
 
The way of approaching to foss for nursing care business
The way of approaching to foss for nursing care businessThe way of approaching to foss for nursing care business
The way of approaching to foss for nursing care business
 
Chromium ui framework(shared)
Chromium ui framework(shared)Chromium ui framework(shared)
Chromium ui framework(shared)
 
뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예
뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예
뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예
 
Gnome on wayland at a glance
Gnome on wayland at a glanceGnome on wayland at a glance
Gnome on wayland at a glance
 
My ubuntu life-dklee
My ubuntu life-dkleeMy ubuntu life-dklee
My ubuntu life-dklee
 
Vision and dream for youth startup company
Vision and dream for youth startup companyVision and dream for youth startup company
Vision and dream for youth startup company
 
Gnome.asia.summit2013 report-pdf
Gnome.asia.summit2013 report-pdfGnome.asia.summit2013 report-pdf
Gnome.asia.summit2013 report-pdf
 
System hacking basics
System hacking basicsSystem hacking basics
System hacking basics
 

Recently uploaded

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 

Recently uploaded (20)

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 

Hw accelerated webkitgtk+ on raspberry pi

  • 1. H/W accelerated WebKitGTK+ on Raspberry Pi ChangSeok Oh shivamidow@gmail.com
  • 2. Good to see you! ChangSeok Oh (changseok) Software engineer at Collabora.Ltd located in U.K WebKit committer since April 2013 Worked for SAMSUNG Electronics for 4 Years Got Bachelor's degree of Engineering at Ajou Univ. Preparing to go abroad to study more and get a better job, life? Interested in WebKit, Chromium, Firefox, GNOME, GStreamer, F/OSS, Computer graphics, Mac, RaspberryPi and Travel. http://uk.linkedin.com/in/ohchangseok/
  • 3. Raspberry Pi " The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming. "
  • 5. Specifications of Raspberry Pi CPU : ARM 176JZF-S 700MHz, up to 1GHz Memory : 512 MB (Model B) Graphics : Broadcom VideoCore IV GPU OS : Raspbian based on Linux See more http://en.wikipedia.org/wiki/Raspberry_Pi
  • 7. Raspberry Pi Yes. It's poor but not that poor. Performance is NOTHING!
  • 10. Why Raspberry Pi? Educational purpose but it's getting popular among develoeprs ● Very attractive price. ● Poor CPU capacity but not that bad GPU performance. ● Standard platform to everyone. ● Adaptable operating system. ● Abundant community supports. ● Much possibility with extensions. ● Challenge your programming skills. ● All resources (except some commercial codecs) are open sourced!
  • 11. WebKit A layout engine to render web pages, but it's NOT an internet browser itself. The most popular open source browser engine for embedded devices yet.. Forked from KHTML and KJS. LGPL v2.1 & BSD v2.0 Safari, Chromium, Epiphany, Android browser, Dolphin, Konqueror, Midori etc. Allows many different ports like Mac, GTK+, QT, EFL, Clutter, Blackberry etc. WebKit analysis report Jan 2013
  • 13. Midori browser The default internet browser powered by WebKitGtk in Raspberry Pi Not supported HW acceleration for some reasons.
  • 15. What is wrong with that? No EGL/GLES driver connecting to X window system. Ordering issue among X windows. Mismatched position and size between seperated layers. Not displayed cursor and context menu etc since they are hidden by HW layers.
  • 16. What is wrong with that?
  • 17. Anyway let's go forward.. What I've done ● Set up a cross compile environment. That is the most painful work. :( ● Provide EGL surfaces through the DispManX interface. ● Fit a position and a size of EGL surface to those of its parent x window. ● Fix no animation issue caused by not to be triggered XDamage event with GL calls. ● Paint a fake cursor over the EGL surface on the screen.
  • 18. Demo
  • 19. Remaining issues Ordering issue among windows. Context menu hidden by HW layers. Cursor mess. Quite low video frame rate. Will be covered by Wayland support Under working.. Eventually, we'll shift from X to Wayland for the raspberrypi windowing system.
  • 20. Wayland on the Raspberry Pi
  • 21. Have interest? This is also opensourced! ● http://cgit.collabora.com/git/user/kevino/WebKit.git/ ● $ git clone http://cgit.collabora.com/git/user/kevino/WebKit.git Upstream ● https://bugs.webkit.org/show_bug.cgi?id=118444 My blog ● http://developersnote.blogspot.com Supports from Raspberry pi community ● http://www.raspberrypi.org
  • 22. Thank you for listening