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

Issue 24304002: cc: Implement deadline scheduling disabled by default (Closed)

Created:
7 years, 3 months ago by brianderson
Modified:
7 years, 3 months ago
Reviewers:
danakj, enne (OOO)
CC:
chromium-reviews, cc-bugs_chromium.org, piman, jdduke (slow), joth, boliu, nduca, epenner, klobag, reveman, vmpstr
Base URL:
http://git.chromium.org/chromium/src.git@master
Visibility:
Public.

Description

cc: Implement deadline scheduling disabled by default This patch adds logic to the Scheduler to actually use the BeginFrame and deadline, but is not enabled by default on any platform yet. This will ensure emulation of old scheduler in the fallback path is sane. Emulation of the old path is implemented using an immediate deadline. SchedulerStateMachine::begin_frame_state has been added and can be in one of 4 states: Idle, InsideBeginFrame, DeadlinePending, or InsideDeadline. Notable restrictions of the states are: - We start a commit as soon after InsideBeginFrame as we can, since the BeginFrame will be coordinated with user input. (True on Android. Soon to be true on other platforms.) - We do not start a commit while Idle, in order to wait for the next batch of user input. - Draw and swap only occurs during the InsideDeadline state. The deadlines of the Browser and Renderer compositors can be nested in order to have a total draw latency of < 1 frame when starting off. If we can't hit 1 frame of latency consistently, we will fallback to a higher latency mode to increase throughput. BUG=243461

Patch Set 1 #

Patch Set 2 : Only tie commit to BEGIN_FRAME_IDLE when deadline enabled #

Patch Set 3 : rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1261 lines, -588 lines) Patch
M cc/output/begin_frame_args.h View 1 chunk +1 line, -3 lines 0 comments Download
M cc/output/begin_frame_args.cc View 2 chunks +7 lines, -4 lines 0 comments Download
M cc/output/output_surface.h View 3 chunks +5 lines, -5 lines 0 comments Download
M cc/output/output_surface.cc View 4 chunks +12 lines, -11 lines 0 comments Download
M cc/output/output_surface_unittest.cc View 7 chunks +36 lines, -19 lines 0 comments Download
M cc/scheduler/frame_rate_controller.cc View 2 chunks +6 lines, -7 lines 0 comments Download
M cc/scheduler/scheduler.h View 5 chunks +8 lines, -0 lines 0 comments Download
M cc/scheduler/scheduler.cc View 1 2 9 chunks +90 lines, -29 lines 0 comments Download
M cc/scheduler/scheduler_settings.h View 1 chunk +1 line, -0 lines 0 comments Download
M cc/scheduler/scheduler_settings.cc View 1 chunk +2 lines, -1 line 0 comments Download
M cc/scheduler/scheduler_state_machine.h View 7 chunks +41 lines, -15 lines 0 comments Download
M cc/scheduler/scheduler_state_machine.cc View 1 20 chunks +136 lines, -40 lines 0 comments Download
M cc/scheduler/scheduler_state_machine_unittest.cc View 1 55 chunks +548 lines, -352 lines 0 comments Download
M cc/scheduler/scheduler_unittest.cc View 1 30 chunks +322 lines, -72 lines 0 comments Download
M cc/trees/layer_tree_host_impl.h View 2 chunks +3 lines, -2 lines 0 comments Download
M cc/trees/layer_tree_host_impl.cc View 1 2 4 chunks +9 lines, -9 lines 0 comments Download
M cc/trees/layer_tree_settings.h View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M cc/trees/layer_tree_settings.cc View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M cc/trees/thread_proxy.h View 2 chunks +3 lines, -0 lines 0 comments Download
M cc/trees/thread_proxy.cc View 8 chunks +29 lines, -19 lines 0 comments Download

Messages

Total messages: 2 (0 generated)
brianderson
To be both safe and simple in the latest patch, I do not block the ...
7 years, 3 months ago (2013-09-20 00:46:21 UTC) #1
brianderson
7 years, 3 months ago (2013-09-20 18:01:47 UTC) #2
Base files missing still. Moved again to:
https://codereview.chromium.org/24070006

Powered by Google App Engine
This is Rietveld 408576698