Bug 58098

Summary: Optimize filling rounded rects that are actually ellipses
Product: WebKit Reporter: Ian Henderson <ian>
Component: WebCore Misc.Assignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, eric, simon.fraser
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Mac (Intel)   
OS: OS X 10.6   
Attachments:
Description Flags
proposed patch none

Ian Henderson
Reported 2011-04-07 16:52:28 PDT
In CG, drawing an ellipse directly is faster than constructing and filling a rounded rect path. We should optimize fillRoundedRect in the case that it's just drawing an ellipse.
Attachments
proposed patch (2.44 KB, patch)
2011-04-07 16:53 PDT, Ian Henderson
no flags
Ian Henderson
Comment 1 2011-04-07 16:53:57 PDT
Created attachment 88734 [details] proposed patch
WebKit Commit Bot
Comment 2 2011-04-07 22:37:32 PDT
The commit-queue encountered the following flaky tests while processing attachment 88734 [details]: http/tests/inspector/console-websocket-error.html bug 57392 (authors: pfeldman@chromium.org and yutak@chromium.org) The commit-queue is continuing to process your patch.
WebKit Commit Bot
Comment 3 2011-04-07 22:39:10 PDT
Comment on attachment 88734 [details] proposed patch Clearing flags on attachment: 88734 Committed r83253: <http://trac.webkit.org/changeset/83253>
WebKit Commit Bot
Comment 4 2011-04-07 22:39:16 PDT
All reviewed patches have been landed. Closing bug.
WebKit Commit Bot
Comment 5 2011-04-07 22:59:18 PDT
The commit-queue encountered the following flaky tests while processing attachment 88734 [details]: animations/suspend-resume-animation.html bug 48161 (author: cmarrin@apple.com) The commit-queue is continuing to process your patch.
Simon Fraser (smfr)
Comment 6 2011-06-01 13:20:59 PDT
I think this change broke filling circles in canvas when there is a gradient pattern, since the code no longer goes through the fillPath() logic
Eric Seidel (no email)
Comment 7 2011-06-01 13:36:14 PDT
Why is fillRoundedRect ever drawing an ellipse?
Simon Fraser (smfr)
Comment 8 2011-06-01 14:20:52 PDT
border-radius: 50%
Eric Seidel (no email)
Comment 9 2011-06-01 14:31:04 PDT
(In reply to comment #8) > border-radius: 50% Is that really the case we're optimizing for? I can see how it would be *much* faster to let CG do the elipse, but seems like an odd motivation for this change.
Simon Fraser (smfr)
Comment 10 2011-06-01 14:42:38 PDT
Drawing circles with css border-radius is fairly common, and some benchmarks to it. I think it's worth the optimization.
Eric Seidel (no email)
Comment 11 2011-06-01 14:49:16 PDT
OK. I'll have to trust you on this one. :) Does seem like an easy way to draw a circle in CSS.
Note You need to log in before you can comment on or make changes to this bug.