OffscreenCanvas commit() animations get progressively slower until the browser is unusable |
|||
Issue descriptionRunning an commit based rendering loop in a worker keeps getting slower and slower. Looking at a trace graph, I see that the worker continues to run in full swing at 60fps, but the Browser process keeps slowing down the rate at which it is presenting frames. Looking at task manager, process sizes are steady, so it does not look like we are leaking anything, at least not anything big. Also the Browser process is not taking a lot of CPU, But the GPU process is busy. I wonder if we are accumulating quads or something like that, I am currently observing this on Mac. Attached is a trace that shows the issue as observed on Mac with Chrome Canary 59.0.3054.0
,
Apr 10 2017
,
Apr 12 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b4efc8c9a47145a0d44414db4a6942d31bbde2c8 commit b4efc8c9a47145a0d44414db4a6942d31bbde2c8 Author: junov <junov@chromium.org> Date: Wed Apr 12 22:30:03 2017 Throttle frames in OffscreenCanvasFrameDispatcherImpl Propagate gpu/compositor backpressure. This prevents the browser from hanging when OffscreenCanvas animations cannot render at 60fps because they are GPU bound. This change Makes OffscreenCanvas ignore the BeginFrame signal when backpressure is detected. It uses the call to OffscreenCanvasFrameDispatcherImpl::DidReceiveCompositorFrameAck as a signal to unblock the next animation frame. BUG= 708709 Review-Url: https://codereview.chromium.org/2817603004 Cr-Commit-Position: refs/heads/master@{#464177} [modify] https://crrev.com/b4efc8c9a47145a0d44414db4a6942d31bbde2c8/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp [modify] https://crrev.com/b4efc8c9a47145a0d44414db4a6942d31bbde2c8/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.h
,
Apr 13 2017
|
|||
►
Sign in to add a comment |
|||
Comment 1 by junov@chromium.org
, Apr 5 20171.0 MB
1.0 MB Download