| Index: cc/layers/picture_layer_impl_perftest.cc
|
| diff --git a/cc/layers/picture_layer_impl_perftest.cc b/cc/layers/picture_layer_impl_perftest.cc
|
| deleted file mode 100644
|
| index 47f49be5501b2841444fbca3df25ab9a175ca8d6..0000000000000000000000000000000000000000
|
| --- a/cc/layers/picture_layer_impl_perftest.cc
|
| +++ /dev/null
|
| @@ -1,264 +0,0 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "cc/layers/picture_layer_impl.h"
|
| -
|
| -#include "cc/debug/lap_timer.h"
|
| -#include "cc/resources/tiling_set_raster_queue_all.h"
|
| -#include "cc/test/fake_impl_proxy.h"
|
| -#include "cc/test/fake_layer_tree_host_impl.h"
|
| -#include "cc/test/fake_output_surface.h"
|
| -#include "cc/test/fake_picture_layer_impl.h"
|
| -#include "cc/test/fake_picture_pile_impl.h"
|
| -#include "cc/test/impl_side_painting_settings.h"
|
| -#include "cc/test/test_shared_bitmap_manager.h"
|
| -#include "cc/test/test_task_graph_runner.h"
|
| -#include "cc/trees/layer_tree_impl.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -#include "testing/perf/perf_test.h"
|
| -
|
| -namespace cc {
|
| -namespace {
|
| -
|
| -static const int kTimeLimitMillis = 2000;
|
| -static const int kWarmupRuns = 5;
|
| -static const int kTimeCheckInterval = 10;
|
| -
|
| -void AddTiling(float scale,
|
| - FakePictureLayerImpl* layer,
|
| - std::vector<Tile*>* all_tiles) {
|
| - PictureLayerTiling* tiling = layer->AddTiling(scale);
|
| -
|
| - tiling->CreateAllTilesForTesting();
|
| - std::vector<Tile*> tiling_tiles = tiling->AllTilesForTesting();
|
| - std::copy(
|
| - tiling_tiles.begin(), tiling_tiles.end(), std::back_inserter(*all_tiles));
|
| -}
|
| -
|
| -class PictureLayerImplPerfTest : public testing::Test {
|
| - public:
|
| - PictureLayerImplPerfTest()
|
| - : proxy_(base::MessageLoopProxy::current()),
|
| - host_impl_(ImplSidePaintingSettings(),
|
| - &proxy_,
|
| - &shared_bitmap_manager_,
|
| - &task_graph_runner_),
|
| - timer_(kWarmupRuns,
|
| - base::TimeDelta::FromMilliseconds(kTimeLimitMillis),
|
| - kTimeCheckInterval) {}
|
| -
|
| - void SetUp() override {
|
| - host_impl_.InitializeRenderer(FakeOutputSurface::Create3d());
|
| - }
|
| -
|
| - void SetupPendingTree(const gfx::Size& layer_bounds,
|
| - const gfx::Size& tile_size) {
|
| - scoped_refptr<FakePicturePileImpl> pile =
|
| - FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
|
| - host_impl_.CreatePendingTree();
|
| - LayerTreeImpl* pending_tree = host_impl_.pending_tree();
|
| - pending_tree->DetachLayerTree();
|
| -
|
| - scoped_ptr<FakePictureLayerImpl> pending_layer =
|
| - FakePictureLayerImpl::CreateWithRasterSource(pending_tree, 7, pile);
|
| - pending_layer->SetDrawsContent(true);
|
| - pending_layer->SetHasRenderSurface(true);
|
| - pending_tree->SetRootLayer(pending_layer.Pass());
|
| -
|
| - pending_layer_ = static_cast<FakePictureLayerImpl*>(
|
| - host_impl_.pending_tree()->LayerById(7));
|
| - }
|
| -
|
| - void RunRasterQueueConstructAndIterateTest(const std::string& test_name,
|
| - int num_tiles,
|
| - const gfx::Size& viewport_size) {
|
| - host_impl_.SetViewportSize(viewport_size);
|
| - bool update_lcd_text = false;
|
| - host_impl_.pending_tree()->UpdateDrawProperties(update_lcd_text);
|
| -
|
| - timer_.Reset();
|
| - do {
|
| - int count = num_tiles;
|
| - scoped_ptr<TilingSetRasterQueueAll> queue(new TilingSetRasterQueueAll(
|
| - pending_layer_->picture_layer_tiling_set(), false));
|
| - while (count--) {
|
| - ASSERT_TRUE(!queue->IsEmpty()) << "count: " << count;
|
| - ASSERT_TRUE(queue->Top() != nullptr) << "count: " << count;
|
| - queue->Pop();
|
| - }
|
| - timer_.NextLap();
|
| - } while (!timer_.HasTimeLimitExpired());
|
| -
|
| - perf_test::PrintResult("tiling_set_raster_queue_construct_and_iterate", "",
|
| - test_name, timer_.LapsPerSecond(), "runs/s", true);
|
| - }
|
| -
|
| - void RunRasterQueueConstructTest(const std::string& test_name,
|
| - const gfx::Rect& viewport) {
|
| - host_impl_.SetViewportSize(viewport.size());
|
| - pending_layer_->PushScrollOffsetFromMainThread(
|
| - gfx::ScrollOffset(viewport.x(), viewport.y()));
|
| - bool update_lcd_text = false;
|
| - host_impl_.pending_tree()->UpdateDrawProperties(update_lcd_text);
|
| -
|
| - timer_.Reset();
|
| - do {
|
| - scoped_ptr<TilingSetRasterQueueAll> queue(new TilingSetRasterQueueAll(
|
| - pending_layer_->picture_layer_tiling_set(), false));
|
| - timer_.NextLap();
|
| - } while (!timer_.HasTimeLimitExpired());
|
| -
|
| - perf_test::PrintResult("tiling_set_raster_queue_construct", "", test_name,
|
| - timer_.LapsPerSecond(), "runs/s", true);
|
| - }
|
| -
|
| - void RunEvictionQueueConstructAndIterateTest(
|
| - const std::string& test_name,
|
| - int num_tiles,
|
| - const gfx::Size& viewport_size) {
|
| - host_impl_.SetViewportSize(viewport_size);
|
| - bool update_lcd_text = false;
|
| - host_impl_.pending_tree()->UpdateDrawProperties(update_lcd_text);
|
| -
|
| - TreePriority priorities[] = {SAME_PRIORITY_FOR_BOTH_TREES,
|
| - SMOOTHNESS_TAKES_PRIORITY,
|
| - NEW_CONTENT_TAKES_PRIORITY};
|
| - int priority_count = 0;
|
| - timer_.Reset();
|
| - do {
|
| - int count = num_tiles;
|
| - scoped_ptr<TilingSetEvictionQueue> queue(
|
| - new TilingSetEvictionQueue(pending_layer_->picture_layer_tiling_set(),
|
| - priorities[priority_count], false));
|
| - while (count--) {
|
| - ASSERT_TRUE(!queue->IsEmpty()) << "count: " << count;
|
| - ASSERT_TRUE(queue->Top() != nullptr) << "count: " << count;
|
| - queue->Pop();
|
| - }
|
| - priority_count = (priority_count + 1) % arraysize(priorities);
|
| - timer_.NextLap();
|
| - } while (!timer_.HasTimeLimitExpired());
|
| -
|
| - perf_test::PrintResult("tiling_set_eviction_queue_construct_and_iterate",
|
| - "", test_name, timer_.LapsPerSecond(), "runs/s",
|
| - true);
|
| - }
|
| -
|
| - void RunEvictionQueueConstructTest(const std::string& test_name,
|
| - const gfx::Rect& viewport) {
|
| - host_impl_.SetViewportSize(viewport.size());
|
| - pending_layer_->PushScrollOffsetFromMainThread(
|
| - gfx::ScrollOffset(viewport.x(), viewport.y()));
|
| - bool update_lcd_text = false;
|
| - host_impl_.pending_tree()->UpdateDrawProperties(update_lcd_text);
|
| -
|
| - TreePriority priorities[] = {SAME_PRIORITY_FOR_BOTH_TREES,
|
| - SMOOTHNESS_TAKES_PRIORITY,
|
| - NEW_CONTENT_TAKES_PRIORITY};
|
| - int priority_count = 0;
|
| - timer_.Reset();
|
| - do {
|
| - scoped_ptr<TilingSetEvictionQueue> queue(
|
| - new TilingSetEvictionQueue(pending_layer_->picture_layer_tiling_set(),
|
| - priorities[priority_count], false));
|
| - priority_count = (priority_count + 1) % arraysize(priorities);
|
| - timer_.NextLap();
|
| - } while (!timer_.HasTimeLimitExpired());
|
| -
|
| - perf_test::PrintResult("tiling_set_eviction_queue_construct", "", test_name,
|
| - timer_.LapsPerSecond(), "runs/s", true);
|
| - }
|
| -
|
| - protected:
|
| - TestSharedBitmapManager shared_bitmap_manager_;
|
| - TestTaskGraphRunner task_graph_runner_;
|
| - FakeImplProxy proxy_;
|
| - FakeLayerTreeHostImpl host_impl_;
|
| - FakePictureLayerImpl* pending_layer_;
|
| - LapTimer timer_;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(PictureLayerImplPerfTest);
|
| -};
|
| -
|
| -TEST_F(PictureLayerImplPerfTest, TilingSetRasterQueueConstructAndIterate) {
|
| - SetupPendingTree(gfx::Size(10000, 10000), gfx::Size(256, 256));
|
| -
|
| - float low_res_factor = host_impl_.settings().low_res_contents_scale_factor;
|
| -
|
| - pending_layer_->AddTiling(low_res_factor);
|
| - pending_layer_->AddTiling(0.3f);
|
| - pending_layer_->AddTiling(0.7f);
|
| - pending_layer_->AddTiling(1.0f);
|
| - pending_layer_->AddTiling(2.0f);
|
| -
|
| - RunRasterQueueConstructAndIterateTest("32_100x100", 32, gfx::Size(100, 100));
|
| - RunRasterQueueConstructAndIterateTest("32_500x500", 32, gfx::Size(500, 500));
|
| - RunRasterQueueConstructAndIterateTest("64_100x100", 64, gfx::Size(100, 100));
|
| - RunRasterQueueConstructAndIterateTest("64_500x500", 64, gfx::Size(500, 500));
|
| -}
|
| -
|
| -TEST_F(PictureLayerImplPerfTest, TilingSetRasterQueueConstruct) {
|
| - SetupPendingTree(gfx::Size(10000, 10000), gfx::Size(256, 256));
|
| -
|
| - float low_res_factor = host_impl_.settings().low_res_contents_scale_factor;
|
| -
|
| - pending_layer_->AddTiling(low_res_factor);
|
| - pending_layer_->AddTiling(0.3f);
|
| - pending_layer_->AddTiling(0.7f);
|
| - pending_layer_->AddTiling(1.0f);
|
| - pending_layer_->AddTiling(2.0f);
|
| -
|
| - RunRasterQueueConstructTest("0_0_100x100", gfx::Rect(0, 0, 100, 100));
|
| - RunRasterQueueConstructTest("5000_0_100x100", gfx::Rect(5000, 0, 100, 100));
|
| - RunRasterQueueConstructTest("9999_0_100x100", gfx::Rect(9999, 0, 100, 100));
|
| -}
|
| -
|
| -TEST_F(PictureLayerImplPerfTest, TilingSetEvictionQueueConstructAndIterate) {
|
| - SetupPendingTree(gfx::Size(10000, 10000), gfx::Size(256, 256));
|
| -
|
| - float low_res_factor = host_impl_.settings().low_res_contents_scale_factor;
|
| -
|
| - std::vector<Tile*> all_tiles;
|
| - AddTiling(low_res_factor, pending_layer_, &all_tiles);
|
| - AddTiling(0.3f, pending_layer_, &all_tiles);
|
| - AddTiling(0.7f, pending_layer_, &all_tiles);
|
| - AddTiling(1.0f, pending_layer_, &all_tiles);
|
| - AddTiling(2.0f, pending_layer_, &all_tiles);
|
| -
|
| - ASSERT_TRUE(host_impl_.tile_manager() != nullptr);
|
| - host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(all_tiles);
|
| -
|
| - RunEvictionQueueConstructAndIterateTest(
|
| - "32_100x100", 32, gfx::Size(100, 100));
|
| - RunEvictionQueueConstructAndIterateTest(
|
| - "32_500x500", 32, gfx::Size(500, 500));
|
| - RunEvictionQueueConstructAndIterateTest(
|
| - "64_100x100", 64, gfx::Size(100, 100));
|
| - RunEvictionQueueConstructAndIterateTest(
|
| - "64_500x500", 64, gfx::Size(500, 500));
|
| -}
|
| -
|
| -TEST_F(PictureLayerImplPerfTest, TilingSetEvictionQueueConstruct) {
|
| - SetupPendingTree(gfx::Size(10000, 10000), gfx::Size(256, 256));
|
| -
|
| - float low_res_factor = host_impl_.settings().low_res_contents_scale_factor;
|
| -
|
| - std::vector<Tile*> all_tiles;
|
| - AddTiling(low_res_factor, pending_layer_, &all_tiles);
|
| - AddTiling(0.3f, pending_layer_, &all_tiles);
|
| - AddTiling(0.7f, pending_layer_, &all_tiles);
|
| - AddTiling(1.0f, pending_layer_, &all_tiles);
|
| - AddTiling(2.0f, pending_layer_, &all_tiles);
|
| -
|
| - ASSERT_TRUE(host_impl_.tile_manager() != nullptr);
|
| - host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(all_tiles);
|
| -
|
| - RunEvictionQueueConstructTest("0_0_100x100", gfx::Rect(0, 0, 100, 100));
|
| - RunEvictionQueueConstructTest("5000_0_100x100", gfx::Rect(5000, 0, 100, 100));
|
| - RunEvictionQueueConstructTest("9999_0_100x100", gfx::Rect(9999, 0, 100, 100));
|
| -}
|
| -
|
| -} // namespace
|
| -} // namespace cc
|
|
|