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

Issue 23907006: cc: Allow sending BeginMainFrame before draw or activation (Closed)

Created:
7 years, 3 months ago by brianderson
Modified:
6 years, 9 months ago
CC:
chromium-reviews, jbauman+watch_chromium.org, nkostylev+watch_chromium.org, Ian Vollick, jam, apatrick_chromium, sievers+watch_chromium.org, joi+watch-content_chromium.org, darin-cc_chromium.org, oshima+watch_chromium.org, piman+watch_chromium.org, cc-bugs_chromium.org, stevenjb+watch_chromium.org, danakj+watch_chromium.org, davemoore+watch_chromium.org, piman, jdduke (slow), boliu, joth, Sami, epenner, vmpstr, Tom Hudson, nduca, Dominik Grewe
Base URL:
http://git.chromium.org/chromium/src.git@schedDeadline3
Visibility:
Public.

Description

cc: Allow sending BeginMainFrame before draw or activation BeginMainFrame before draw: Enabled by default because of concurrency benefits. When main thread painting, this will block the main thread from finishing the commit until the active tree has been drawn. When impl side painting, this does not block the main thread. The following flag will disable sending BeginMainFrame to the main thread before we draw the previous commit: --disable-main-frame-before-draw BeginMainFrame before activation: Disabled by default because of latency concerns. This applies only when impl-side-painting is enabled and will cause the main thread to block finishing the commit until the pending tree is activated. The following flags control whether BeginMainFrame is sent to the main thread before or after the previous commit has activated: --enable-main-frame-before-activation --disable-main-frame-before-activation BUG=293941 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=256454 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=256669

Patch Set 1 #

Patch Set 2 : Block main thread from state machine; remove completion event; #

Total comments: 7

Patch Set 3 : Rebase and fix tests #

Patch Set 4 : rebase #

Patch Set 5 : small fixes #

Patch Set 6 : formatting #

Patch Set 7 : Don't start commit early if smoothness takes priority #

Patch Set 8 : Fix smoothness mode #

Total comments: 4

Patch Set 9 : Undo DidAnticipatedDrawTimeChange change #

Patch Set 10 : rebase #

Patch Set 11 : rebase #

Patch Set 12 : Make commit waiting states explicit #

Total comments: 1

Patch Set 13 : fix typo #

Total comments: 4

Patch Set 14 : rebase #

Patch Set 15 : sami's suggestions #

Total comments: 1

Patch Set 16 : rebase #

Total comments: 4

Patch Set 17 : Do not start commit before draw for UI compositor #

Total comments: 4

Patch Set 18 : Dana's comments #

Patch Set 19 : rebase #

Patch Set 20 : Fix LayerTreeHostAnimationTestCancelAnimateCommit flake #

Patch Set 21 : rebase #

Patch Set 22 : rebase #

Patch Set 23 : Rename FinishCommit #

Patch Set 24 : rebase #

Patch Set 25 : Use terms MainFrame and commit properly #

Patch Set 26 : before activate -> before activation #

Patch Set 27 : Fix LayerTreeHostAnimationTestCancelAnimateCommit crash #

