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

Issue 221833009: cc: Move scheduling logic out of OutputSurface (Closed)

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

Description

cc: Move scheduling logic out of OutputSurface This moves the vsync throttling enabled/disabled logic and the synthetic/emulated BeginFrame logic out of OutputSurface and moves it to the Scheduler. This then allows us to also remove the retroactive BeginFrame logic from OutputSurface since the Scheduler also has retroactive BeginFrame logic. BUG=246861 BUG=251909 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=266348

Patch Set 1 #

Patch Set 2 : rebase; fix tests #

Total comments: 26

Patch Set 3 : rebase; sami's comments #

Total comments: 11

Patch Set 4 : rebase #

Patch Set 5 : address comments & add tests #

Patch Set 6 : Fix synchronous compositor; add BeginFrame trace; #

Patch Set 7 : Fix synchronous compositor more #

Patch Set 8 : Fix CompositorOutputSurface for Android #

Patch Set 9 : Add OutputSurface::SetNeedsRedrawRect back #

Total comments: 5

Patch Set 10 : rebase; fix comments; undo accidental deletion #

Patch Set 11 : Remove invalid DCHECK causing flake #

Total comments: 1

Patch Set 12 : Delete BeginFrameSourceClient; update comments #

Total comments: 4

Patch Set 13 : rebase; add comment about race #

