Closed
Bug 608072
Opened 14 years ago
Closed 7 years ago
IE test drive helicopter demo is really slow
Categories
(Core :: Graphics, defect)
Tracking
()
RESOLVED
INCOMPLETE
People
(Reporter: bzbarsky, Unassigned)
References
(Blocks 1 open bug, )
Details
(Whiteboard: ietestdrive)
At least on Mac, this is mostly graphics-bound and runs at 2fps for me. In particular, 86% of the time is spent painting, with most of the remainder (13%) being SetAttr on SVG elements.
If you look at the screenshots at http://blogs.msdn.com/b/ie/archive/2010/10/28/html5-using-the-whole-pc-sixth-ie9-platform-preview-available-for-developers.aspx IE9 does way better than us on their test systems.
I'll comment on what the Mac bottlenecks are, but we could use a Windows profile to see how much time gfx is taking there compared to SetAttr. All times after this are percentages of painting time.
The paint time is, of course, mostly under nsSVGUtils::PaintFrameWithEffects.
43% is under cairo_paint_with_alpha (hello argb32_image_mark_rgb32)
38% is under cairo_push_group_with_content (creating the scratch surface,
painting to it, etc).
8% is under nsSVGPathGeometryFrame::Render calling cairo_fill_preserve
5% under gl::BasicTextureImage::EndUpdate
That image_mark thing usually means colorspace conversion or scaling or something. Which is it here?
Reporter | ||
Updated•14 years ago
|
Whiteboard: ietestcenter
Reporter | ||
Updated•14 years ago
|
Whiteboard: ietestcenter → ietestdrive
Updated•14 years ago
|
OS: Mac OS X → All
High Res / Autoplay
IE9pre6 = 53~60fps
Minefield 4pre8 20101028 = ~18fps
Google Chrome Canary 9.0.565.0 = ~18fps
Opera 11 (1029) = ~18fps
Apple Safari 5.02 = ~25fps
Win7 Ultimate x64 de/en
AMD Athlon 64 x2 5400+
Nvidia Geforce GT240 / v260.89
Comment 2•14 years ago
|
||
It's faster on my Windows Vista machine with direct2d disabled. I'm at a similar 2fps with trunk and direct2d but 7-10fps with direct2d disabled.
Curiously 3.6.x seems even faster than any trunk though that may be because I didn't build my own 3.6.x and it isn't outputting StringProxyValue debug text in the console...
nsSVGStringProxyValue(0A5F9B28)::SetValueString(-3)
-> call failed, now using cached value
nsSVGStringProxyValue(0A5F9B28)::SetValueString(translate(-7,0))
The -3 may indicate a bug in the program but it doesn't seem on the face of it as if we're handling the case when it returns to having a valid value very well.
Comment 3•14 years ago
|
||
Google Chrome Dev 8.0.552.18 = ~31fps
Safari 5.0.2 = ~30fps
Minefield 4pre8 20101028 = ~4fps
WinXP SP3 x86
Intel Mobile Core2Duo P8800 (2.6GHz)
Intel Mobile 4 Series Express (GM45) / v6.14.10.5303
Comment 4•14 years ago
|
||
On windows with D2D enabled we spend roughly 25-30% of our time painting.
Roughly 40-45% is spent inside nsIDOMElement_SetAttributeNS (going to nsGenericElement::SetAttr). Most of that going to change notifications and another portion (via SetAttrAndNotify) and a small but significant portion (10% of the 40-45%) going to nsSVGStylableElement::ParseAttribute.
Reporter | ||
Comment 5•14 years ago
|
||
Bas, thanks. that's the info I was looking for; comemnt 1 and comment 3, while confirming the IE folks numbers, aren't what I asked for in comment 0.
So it sounds like we should probably get bugs filed blocking this one on the Mac painting perf, the Windows painting perf, and the SVG DOM stuff; both of the last two will need to get better to improve performance significantly on Windows here. Robert, do you want to do this last? Or should I try to analyze what's going on there?
Comment 6•14 years ago
|
||
I should note, on Windows, with D2D, the performance is an 'acceptable' 34 fps for me. IE9 easily hits 60 fps though.
Comment 7•14 years ago
|
||
(In reply to comment #5)
> So it sounds like we should probably get bugs filed blocking this one on the
> Mac painting perf, the Windows painting perf, and the SVG DOM stuff; both of
> the last two will need to get better to improve performance significantly on
> Windows here. Robert, do you want to do this last? Or should I try to analyze
> what's going on there?
If you raise a bug for it, I'll look into the SVG DOM. We are slow manipulating transforms anyway which is bug 602759.
Depends on: 602759
Comment 8•14 years ago
|
||
(In reply to comment #6)
> I should note, on Windows, with D2D, the performance is an 'acceptable' 34 fps
> for me. IE9 easily hits 60 fps though.
I get 10 fps with latest nightly and 60 fps with IE 9 Platform Preview 6.
OS: Windows 7
Adapter Description NVIDIA GeForce 8400 GS
Vendor ID10de
Device ID 06e4
Adapter RAM 512
Adapter Driver snvd3dum nvwgf2um,nvwgf2umDriver
Version 8.17.12.6089
Driver Date10-8-2010
Direct2D Enabled true
DirectWrite Enabled true
GPU Accelerated Windows1/1 Direct3D 10
Comment 9•14 years ago
|
||
(In reply to comment #8)
> (In reply to comment #6)
> > I should note, on Windows, with D2D, the performance is an 'acceptable' 34 fps
> > for me. IE9 easily hits 60 fps though.
>
> I get 10 fps with latest nightly and 60 fps with IE 9 Platform Preview 6.
> OS: Windows 7
>
> Adapter Description NVIDIA GeForce 8400 GS
> Vendor ID10de
> Device ID 06e4
> Adapter RAM 512
> Adapter Driver snvd3dum nvwgf2um,nvwgf2umDriver
> Version 8.17.12.6089
> Driver Date10-8-2010
> Direct2D Enabled true
> DirectWrite Enabled true
> GPU Accelerated Windows1/1 Direct3D 10
Since IE9 is capped on 60 fps it's not unfeasible they're much more faster than us. My 34 fps was CPU bound, I expect slower CPUs show bigger differences here.
Reporter | ||
Comment 10•14 years ago
|
||
> If you raise a bug for it, I'll look into the SVG DOM.
Done. Bug 608495.
Comment 11•14 years ago
|
||
I wonder if updating pixman (see bug 604168) could help with this page on some systems: http://cgit.freedesktop.org/pixman/commit/?id=a484a9c49c98dfad0d74af4440039f61bef24d48
Updated•11 years ago
|
Blocks: ietestdrive
Comment 12•7 years ago
|
||
The IE Test Drive Helicopter benchmark page no longer exists.
https://testdrive-archive.azurewebsites.net/Performance/Helicopter/Default.xhtml
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → INCOMPLETE
You need to log in
before you can comment on or make changes to this bug.
Description
•