Patch Set 28 : rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+322 lines, -109 lines) Patch
M cc/base/switches.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 1 chunk +3 lines, -0 lines 0 comments Download
M cc/base/switches.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 1 chunk +13 lines, -0 lines 0 comments Download
M cc/scheduler/scheduler.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 chunk +3 lines, -0 lines 0 comments Download
M cc/scheduler/scheduler_settings.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 chunk +2 lines, -0 lines 0 comments Download
M cc/scheduler/scheduler_settings.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 chunk +3 lines, -1 line 0 comments Download
M cc/scheduler/scheduler_state_machine.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 4 chunks +5 lines, -2 lines 0 comments Download
M cc/scheduler/scheduler_state_machine.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 12 chunks +49 lines, -29 lines 0 comments Download
M cc/scheduler/scheduler_state_machine_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 25 chunks +203 lines, -65 lines 0 comments Download
M cc/trees/layer_tree_host_unittest_animation.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 1 chunk +16 lines, -6 lines 0 comments Download
M cc/trees/layer_tree_host_unittest_context.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +2 lines, -4 lines 0 comments Download
M cc/trees/layer_tree_settings.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 chunk +2 lines, -0 lines 0 comments Download
M cc/trees/layer_tree_settings.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 chunk +2 lines, -0 lines 0 comments Download
M cc/trees/thread_proxy.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 3 chunks +6 lines, -2 lines 0 comments Download
M chrome/browser/chromeos/login/chrome_restart_request.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 1 chunk +3 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_process_host_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 1 chunk +3 lines, -0 lines 0 comments Download
M content/renderer/gpu/render_widget_compositor.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 1 chunk +5 lines, -0 lines 0 comments Download
M ui/compositor/compositor.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 53 (0 generated)
brianderson
This is a much simpler and generalized version of https://codereview.chromium.org/22320019
7 years, 3 months ago (2013-09-07 01:18:04 UTC) #1
brianderson
Blocking from the scheduler state machine seems to work pretty well and is a simpler ...
7 years, 3 months ago (2013-09-07 02:05:08 UTC) #2
brianderson
The difference between patch set 1, which blocks the main thread towards the beginning of ...
7 years, 3 months ago (2013-09-16 23:27:06 UTC) #3
reveman
On 2013/09/16 23:27:06, Brian Anderson wrote: > The difference between patch set 1, which blocks ...
7 years, 3 months ago (2013-09-17 14:16:26 UTC) #4
danakj
Can you add tests that show the different behaviour with the 2 settings on vs ...
7 years, 3 months ago (2013-09-17 17:05:07 UTC) #5
nduca
Dumb question: does this overlapping policy trigger only when we know our critical path is ...
7 years, 2 months ago (2013-10-02 19:03:46 UTC) #6
brianderson
On 2013/10/02 19:03:46, nduca wrote: > Dumb question: does this overlapping policy trigger only when ...
7 years, 2 months ago (2013-10-02 20:38:13 UTC) #7
Sami
> With deadline scheduling enabled, that will be the case, since the deadline > scheduler ...
7 years, 2 months ago (2013-10-03 13:31:11 UTC) #8
brianderson
>> With deadline scheduling enabled, that will be the case, since the deadline >> scheduler ...
7 years, 2 months ago (2013-10-03 14:44:37 UTC) #9
brianderson
A heads up that ToT, just a few months ago, used to start commits before ...
7 years, 2 months ago (2013-10-04 17:26:51 UTC) #10
brianderson
I would like to move ahead with this patch again and enable starting commits before ...
6 years, 11 months ago (2014-01-17 00:56:49 UTC) #11
brianderson
PTAL. I think my previous concern regarding deadlocks was overblown. With the deadline scheduler, we ...
6 years, 11 months ago (2014-01-22 02:34:25 UTC) #12
enne (OOO)
https://codereview.chromium.org/23907006/diff/461001/cc/scheduler/scheduler.cc File cc/scheduler/scheduler.cc (right): https://codereview.chromium.org/23907006/diff/461001/cc/scheduler/scheduler.cc#newcode376 cc/scheduler/scheduler.cc:376: if (SchedulerStateMachine::COMMIT_STATE_FRAME_IN_PROGRESS == Why do you only update the ...
6 years, 11 months ago (2014-01-23 21:51:54 UTC) #13
brianderson
After talking with @enne a bit, I decided to make this patch a little more ...
6 years, 11 months ago (2014-01-23 21:52:02 UTC) #14
brianderson
https://codereview.chromium.org/23907006/diff/461001/cc/scheduler/scheduler.cc File cc/scheduler/scheduler.cc (right): https://codereview.chromium.org/23907006/diff/461001/cc/scheduler/scheduler.cc#newcode376 cc/scheduler/scheduler.cc:376: if (SchedulerStateMachine::COMMIT_STATE_FRAME_IN_PROGRESS == On 2014/01/23 21:51:55, enne wrote: > ...
6 years, 11 months ago (2014-01-23 23:31:34 UTC) #15
brianderson
I went ahead and added COMMIT_STATE_WAITING_FOR_ACTIVATION instead of getting rid of COMMIT_STATE_WAITING_FOR_FIRST_DRAW. This way, what ...
6 years, 10 months ago (2014-02-07 22:20:11 UTC) #16
enne (OOO)
I really like these new states. lgtm
6 years, 10 months ago (2014-02-14 22:53:34 UTC) #17
enne (OOO)
https://codereview.chromium.org/23907006/diff/791001/cc/scheduler/scheduler_state_machine.cc File cc/scheduler/scheduler_state_machine.cc (right): https://codereview.chromium.org/23907006/diff/791001/cc/scheduler/scheduler_state_machine.cc#newcode458 cc/scheduler/scheduler_state_machine.cc:458: // of smoothnes_takes_priority. typo
6 years, 10 months ago (2014-02-14 22:53:58 UTC) #18
brianderson
I am going to wait until after the M34 branch point to land this. There ...
6 years, 10 months ago (2014-02-15 00:26:29 UTC) #19
Sami
I think this looks great, thanks Brian. lgtm modulo my question about the test. https://codereview.chromium.org/23907006/diff/1021001/cc/scheduler/scheduler_settings.cc ...
6 years, 10 months ago (2014-02-18 18:45:49 UTC) #20
brianderson
https://codereview.chromium.org/23907006/diff/1021001/cc/scheduler/scheduler_settings.cc File cc/scheduler/scheduler_settings.cc (right): https://codereview.chromium.org/23907006/diff/1021001/cc/scheduler/scheduler_settings.cc#newcode12 cc/scheduler/scheduler_settings.cc:12: start_commit_before_activate_enabled(false), On 2014/02/18 18:45:50, Sami wrote: > Should we ...
6 years, 10 months ago (2014-02-20 00:25:35 UTC) #21
brianderson
Adding owners for OWNERS reviews. danakj: ui/compositor/compositor.cc kbr: content/browser/renderer_host/render_process_host_impl.cc content/renderer/gpu/render_widget_compositor.cc jam: chrome/browser/chromeos/login/chrome_restart_request.cc content/browser/renderer_host/render_process_host_impl.cc content/renderer/gpu/render_widget_compositor.cc PTAL, ...
6 years, 9 months ago (2014-02-28 21:15:27 UTC) #22
brianderson
https://codereview.chromium.org/23907006/diff/1191001/cc/scheduler/scheduler_state_machine.cc File cc/scheduler/scheduler_state_machine.cc (right): https://codereview.chromium.org/23907006/diff/1191001/cc/scheduler/scheduler_state_machine.cc#newcode519 cc/scheduler/scheduler_state_machine.cc:519: if (active_tree_needs_first_draw_) Thanks Sami for suggesting a test for ...
6 years, 9 months ago (2014-02-28 21:18:20 UTC) #23
danakj
https://codereview.chromium.org/23907006/diff/1211001/ui/compositor/compositor.cc File ui/compositor/compositor.cc (right): https://codereview.chromium.org/23907006/diff/1211001/ui/compositor/compositor.cc#newcode213 ui/compositor/compositor.cc:213: settings.start_commit_before_draw_enabled = Did you collect any data for the ...
6 years, 9 months ago (2014-02-28 21:19:11 UTC) #24
Ken Russell (switch to Gerrit)
LGTM for the files I own.
6 years, 9 months ago (2014-02-28 21:22:02 UTC) #25
brianderson
https://codereview.chromium.org/23907006/diff/1211001/ui/compositor/compositor.cc File ui/compositor/compositor.cc (right): https://codereview.chromium.org/23907006/diff/1211001/ui/compositor/compositor.cc#newcode213 ui/compositor/compositor.cc:213: settings.start_commit_before_draw_enabled = On 2014/02/28 21:19:12, danakj wrote: > Did ...
6 years, 9 months ago (2014-02-28 21:36:27 UTC) #26
danakj
https://codereview.chromium.org/23907006/diff/1211001/ui/compositor/compositor.cc File ui/compositor/compositor.cc (right): https://codereview.chromium.org/23907006/diff/1211001/ui/compositor/compositor.cc#newcode213 ui/compositor/compositor.cc:213: settings.start_commit_before_draw_enabled = On 2014/02/28 21:36:28, brianderson wrote: > On ...
6 years, 9 months ago (2014-02-28 21:52:57 UTC) #27
brianderson
On 2014/02/28 21:52:57, danakj wrote: > https://codereview.chromium.org/23907006/diff/1211001/ui/compositor/compositor.cc > File ui/compositor/compositor.cc (right): > > https://codereview.chromium.org/23907006/diff/1211001/ui/compositor/compositor.cc#newcode213 > ...
6 years, 9 months ago (2014-02-28 22:30:51 UTC) #28
danakj
On Fri, Feb 28, 2014 at 5:30 PM, <brianderson@chromium.org> wrote: > On 2014/02/28 21:52:57, danakj ...
6 years, 9 months ago (2014-02-28 22:40:52 UTC) #29
brianderson
On 2014/02/28 22:40:52, danakj wrote: > On Fri, Feb 28, 2014 at 5:30 PM, <mailto:brianderson@chromium.org> ...
6 years, 9 months ago (2014-03-01 01:58:42 UTC) #30
jam
lgtm
6 years, 9 months ago (2014-03-03 16:18:11 UTC) #31
danakj
On Fri, Feb 28, 2014 at 8:58 PM, <brianderson@chromium.org> wrote: > On 2014/02/28 22:40:52, danakj ...
6 years, 9 months ago (2014-03-03 16:39:28 UTC) #32
brianderson
Dana, ptal. Luckily, I only had to fork two of the scheduler tests: TestFailedDrawsEventuallyForceDrawAfterNextCommit TestsetNeedsCommitIsNotLost ...
6 years, 9 months ago (2014-03-05 00:30:47 UTC) #33
danakj
LGTM https://codereview.chromium.org/23907006/diff/1231001/cc/scheduler/scheduler_state_machine_unittest.cc File cc/scheduler/scheduler_state_machine_unittest.cc (right): https://codereview.chromium.org/23907006/diff/1231001/cc/scheduler/scheduler_state_machine_unittest.cc#newcode182 cc/scheduler/scheduler_state_machine_unittest.cc:182: // This is enabled by default. Can you ...
6 years, 9 months ago (2014-03-05 19:52:42 UTC) #34
brianderson
The CQ bit was checked by brianderson@chromium.org
6 years, 9 months ago (2014-03-07 21:30:11 UTC) #35
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/brianderson@chromium.org/23907006/1311001
6 years, 9 months ago (2014-03-07 21:31:14 UTC) #36
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/brianderson@chromium.org/23907006/1311001
6 years, 9 months ago (2014-03-08 10:59:56 UTC) #37
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 9 months ago (2014-03-08 12:40:59 UTC) #38
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_rel
6 years, 9 months ago (2014-03-08 12:41:00 UTC) #39
brianderson
Depends on https://codereview.chromium.org/190543012 to fix a race condition in some of the unit tests.
6 years, 9 months ago (2014-03-10 19:15:04 UTC) #40
brianderson
The CQ bit was checked by brianderson@chromium.org
6 years, 9 months ago (2014-03-11 15:37:21 UTC) #41
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/brianderson@chromium.org/23907006/1351001
6 years, 9 months ago (2014-03-11 15:37:57 UTC) #42
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 9 months ago (2014-03-11 15:38:38 UTC) #43
commit-bot: I haz the power
Failed to apply patch for cc/base/switches.h: While running patch -p1 --forward --force --no-backup-if-mismatch; patching file ...
6 years, 9 months ago (2014-03-11 15:38:39 UTC) #44
brianderson
The CQ bit was checked by brianderson@chromium.org
6 years, 9 months ago (2014-03-11 21:29:43 UTC) #45
brianderson
The CQ bit was unchecked by brianderson@chromium.org
6 years, 9 months ago (2014-03-11 21:38:28 UTC) #46
brianderson
The CQ bit was checked by brianderson@chromium.org
6 years, 9 months ago (2014-03-11 21:54:40 UTC) #47
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/brianderson@chromium.org/23907006/1381001
6 years, 9 months ago (2014-03-11 22:32:27 UTC) #48
commit-bot: I haz the power
Change committed as 256454
6 years, 9 months ago (2014-03-12 06:34:21 UTC) #49
brianderson
The CQ bit was checked by brianderson@chromium.org
6 years, 9 months ago (2014-03-12 18:54:54 UTC) #50
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/brianderson@chromium.org/23907006/1421001
6 years, 9 months ago (2014-03-12 18:55:10 UTC) #51
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/brianderson@chromium.org/23907006/1421001
6 years, 9 months ago (2014-03-12 19:32:54 UTC) #52
commit-bot: I haz the power
6 years, 9 months ago (2014-03-12 21:58:29 UTC) #53
Message was sent while issue was closed.
Change committed as 256669

Powered by Google App Engine
This is Rietveld 408576698