[Webkit-unassigned] [Bug 44402] New: Path should be RefCounted

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sun Aug 22 18:39:02 PDT 2010


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

           Summary: Path should be RefCounted
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: PC
        OS/Version: Mac OS X 10.5
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebCore Misc.
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: eric at webkit.org
                CC: oliver at apple.com, zimmermann at kde.org, krit at webkit.org,
                    kbr at google.com
        Depends on: 44374,44375


Path should be RefCounted

I've been investigating why http://themaninblue.com/experiment/AnimationBenchmark/svg/ is so slow in WebKit.  We spend at least 8% of our time generating or copying paths (see bug 44374 and bug 44375).

Because we generate a new path (and copy it!) every time one of those circles changes, WebCore makes it impossible for the platform layer to cache any information off of the platform path object (for example a triangle mesh on the gpu).  I believe the best solution around this is to make Path RefCounted, and start making our current code careful to not copy (and possibly share) paths when possible.

Having a RefCounted Path object would also allow us to use unit-shapes for all of the basic SVG shapes and share path objects between shapes, hopefully resulting in faster platform drawing.

I'm very interested in commentary from those of you who know more about graphics than I do. :)  But it seems to me that sharing paths could make platform drawing faster. (I would suspect for example that CG would be faster at drawing the same circle 100 times, than 100 different CGPath objects all representing the same circle shape.

-- 
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