DelegatedFrameHost attempts Frame Subscriber capture more often than renderer draws |
|||
Issue descriptionI noticed this problem while re-working some performance tests. In one case, I measured the renderer for a tab had executed draws almost exactly 24 FPS (over a 10-second window), while the number of frames captured by tab capture was almost 26 FPS. Turns out the root cause was due to the tab capture indicator in the browser tab strip UI: For the first 3 seconds of the run, there were extra browser composites to animate this indicator (the flashing on-off animation). These were causing DelegatedFrameHost::WillDrawSurface() to be called because the surface representing the tab content area was a child surface of the one representing the entire browser window. The solution to this is quite simple: Simply do not attempt capture when the damage region of the surface is empty.
,
Apr 19 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/757d6a28721ebf585c1b87433ab1bd81c9199fc3 commit 757d6a28721ebf585c1b87433ab1bd81c9199fc3 Author: miu <miu@chromium.org> Date: Tue Apr 19 23:37:54 2016 DelegatedFrameHost: Prevent FrameSubscriber captures if damage_rect is empty. Resolves an issue where tab capture of "perfectly @24 FPS content" was producing frames at ~26 FPS. See bug for details. BUG= 604110 R=jbauman@chromium.org Review URL: https://codereview.chromium.org/1900313002 Cr-Commit-Position: refs/heads/master@{#388358} [modify] https://crrev.com/757d6a28721ebf585c1b87433ab1bd81c9199fc3/content/browser/renderer_host/delegated_frame_host.cc
,
May 3 2016
This improved smoothness/freezing scores in our lab across-the-board, and I've been able to confirm perfect framerates now! :)
,
May 3 2016
|
|||
►
Sign in to add a comment |
|||
Comment 1 by vssummer...@gmail.com
, Apr 17 2016