[Webkit-unassigned] [Bug 99669] hover, layout and scrolling super slow
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Fri Oct 26 15:56:17 PDT 2012
https://bugs.webkit.org/show_bug.cgi?id=99669
--- Comment #17 from Ojan Vafai <ojan at chromium.org> 2012-10-26 15:57:26 PST ---
James walked me through the compositing code. The culprit here is the following code in RenderLayerCompositor::computeCompositingRequirements:
// Turn overlap testing off for later layers if it's already off, or if we have a 3D transform or an animating transform.
if (!childState.m_testingOverlap || layer->has3DTransform() || isRunningAcceleratedTransformAnimation(layer->renderer()))
compositingState.m_testingOverlap = false;
Since we don't know the bounds of the animation / transform, we disable all overlap testing and recomposite the world. I confirmed that commenting out these two lines makes this test case fast.
Some ideas from James as to how to fix this:
1. compute tighter bounds on the layer with the animation and feed that into the overlap test
2. composite all of these potentially-overlapping things into one composited layer instead of N
3. make computing all of this faster
These all sound hard. :)
Thinking about 3, in the Chromium composited profile:
-20% is spent in TilingData::tileRect. That function seems pretty fast though, so presumably it's just getting called a ton.
-30% is spent in RenderLayerBacking::~RenderLayerBacking, which spends most of its time in RenderLayerBacking::updateClippingLayers.
--
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