[Webkit-unassigned] [Bug 50869] [cairo] Rendering a lot of arcs on top of each other causes time outs in some tests

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Jan 7 02:59:45 PST 2011


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





--- Comment #4 from Alejandro G. Castro <alex at igalia.com>  2011-01-07 02:59:45 PST ---
(In reply to comment #3)
> (From update of attachment 77010 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=77010&action=review
> 
> > WebCore/ChangeLog:10
> > +        We avoid the situation where we have to render the same arc
> > +        multiple times over itself. Now it renders just one oval and
> > +        moves to the end angle.
> > +
> 
> Are we guaranteed that this will produce the proper rendering? What if the stroke is partially opaque? Is this hitting some weird slow path in Cairo?

Hrm, good point, it would not be accurate with oppacity, we will have to sum it. I think chrome is doing actually something similar I assume it is very costly to render a lot (like millions) of huge arcs (18s just to render one arc) that are exactly the same one, it is true that cairo could do this instead of us.

> Maybe it would be more accurate to break the stroke up into pieces and render them in a loop?
>

Not sure if I know what you mean, what I'm thinking now is to use the opacity to render exactly that opacity but just one arc.

> > WebCore/platform/graphics/cairo/PathCairo.cpp:154
> > +    float sweep = ea - sa;
> 
> This is a good opportunity to expand variable names into something more readable.
> 
> > WebCore/platform/graphics/cairo/PathCairo.cpp:163
> > +    } else
> 
> It's appropriate to use a "{" here since the block is more than one line.

Thanks, I'll add both.

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