Skip to content
Snippets Groups Projects
Commit 6be511b8 authored by Martyn Welch's avatar Martyn Welch Committed by Emanuele Aina
Browse files

Deelte Webkit Performance Optimization document


This document briefly describes an investigation that was carried out and
the results. This kind of information isn't suitable for the main Apertis
website, it's the kind of information that should be in phabricator.

Signed-off-by: default avatarMartyn Welch <martyn.welch@collabora.com>
parent 341a9aae
No related branches found
No related tags found
1 merge request!39Wip/martyn/website updates
+++
date = "2014-12-19"
weight = 100
title = "Graphics: Webkit Performance Optimization on ARM"
aliases = [
"/docs/graphics-webkit-performance-optimization-on-arm-f.wkt.7.md",
"/old-wiki/Docs/graphics-webkit-performance-optimization-on-arm-f.wkt.7",
"/old-wiki/Docs/graphics-webkit-performance-optimization-on-arm"
]
+++
# Overview of investigation and results
Two main issues were investigated:
1. HTML5 canvas demos not getting repaints
2. Scrolling performance being poor compared to the image translation
reference
## HTML5 canvas demos not getting repaints
This turned out to be caused by higher priority sources starving clutter
relayout/repaint cycle. It was fixed by lowering the priority of WTF and
WebCore sources in 3c09afd. On a [specific
test](https://codepen.io/soulwire/full/Ffvlo), CPU is being used a lot by
the kernel and the canvas only gets repainted upon input events. This
needs further investigation. The perf tool has not been helpful, nor has
GLib debugging, for now. This is not an issue on the desktop.
## Scrolling performance
A while ago, the Clutter actors tiled backing store implementation was
brought up to date with Clutter's latest developments, which means it
started using the ClutterContent/ClutterCanvas APIs instead of the
deprecated ClutterCairoTexture. It turned out that ClutterCanvas kept
the CoglBuffer created from the Cairo context cached, but recreated the
CoglTexture for every repaint. By keeping the CoglTexture in cache, we
match the performance we used to have before that change. A patch has
been added to our Clutter package, and the fix has also been submitted
upstream. It has been reviewed and [pushed
already](https://git.gnome.org/browse/clutter/commit/?h=clutter-1.18).
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment