August 9, 2015 GOTHENBURG
Zero-Copy Compositing in WebKitGTK+ forGUADEC 2015
Gwang Yoon Hwang ([email protected])
Zero-Copy Compositing in WebKitGTK+ for GUADEC 2015 2
Who am I?
I Gwang Yoon HwangI Hacker in Igalia, S. L.I Working on WebKit Project, focused on rendering performance of WebKitGTK+ in
embedded environment
Zero-Copy Compositing in WebKitGTK+ for GUADEC 2015 5
Unfortunatly, it was not enough
I The main-thread is always busy (Parsing, Layout, JS . . . )I The main-thread can be blocked by VSyncI And we want awesome webpages which uses HTML5 features
Zero-Copy Compositing in WebKitGTK+ for GUADEC 2015 7
Figure 2: Concept of Off-the-main-thread compositing
Zero-Copy Compositing in WebKitGTK+ for GUADEC 2015 8
Compositing in the dedicated thread / or process
I The main-thread don’t have to care about Vsync and compositing operationsI It shows more smooth CSS animations, zoom, and scale operations.
Zero-Copy Compositing in WebKitGTK+ for GUADEC 2015 9
What we are (going to) using: Coordinated Graphics
I It implement a dedicated compositing thread in WebProcess or UIProcess.I Depends on OpenGL[ES] only: Easy to port to other enviroment
Zero-Copy Compositing in WebKitGTK+ for GUADEC 2015 11
Unfortunatly, it is not enough
I Texture Uploading: Upload rasterized bitmaps to textures for normal contentsI texture to texture copy: Pass rendered results from WebGL or Canvas to the
compositorI Even worse if we need to share textures across processes
Zero-Copy Compositing in WebKitGTK+ for GUADEC 2015 12
Toward to Zero-Copy Compositing in WebKitGTK+
Zero-Copy Compositing in WebKitGTK+ for GUADEC 2015 13
Reduce texture uploading
I We can rasterize contents to textures if we are using cairo-glI However, it is not silver bulletI For example: if you render a webpage with complex asian characters..I Needs more investigations and tests
Zero-Copy Compositing in WebKitGTK+ for GUADEC 2015 14
Remove texture copy
I We can remove copies in Coordinated Graphics with Threaded mode (a.k.a.Threaded Compositor)
I For HTML5 Video and HTML5 WebGL, we don’t have to use copy operations at all.I For HTML5 2D Canvas, we need to preserve copy operation to support
accumulated rendering.
Top Related