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

Issue 2854163003: [cc] Plumb BeginFrameAcks through SurfaceManager to DisplayScheduler. (Closed)

Created:
3 years, 7 months ago by Eric Seckler
Modified:
3 years, 7 months ago
Reviewers:
Fady Samuel, sunnyps, piman
CC:
chromium-reviews, qsr+mojo_chromium.org, danakj+watch_chromium.org, viettrungluu+watch_chromium.org, nona+watch_chromium.org, shuchen+watch_chromium.org, jam, yzshen+watch_chromium.org, abarth-chromium, jbauman+watch_chromium.org, Aaron Boodman, darin-cc_chromium.org, piman+watch_chromium.org, kalyank, cc-bugs_chromium.org, James Su, darin (slow to review), yusukes+watch_chromium.org, brianderson, enne (OOO), Sami
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

[cc] Plumb BeginFrameAcks through SurfaceManager to DisplayScheduler. Plumbs the BeginFrameAcks from DidNotProduceFrame and SubmitCompositorFrame through new SurfaceObserver methods from CompositorFrameSinks to the DisplayScheduler. Also replaces the expected surface damage heuristics previously used by DisplayScheduler with tracking BeginFrame(Ack)s and surface damage. This is work towards unified BeginFrame acknowledgments, see: Tracking bug: https://crbug.com/697086 Design doc: http://bit.ly/beginframeacks BUG=697086, 646774, 678119, 703079, 707513 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_site_isolation Review-Url: https://codereview.chromium.org/2854163003 Cr-Commit-Position: refs/heads/master@{#474989} Committed: https://chromium.googlesource.com/chromium/src/+/e356c64f253923983248656d304d8aa471aad5f0

Patch Set 1 #

Patch Set 2 : CFSS notifies FrameSinkManager about its frame sink's state. #

Patch Set 3 : Track state per surface. #

Total comments: 5

Patch Set 4 : track state in DisplayScheduler rather than Surface #

Total comments: 8

Patch Set 5 : address comments, wait for all surfaces with correct last_args #

Patch Set 6 : fix tests, additional tests still missing. #

Patch Set 7 : Pass ack via SurfaceDamaged, add back tests. #

Total comments: 13

Patch Set 8 : address nits #

Patch Set 9 : fix clang compile error #

Unified diffs Side-by-side diffs Delta from patch set Stats (+724 lines, -316 lines) Patch
M cc/BUILD.gn View 1 2 3 4 5 6 7 1 chunk +2 lines, -0 lines 0 comments Download
M cc/surfaces/compositor_frame_sink_support.cc View 1 2 3 4 5 6 7 6 chunks +20 lines, -10 lines 0 comments Download
M cc/surfaces/compositor_frame_sink_support_unittest.cc View 1 2 3 4 5 6 7 12 chunks +54 lines, -29 lines 0 comments Download
M cc/surfaces/direct_compositor_frame_sink_unittest.cc View 1 2 3 4 5 6 7 1 chunk +0 lines, -4 lines 0 comments Download
M cc/surfaces/display.h View 1 2 3 4 5 6 3 chunks +7 lines, -2 lines 0 comments Download
M cc/surfaces/display.cc View 1 2 3 4 5 6 7 1 chunk +48 lines, -18 lines 0 comments Download
M cc/surfaces/display_scheduler.h View 1 2 3 4 5 6 6 chunks +19 lines, -8 lines 0 comments Download
M cc/surfaces/display_scheduler.cc View 1 2 3 4 5 6 7 11 chunks +113 lines, -62 lines 0 comments Download
M cc/surfaces/display_scheduler_unittest.cc View 1 2 3 4 5 6 7 8 20 chunks +165 lines, -113 lines 0 comments Download
M cc/surfaces/display_unittest.cc View 1 2 3 4 5 6 1 chunk +7 lines, -3 lines 0 comments Download
M cc/surfaces/surface.h View 1 2 3 4 5 6 3 chunks +6 lines, -2 lines 0 comments Download
M cc/surfaces/surface.cc View 1 2 3 4 5 6 7 1 chunk +0 lines, -1 line 0 comments Download
M cc/surfaces/surface_manager.h View 1 2 3 4 5 6 7 3 chunks +14 lines, -1 line 0 comments Download
M cc/surfaces/surface_manager.cc View 1 2 3 4 5 6 7 3 chunks +12 lines, -2 lines 0 comments Download
M cc/surfaces/surface_observer.h View 1 2 3 4 5 6 1 chunk +21 lines, -4 lines 0 comments Download
M cc/surfaces/surface_synchronization_unittest.cc View 1 2 3 4 5 6 7 10 chunks +16 lines, -29 lines 0 comments Download
A cc/test/fake_surface_observer.h View 1 2 3 4 5 6 7 1 chunk +55 lines, -0 lines 0 comments Download
A cc/test/fake_surface_observer.cc View 1 2 3 4 5 6 7 1 chunk +40 lines, -0 lines 0 comments Download
M components/viz/frame_sinks/mojo_frame_sink_manager.h View 1 2 3 4 5 6 7 1 chunk +4 lines, -0 lines 0 comments Download
M components/viz/frame_sinks/mojo_frame_sink_manager.cc View 1 2 3 4 5 6 7 1 chunk +8 lines, -0 lines 0 comments Download
M content/browser/frame_host/render_widget_host_view_child_frame_unittest.cc View 1 2 3 4 5 6 7 1 chunk +0 lines, -4 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_aura_unittest.cc View 1 2 3 4 5 6 7 4 chunks +113 lines, -24 lines 0 comments Download

