summaryrefslogtreecommitdiff
path: root/chromium/cc/scheduler/scheduler.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/cc/scheduler/scheduler.h')
-rw-r--r--chromium/cc/scheduler/scheduler.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/chromium/cc/scheduler/scheduler.h b/chromium/cc/scheduler/scheduler.h
index eb0ba20ac57..3784cda0bb1 100644
--- a/chromium/cc/scheduler/scheduler.h
+++ b/chromium/cc/scheduler/scheduler.h
@@ -22,6 +22,7 @@
#include "components/viz/common/frame_sinks/begin_frame_args.h"
#include "components/viz/common/frame_sinks/begin_frame_source.h"
#include "components/viz/common/frame_sinks/delay_based_time_source.h"
+#include "ui/gfx/rendering_pipeline.h"
namespace perfetto {
namespace protos {
@@ -97,7 +98,9 @@ class CC_EXPORT Scheduler : public viz::BeginFrameObserverBase {
const SchedulerSettings& scheduler_settings,
int layer_tree_host_id,
base::SingleThreadTaskRunner* task_runner,
- std::unique_ptr<CompositorTimingHistory> compositor_timing_history);
+ std::unique_ptr<CompositorTimingHistory> compositor_timing_history,
+ gfx::RenderingPipeline* main_thread_pipeline,
+ gfx::RenderingPipeline* compositor_thread_pipeline);
Scheduler(const Scheduler&) = delete;
~Scheduler() override;
@@ -175,7 +178,8 @@ class CC_EXPORT Scheduler : public viz::BeginFrameObserverBase {
// Drawing should result in submitting a CompositorFrame to the
// LayerTreeFrameSink and then calling this.
void DidSubmitCompositorFrame(uint32_t frame_token,
- EventMetricsSet events_metrics);
+ EventMetricsSet events_metrics,
+ bool has_missing_content);
// The LayerTreeFrameSink acks when it is ready for a new frame which
// should result in this getting called to unblock the next draw.
void DidReceiveCompositorFrameAck();
@@ -328,6 +332,14 @@ class CC_EXPORT Scheduler : public viz::BeginFrameObserverBase {
// arrive so that |client_| can be informed about changes.
base::TimeDelta last_frame_interval_;
+ gfx::RenderingPipeline* const main_thread_pipeline_;
+ base::Optional<gfx::RenderingPipeline::ScopedPipelineActive>
+ main_thread_pipeline_active_;
+
+ gfx::RenderingPipeline* const compositor_thread_pipeline_;
+ base::Optional<gfx::RenderingPipeline::ScopedPipelineActive>
+ compositor_thread_pipeline_active_;
+
private:
// Posts the deadline task if needed by checking
// SchedulerStateMachine::CurrentBeginImplFrameDeadlineMode(). This only