|
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
|
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
|
Total messages: 2 (0 generated)
|