| Index: cc/animation/animation_host_perftest.cc
|
| diff --git a/cc/animation/animation_host_perftest.cc b/cc/animation/animation_host_perftest.cc
|
| index 3d43ff69450bb3597a3af5908a4f3236893c535a..ca20b3ed23454ebeea3b5df7d5e3748ab1b967f0 100644
|
| --- a/cc/animation/animation_host_perftest.cc
|
| +++ b/cc/animation/animation_host_perftest.cc
|
| @@ -23,6 +23,13 @@ namespace cc {
|
|
|
| class AnimationHostPerfTest : public testing::Test {
|
| protected:
|
| + AnimationHostPerfTest()
|
| + : root_layer_impl_(),
|
| + first_timeline_id_(),
|
| + last_timeline_id_(),
|
| + first_player_id_(),
|
| + last_player_id_() {}
|
| +
|
| void SetUp() override {
|
| LayerTreeSettings settings;
|
| layer_tree_host_ =
|
| @@ -52,12 +59,12 @@ class AnimationHostPerfTest : public testing::Test {
|
| }
|
|
|
| void CreatePlayers(const int num_players) {
|
| - scoped_refptr<AnimationTimeline> timeline =
|
| + all_players_timeline_ =
|
| AnimationTimeline::Create(AnimationIdProvider::NextTimelineId());
|
| - host()->AddAnimationTimeline(timeline);
|
| + host()->AddAnimationTimeline(all_players_timeline_);
|
|
|
| - const int first_player_id = AnimationIdProvider::NextPlayerId();
|
| - int last_player_id = first_player_id;
|
| + first_player_id_ = AnimationIdProvider::NextPlayerId();
|
| + last_player_id_ = first_player_id_;
|
|
|
| for (int i = 0; i < num_players; ++i) {
|
| scoped_refptr<Layer> layer = Layer::Create();
|
| @@ -65,10 +72,10 @@ class AnimationHostPerfTest : public testing::Test {
|
| layer->SetElementId(LayerIdToElementIdForTesting(layer->id()));
|
|
|
| scoped_refptr<AnimationPlayer> player =
|
| - AnimationPlayer::Create(last_player_id);
|
| - last_player_id = AnimationIdProvider::NextPlayerId();
|
| + AnimationPlayer::Create(last_player_id_);
|
| + last_player_id_ = AnimationIdProvider::NextPlayerId();
|
|
|
| - timeline->AttachPlayer(player);
|
| + all_players_timeline_->AttachPlayer(player);
|
| player->AttachElement(layer->element_id());
|
| EXPECT_TRUE(player->element_animations());
|
| }
|
| @@ -78,20 +85,20 @@ class AnimationHostPerfTest : public testing::Test {
|
|
|
| // Check impl instances created.
|
| scoped_refptr<AnimationTimeline> timeline_impl =
|
| - host_impl()->GetTimelineById(timeline->id());
|
| + host_impl()->GetTimelineById(all_players_timeline_->id());
|
| EXPECT_TRUE(timeline_impl);
|
| - for (int i = first_player_id; i < last_player_id; ++i)
|
| + for (int i = first_player_id_; i < last_player_id_; ++i)
|
| EXPECT_TRUE(timeline_impl->GetPlayerById(i));
|
| }
|
|
|
| void CreateTimelines(const int num_timelines) {
|
| - const int first_timeline_id = AnimationIdProvider::NextTimelineId();
|
| - int last_timeline_id = first_timeline_id;
|
| + first_timeline_id_ = AnimationIdProvider::NextTimelineId();
|
| + last_timeline_id_ = first_timeline_id_;
|
|
|
| for (int i = 0; i < num_timelines; ++i) {
|
| scoped_refptr<AnimationTimeline> timeline =
|
| - AnimationTimeline::Create(last_timeline_id);
|
| - last_timeline_id = AnimationIdProvider::NextTimelineId();
|
| + AnimationTimeline::Create(last_timeline_id_);
|
| + last_timeline_id_ = AnimationIdProvider::NextTimelineId();
|
| host()->AddAnimationTimeline(timeline);
|
| }
|
|
|
| @@ -99,13 +106,26 @@ class AnimationHostPerfTest : public testing::Test {
|
| layer_tree_host_->CommitAndCreateLayerImplTree();
|
|
|
| // Check impl instances created.
|
| - for (int i = first_timeline_id; i < last_timeline_id; ++i)
|
| + for (int i = first_timeline_id_; i < last_timeline_id_; ++i)
|
| EXPECT_TRUE(host_impl()->GetTimelineById(i));
|
| }
|
|
|
| + void SetAllTimelinesNeedPushProperties() const {
|
| + for (int i = first_timeline_id_; i < last_timeline_id_; ++i)
|
| + host_impl()->GetTimelineById(i)->SetNeedsPushProperties();
|
| + }
|
| +
|
| + void SetAllPlayersNeedPushProperties() const {
|
| + for (int i = first_player_id_; i < last_player_id_; ++i)
|
| + all_players_timeline_->GetPlayerById(i)->SetNeedsPushProperties();
|
| + }
|
| +
|
| void DoTest() {
|
| timer_.Reset();
|
| do {
|
| + // Invalidate dirty flags.
|
| + SetAllTimelinesNeedPushProperties();
|
| + SetAllPlayersNeedPushProperties();
|
| host()->PushPropertiesTo(host_impl());
|
| timer_.NextLap();
|
| } while (!timer_.HasTimeLimitExpired());
|
| @@ -114,12 +134,19 @@ class AnimationHostPerfTest : public testing::Test {
|
| "runs/s", true);
|
| }
|
|
|
| - protected:
|
| + private:
|
| StubLayerTreeHostSingleThreadClient single_thread_client_;
|
| FakeLayerTreeHostClient fake_client_;
|
| std::unique_ptr<FakeLayerTreeHost> layer_tree_host_;
|
| scoped_refptr<Layer> root_layer_;
|
| LayerImpl* root_layer_impl_;
|
| + scoped_refptr<AnimationTimeline> all_players_timeline_;
|
| +
|
| + int first_timeline_id_;
|
| + int last_timeline_id_;
|
| +
|
| + int first_player_id_;
|
| + int last_player_id_;
|
|
|
| LapTimer timer_;
|
| TestTaskGraphRunner task_graph_runner_;
|
|
|