CanvasRenderingContext2D::fillRect() will currently call save() and restore() on the GraphicsContext before and after calling fillRect(). This is unnecessary for Qt since GraphicsContextQt::fillRect() doesn't taint the QPainter.
Created attachment 61240 [details] Proposed patch Not the prettiest patch in the world. Cosmetic suggestions welcome.
Comment on attachment 61240 [details] Proposed patch I think the right approach is to have the GC do save/restore if it needs it.
CG doesn't need this either.
Created attachment 61248 [details] Proposed patch v2 (Qt) Results from Hixie's skelet0n animation test: http://hixie.ch/tests/adhoc/perf/video/002.html Without this patch: Elapsed wall-clock time: 996ms (ideal: 640ms). Elapsed non-idle time: 356ms (ideal: 0ms). Speed: 15.06fps (ideal: 25.00fps). With this patch: Elapsed wall-clock time: 900ms (ideal: 640ms). Elapsed non-idle time: 260ms (ideal: 0ms). Speed: 16.67fps (ideal: 25.00fps).
Comment on attachment 61248 [details] Proposed patch v2 Clearing flags on attachment: 61248 Committed r63102: <http://trac.webkit.org/changeset/63102>
All reviewed patches have been landed. Closing bug.