Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(104)

Issue 1887243002: cc: Remove retro frames from scheduler. (Closed)

Created:
4 years, 8 months ago by sunnyps
Modified:
3 years, 9 months ago
Reviewers:
no sievers, enne (OOO)
CC:
cc-bugs_chromium.org, chromium-reviews, darin-cc_chromium.org, jam, mkwst+moarreviews-renderer_chromium.org, mlamouri+watch-content_chromium.org, piman+watch_chromium.org, scheduler-bugs_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

cc: Remove retro frames from scheduler. The scheduler would enqueue any begin frame received while it was handling a previous begin frame as a "retro" frame. After the previous begin frame was finished the scheduler would post a task to dequeue a retro frame and then handle it if there was still time. This caused a lot of hard to debug issues. This CL removes the queue of retro frames from the scheduler. Instead the scheduler just drops any incoming begin frame received when it's not ready to handle it. After finishing the previous begin frame the scheduler tells the begin frame source that it's ready to handle a new frame and the frame source might choose to send a begin frame that was rejected by the scheduler as a "MISSED" begin frame. This CL also removes the "BEGIN_FRAME_STARTING" state from the scheduler because it was only needed when animations were driven by the scheduler. BUG=602485 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Patch Set 1 #

Total comments: 5
Unified diffs Side-by-side diffs Delta from patch set Stats (+245 lines, -843 lines) Patch
M cc/scheduler/begin_frame_source.h View 5 chunks +4 lines, -41 lines 1 comment Download
M cc/scheduler/begin_frame_source.cc View 3 chunks +14 lines, -35 lines 1 comment Download
M cc/scheduler/begin_frame_source_unittest.cc View 11 chunks +21 lines, -91 lines 0 comments Download
M cc/scheduler/begin_frame_tracker.cc View 1 chunk +1 line, -5 lines 0 comments Download
M cc/scheduler/scheduler.h View 5 chunks +5 lines, -8 lines 0 comments Download
M cc/scheduler/scheduler.cc View 10 chunks +92 lines, -198 lines 1 comment Download
M cc/scheduler/scheduler_state_machine.h View 2 chunks +0 lines, -2 lines 0 comments Download
M cc/scheduler/scheduler_state_machine.cc View 4 chunks +3 lines, -9 lines 0 comments Download
M cc/scheduler/scheduler_state_machine_unittest.cc View 15 chunks +1 line, -36 lines 0 comments Download
M cc/scheduler/scheduler_unittest.cc View 14 chunks +54 lines, -400 lines 0 comments Download
M cc/surfaces/display_scheduler.h View 2 chunks +7 lines, -3 lines 0 comments Download
M cc/surfaces/display_scheduler.cc View 4 chunks +7 lines, -5 lines 0 comments Download
M cc/surfaces/display_scheduler_unittest.cc View 1 chunk +1 line, -2 lines 0 comments Download
M cc/surfaces/surface_manager_unittest.cc View 1 chunk +1 line, -1 line 0 comments Download
M cc/test/fake_external_begin_frame_source.h View 2 chunks +2 lines, -0 lines 0 comments Download
M cc/test/fake_external_begin_frame_source.cc View 2 chunks +16 lines, -1 line 0 comments Download
M cc/test/scheduler_test_common.h View 1 chunk +0 lines, -5 lines 0 comments Download
M cc/trees/single_thread_proxy.cc View 1 chunk +1 line, -1 line 0 comments Download
M content/renderer/gpu/compositor_external_begin_frame_source.h View 1 chunk +1 line, -0 lines 0 comments Download
M content/renderer/gpu/compositor_external_begin_frame_source.cc View 1 chunk +14 lines, -0 lines 2 comments Download

Messages

Total messages: 6 (3 generated)
sunnyps
PTAL The scheduler behaves more sanely with this change. The only task that's posted by ...
4 years, 8 months ago (2016-04-14 22:21:21 UTC) #3
enne (OOO)
This is excellent cleanup. :) https://codereview.chromium.org/1887243002/diff/1/cc/scheduler/begin_frame_source.cc File cc/scheduler/begin_frame_source.cc (right): https://codereview.chromium.org/1887243002/diff/1/cc/scheduler/begin_frame_source.cc#newcode147 cc/scheduler/begin_frame_source.cc:147: PostBeginFrame(); Hmm. Should this ...
4 years, 8 months ago (2016-04-14 23:02:26 UTC) #4
enne (OOO)
4 years, 8 months ago (2016-04-18 21:30:38 UTC) #5
https://codereview.chromium.org/1887243002/diff/1/cc/scheduler/scheduler.cc
File cc/scheduler/scheduler.cc (left):

https://codereview.chromium.org/1887243002/diff/1/cc/scheduler/scheduler.cc#o...
cc/scheduler/scheduler.cc:307: if (adjusted_args.type == BeginFrameArgs::MISSED)
{
The removal of this might break https://codereview.chromium.org/1879833002/.

Powered by Google App Engine
This is Rietveld 408576698