Hardware Acceleration in WebKit provides concise summaries of key points:
1) WebKit uses various techniques like off-screen buffers, JIT compilation, and graphics acceleration to improve browsing performance. Graphics acceleration reduces CPU usage by offloading tasks like rendering to the GPU.
2) WebKit supports hardware acceleration of video playback and 2D canvas rendering through interfaces to video and graphics hardware. This allows smoother playback and animation.
3) Accelerated compositing in WebKit uses multiple tree structures integrated with the rendering process to take advantage of GPU acceleration for CSS3 effects, transitions, animations, and HTML5 video through interfaces like OpenCL.
Introduction to the speaker Joone Hur, who is a WebKit committer, and an overview of the presentation contents.
Presentation contents focusing on accelerating browsing, video acceleration, 2D acceleration, and compositing.
Discusses hardware acceleration techniques such as off-screen buffering, JIT compilation, and GPU-based rendering.
Focused on how WebKit utilizes graphics acceleration to improve performance and reduce CPU workload.
Explains the data flow for video streams, emphasizing the role of hardware acceleration in video rendering.
Discussion on GPU accelerated 2D canvas testing in Chrome, major HTML page rendering steps, and technical details regarding rendering architecture.
Details on various document and render trees in WebKit, highlighting how rendering layers are created based on different CSS properties and elements.
Focus on CSS3 3D transforms, transitions, and animations, and how to implement accelerated compositing using Clutter. Instructions on implementing accelerated compositing in WebKit and resources for building and enhancing it.
Brief mention of using OpenCL for hardware acceleration of SVG and CSS filters, along with relevant references.
Video Acceleration
video stream=> main memory => video memory
(CPU) (CPU)
video stream => decoder (or GPU) => video memory
(DMA)
8.
iPad plays onlyone video due to hardware
acceleration
http://shapeshed.com/examples/
HTML5-video-element/
9.
2D Acceleration inWebKit
• GPU accelerated 2D canvas
o https://bugs.webkit.org/show_bug.cgi?id=43210
• Can be tested in Chrome browser
o about:flags => Enable "GPU Accelerated Canvas 2D"
Major steps inHTML page rendering in IE9
http://blogs.msdn.com/b/ie/archive/2010/09/10/
the-architecture-of-full-hardware-acceleration-of-all-web-page-content.aspx
12.
Tree structures inWebCore
• Document Tree
o DOM Tree, Shadow DOM Tree
• Render Tree
o RenderObject Tree
o RenderStyle Tree
o RenderLayer Tree
o GraphicsLayer Tree
o LineBox Tree
13.
RenderLayer Tree
A RenderLayeris created if:
It's the root object for the page (RenderView)
It has explicit CSS position properties (relative, absolute, fixed)
It has CSS3 transforms property
It is transparent (CSS opacity)
It has overflow, an alpha mask or reflection
Corresponds to <canvas> element that has a 3D (WebGL) context
Corresponds to a <video> element
Webkit-Clutter
• A WebKitport based on Clutter
• The same APIs as WebKitGTK+
• Allows clutter applications to embed a webview
19.
Why Webkit-Clutter
• Embeddingapplications can animate webviews
• It allows a web page to scroll faster and animations to run
smoothly with GPU acceleration
References
• Rendering inWebKit, http://www.youtube.com/watch?
v=RVnARGhhs9w
• The Architecture of Full Hardware Acceleration of All Web
Page
Content, http://blogs.msdn.com/b/ie/archive/2010/09/10/the-
architecture-of-full-hardware-acceleration-of-all-web-page-
content.aspx
• http://www.webkit.org/blog/386/3d-transforms/
• https://sites.google.com/a/chromium.org/dev/developers/des
ign-documents/gpu-accelerated-compositing-in-chrome