Bug 71179 - [Cairo] Avoid clipping when painting more often
Summary: [Cairo] Avoid clipping when painting more often
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Martin Robinson
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-10-29 12:55 PDT by Martin Robinson
Modified: 2011-11-09 19:10 PST (History)
2 users (show)

See Also:


Attachments
Patch (7.22 KB, patch)
2011-10-29 13:11 PDT, Martin Robinson
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Robinson 2011-10-29 12:55:24 PDT
Instead of calling cairo_clip/cairo_paint_with_alpha, we should try hard to just encapsulate the global alpha into the source pattern. This avoids an unnecessary clip.
Comment 1 Martin Robinson 2011-10-29 13:11:20 PDT
Created attachment 112974 [details]
Patch
Comment 2 Martin Robinson 2011-10-29 13:48:40 PDT
(In reply to comment #1)
> Created an attachment (id=112974) [details]
> Patch

Note; This patch introduces a performance hit for image pattern fills that have a non-opaque alpha. These kind of fills are not very common and I plan to address this in a followup patch.
Comment 3 Martin Robinson 2011-11-01 16:43:36 PDT
On my machine this increases the framerate of the Man in Blue Canvas benchmark (http://themaninblue.com/experiment/AnimationBenchmark/canvas/) from 80 frames per second to 95 frames per second.
Comment 4 Xan Lopez 2011-11-09 09:18:22 PST
Comment on attachment 112974 [details]
Patch

After talking about the patch a bit with Martin online I cannot see anything obviously wrong here, so r+.
Comment 5 Martin Robinson 2011-11-09 19:10:16 PST
Comment on attachment 112974 [details]
Patch

Clearing flags on attachment: 112974

Committed r99803: <http://trac.webkit.org/changeset/99803>
Comment 6 Martin Robinson 2011-11-09 19:10:19 PST
All reviewed patches have been landed.  Closing bug.