| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/time/time.h" | 5 #include "base/time/time.h" |
| 6 #include "cc/debug/lap_timer.h" | 6 #include "cc/debug/lap_timer.h" |
| 7 #include "cc/resources/raster_buffer.h" | 7 #include "cc/resources/raster_buffer.h" |
| 8 #include "cc/resources/tile.h" | 8 #include "cc/resources/tile.h" |
| 9 #include "cc/resources/tile_priority.h" | 9 #include "cc/resources/tile_priority.h" |
| 10 #include "cc/test/begin_frame_args_test.h" | 10 #include "cc/test/begin_frame_args_test.h" |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 #include "ui/gfx/frame_time.h" | 27 #include "ui/gfx/frame_time.h" |
| 28 | 28 |
| 29 namespace cc { | 29 namespace cc { |
| 30 | 30 |
| 31 namespace { | 31 namespace { |
| 32 | 32 |
| 33 static const int kTimeLimitMillis = 2000; | 33 static const int kTimeLimitMillis = 2000; |
| 34 static const int kWarmupRuns = 5; | 34 static const int kWarmupRuns = 5; |
| 35 static const int kTimeCheckInterval = 10; | 35 static const int kTimeCheckInterval = 10; |
| 36 | 36 |
| 37 class FakeRasterizerImpl : public Rasterizer, public RasterizerTaskClient { | 37 class FakeTileTaskRunnerImpl : public TileTaskRunner, public TileTaskClient { |
| 38 public: | 38 public: |
| 39 // Overridden from Rasterizer: | 39 // Overridden from TileTaskRunner: |
| 40 void SetClient(RasterizerClient* client) override {} | 40 void SetClient(TileTaskRunnerClient* client) override {} |
| 41 void Shutdown() override {} | 41 void Shutdown() override {} |
| 42 void ScheduleTasks(RasterTaskQueue* queue) override { | 42 void ScheduleTasks(TileTaskQueue* queue) override { |
| 43 for (RasterTaskQueue::Item::Vector::const_iterator it = | 43 for (TileTaskQueue::Item::Vector::const_iterator it = queue->items.begin(); |
| 44 queue->items.begin(); | 44 it != queue->items.end(); ++it) { |
| 45 it != queue->items.end(); | |
| 46 ++it) { | |
| 47 RasterTask* task = it->task; | 45 RasterTask* task = it->task; |
| 48 | 46 |
| 49 task->WillSchedule(); | 47 task->WillSchedule(); |
| 50 task->ScheduleOnOriginThread(this); | 48 task->ScheduleOnOriginThread(this); |
| 51 task->DidSchedule(); | 49 task->DidSchedule(); |
| 52 | 50 |
| 53 completed_tasks_.push_back(task); | 51 completed_tasks_.push_back(task); |
| 54 } | 52 } |
| 55 } | 53 } |
| 56 void CheckForCompletedTasks() override { | 54 void CheckForCompletedTasks() override { |
| 57 for (RasterTask::Vector::iterator it = completed_tasks_.begin(); | 55 for (RasterTask::Vector::iterator it = completed_tasks_.begin(); |
| 58 it != completed_tasks_.end(); | 56 it != completed_tasks_.end(); |
| 59 ++it) { | 57 ++it) { |
| 60 RasterTask* task = it->get(); | 58 RasterTask* task = it->get(); |
| 61 | 59 |
| 62 task->WillComplete(); | 60 task->WillComplete(); |
| 63 task->CompleteOnOriginThread(this); | 61 task->CompleteOnOriginThread(this); |
| 64 task->DidComplete(); | 62 task->DidComplete(); |
| 65 | 63 |
| 66 task->RunReplyOnOriginThread(); | 64 task->RunReplyOnOriginThread(); |
| 67 } | 65 } |
| 68 completed_tasks_.clear(); | 66 completed_tasks_.clear(); |
| 69 } | 67 } |
| 70 | 68 |
| 71 // Overridden from RasterizerTaskClient: | 69 // Overridden from TileTaskClient: |
| 72 scoped_ptr<RasterBuffer> AcquireBufferForRaster( | 70 scoped_ptr<RasterBuffer> AcquireBufferForRaster( |
| 73 const Resource* resource) override { | 71 const Resource* resource) override { |
| 74 return nullptr; | 72 return nullptr; |
| 75 } | 73 } |
| 76 void ReleaseBufferForRaster(scoped_ptr<RasterBuffer> buffer) override {} | 74 void ReleaseBufferForRaster(scoped_ptr<RasterBuffer> buffer) override {} |
| 77 | 75 |
| 78 private: | 76 private: |
| 79 RasterTask::Vector completed_tasks_; | 77 RasterTask::Vector completed_tasks_; |
| 80 }; | 78 }; |
| 81 base::LazyInstance<FakeRasterizerImpl> g_fake_rasterizer = | 79 base::LazyInstance<FakeTileTaskRunnerImpl> g_fake_tile_task_runner = |
| 82 LAZY_INSTANCE_INITIALIZER; | 80 LAZY_INSTANCE_INITIALIZER; |
| 83 | 81 |
| 84 class TileManagerPerfTest : public testing::Test { | 82 class TileManagerPerfTest : public testing::Test { |
| 85 public: | 83 public: |
| 86 TileManagerPerfTest() | 84 TileManagerPerfTest() |
| 87 : memory_limit_policy_(ALLOW_ANYTHING), | 85 : memory_limit_policy_(ALLOW_ANYTHING), |
| 88 max_tiles_(10000), | 86 max_tiles_(10000), |
| 89 id_(7), | 87 id_(7), |
| 90 proxy_(base::MessageLoopProxy::current()), | 88 proxy_(base::MessageLoopProxy::current()), |
| 91 host_impl_(ImplSidePaintingSettings(10000), | 89 host_impl_(ImplSidePaintingSettings(10000), |
| (...skipping 19 matching lines...) Expand all Loading... |
| 111 host_impl_.tile_manager()->SetGlobalStateForTesting(state); | 109 host_impl_.tile_manager()->SetGlobalStateForTesting(state); |
| 112 } | 110 } |
| 113 | 111 |
| 114 void SetUp() override { | 112 void SetUp() override { |
| 115 InitializeRenderer(); | 113 InitializeRenderer(); |
| 116 SetTreePriority(SAME_PRIORITY_FOR_BOTH_TREES); | 114 SetTreePriority(SAME_PRIORITY_FOR_BOTH_TREES); |
| 117 } | 115 } |
| 118 | 116 |
| 119 virtual void InitializeRenderer() { | 117 virtual void InitializeRenderer() { |
| 120 host_impl_.InitializeRenderer(FakeOutputSurface::Create3d().Pass()); | 118 host_impl_.InitializeRenderer(FakeOutputSurface::Create3d().Pass()); |
| 121 tile_manager()->SetRasterizerForTesting(g_fake_rasterizer.Pointer()); | 119 tile_manager()->SetRasterizerForTesting(g_fake_tile_task_runner.Pointer()); |
| 122 } | 120 } |
| 123 | 121 |
| 124 void SetupDefaultTrees(const gfx::Size& layer_bounds) { | 122 void SetupDefaultTrees(const gfx::Size& layer_bounds) { |
| 125 scoped_refptr<FakePicturePileImpl> pending_pile = | 123 scoped_refptr<FakePicturePileImpl> pending_pile = |
| 126 FakePicturePileImpl::CreateFilledPile(kDefaultTileSize, layer_bounds); | 124 FakePicturePileImpl::CreateFilledPile(kDefaultTileSize, layer_bounds); |
| 127 scoped_refptr<FakePicturePileImpl> active_pile = | 125 scoped_refptr<FakePicturePileImpl> active_pile = |
| 128 FakePicturePileImpl::CreateFilledPile(kDefaultTileSize, layer_bounds); | 126 FakePicturePileImpl::CreateFilledPile(kDefaultTileSize, layer_bounds); |
| 129 | 127 |
| 130 SetupTrees(pending_pile, active_pile); | 128 SetupTrees(pending_pile, active_pile); |
| 131 } | 129 } |
| (...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 489 RunEvictionQueueConstructAndIterateTest("10_128", 10, 128); | 487 RunEvictionQueueConstructAndIterateTest("10_128", 10, 128); |
| 490 RunEvictionQueueConstructAndIterateTest("50_16", 50, 16); | 488 RunEvictionQueueConstructAndIterateTest("50_16", 50, 16); |
| 491 RunEvictionQueueConstructAndIterateTest("50_32", 50, 32); | 489 RunEvictionQueueConstructAndIterateTest("50_32", 50, 32); |
| 492 RunEvictionQueueConstructAndIterateTest("50_64", 50, 64); | 490 RunEvictionQueueConstructAndIterateTest("50_64", 50, 64); |
| 493 RunEvictionQueueConstructAndIterateTest("50_128", 50, 128); | 491 RunEvictionQueueConstructAndIterateTest("50_128", 50, 128); |
| 494 } | 492 } |
| 495 | 493 |
| 496 } // namespace | 494 } // namespace |
| 497 | 495 |
| 498 } // namespace cc | 496 } // namespace cc |
| OLD | NEW |