| Index: cc/scheduler/begin_frame_source.h
|
| diff --git a/cc/scheduler/begin_frame_source.h b/cc/scheduler/begin_frame_source.h
|
| index c25fff651426ef031f8d22ae2446809f81f2256a..58ee480d01138cc235f49ec13456019bb97b23f1 100644
|
| --- a/cc/scheduler/begin_frame_source.h
|
| +++ b/cc/scheduler/begin_frame_source.h
|
| @@ -104,12 +104,19 @@ class CC_EXPORT BeginFrameSource {
|
| BeginFrameSource();
|
| virtual ~BeginFrameSource() {}
|
|
|
| - // DidFinishFrame provides back pressure to a frame source about frame
|
| - // processing (rather than toggling SetNeedsBeginFrames every frame). It is
|
| - // used by systems like the BackToBackFrameSource to make sure only one frame
|
| - // is pending at a time.
|
| + // BeginFrameObservers use DidFinishFrame to acknowledge that they have
|
| + // completed handling a BeginFrame.
|
| + //
|
| + // The DisplayScheduler uses these acknowledgments to trigger an early
|
| + // deadline once all BeginFrameObservers have completed a frame.
|
| + //
|
| + // They also provide back pressure to a frame source about frame processing
|
| + // (rather than toggling SetNeedsBeginFrames every frame). For example, the
|
| + // BackToBackFrameSource uses them to make sure only one frame is pending at a
|
| + // time.
|
| + // TODO(eseckler): Use BeginFrameAcks in DisplayScheduler as described above.
|
| virtual void DidFinishFrame(BeginFrameObserver* obs,
|
| - size_t remaining_frames) = 0;
|
| + const BeginFrameAck& ack) = 0;
|
|
|
| // Add/Remove an observer from the source. When no observers are added the BFS
|
| // should shut down its timers, disable vsync, etc.
|
| @@ -134,7 +141,7 @@ class CC_EXPORT BeginFrameSource {
|
| class CC_EXPORT StubBeginFrameSource : public BeginFrameSource {
|
| public:
|
| void DidFinishFrame(BeginFrameObserver* obs,
|
| - size_t remaining_frames) override {}
|
| + const BeginFrameAck& ack) override {}
|
| void AddObserver(BeginFrameObserver* obs) override {}
|
| void RemoveObserver(BeginFrameObserver* obs) override {}
|
| bool IsThrottled() const override;
|
| @@ -164,7 +171,7 @@ class CC_EXPORT BackToBackBeginFrameSource : public SyntheticBeginFrameSource,
|
| void AddObserver(BeginFrameObserver* obs) override;
|
| void RemoveObserver(BeginFrameObserver* obs) override;
|
| void DidFinishFrame(BeginFrameObserver* obs,
|
| - size_t remaining_frames) override;
|
| + const BeginFrameAck& ack) override;
|
| bool IsThrottled() const override;
|
|
|
| // SyntheticBeginFrameSource implementation.
|
| @@ -198,7 +205,7 @@ class CC_EXPORT DelayBasedBeginFrameSource : public SyntheticBeginFrameSource,
|
| void AddObserver(BeginFrameObserver* obs) override;
|
| void RemoveObserver(BeginFrameObserver* obs) override;
|
| void DidFinishFrame(BeginFrameObserver* obs,
|
| - size_t remaining_frames) override {}
|
| + const BeginFrameAck& ack) override {}
|
| bool IsThrottled() const override;
|
|
|
| // SyntheticBeginFrameSource implementation.
|
| @@ -243,7 +250,7 @@ class CC_EXPORT ExternalBeginFrameSource : public BeginFrameSource {
|
| void AddObserver(BeginFrameObserver* obs) override;
|
| void RemoveObserver(BeginFrameObserver* obs) override;
|
| void DidFinishFrame(BeginFrameObserver* obs,
|
| - size_t remaining_frames) override {}
|
| + const BeginFrameAck& ack) override {}
|
| bool IsThrottled() const override;
|
|
|
| void OnSetBeginFrameSourcePaused(bool paused);
|
|
|