Closed Bug 608072 Opened 14 years ago Closed 7 years ago

IE test drive helicopter demo is really slow

Categories

(Core :: Graphics, defect)

x86
All
defect
Not set
normal

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?
Blocks: 590118
Whiteboard: ietestcenter
Whiteboard: ietestcenter → ietestdrive
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
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.
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
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.
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?
I should note, on Windows, with D2D, the performance is an 'acceptable' 34 fps for me. IE9 easily hits 60 fps though.
(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
(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
(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.
Depends on: 608495
> If you raise a bug for it, I'll look into the SVG DOM. Done. Bug 608495.
I wonder if updating pixman (see bug 604168) could help with this page on some systems: http://cgit.freedesktop.org/pixman/commit/?id=a484a9c49c98dfad0d74af4440039f61bef24d48
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.