WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED WONTFIX
102563
Add an SVG repaint test
https://bugs.webkit.org/show_bug.cgi?id=102563
Summary
Add an SVG repaint test
Florin Malita
Reported
2012-11-16 14:46:40 PST
Existing tests don't measure paint performance, adding one to track improvements in
https://bugs.webkit.org/show_bug.cgi?id=102272
.
Attachments
Patch
(103.52 KB, patch)
2012-11-16 15:06 PST
,
Florin Malita
rniwa
: review-
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Florin Malita
Comment 1
2012-11-16 15:06:41 PST
Created
attachment 174765
[details]
Patch
Ryosuke Niwa
Comment 2
2012-11-16 15:28:35 PST
Comment on
attachment 174765
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=174765&action=review
> PerformanceTests/SVG/SvgPainting.html:736 > + testRunner.display();
display() does much more than just painting.
Ryosuke Niwa
Comment 3
2012-11-16 15:28:36 PST
Comment on
attachment 174765
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=174765&action=review
> PerformanceTests/SVG/SvgPainting.html:736 > + testRunner.display();
display() does much more than just painting.
Florin Malita
Comment 4
2012-11-16 15:52:04 PST
(In reply to
comment #2
)
> > PerformanceTests/SVG/SvgPainting.html:736 > > + testRunner.display(); > > display() does much more than just painting.
That's OK as long as paint regressions/progressions are observable in the results (and they are for the parent patch). Or is there a better way to isolate paint-only times?
Florin Malita
Comment 5
2012-11-26 09:52:46 PST
Bump.
Ryosuke Niwa
Comment 6
2012-11-26 09:56:38 PST
Comment on
attachment 174765
[details]
Patch I don't think we should be using testRunner.display() for this.
Florin Malita
Comment 7
2012-11-26 09:59:46 PST
So the previous question still stands: what is the better way for measuring paint performance?
Ryosuke Niwa
Comment 8
2012-11-26 10:06:01 PST
(In reply to
comment #7
)
> So the previous question still stands: what is the better way for measuring paint performance?
See other SVG tests.
Florin Malita
Comment 9
2012-11-26 10:24:04 PST
(In reply to
comment #8
)
> (In reply to
comment #7
) > > So the previous question still stands: what is the better way for measuring paint performance? > > See other SVG tests.
The existing tests don't paint. Try this: --- a/Source/WebCore/rendering/svg/RenderSVGShape.cpp +++ b/Source/WebCore/rendering/svg/RenderSVGShape.cpp @@ -271,6 +271,7 @@ void RenderSVGShape::fillAndStrokeShape(GraphicsContext* context) void RenderSVGShape::paint(PaintInfo& paintInfo, const LayoutPoint&) { + fprintf(stderr, "*** paint\n"); if (paintInfo.context->paintingDisabled() || style()->visibility() == HIDDEN || isEmpty return; FloatRect boundingBox = repaintRectInLocalCoordinates(); Nothing comes out unless display() is called.
Ryosuke Niwa
Comment 10
2012-11-26 10:58:42 PST
(In reply to
comment #9
)
> (In reply to
comment #8
) > > (In reply to
comment #7
) > > > So the previous question still stands: what is the better way for measuring paint performance? > > > > See other SVG tests. > > The existing tests don't paint. Try this: > > --- a/Source/WebCore/rendering/svg/RenderSVGShape.cpp > +++ b/Source/WebCore/rendering/svg/RenderSVGShape.cpp > @@ -271,6 +271,7 @@ void RenderSVGShape::fillAndStrokeShape(GraphicsContext* context) > > void RenderSVGShape::paint(PaintInfo& paintInfo, const LayoutPoint&) > { > + fprintf(stderr, "*** paint\n"); > if (paintInfo.context->paintingDisabled() || style()->visibility() == HIDDEN || isEmpty > return; > FloatRect boundingBox = repaintRectInLocalCoordinates(); > > > Nothing comes out unless display() is called.
Then we don't have a way to test paints. In general, using DRT is a terrible way of testing painting performance. It doesn't even use real graphics context.
Florin Malita
Comment 11
2012-11-26 11:21:04 PST
(In reply to
comment #10
)
> Then we don't have a way to test paints. In general, using DRT is a terrible way of testing painting performance. It doesn't even use real graphics context.
OK. Not sure about other platforms, but CR/DRT seems to use a regular off-screen canvas, and thus paint performance variations are noticeable in display() timings.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug