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

Issue 2691453002: [cc] Track observer status in ExternalBeginFrameSource. (Closed)

Created:
3 years, 10 months ago by Eric Seckler
Modified:
3 years, 10 months ago
CC:
cc-bugs_chromium.org, chromium-reviews, darin-cc_chromium.org, jam, mlamouri+watch-content_chromium.org, piman+watch_chromium.org, rjkroege, scheduler-bugs_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

[cc] Track observer status in ExternalBeginFrameSource. This introduces a BeginFrameObserverAckTracker, which tracks which active observers have finished the current BeginFrame, and hooks it up to ExternalBeginFrameSource. BUG=646774, 401331 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel Review-Url: https://codereview.chromium.org/2691453002 Cr-Commit-Position: refs/heads/master@{#451997} Committed: https://chromium.googlesource.com/chromium/src/+/fa5fec25bef17c2b0855201a3b0e1dfa848eb50e

Patch Set 1 #

Patch Set 2 : Fix android compile errors. #

Total comments: 12

Patch Set 3 : Use flat_set and SmallMap. #

Total comments: 7

Patch Set 4 : Call DidFinishFrame even when dropped, update tests. #

Total comments: 4

Patch Set 5 : Fix comments. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+512 lines, -2 lines) Patch
M cc/scheduler/begin_frame_source.h View 1 2 3 4 chunks +51 lines, -1 line 0 comments Download
M cc/scheduler/begin_frame_source.cc View 1 2 3 5 chunks +125 lines, -0 lines 0 comments Download
M cc/scheduler/begin_frame_source_unittest.cc View 1 2 3 1 chunk +301 lines, -0 lines 0 comments Download
M cc/scheduler/scheduler.cc View 1 2 3 1 chunk +4 lines, -0 lines 0 comments Download
M cc/surfaces/direct_compositor_frame_sink.h View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M cc/surfaces/direct_compositor_frame_sink.cc View 1 2 3 1 chunk +4 lines, -0 lines 0 comments Download
M cc/test/begin_frame_source_test.h View 1 chunk +8 lines, -0 lines 0 comments Download
M components/exo/compositor_frame_sink_holder.h View 1 2 3 4 1 chunk +2 lines, -1 line 0 comments Download
M components/exo/compositor_frame_sink_holder.cc View 1 2 3 4 2 chunks +5 lines, -0 lines 0 comments Download
M content/renderer/gpu/compositor_external_begin_frame_source.h View 1 chunk +1 line, -0 lines 0 comments Download
M content/renderer/gpu/compositor_external_begin_frame_source.cc View 1 chunk +5 lines, -0 lines 0 comments Download
M services/ui/public/cpp/window_compositor_frame_sink.h View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M services/ui/public/cpp/window_compositor_frame_sink.cc View 1 2 3 1 chunk +4 lines, -0 lines 0 comments Download

Messages

