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.
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
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
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.
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.
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.
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