提交 dcd38745 编写于 作者: C Chinmay Garde 提交者: GitHub

Keep track on the layer tree construction time in the animator. (#2968)

上级 d35e0805
......@@ -20,6 +20,7 @@ namespace flow {
class LayerTree {
public:
LayerTree();
~LayerTree();
void Raster(CompositorContext::ScopedFrame& frame);
......@@ -41,6 +42,7 @@ class LayerTree {
void set_frame_size(const SkISize& frame_size) { frame_size_ = frame_size; }
uint32_t scene_version() const { return scene_version_; }
void set_scene_version(uint32_t scene_version) {
scene_version_ = scene_version;
}
......
......@@ -64,10 +64,17 @@ void Animator::BeginFrame(int64_t time_stamp) {
// to service potential frame.
DCHECK(producer_continuation_);
engine_->BeginFrame(ftl::TimePoint::Now());
last_begin_frame_time_ = ftl::TimePoint::Now();
engine_->BeginFrame(last_begin_frame_time_);
}
void Animator::Render(std::unique_ptr<flow::LayerTree> layer_tree) {
if (layer_tree) {
// Note the frame time for instrumentation.
layer_tree->set_construction_time(ftl::TimePoint::Now() -
last_begin_frame_time_);
}
// Commit the pending continuation.
producer_continuation_.Complete(std::move(layer_tree));
......
......@@ -45,6 +45,7 @@ class Animator {
Engine* engine_;
vsync::VSyncProviderPtr vsync_provider_;
vsync::VSyncProviderPtr fallback_vsync_provider_;
ftl::TimePoint last_begin_frame_time_;
ftl::RefPtr<LayerTreePipeline> layer_tree_pipeline_;
flutter::Semaphore pending_frame_semaphore_;
LayerTreePipeline::ProducerContinuation producer_continuation_;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册