hw accelerated webkitgtk+ on raspberry pi
DESCRIPTION
This is some kind of report for implementation and experimentation about "Hardware Accelerated WebKitGTK+ for the embedded device" which is running on the Raspberry Pi device in real. Authored by Changseok Oh, who is working in the Collabora from 2013.TRANSCRIPT
![Page 2: Hw accelerated webkitgtk+ on raspberry pi](https://reader034.vdocument.in/reader034/viewer/2022051211/5552ddc6b4c90532498b4cf2/html5/thumbnails/2.jpg)
Good to see you!
ChangSeok Oh (changseok)Software engineer at Collabora.Ltd located in U.KWebKit committer since April 2013Worked for SAMSUNG Electronics for 4 YearsGot 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/
![Page 3: Hw accelerated webkitgtk+ on raspberry pi](https://reader034.vdocument.in/reader034/viewer/2022051211/5552ddc6b4c90532498b4cf2/html5/thumbnails/3.jpg)
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. "
![Page 4: Hw accelerated webkitgtk+ on raspberry pi](https://reader034.vdocument.in/reader034/viewer/2022051211/5552ddc6b4c90532498b4cf2/html5/thumbnails/4.jpg)
Raspberry Pi
![Page 5: Hw accelerated webkitgtk+ on raspberry pi](https://reader034.vdocument.in/reader034/viewer/2022051211/5552ddc6b4c90532498b4cf2/html5/thumbnails/5.jpg)
Specifications of Raspberry Pi
CPU : ARM 176JZF-S 700MHz, up to 1GHzMemory : 512 MB (Model B)Graphics : Broadcom VideoCore IV GPUOS : Raspbian based on Linux
See more http://en.wikipedia.org/wiki/Raspberry_Pi
![Page 6: Hw accelerated webkitgtk+ on raspberry pi](https://reader034.vdocument.in/reader034/viewer/2022051211/5552ddc6b4c90532498b4cf2/html5/thumbnails/6.jpg)
Raspberry Pi
![Page 7: Hw accelerated webkitgtk+ on raspberry pi](https://reader034.vdocument.in/reader034/viewer/2022051211/5552ddc6b4c90532498b4cf2/html5/thumbnails/7.jpg)
Raspberry Pi
Yes. It's poor but not that poor.Performance is NOTHING!
![Page 10: Hw accelerated webkitgtk+ on raspberry pi](https://reader034.vdocument.in/reader034/viewer/2022051211/5552ddc6b4c90532498b4cf2/html5/thumbnails/10.jpg)
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!
![Page 11: Hw accelerated webkitgtk+ on raspberry pi](https://reader034.vdocument.in/reader034/viewer/2022051211/5552ddc6b4c90532498b4cf2/html5/thumbnails/11.jpg)
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.0Safari, 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
![Page 12: Hw accelerated webkitgtk+ on raspberry pi](https://reader034.vdocument.in/reader034/viewer/2022051211/5552ddc6b4c90532498b4cf2/html5/thumbnails/12.jpg)
WebKit
![Page 13: Hw accelerated webkitgtk+ on raspberry pi](https://reader034.vdocument.in/reader034/viewer/2022051211/5552ddc6b4c90532498b4cf2/html5/thumbnails/13.jpg)
Midori browser
The default internet browser powered by WebKitGtk in Raspberry PiNot supported HW acceleration for some reasons.
![Page 15: Hw accelerated webkitgtk+ on raspberry pi](https://reader034.vdocument.in/reader034/viewer/2022051211/5552ddc6b4c90532498b4cf2/html5/thumbnails/15.jpg)
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.
![Page 16: Hw accelerated webkitgtk+ on raspberry pi](https://reader034.vdocument.in/reader034/viewer/2022051211/5552ddc6b4c90532498b4cf2/html5/thumbnails/16.jpg)
What is wrong with that?
![Page 17: Hw accelerated webkitgtk+ on raspberry pi](https://reader034.vdocument.in/reader034/viewer/2022051211/5552ddc6b4c90532498b4cf2/html5/thumbnails/17.jpg)
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.
![Page 19: Hw accelerated webkitgtk+ on raspberry pi](https://reader034.vdocument.in/reader034/viewer/2022051211/5552ddc6b4c90532498b4cf2/html5/thumbnails/19.jpg)
Remaining issues
Ordering issue among windows.Context menu hidden by HW layers.Cursor mess.Quite low video frame rate.
Eventually, we'll shift from X to Wayland for the raspberrypi windowing system.
Will be covered by Wayland support
Under working..
![Page 21: Hw accelerated webkitgtk+ on raspberry pi](https://reader034.vdocument.in/reader034/viewer/2022051211/5552ddc6b4c90532498b4cf2/html5/thumbnails/21.jpg)
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
![Page 22: Hw accelerated webkitgtk+ on raspberry pi](https://reader034.vdocument.in/reader034/viewer/2022051211/5552ddc6b4c90532498b4cf2/html5/thumbnails/22.jpg)
Thank you for listening