Depends on Patchset:

Messages

Total messages: 53 (24 generated)
Eric Seckler
A very unpolished first attempt without tests and any of the necessary cleanup elsewhere (to ...
3 years, 7 months ago (2017-05-03 16:23:07 UTC) #5
sunnyps
On 2017/05/03 16:23:07, Eric Seckler wrote: > A very unpolished first attempt without tests and ...
3 years, 7 months ago (2017-05-05 03:07:54 UTC) #8
Eric Seckler
On 2017/05/05 03:07:54, sunnyps wrote: > On 2017/05/03 16:23:07, Eric Seckler wrote: > > A ...
3 years, 7 months ago (2017-05-08 14:36:28 UTC) #9
Eric Seckler
Thanks Sunny, this sounds good. I see how it would work for the "normal" DisplayScheduler ...
3 years, 7 months ago (2017-05-08 14:49:17 UTC) #10
Eric Seckler
PTAL :)
3 years, 7 months ago (2017-05-09 15:19:43 UTC) #11
sunnyps
+fsamuel@ The state transitions make sense to me but I'm not sure if this state ...
3 years, 7 months ago (2017-05-10 06:27:40 UTC) #13
Eric Seckler
On 2017/05/10 06:27:40, sunnyps wrote: > +fsamuel@ > > The state transitions make sense to ...
3 years, 7 months ago (2017-05-10 06:40:30 UTC) #14
Fady Samuel
On 2017/05/10 06:27:40, sunnyps wrote: > +fsamuel@ > > The state transitions make sense to ...
3 years, 7 months ago (2017-05-10 12:18:01 UTC) #15
sunnyps
On 2017/05/10 06:40:30, Eric Seckler wrote: > On 2017/05/10 06:27:40, sunnyps wrote: > > +fsamuel@ ...
3 years, 7 months ago (2017-05-11 01:06:58 UTC) #16
Eric Seckler
On 2017/05/11 01:06:58, sunnyps wrote: > On 2017/05/10 06:40:30, Eric Seckler wrote: > > On ...
3 years, 7 months ago (2017-05-11 07:30:14 UTC) #17
Eric Seckler
PTAL - now tracking a "ProducerState" per Surface. (I'm doing this rather than setting last_args/last_ack ...
3 years, 7 months ago (2017-05-15 18:48:35 UTC) #18
sunnyps
https://codereview.chromium.org/2854163003/diff/40001/cc/surfaces/compositor_frame_sink_support.cc File cc/surfaces/compositor_frame_sink_support.cc (right): https://codereview.chromium.org/2854163003/diff/40001/cc/surfaces/compositor_frame_sink_support.cc#newcode102 cc/surfaces/compositor_frame_sink_support.cc:102: if (producer_state_ == Surface::PENDING && I was thinking more ...
3 years, 7 months ago (2017-05-19 03:46:34 UTC) #19
Eric Seckler
Thank you, Sunny! PTAL :) I think there are two issues with the approach you're ...
3 years, 7 months ago (2017-05-19 14:11:42 UTC) #20
sunnyps
On 2017/05/19 14:11:42, Eric Seckler wrote: > Thank you, Sunny! PTAL :) > > I ...
3 years, 7 months ago (2017-05-22 06:46:22 UTC) #21
sunnyps
https://codereview.chromium.org/2854163003/diff/60001/cc/surfaces/surface_observer.h File cc/surfaces/surface_observer.h (right): https://codereview.chromium.org/2854163003/diff/60001/cc/surfaces/surface_observer.h#newcode19 cc/surfaces/surface_observer.h:19: virtual void OnSurfaceCreated(const SurfaceInfo& surface_info) {} This should be ...
3 years, 7 months ago (2017-05-22 06:46:39 UTC) #22
Eric Seckler
On 2017/05/22 06:46:22, sunnyps wrote: > Drawing a surface doesn't run the draw callbacks for ...
3 years, 7 months ago (2017-05-22 15:32:15 UTC) #23
sunnyps
This design looks good but there are one or two details I'm not sure about ...
3 years, 7 months ago (2017-05-23 06:38:18 UTC) #24
Eric Seckler
Thanks for the moonlight reviews, Sunny! Fady, PTAL at comments about surfaces with pending frames ...
3 years, 7 months ago (2017-05-23 09:17:39 UTC) #25
piman
sg, lgtm
3 years, 7 months ago (2017-05-23 18:04:23 UTC) #27
piman
On 2017/05/23 18:04:23, piman wrote: > sg, lgtm oops, wrong CL. LGTM anyway
3 years, 7 months ago (2017-05-23 18:05:10 UTC) #28
Fady Samuel
On 2017/05/23 09:17:39, Eric Seckler wrote: > Thanks for the moonlight reviews, Sunny! > > ...
3 years, 7 months ago (2017-05-24 01:39:25 UTC) #29
sunnyps
On 2017/05/24 01:39:25, Fady Samuel wrote: > On 2017/05/23 09:17:39, Eric Seckler wrote: > > ...
3 years, 7 months ago (2017-05-24 02:41:32 UTC) #30
Fady Samuel
On 2017/05/24 02:41:32, sunnyps wrote: > On 2017/05/24 01:39:25, Fady Samuel wrote: > > On ...
3 years, 7 months ago (2017-05-24 02:46:17 UTC) #31
Eric Seckler
Now passing the acks via SurfaceDamaged. Sunny, PTAL. Thank you :) https://codereview.chromium.org/2854163003/diff/120001/cc/surfaces/display_scheduler.h File cc/surfaces/display_scheduler.h (right): ...
3 years, 7 months ago (2017-05-24 16:27:33 UTC) #33
sunnyps
lgtm % nits https://codereview.chromium.org/2854163003/diff/120001/cc/surfaces/direct_compositor_frame_sink_unittest.cc File cc/surfaces/direct_compositor_frame_sink_unittest.cc (right): https://codereview.chromium.org/2854163003/diff/120001/cc/surfaces/direct_compositor_frame_sink_unittest.cc#newcode155 cc/surfaces/direct_compositor_frame_sink_unittest.cc:155: TEST_F(DirectCompositorFrameSinkTest, AcknowledgesBeginFramesWithDamage) { nit: I don't ...
3 years, 7 months ago (2017-05-25 20:49:14 UTC) #34
Eric Seckler
https://codereview.chromium.org/2854163003/diff/120001/cc/surfaces/direct_compositor_frame_sink_unittest.cc File cc/surfaces/direct_compositor_frame_sink_unittest.cc (right): https://codereview.chromium.org/2854163003/diff/120001/cc/surfaces/direct_compositor_frame_sink_unittest.cc#newcode155 cc/surfaces/direct_compositor_frame_sink_unittest.cc:155: TEST_F(DirectCompositorFrameSinkTest, AcknowledgesBeginFramesWithDamage) { On 2017/05/25 20:49:13, sunnyps wrote: > ...
3 years, 7 months ago (2017-05-26 10:57:52 UTC) #38
Eric Seckler
As it's not unlikely that this will break some perf bots, I'll try to land ...
3 years, 7 months ago (2017-05-26 12:32:16 UTC) #44
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2854163003/180001
3 years, 7 months ago (2017-05-26 12:53:58 UTC) #49
commit-bot: I haz the power
3 years, 7 months ago (2017-05-26 12:59:50 UTC) #53
Message was sent while issue was closed.
Committed patchset #9 (id:180001) as
https://chromium.googlesource.com/chromium/src/+/e356c64f253923983248656d304d...

Powered by Google App Engine
This is Rietveld 408576698