mirror of
https://github.com/encounter/engine.git
synced 2026-03-30 11:09:55 -07:00
Keep track on the layer tree construction time in the animator. (#2968)
This commit is contained in:
@@ -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_;
|
||||
|
||||
Reference in New Issue
Block a user