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

Issue 15836005: cc: Emulate BeginFrame in OutputSurfaces that don't support it natively (Closed)

Created:
7 years, 6 months ago by brianderson
Modified:
7 years, 6 months ago
CC:
chromium-reviews, joi+watch-content_chromium.org, jam, apatrick_chromium, chrome-speed-team+watch_google.com, darin-cc_chromium.org, cc-bugs_chromium.org, Sami, ajuma
Base URL:
http://git.chromium.org/chromium/src.git@nofrc
Visibility:
Public.

Description

cc: Emulate BeginFrame in OutputSurfaces that don't support it natively This will allow us to avoid having two different code paths in the Scheduler. It also allows us to more easily remove the VSyncTimeSource and FrameRateController from the Scheduler. This patch instantiates the FrameRateController inside of OutputSurface for now, but the FrameRateController could be removed in future patches. BUG=245920 BUG=243497 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=205750

Patch Set 1 #

Total comments: 18

Patch Set 2 : Fix checkerboard; Track pending swaps; #

Total comments: 18

Patch Set 3 : Address comments; Android mostly works. #

Patch Set 4 : Ignore last patch set: bad upload. #

Total comments: 1

Patch Set 5 : Update bug# in comment. #

Patch Set 6 : Tests compile but have runtime failures. #

Patch Set 7 : Rebase; Fix tests; #

Patch Set 8 : Rebase #

Patch Set 9 : Rebase again. #

Patch Set 10 : Platform specific compile fixes #

Patch Set 11 : more platform specific fixes #

Patch Set 12 : Fix PRId64 for Windows #