Unified diffs Side-by-side diffs Delta from patch set Stats (+577 lines, -724 lines) Patch
M cc/cc.gyp View 1 2 3 4 5 6 7 8 9 1 chunk +0 lines, -2 lines 0 comments Download
M cc/cc_tests.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +0 lines, -1 line 0 comments Download
M cc/output/output_surface.h View 1 2 3 4 5 6 7 8 9 10 11 12 7 chunks +6 lines, -34 lines 0 comments Download
M cc/output/output_surface.cc View 1 2 3 4 5 6 7 8 9 10 11 12 7 chunks +20 lines, -137 lines 0 comments Download
M cc/output/output_surface_client.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -0 lines 0 comments Download
M cc/output/output_surface_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +6 lines, -190 lines 0 comments Download
M cc/scheduler/frame_rate_controller.h View 1 1 chunk +0 lines, -70 lines 0 comments Download
M cc/scheduler/frame_rate_controller.cc View 1 1 chunk +0 lines, -76 lines 0 comments Download
M cc/scheduler/frame_rate_controller_unittest.cc View 1 1 chunk +0 lines, -62 lines 0 comments Download
M cc/scheduler/scheduler.h View 1 2 3 4 6 chunks +34 lines, -7 lines 0 comments Download
M cc/scheduler/scheduler.cc View 1 2 3 4 5 6 7 8 9 10 11 8 chunks +163 lines, -9 lines 0 comments Download
M cc/scheduler/scheduler_settings.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M cc/scheduler/scheduler_settings.cc View 1 2 3 1 chunk +4 lines, -2 lines 0 comments Download
M cc/scheduler/scheduler_state_machine.cc View 1 2 3 4 5 6 7 8 9 1 chunk +6 lines, -3 lines 0 comments Download
M cc/scheduler/scheduler_unittest.cc View 1 2 3 4 5 6 7 8 9 41 chunks +264 lines, -75 lines 0 comments Download
M cc/test/fake_layer_tree_host_impl_client.h View 1 2 3 1 chunk +3 lines, -0 lines 0 comments Download
M cc/test/fake_output_surface.cc View 1 2 3 3 chunks +3 lines, -5 lines 0 comments Download
M cc/test/fake_output_surface_client.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -0 lines 0 comments Download
M cc/test/scheduler_test_common.h View 1 2 chunks +0 lines, -7 lines 0 comments Download
M cc/trees/layer_tree_host_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +5 lines, -0 lines 0 comments Download
M cc/trees/layer_tree_host_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +18 lines, -13 lines 0 comments Download
M cc/trees/layer_tree_host_impl_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +3 lines, -0 lines 0 comments Download
M cc/trees/layer_tree_host_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 4 chunks +3 lines, -4 lines 0 comments Download
M cc/trees/layer_tree_settings.h View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M cc/trees/layer_tree_settings.cc View 1 2 3 2 chunks +3 lines, -2 lines 0 comments Download
M cc/trees/single_thread_proxy.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +3 lines, -0 lines 0 comments Download
M cc/trees/thread_proxy.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +4 lines, -1 line 0 comments Download
M cc/trees/thread_proxy.cc View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +11 lines, -1 line 0 comments Download
M content/browser/android/in_process/synchronous_compositor_output_surface.h View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +1 line, -3 lines 0 comments Download
M content/browser/android/in_process/synchronous_compositor_output_surface.cc View 1 2 3 4 5 6 7 8 9 10 11 12 5 chunks +4 lines, -9 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_android.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -2 lines 0 comments Download
M content/renderer/gpu/compositor_output_surface.cc View 1 2 3 4 5 6 7 8 9 4 chunks +5 lines, -7 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 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 32 (0 generated)
brianderson
Depends on: https://codereview.chromium.org/199523002 and the rest.
6 years, 8 months ago (2014-04-03 02:41:25 UTC) #1
brianderson
hold off on reviewing this one. lots of tests need fixing
6 years, 8 months ago (2014-04-04 02:16:26 UTC) #2
brianderson
Rebased and tests fixed now.
6 years, 8 months ago (2014-04-08 02:31:48 UTC) #3
Sami
Woo, another nice red patch. https://codereview.chromium.org/221833009/diff/20001/cc/output/output_surface.cc File cc/output/output_surface.cc (right): https://codereview.chromium.org/221833009/diff/20001/cc/output/output_surface.cc#newcode256 cc/output/output_surface.cc:256: client_->DidSwapBuffers(); Should we guard ...
6 years, 8 months ago (2014-04-08 13:46:00 UTC) #4
brianderson
https://codereview.chromium.org/221833009/diff/20001/cc/output/output_surface.cc File cc/output/output_surface.cc (right): https://codereview.chromium.org/221833009/diff/20001/cc/output/output_surface.cc#newcode256 cc/output/output_surface.cc:256: client_->DidSwapBuffers(); On 2014/04/08 13:46:01, Sami wrote: > Should we ...
6 years, 8 months ago (2014-04-09 02:52:03 UTC) #5
brianderson
I need to add scheduler tests for BeginUnthrottledFrame and SyntheticBegFrameSource. https://codereview.chromium.org/221833009/diff/20001/cc/output/output_surface.cc File cc/output/output_surface.cc (right): https://codereview.chromium.org/221833009/diff/20001/cc/output/output_surface.cc#newcode256 ...
6 years, 8 months ago (2014-04-10 23:45:58 UTC) #6
danakj
https://codereview.chromium.org/221833009/diff/40001/cc/output/output_surface.h File cc/output/output_surface.h (right): https://codereview.chromium.org/221833009/diff/40001/cc/output/output_surface.h#newcode145 cc/output/output_surface.h:145: // Note: DidSwapBuffers and OnSwapBuffersComplete should not be called ...
6 years, 8 months ago (2014-04-11 15:42:22 UTC) #7
brianderson
https://codereview.chromium.org/221833009/diff/40001/cc/output/output_surface.h File cc/output/output_surface.h (right): https://codereview.chromium.org/221833009/diff/40001/cc/output/output_surface.h#newcode145 cc/output/output_surface.h:145: // Note: DidSwapBuffers and OnSwapBuffersComplete should not be called ...
6 years, 8 months ago (2014-04-11 20:21:28 UTC) #8
danakj
https://codereview.chromium.org/221833009/diff/40001/cc/output/output_surface.h File cc/output/output_surface.h (right): https://codereview.chromium.org/221833009/diff/40001/cc/output/output_surface.h#newcode145 cc/output/output_surface.h:145: // Note: DidSwapBuffers and OnSwapBuffersComplete should not be called ...
6 years, 8 months ago (2014-04-14 18:19:27 UTC) #9
brianderson
On 2014/04/14 18:19:27, danakj wrote: > https://codereview.chromium.org/221833009/diff/40001/cc/output/output_surface.h > File cc/output/output_surface.h (right): > > https://codereview.chromium.org/221833009/diff/40001/cc/output/output_surface.h#newcode145 > ...
6 years, 8 months ago (2014-04-14 18:53:58 UTC) #10
Sami
Thanks for the fixes. This is looking very good. Just a minor questions below. https://codereview.chromium.org/221833009/diff/40001/cc/scheduler/scheduler.cc ...
6 years, 8 months ago (2014-04-16 17:48:22 UTC) #11
brianderson
https://codereview.chromium.org/221833009/diff/40001/cc/output/output_surface.h File cc/output/output_surface.h (right): https://codereview.chromium.org/221833009/diff/40001/cc/output/output_surface.h#newcode145 cc/output/output_surface.h:145: // Note: DidSwapBuffers and OnSwapBuffersComplete should not be called ...
6 years, 8 months ago (2014-04-16 21:51:30 UTC) #12
brianderson
Rebased and added scheduler tests. +piman for review of /content.
6 years, 8 months ago (2014-04-18 23:32:04 UTC) #13
Sami
Thanks for the new tests. lgtm as long as Dana's happy with the swap ack ...
6 years, 8 months ago (2014-04-22 18:34:13 UTC) #14
brianderson
https://codereview.chromium.org/221833009/diff/150001/cc/scheduler/scheduler_state_machine.cc File cc/scheduler/scheduler_state_machine.cc (right): https://codereview.chromium.org/221833009/diff/150001/cc/scheduler/scheduler_state_machine.cc#newcode808 cc/scheduler/scheduler_state_machine.cc:808: return !settings_.using_synchronous_renderer_compositor; On 2014/04/22 18:34:13, Sami wrote: > Should ...
6 years, 8 months ago (2014-04-22 22:34:49 UTC) #15
danakj
On Tue, Apr 22, 2014 at 2:34 PM, <skyostil@chromium.org> wrote: > Thanks for the new ...
6 years, 8 months ago (2014-04-22 22:36:12 UTC) #16
brianderson
https://codereview.chromium.org/221833009/diff/150001/content/renderer/gpu/compositor_output_surface.cc File content/renderer/gpu/compositor_output_surface.cc (left): https://codereview.chromium.org/221833009/diff/150001/content/renderer/gpu/compositor_output_surface.cc#oldcode182 content/renderer/gpu/compositor_output_surface.cc:182: OutputSurface::SwapBuffers(frame); I shouldn't have removed this. Will add it ...
6 years, 8 months ago (2014-04-22 22:41:22 UTC) #17
brianderson
+piman for OWNERS review of content.
6 years, 8 months ago (2014-04-23 20:35:46 UTC) #18
brianderson
https://codereview.chromium.org/221833009/diff/190001/cc/output/begin_frame_args.h File cc/output/begin_frame_args.h (right): https://codereview.chromium.org/221833009/diff/190001/cc/output/begin_frame_args.h#newcode52 cc/output/begin_frame_args.h:52: class CC_EXPORT BeginFrameSourceClient { This isn't actually used anymore. ...
6 years, 8 months ago (2014-04-23 21:10:01 UTC) #19
piman
I did not look at the cc parts in detail, but this looks like a ...
6 years, 8 months ago (2014-04-24 20:27:56 UTC) #20
brianderson
https://codereview.chromium.org/221833009/diff/210001/cc/output/output_surface.cc File cc/output/output_surface.cc (right): https://codereview.chromium.org/221833009/diff/210001/cc/output/output_surface.cc#newcode344 cc/output/output_surface.cc:344: void OutputSurface::OnSwapBuffersComplete() { On 2014/04/24 20:27:56, piman wrote: > ...
6 years, 8 months ago (2014-04-24 21:33:42 UTC) #21
brianderson
The CQ bit was checked by brianderson@chromium.org
6 years, 8 months ago (2014-04-25 01:36:11 UTC) #22
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/brianderson@chromium.org/221833009/230001
6 years, 8 months ago (2014-04-25 02:03:49 UTC) #23
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 8 months ago (2014-04-25 02:50:28 UTC) #24
commit-bot: I haz the power
Try jobs failed on following builders: tryserver.chromium on chromium_presubmit
6 years, 8 months ago (2014-04-25 02:50:32 UTC) #25
danakj
The CQ bit was checked by danakj@chromium.org
6 years, 8 months ago (2014-04-25 15:27:04 UTC) #26
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/brianderson@chromium.org/221833009/230001
6 years, 8 months ago (2014-04-25 21:48:13 UTC) #27
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 8 months ago (2014-04-25 22:38:04 UTC) #28
commit-bot: I haz the power
Try jobs failed on following builders: tryserver.chromium on linux_chromium_chromeos_rel
6 years, 8 months ago (2014-04-25 22:38:05 UTC) #29
brianderson
The CQ bit was checked by brianderson@chromium.org
6 years, 8 months ago (2014-04-25 23:50:13 UTC) #30
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/brianderson@chromium.org/221833009/230001
6 years, 8 months ago (2014-04-25 23:54:49 UTC) #31
commit-bot: I haz the power
6 years, 8 months ago (2014-04-26 10:06:09 UTC) #32
Message was sent while issue was closed.
Change committed as 266348

Powered by Google App Engine
This is Rietveld 408576698