Closed Bug 596746 Opened 15 years ago Closed 2 years ago

Investigate painting performance for Sand Trap chrome experiment

Categories

(Core :: Graphics, defect)

x86
macOS
defect

Tracking

()

RESOLVED WONTFIX
Performance Impact ?

People

(Reporter: humph, Unassigned)

References

()

Details

(Keywords: perf, Whiteboard: [painting-perf][chromeexperiments])

Attachments

(1 file)

Spin-off bug from bug 596707...the Sand Trap chrome experiment is really CPU heavy for me, more so for us than Chrome. Both of us are spending most of our time doing colour stuff, but it's interesting to see the differences: Minefield: ---------------------------------------------------------- 27.8% 27.8% CoreGraphics argb32_sample_ARGB32 0.0% 27.8% CoreGraphics argb32_image_mark 0.0% 27.8% CoreGraphics argb32_image 0.0% 27.8% libRIP.A.dylib ripl_Mark 0.0% 27.8% libRIP.A.dylib ripl_BltImage 0.0% 27.8% libRIP.A.dylib ripc_RenderImage 0.0% 27.8% libRIP.A.dylib ripc_DrawImage 0.0% 27.8% CoreGraphics CGContextDrawImage 0.0% 27.8% XUL _cairo_quartz_draw_image 0.0% 27.8% XUL _cairo_quartz_surface_fill 0.0% 27.8% XUL _cairo_surface_fill 0.0% 27.8% XUL _cairo_gstate_fill 0.0% 27.8% XUL _moz_cairo_fill_preserve 0.0% 27.8% XUL nsCanvasRenderingContext2D::DrawImage(..) 21.2% 21.2% CoreGraphics argb32_sample_argb32 0.0% 21.2% CoreGraphics argb32_image_mark 0.0% 0.0% CoreGraphics argb32_image 0.0% 0.0% libRIP.A.dylib ripl_Mark 0.0% 0.0% libRIP.A.dylib ripl_BltImage 0.0% 0.0% libRIP.A.dylib ripc_RenderImage 0.0% 0.0% libRIP.A.dylib ripc_DrawImage 0.0% 0.0% CoreGraphics dle_ExecuteDisplayList 0.0% 0.0% CoreGraphics dle_Execute 0.0% 0.0% CoreGraphics CGDisplayListDelegateExecute 0.0% 0.0% libRIP.A.dylib ripc_TilePattern 0.0% 0.0% libRIP.A.dylib ripc_GetColor 0.0% 0.0% libRIP.A.dylib ripc_Render 0.0% 0.0% libRIP.A.dylib ripc_DrawPath 0.0% 0.0% CoreGraphics CGContextDrawPath 0.0% 0.0% CoreGraphics CGContextFillPath 0.0% 0.0% XUL _cairo_quartz_surface_fill 0.0% 0.0% XUL _cairo_surface_fill 0.0% 0.0% XUL _cairo_gstate_fill 0.0% 0.0% XUL _moz_cairo_fill_preserve 0.0% 0.0% XUL nsCanvasRenderingContext2D::DrawPath(..) Chrome: ---------------------------------------------------------- 34.0% 34.0% CoreGraphics sseCGSBlendXXXX8888 0.0% 34.0% CoreGraphics argb32_image 0.0% 17.2% libRIP.A.dylib ripd_Mark 0.0% 17.2% libRIP.A.dylib ripl_BltImage 0.0% 17.2% libRIP.A.dylib ripc_RenderImage 0.0% 17.2% libRIP.A.dylib ripc_DrawLayer 0.0% 17.2% CoreGraphics CGContextDrawLayerAtPoint 0.0% 16.8% libRIP.A.dylib ripl_Mark 0.0% 16.8% libRIP.A.dylib ripl_BltImage 0.0% 16.8% libRIP.A.dylib ripc_RenderImage 0.0% 16.8% libRIP.A.dylib ripc_DrawImage 0.0% 16.8% CoreGraphics CGContextDrawImage
Hmm. They're ending up in the fast optimized codepath inside argb32_image whereas we end up with the slow resize-or-something codepath. Why?
I think the Chrome profile only shows blitting the completed content layer to the window. The actual canvas rendering takes place in a different process whose profile looks very similar to ours.
Attached image comparison of profiles
This shows Firefox, Safari and Chrome profiles in Bottom-Up mode with call-stack mining on canvascontext.fillRect.
Keywords: perf
Severity: normal → S3
Performance Impact: --- → ?

This is not really relevant anymore.

Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: