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

Issue 218633010: cc: Handle retroactive BeginFrames in the Scheduler. (Closed)

Created:
6 years, 8 months ago by brianderson
Modified:
6 years, 8 months ago
Reviewers:
danakj, Sami, piman
CC:
chromium-reviews, darin-cc_chromium.org, cc-bugs_chromium.org, jam, piman+watch_chromium.org, Dominik Grewe, enne (OOO)
Base URL:
http://git.chromium.org/chromium/src.git@compositorVsyncDisable
Visibility:
Public.

Description

cc: Handle retroactive BeginFrames in the Scheduler. This will be the first step allowing us to pull logic out of the OutputSurface. Initially, the retroactive logic will exist in both the OutputSurface and the scheduler. Then, as all logic that depends on the retroactive logic has moved to the scheduler, I will remove the retroactive logic in OutputSurface. There are now 4 BeginFrames in the scheduler: 1) BeginFrame: from the OutputSurface. 2) BeginRetroFrame: a deferred BeginFrame. 3) BeginImplFrame: starts a compositor frame. 4) BeginMainFrame: starts a main frame. BUG=358409 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=263435

Patch Set 1 #

Total comments: 9

Patch Set 2 : Sami's comments; Pass existing tests; new tests pending #

Patch Set 3 : rebase #

Total comments: 1

Patch Set 4 : fix tests; add BeginRetroFrame test #

Total comments: 1

Patch Set 5 : rebase on pending patches #

Total comments: 19

Patch Set 6 : sami's comments; rebase #

Total comments: 1

Patch Set 7 : rebase #

Total comments: 2

Patch Set 8 : remove redundant DCHECK's #

Patch Set 9 : rebase #

Total comments: 7

Patch Set 10 : dana's comments + explain Normal/Retro/Impl/Main in method comments #

Patch Set 11 : fix comment typo #

Unified diffs Side-by-side diffs Delta from patch set Stats (+645 lines, -486 lines) Patch
M cc/output/output_surface.h View 1 2 3 7 chunks +19 lines, -20 lines 0 comments Download
M cc/output/output_surface.cc View 1 2 3 4 5 8 chunks +52 lines, -51 lines 0 comments Download
M cc/output/output_surface_client.h View 1 chunk +1 line, -1 line 0 comments Download
M cc/output/output_surface_unittest.cc View 1 2 3 8 chunks +93 lines, -100 lines 0 comments Download
M cc/scheduler/scheduler.h View 1 2 3 4 5 6 7 8 9 5 chunks +16 lines, -5 lines 0 comments Download
M cc/scheduler/scheduler.cc View 1 2 3 4 5 6 7 8 9 10 13 chunks +147 lines, -57 lines 0 comments Download
M cc/scheduler/scheduler_state_machine.h View 1 2 3 4 5 6 7 8 9 3 chunks +5 lines, -5 lines 0 comments Download
M cc/scheduler/scheduler_state_machine.cc View 1 2 3 4 5 6 7 8 9 7 chunks +24 lines, -30 lines 0 comments Download
M cc/scheduler/scheduler_state_machine_unittest.cc View 1 2 3 4 5 6 7 8 9 17 chunks +20 lines, -22 lines 0 comments Download
M cc/scheduler/scheduler_unittest.cc View 1 2 3 4 5 6 7 8 9 37 chunks +182 lines, -99 lines 0 comments Download
M cc/test/fake_layer_tree_host_impl_client.h View 1 chunk +1 line, -2 lines 0 comments Download
M cc/test/fake_output_surface.h View 1 2 chunks +4 lines, -6 lines 0 comments Download
M cc/test/fake_output_surface.cc View 1 2 chunks +11 lines, -10 lines 0 comments Download
M cc/test/fake_output_surface_client.h View 1 4 chunks +4 lines, -6 lines 0 comments Download
M cc/test/fake_output_surface_client.cc View 1 1 chunk +2 lines, -2 lines 0 comments Download
M cc/test/layer_tree_test.h View 1 2 3 4 5 6 7 8 9 1 chunk +0 lines, -2 lines 0 comments Download
M cc/test/layer_tree_test.cc View 1 2 3 4 5 6 7 8 9 2 chunks +3 lines, -4 lines 0 comments Download
M cc/trees/layer_tree_host_impl.h View 1 2 3 4 5 6 7 8 9 3 chunks +4 lines, -3 lines 0 comments Download
M cc/trees/layer_tree_host_impl.cc View 1 2 3 4 5 6 7 8 9 3 chunks +12 lines, -6 lines 0 comments Download
M cc/trees/layer_tree_host_impl_unittest.cc View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
M cc/trees/layer_tree_host_unittest.cc View 1 2 3 4 5 6 7 8 9 5 chunks +11 lines, -15 lines 0 comments Download
M cc/trees/single_thread_proxy.h View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -2 lines 0 comments Download
M cc/trees/thread_proxy.h View 1 2 3 4 5 6 7 8 9 2 chunks +3 lines, -2 lines 0 comments Download
M cc/trees/thread_proxy.cc View 1 2 3 4 5 6 7 8 9 2 chunks +9 lines, -13 lines 0 comments Download
M content/browser/android/in_process/synchronous_compositor_output_surface.h View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M content/browser/android/in_process/synchronous_compositor_output_surface.cc View 1 2 3 3 chunks +8 lines, -10 lines 0 comments Download
M content/public/common/content_switches.cc View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M content/renderer/gpu/compositor_output_surface.h View 1 2 3 4 5 6 2 chunks +2 lines, -2 lines 0 comments Download
M content/renderer/gpu/compositor_output_surface.cc View 1 2 3 4 5 6 3 chunks +7 lines, -7 lines 0 comments Download