Unified diffs Side-by-side diffs Delta from patch set Stats (+717 lines, -825 lines) Patch
M cc/cc.gyp View 1 2 3 4 5 6 1 chunk +0 lines, -2 lines 0 comments Download
M cc/cc_tests.gyp View 1 2 3 4 5 6 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 7 chunks +38 lines, -6 lines 0 comments Download
M cc/output/output_surface.cc View 1 2 3 4 5 6 7 8 9 10 5 chunks +126 lines, -23 lines 0 comments Download
M cc/output/output_surface_client.h View 1 2 3 4 5 6 7 8 1 chunk +0 lines, -2 lines 0 comments Download
M cc/output/output_surface_unittest.cc View 1 2 3 4 5 6 7 8 9 10 9 chunks +147 lines, -12 lines 0 comments Download
M cc/scheduler/frame_rate_controller.h View 1 2 3 4 5 6 7 8 5 chunks +13 lines, -8 lines 0 comments Download
M cc/scheduler/frame_rate_controller.cc View 1 2 3 4 5 6 7 8 6 chunks +16 lines, -10 lines 0 comments Download
M cc/scheduler/frame_rate_controller_unittest.cc View 1 2 3 5 3 chunks +3 lines, -3 lines 0 comments Download
M cc/scheduler/scheduler.h View 1 2 3 4 5 6 7 8 5 chunks +14 lines, -18 lines 0 comments Download
M cc/scheduler/scheduler.cc View 1 2 3 4 5 6 7 8 6 chunks +68 lines, -57 lines 0 comments Download
M cc/scheduler/scheduler_settings.h View 3 5 1 chunk +1 line, -0 lines 0 comments Download
M cc/scheduler/scheduler_settings.cc View 3 5 1 chunk +2 lines, -1 line 0 comments Download
M cc/scheduler/scheduler_state_machine.h View 1 2 3 4 5 6 5 chunks +6 lines, -0 lines 0 comments Download
M cc/scheduler/scheduler_state_machine.cc View 1 2 3 4 5 6 7 8 9 10 11 7 chunks +15 lines, -0 lines 0 comments Download
M cc/scheduler/scheduler_state_machine_unittest.cc View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
M cc/scheduler/scheduler_unittest.cc View 1 2 3 4 5 6 18 chunks +113 lines, -170 lines 0 comments Download
D cc/scheduler/vsync_time_source.h View 3 5 1 chunk +0 lines, -78 lines 0 comments Download
D cc/scheduler/vsync_time_source.cc View 3 5 1 chunk +0 lines, -76 lines 0 comments Download
D cc/scheduler/vsync_time_source_unittest.cc View 3 5 1 chunk +0 lines, -124 lines 0 comments Download
M cc/test/fake_layer_tree_host_impl_client.h View 1 2 3 4 5 6 1 chunk +0 lines, -3 lines 0 comments Download
M cc/test/fake_output_surface.h View 1 2 3 4 5 6 7 8 2 chunks +3 lines, -1 line 0 comments Download
M cc/test/fake_output_surface.cc View 1 2 3 4 5 6 7 8 6 chunks +21 lines, -5 lines 0 comments Download
M cc/test/layer_tree_test.h View 1 2 3 4 5 6 2 chunks +2 lines, -0 lines 0 comments Download
M cc/test/layer_tree_test.cc View 1 2 3 4 5 6 7 8 1 chunk +6 lines, -2 lines 0 comments Download
M cc/test/scheduler_test_common.h View 1 2 3 4 5 6 1 chunk +0 lines, -30 lines 0 comments Download
M cc/test/scheduler_test_common.cc View 1 2 3 4 5 6 1 chunk +0 lines, -10 lines 0 comments Download
M cc/trees/layer_tree_host_impl.h View 1 2 3 4 5 6 7 8 3 chunks +2 lines, -6 lines 0 comments Download
M cc/trees/layer_tree_host_impl.cc View 1 2 3 4 5 6 7 8 2 chunks +19 lines, -5 lines 0 comments Download
M cc/trees/layer_tree_host_impl_unittest.cc View 1 2 3 4 5 6 7 8 1 chunk +0 lines, -2 lines 0 comments Download
M cc/trees/layer_tree_host_unittest.cc View 1 2 3 4 5 6 4 chunks +4 lines, -58 lines 0 comments Download
M cc/trees/layer_tree_host_unittest_animation.cc View 1 2 3 4 5 6 2 chunks +2 lines, -2 lines 0 comments Download
M cc/trees/proxy.h View 1 2 3 4 5 6 7 8 9 2 chunks +3 lines, -0 lines 0 comments Download
M cc/trees/proxy.cc View 1 2 3 4 5 6 7 8 9 1 chunk +4 lines, -0 lines 0 comments Download
M cc/trees/single_thread_proxy.h View 1 2 3 4 5 6 1 chunk +0 lines, -2 lines 0 comments Download
M cc/trees/thread_proxy.h View 1 2 3 4 5 6 10 chunks +12 lines, -29 lines 0 comments Download
M cc/trees/thread_proxy.cc View 1 2 3 4 5 6 7 8 9 chunks +51 lines, -58 lines 0 comments Download
M chrome/test/perf/rendering/latency_tests.cc View 1 2 3 4 5 6 7 8 1 chunk +5 lines, -5 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 5 chunks +7 lines, -7 lines 0 comments Download
M content/browser/renderer_host/image_transport_factory.cc View 1 2 3 4 5 6 7 8 9 2 chunks +3 lines, -3 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_android.cc View 1 2 3 4 5 6 7 8 2 chunks +3 lines, -0 lines 0 comments Download
M content/renderer/gpu/compositor_output_surface.cc View 1 2 3 4 5 6 7 8 4 chunks +7 lines, -5 lines 0 comments Download

Messages

