http://www.phoboslab.org/biolab/ seems to draw all the tiles in the game on every frame, even ones that are far outside the bounds of the canvas. Stupidly, we still turn these into repaints.
diff --git a/WebCore/html/HTMLCanvasElement.cpp b/WebCore/html/HTMLCanvasElement.cpp index 3838f14..6f46ab4 100644 --- a/WebCore/html/HTMLCanvasElement.cpp +++ b/WebCore/html/HTMLCanvasElement.cpp @@ -193,7 +193,7 @@ void HTMLCanvasElement::didDraw(const FloatRect& rect) FloatRect destRect = ro->contentBoxRect(); FloatRect r = mapRect(rect, FloatRect(0, 0, size().width(), size().height()), destRect); r.intersect(destRect); - if (m_dirtyRect.contains(r)) + if (r.isEmpty() || m_dirtyRect.contains(r)) return; m_dirtyRect.unite(r); I'll make some tests.
Created attachment 67630 [details] Patch
Comment on attachment 67630 [details] Patch r=me
http://trac.webkit.org/changeset/67526