Messages

Total messages: 29 (0 generated)
brianderson
ptal. Scheduler tests for the retroactive logic pending.
6 years, 8 months ago (2014-03-31 23:18:18 UTC) #1
Sami
Nice, I think this is where the logic really belongs. I was wondering if we ...
6 years, 8 months ago (2014-04-01 13:09:09 UTC) #2
brianderson
https://codereview.chromium.org/218633010/diff/1/cc/scheduler/scheduler.cc File cc/scheduler/scheduler.cc (right): https://codereview.chromium.org/218633010/diff/1/cc/scheduler/scheduler.cc#newcode163 cc/scheduler/scheduler.cc:163: begin_retro_frame_args_.IsValid()) { On 2014/04/01 13:09:10, Sami wrote: > Do ...
6 years, 8 months ago (2014-04-01 19:12:53 UTC) #3
brianderson
PTAL. Tests fixed and new test added. The retroactive logic in the scheduler is effectively ...
6 years, 8 months ago (2014-04-02 04:15:56 UTC) #4
brianderson
https://codereview.chromium.org/218633010/diff/40001/cc/scheduler/scheduler.cc File cc/scheduler/scheduler.cc (right): https://codereview.chromium.org/218633010/diff/40001/cc/scheduler/scheduler.cc#newcode250 cc/scheduler/scheduler.cc:250: now < Yay for unit tests. This should have ...
6 years, 8 months ago (2014-04-02 16:57:49 UTC) #5
brianderson
Now depends on: https://codereview.chromium.org/222413004 https://codereview.chromium.org/222003007 https://codereview.chromium.org/222743004
6 years, 8 months ago (2014-04-02 22:12:27 UTC) #6
Sami
Thanks for splitting this up a bit. Overall I think this looks great -- especially ...
6 years, 8 months ago (2014-04-03 15:55:58 UTC) #7
brianderson
https://codereview.chromium.org/218633010/diff/80001/cc/output/output_surface.cc File cc/output/output_surface.cc (right): https://codereview.chromium.org/218633010/diff/80001/cc/output/output_surface.cc#newcode209 cc/output/output_surface.cc:209: client_ready_for_begin_frame_ = true; On 2014/04/03 15:55:58, Sami wrote: > ...
6 years, 8 months ago (2014-04-03 16:36:17 UTC) #8
brianderson
https://codereview.chromium.org/218633010/diff/80001/cc/output/output_surface.cc File cc/output/output_surface.cc (right): https://codereview.chromium.org/218633010/diff/80001/cc/output/output_surface.cc#newcode209 cc/output/output_surface.cc:209: client_ready_for_begin_frame_ = true; On 2014/04/03 15:55:58, Sami wrote: > ...
6 years, 8 months ago (2014-04-03 21:55:55 UTC) #9
brianderson
https://codereview.chromium.org/218633010/diff/100001/cc/scheduler/scheduler.cc File cc/scheduler/scheduler.cc (right): https://codereview.chromium.org/218633010/diff/100001/cc/scheduler/scheduler.cc#newcode248 cc/scheduler/scheduler.cc:248: if (settings_.using_synchronous_renderer_compositor || This is where I prevent WebView ...
6 years, 8 months ago (2014-04-07 18:02:21 UTC) #10
Sami
Thanks, lgtm! https://codereview.chromium.org/218633010/diff/120001/cc/scheduler/scheduler_unittest.cc File cc/scheduler/scheduler_unittest.cc (right): https://codereview.chromium.org/218633010/diff/120001/cc/scheduler/scheduler_unittest.cc#newcode1367 cc/scheduler/scheduler_unittest.cc:1367: args.deadline += base::TimeDelta::FromHours(1); I wish all our ...
6 years, 8 months ago (2014-04-08 11:25:25 UTC) #11
brianderson
Piman, can I get an OWNERS review for content?
6 years, 8 months ago (2014-04-08 19:45:45 UTC) #12
piman
lgtm
6 years, 8 months ago (2014-04-08 21:22:53 UTC) #13
brianderson
The CQ bit was checked by brianderson@chromium.org
6 years, 8 months ago (2014-04-08 21:38:06 UTC) #14
brianderson
The CQ bit was unchecked by brianderson@chromium.org
6 years, 8 months ago (2014-04-08 21:38:46 UTC) #15
danakj
https://codereview.chromium.org/218633010/diff/160001/cc/scheduler/scheduler.cc File cc/scheduler/scheduler.cc (right): https://codereview.chromium.org/218633010/diff/160001/cc/scheduler/scheduler.cc#newcode182 cc/scheduler/scheduler.cc:182: if (needs_begin_frame) Can you expand the comment to explain ...
6 years, 8 months ago (2014-04-08 22:52:42 UTC) #16
danakj
https://codereview.chromium.org/218633010/diff/160001/cc/scheduler/scheduler.cc File cc/scheduler/scheduler.cc (right): https://codereview.chromium.org/218633010/diff/160001/cc/scheduler/scheduler.cc#newcode182 cc/scheduler/scheduler.cc:182: if (needs_begin_frame) On 2014/04/08 22:52:42, danakj wrote: > Can ...
6 years, 8 months ago (2014-04-08 22:53:10 UTC) #17
brianderson
https://codereview.chromium.org/218633010/diff/160001/cc/scheduler/scheduler.cc File cc/scheduler/scheduler.cc (right): https://codereview.chromium.org/218633010/diff/160001/cc/scheduler/scheduler.cc#newcode182 cc/scheduler/scheduler.cc:182: if (needs_begin_frame) On 2014/04/08 22:53:11, danakj wrote: > On ...
6 years, 8 months ago (2014-04-10 18:27:11 UTC) #18
brianderson
The CQ bit was checked by brianderson@chromium.org
6 years, 8 months ago (2014-04-10 19:26:59 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/brianderson@chromium.org/218633010/180001
6 years, 8 months ago (2014-04-10 19:27:03 UTC) #20
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 8 months ago (2014-04-10 20:40:54 UTC) #21
commit-bot: I haz the power
Try jobs failed on following builders: tryserver.chromium on linux_chromium_rel
6 years, 8 months ago (2014-04-10 20:40:55 UTC) #22
brianderson
The CQ bit was checked by brianderson@chromium.org
6 years, 8 months ago (2014-04-10 21:38:21 UTC) #23
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/brianderson@chromium.org/218633010/200001
6 years, 8 months ago (2014-04-10 21:39:23 UTC) #24
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 8 months ago (2014-04-11 18:08:27 UTC) #25
commit-bot: I haz the power
Retried try job too often on win_rel for step(s) browser_tests, content_browsertests, mini_installer_test, nacl_integration, sync_integration_tests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=win_rel&number=296186
6 years, 8 months ago (2014-04-11 18:08:28 UTC) #26
brianderson
The CQ bit was checked by brianderson@chromium.org
6 years, 8 months ago (2014-04-11 22:39:29 UTC) #27
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/brianderson@chromium.org/218633010/200001
6 years, 8 months ago (2014-04-11 22:41:10 UTC) #28
commit-bot: I haz the power
6 years, 8 months ago (2014-04-12 01:07:18 UTC) #29
Message was sent while issue was closed.
Change committed as 263435

Powered by Google App Engine
This is Rietveld 408576698