Project: chromium Issues People Development process History Sign in
New issue
Advanced search Search tips
Starred by 1 user
Status: Fixed
Owner:
Closed: Apr 13
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 1
Type: Bug

Blocking:
issue 563816



Sign in to add a comment
OffscreenCanvas commit() animations get progressively slower until the browser is unusable
Project Member Reported by junov@chromium.org, Apr 5 Back to list
Running 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
 
trace_janky_OffscreenCanvas.json.gz
1.0 MB Download
Owner: junov@chromium.org
Status: Started
Project Member Comment 3 by bugdroid1@chromium.org, Apr 12
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

Status: Fixed
Sign in to add a comment