[Webkit-unassigned] [Bug 113786] Throttle compositing layer flushes during page loading
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Fri Apr 5 11:52:13 PDT 2013
https://bugs.webkit.org/show_bug.cgi?id=113786
--- Comment #11 from Simon Fraser (smfr) <simon.fraser at apple.com> 2013-04-05 11:50:24 PST ---
(From update of attachment 196647)
View in context: https://bugs.webkit.org/attachment.cgi?id=196647&action=review
> Source/WebCore/ChangeLog:24
> + Track if the document load is progressing. This is done with a heartbeat timer that checks every 100ms if we have received more than 1k of data.
Is that bytes for just the main resource, or any resources?
> Source/WebCore/ChangeLog:25
> + If four heartbeats pass without progress then we consider the load stalled.
This doesn't agree with static const unsigned maximumHeartbeatsWithNoProgress= 3;
> Source/WebCore/page/FrameView.cpp:2325
> +void FrameView::updateLayerFlushThrottling(bool isLoadProgressing)
> +{
> +#if USE(ACCELERATED_COMPOSITING)
> + if (RenderView* view = renderView())
> + view->compositor()->setLayerFlushThrottlingEnabled(isLoadProgressing);
> +#else
> + UNUSED_PARAM(isLoadProgressing);
> +#endif
> +}
Every frame has a RLC. Will this do throttling in every frame, or just the main frame? How does the ProgressTracker stuff interact with different frames?
> Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:3074
> + if ((!hadUncommittedChanged || couldThrottleLayerFlush != canThrottleLayerFlush()) && m_client)
couldThrottleLayerFlush != canThrottleLayerFlush() is really confusing. Why is this necessary, since the notifyFlushRequired() can detect changes that should not be throttled?
> Source/WebCore/rendering/RenderLayerCompositor.cpp:3198
> +void RenderLayerCompositor::startLayerFlushThrottlingTimerIfNeeded()
> +{
> + m_layerFlushThrottlingTemporarilyDisabledForInteraction = false;
> + m_layerFlushThrottlingTimer.stop();
> + if (!m_layerFlushThrottlingEnabled)
> + return;
> + m_layerFlushThrottlingTimer.startOneShot(throttledLayerFlushDelay);
> +}
This isn't a layerFlushThrottlingTimer, it's just a layerFlushTimer.
--
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