Total messages: 19 (0 generated)
brianderson
I still need to fix a ton of tests, but this is the direction I ...
7 years, 6 months ago (2013-06-01 04:17:01 UTC) #1
brianderson
Added some comments for context to aid review. https://codereview.chromium.org/15836005/diff/1/cc/output/output_surface.cc File cc/output/output_surface.cc (right): https://codereview.chromium.org/15836005/diff/1/cc/output/output_surface.cc#newcode120 cc/output/output_surface.cc:120: //if ...
7 years, 6 months ago (2013-06-01 04:30:29 UTC) #2
Sami
https://codereview.chromium.org/15836005/diff/1/cc/output/output_surface.cc File cc/output/output_surface.cc (right): https://codereview.chromium.org/15836005/diff/1/cc/output/output_surface.cc#newcode120 cc/output/output_surface.cc:120: //if (pending_begin_frames_ >= frame_rate_controller_->MaxFramesPending()) On 2013/06/01 04:30:29, Brian Anderson ...
7 years, 6 months ago (2013-06-03 17:30:32 UTC) #3
brianderson
https://codereview.chromium.org/15836005/diff/1/cc/output/output_surface.cc File cc/output/output_surface.cc (right): https://codereview.chromium.org/15836005/diff/1/cc/output/output_surface.cc#newcode120 cc/output/output_surface.cc:120: //if (pending_begin_frames_ >= frame_rate_controller_->MaxFramesPending()) On 2013/06/03 17:30:33, Sami wrote: ...
7 years, 6 months ago (2013-06-03 18:51:40 UTC) #4
brianderson
The second patch fixes the checkerboarding issue. Somehow, my changes tweaked the ManageTiles scheduling such ...
7 years, 6 months ago (2013-06-04 03:08:55 UTC) #5
enne (OOO)
https://codereview.chromium.org/15836005/diff/11001/cc/trees/thread_proxy.cc File cc/trees/thread_proxy.cc (right): https://codereview.chromium.org/15836005/diff/11001/cc/trees/thread_proxy.cc#newcode867 cc/trees/thread_proxy.cc:867: ManageTilesOnImplThread(); I don't know that ManageTiles should always be ...
7 years, 6 months ago (2013-06-04 03:23:10 UTC) #6
nduca
some thoughts https://codereview.chromium.org/15836005/diff/11001/cc/scheduler/frame_rate_controller.h File cc/scheduler/frame_rate_controller.h (right): https://codereview.chromium.org/15836005/diff/11001/cc/scheduler/frame_rate_controller.h#newcode56 cc/scheduler/frame_rate_controller.h:56: void DidAbortAllPendingFrames(); this makes me think the ...
7 years, 6 months ago (2013-06-04 04:53:59 UTC) #7
brianderson
On 2013/06/04 03:23:10, enne wrote: > https://codereview.chromium.org/15836005/diff/11001/cc/trees/thread_proxy.cc > File cc/trees/thread_proxy.cc (right): > > https://codereview.chromium.org/15836005/diff/11001/cc/trees/thread_proxy.cc#newcode867 > ...
7 years, 6 months ago (2013-06-04 17:49:34 UTC) #8
brianderson
https://codereview.chromium.org/15836005/diff/11001/cc/scheduler/scheduler.cc File cc/scheduler/scheduler.cc (right): https://codereview.chromium.org/15836005/diff/11001/cc/scheduler/scheduler.cc#newcode117 cc/scheduler/scheduler.cc:117: while (anticipated_draw_time_ < now) { On 2013/06/04 04:53:59, nduca ...
7 years, 6 months ago (2013-06-04 18:33:27 UTC) #9
brianderson
This latest patch: 1) Addresses the comments. 2) Removes the ManageTiles workaround. 3) Gets rid ...
7 years, 6 months ago (2013-06-05 02:29:42 UTC) #10
brianderson
Ignore the previous patch set, it was only a partial upload. https://codereview.chromium.org/15836005/diff/32001/cc/scheduler/scheduler.cc File cc/scheduler/scheduler.cc (right): ...
7 years, 6 months ago (2013-06-05 02:39:05 UTC) #11
nduca
lgtm for when you're ready
7 years, 6 months ago (2013-06-05 02:58:19 UTC) #12
brianderson
+kbr for content/renderer/gpu owners review. +sievers for android-specific owners review. I'm not sure why my ...
7 years, 6 months ago (2013-06-11 02:43:55 UTC) #13
no sievers
On 2013/06/11 02:43:55, Brian Anderson wrote: > +kbr for content/renderer/gpu owners review. > +sievers for ...
7 years, 6 months ago (2013-06-11 18:16:31 UTC) #14
Ken Russell (switch to Gerrit)
content/renderer/gpu LGTM
7 years, 6 months ago (2013-06-11 18:29:53 UTC) #15
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/brianderson@chromium.org/15836005/81001
7 years, 6 months ago (2013-06-12 00:54:35 UTC) #16
commit-bot: I haz the power
Step "update" is always a major failure. Look at the try server FAQ for more ...
7 years, 6 months ago (2013-06-12 03:10:55 UTC) #17
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/brianderson@chromium.org/15836005/81001
7 years, 6 months ago (2013-06-12 03:16:32 UTC) #18
commit-bot: I haz the power
7 years, 6 months ago (2013-06-12 13:21:51 UTC) #19
Message was sent while issue was closed.
Change committed as 205750

Powered by Google App Engine
This is Rietveld 408576698