Total messages: 72 (34 generated)
Eric Seckler
Sami + Brian, PTAL :) Sorry for adding yet another patch to the pile, Brian!
3 years, 10 months ago (2017-02-10 00:26:55 UTC) #9
Sami
lgtm https://codereview.chromium.org/2691453002/diff/60001/cc/scheduler/begin_frame_source.h File cc/scheduler/begin_frame_source.h (right): https://codereview.chromium.org/2691453002/diff/60001/cc/scheduler/begin_frame_source.h#newcode266 cc/scheduler/begin_frame_source.h:266: std::set<BeginFrameObserver*> observers_; nit: unordered_set for both of these? ...
3 years, 10 months ago (2017-02-10 14:14:28 UTC) #22
brianderson
+enne
3 years, 10 months ago (2017-02-15 20:03:34 UTC) #24
brianderson
https://codereview.chromium.org/2691453002/diff/60001/cc/scheduler/begin_frame_source.h File cc/scheduler/begin_frame_source.h (right): https://codereview.chromium.org/2691453002/diff/60001/cc/scheduler/begin_frame_source.h#newcode266 cc/scheduler/begin_frame_source.h:266: std::set<BeginFrameObserver*> observers_; On 2017/02/10 14:14:28, Sami wrote: > nit: ...
3 years, 10 months ago (2017-02-15 20:21:36 UTC) #25
brianderson
https://codereview.chromium.org/2691453002/diff/60001/cc/scheduler/begin_frame_source.cc File cc/scheduler/begin_frame_source.cc (right): https://codereview.chromium.org/2691453002/diff/60001/cc/scheduler/begin_frame_source.cc#newcode264 cc/scheduler/begin_frame_source.cc:264: if (obs->LastUsedBeginFrameArgs().sequence_number != current_sequence_number_) Why is this != instead ...
3 years, 10 months ago (2017-02-15 20:50:48 UTC) #26
enne (OOO)
(Apologies for length. If I'm entirely off base and misunderstanding, please let me know!) I'm ...
3 years, 10 months ago (2017-02-15 23:12:25 UTC) #27
Eric Seckler
The general design stems from https://codereview.chromium.org/2527283003/. The tracker introduced in this patch is used both ...
3 years, 10 months ago (2017-02-16 00:04:55 UTC) #28
brianderson
> To be honest, it feels like we have two competing systems here: surfaces and ...
3 years, 10 months ago (2017-02-16 00:12:02 UTC) #29
enne (OOO)
Thanks. Sorry I missed previous discussions and am out of the loop. I think acks ...
3 years, 10 months ago (2017-02-16 01:49:33 UTC) #30
Eric Seckler
On 2017/02/16 01:49:33, enne wrote: > Thanks. Sorry I missed previous discussions and am out ...
3 years, 10 months ago (2017-02-16 01:58:51 UTC) #31
enne (OOO)
Ok, so then my understanding is you're handling the top level BFS that the Display ...
3 years, 10 months ago (2017-02-16 18:51:18 UTC) #32
Fady Samuel
On 2017/02/16 18:51:18, enne wrote: > Ok, so then my understanding is you're handling the ...
3 years, 10 months ago (2017-02-16 18:56:15 UTC) #33
enne (OOO)
On 2017/02/16 at 18:56:15, fsamuel wrote: > On 2017/02/16 18:51:18, enne wrote: > > Ok, ...
3 years, 10 months ago (2017-02-16 19:03:10 UTC) #34
Fady Samuel
On 2017/02/16 19:03:10, enne wrote: > On 2017/02/16 at 18:56:15, fsamuel wrote: > > On ...
3 years, 10 months ago (2017-02-16 19:05:18 UTC) #35
Eric Seckler
On 2017/02/16 19:05:18, Fady Samuel wrote: > On 2017/02/16 19:03:10, enne wrote: > > On ...
3 years, 10 months ago (2017-02-16 21:15:02 UTC) #36
enne (OOO)
What about: an external begin frame source can have as many observers as it wants, ...
3 years, 10 months ago (2017-02-16 21:23:27 UTC) #37
Eric Seckler
On 2017/02/16 21:23:27, enne wrote: > What about: an external begin frame source can have ...
3 years, 10 months ago (2017-02-16 21:58:45 UTC) #38
Eric Seckler
On 2017/02/16 21:58:45, Eric Seckler wrote: > On 2017/02/16 21:23:27, enne wrote: > > What ...
3 years, 10 months ago (2017-02-16 22:05:19 UTC) #39
enne (OOO)
In which class is the ack tracking going to live? BeginFrameSource? DisplayBeginFrameSource? I could see ...
3 years, 10 months ago (2017-02-16 22:12:10 UTC) #40
Eric Seckler
On 2017/02/16 22:12:10, enne wrote: > In which class is the ack tracking going to ...
3 years, 10 months ago (2017-02-16 22:25:03 UTC) #41
enne (OOO)
On 2017/02/16 at 22:25:03, eseckler wrote: > I was thinking more of #3: Every observer ...
3 years, 10 months ago (2017-02-16 22:34:40 UTC) #42
Eric Seckler
On 2017/02/16 22:34:40, enne wrote: > On 2017/02/16 at 22:25:03, eseckler wrote: > > > ...
3 years, 10 months ago (2017-02-16 22:45:04 UTC) #43
Eric Seckler
On 2017/02/16 22:45:04, Eric Seckler wrote: > On 2017/02/16 22:34:40, enne wrote: > > On ...
3 years, 10 months ago (2017-02-16 23:43:52 UTC) #44
enne (OOO)
Haha, ok. We've come full circle. Ack tracker in external bfs is good. Sorry for ...
3 years, 10 months ago (2017-02-17 00:05:06 UTC) #45
enne (OOO)
Meant to also say lgtm, with my nit about flat_set many comments ago.
3 years, 10 months ago (2017-02-17 18:01:28 UTC) #46
Eric Seckler
Thanks :) https://codereview.chromium.org/2691453002/diff/60001/cc/scheduler/begin_frame_source.cc File cc/scheduler/begin_frame_source.cc (right): https://codereview.chromium.org/2691453002/diff/60001/cc/scheduler/begin_frame_source.cc#newcode264 cc/scheduler/begin_frame_source.cc:264: if (obs->LastUsedBeginFrameArgs().sequence_number != current_sequence_number_) On 2017/02/15 20:50:47, ...
3 years, 10 months ago (2017-02-17 19:10:01 UTC) #47
Eric Seckler
Fady, can you have a look at ui/? +reveman for components/exo.
3 years, 10 months ago (2017-02-17 19:12:34 UTC) #51
Fady Samuel
lgtm
3 years, 10 months ago (2017-02-17 19:19:44 UTC) #52
brianderson
https://codereview.chromium.org/2691453002/diff/60001/cc/scheduler/begin_frame_source.cc File cc/scheduler/begin_frame_source.cc (right): https://codereview.chromium.org/2691453002/diff/60001/cc/scheduler/begin_frame_source.cc#newcode264 cc/scheduler/begin_frame_source.cc:264: if (obs->LastUsedBeginFrameArgs().sequence_number != current_sequence_number_) On 2017/02/17 19:10:01, Eric Seckler ...
3 years, 10 months ago (2017-02-17 20:49:54 UTC) #55
brianderson
https://codereview.chromium.org/2691453002/diff/80001/cc/scheduler/begin_frame_source_unittest.cc File cc/scheduler/begin_frame_source_unittest.cc (right): https://codereview.chromium.org/2691453002/diff/80001/cc/scheduler/begin_frame_source_unittest.cc#newcode620 cc/scheduler/begin_frame_source_unittest.cc:620: std::unique_ptr<TestBeginFrameConsumer> obs2_; Do these need to be unique_ptrs? https://codereview.chromium.org/2691453002/diff/80001/cc/scheduler/begin_frame_source_unittest.cc#newcode872 ...
3 years, 10 months ago (2017-02-17 21:26:10 UTC) #56
Eric Seckler
https://codereview.chromium.org/2691453002/diff/80001/cc/scheduler/begin_frame_source.cc File cc/scheduler/begin_frame_source.cc (right): https://codereview.chromium.org/2691453002/diff/80001/cc/scheduler/begin_frame_source.cc#newcode319 cc/scheduler/begin_frame_source.cc:319: finished_observers_.insert(obs); On 2017/02/17 20:49:54, brianderson wrote: > Do we ...
3 years, 10 months ago (2017-02-17 22:47:06 UTC) #57
Eric Seckler
https://codereview.chromium.org/2691453002/diff/60001/cc/scheduler/begin_frame_source.cc File cc/scheduler/begin_frame_source.cc (right): https://codereview.chromium.org/2691453002/diff/60001/cc/scheduler/begin_frame_source.cc#newcode264 cc/scheduler/begin_frame_source.cc:264: if (obs->LastUsedBeginFrameArgs().sequence_number != current_sequence_number_) On 2017/02/17 20:49:54, brianderson wrote: ...
3 years, 10 months ago (2017-02-17 22:49:35 UTC) #58
Eric Seckler
Brian, PTAL. Thanks! https://codereview.chromium.org/2691453002/diff/60001/cc/scheduler/begin_frame_source.cc File cc/scheduler/begin_frame_source.cc (right): https://codereview.chromium.org/2691453002/diff/60001/cc/scheduler/begin_frame_source.cc#newcode264 cc/scheduler/begin_frame_source.cc:264: if (obs->LastUsedBeginFrameArgs().sequence_number != current_sequence_number_) On 2017/02/17 ...
3 years, 10 months ago (2017-02-21 12:10:57 UTC) #61
brianderson
lgtm
3 years, 10 months ago (2017-02-21 22:28:03 UTC) #64
reveman
components/exo lgtm % nits https://codereview.chromium.org/2691453002/diff/100001/components/exo/compositor_frame_sink_holder.cc File components/exo/compositor_frame_sink_holder.cc (right): https://codereview.chromium.org/2691453002/diff/100001/components/exo/compositor_frame_sink_holder.cc#newcode61 components/exo/compositor_frame_sink_holder.cc:61: // TODO(eseckler): Hook up exo::Surface ...
3 years, 10 months ago (2017-02-21 22:40:05 UTC) #65
Eric Seckler
Thanks! :) https://codereview.chromium.org/2691453002/diff/100001/components/exo/compositor_frame_sink_holder.cc File components/exo/compositor_frame_sink_holder.cc (right): https://codereview.chromium.org/2691453002/diff/100001/components/exo/compositor_frame_sink_holder.cc#newcode61 components/exo/compositor_frame_sink_holder.cc:61: // TODO(eseckler): Hook up exo::Surface to the ...
3 years, 10 months ago (2017-02-22 09:12:35 UTC) #66
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/2691453002/120001
3 years, 10 months ago (2017-02-22 09:13:32 UTC) #69
commit-bot: I haz the power
3 years, 10 months ago (2017-02-22 11:26:07 UTC) #72
Message was sent while issue was closed.
Committed patchset #5 (id:120001) as
https://chromium.googlesource.com/chromium/src/+/fa5fec25bef17c2b0855201a3b0e...

Powered by Google App Engine
This is Rietveld 408576698