[Webkit-unassigned] [Bug 61560] New: Canvas performance regression with `clip`

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu May 26 14:19:20 PDT 2011


https://bugs.webkit.org/show_bug.cgi?id=61560

           Summary: Canvas performance regression with `clip`
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Macintosh Intel
               URL: http://kangax.github.com/jstests/bugs/canvas_clip_perf
                    _test.html
        OS/Version: Mac OS X 10.6
            Status: UNCONFIRMED
          Severity: Major
          Priority: P2
         Component: Canvas
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: kangax at gmail.com
                CC: oliver at apple.com, mdelaney at apple.com


Canvas' `clip` coupled with one of drawing methods (e.g. `stroke`, `strokeRect`, etc.) results in continuous, reproducible performance loss.

The test page includes the following code:

setTimeout(function animate() {

  ctx.beginPath();
  ctx.moveTo(10, 10);
  ctx.lineTo(150, 150);
  ctx.lineTo(220, 20);
  ctx.closePath();
  ctx.stroke();
  ctx.clip();

  setTimeout(animate, 10);
}, 10);

On my system (Mac OS X) browser starts consuming ~80% CPU and continuously rises up to 90% and more. The test page also includes an FPS counter; the FPS count keeps dropping as more and more invocations of `stroke` + `clip` occur.

This doesn't happen in either Firefox (4), Opera (11.11), or IE (9). 

It DOES happen in other webkit-based browsers — Chrome (13), Safari (5).

Here's a screenshot showing activity monitor (with webkit process consuming ~90% CPU) and dropping FPS counter — http://twitpic.com/52w4ya

This problem seems to be going as far back as Safari 3.0.4

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the webkit-unassigned mailing list