Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(46)

Side by Side Diff: cc/tiles/tile_manager_perftest.cc

Issue 1910213005: cc: Refactor TileTaskWorkerPool. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@task_states
Patch Set: nits Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include "base/lazy_instance.h" 8 #include "base/lazy_instance.h"
9 #include "base/location.h" 9 #include "base/location.h"
10 #include "base/thread_task_runner_handle.h" 10 #include "base/thread_task_runner_handle.h"
(...skipping 23 matching lines...) Expand all
34 namespace { 34 namespace {
35 35
36 static const int kTimeLimitMillis = 2000; 36 static const int kTimeLimitMillis = 2000;
37 static const int kWarmupRuns = 5; 37 static const int kWarmupRuns = 5;
38 static const int kTimeCheckInterval = 10; 38 static const int kTimeCheckInterval = 10;
39 39
40 class FakeTileTaskWorkerPoolImpl : public TileTaskWorkerPool, 40 class FakeTileTaskWorkerPoolImpl : public TileTaskWorkerPool,
41 public RasterBufferProvider { 41 public RasterBufferProvider {
42 public: 42 public:
43 // Overridden from TileTaskWorkerPool: 43 // Overridden from TileTaskWorkerPool:
44 void BarrierToSyncResources() override {}
45 ResourceFormat GetResourceFormat(bool must_support_alpha) const override {
46 return RGBA_8888;
47 }
48 bool GetResourceRequiresSwizzle(bool must_support_alpha) const override {
49 return ResourceFormatRequiresSwizzle(GetResourceFormat(must_support_alpha));
50 }
51 RasterBufferProvider* AsRasterBufferProvider() override { return this; }
52
53 // Overridden from RasterBufferProvider:
54 std::unique_ptr<RasterBuffer> AcquireBufferForRaster(
55 const Resource* resource,
56 uint64_t new_content_id,
57 uint64_t previous_content_id) override {
58 return nullptr;
59 }
60 void ReleaseBufferForRaster(std::unique_ptr<RasterBuffer> buffer) override {}
61 };
62
63 class FakeTileTaskManager : public TileTaskManager {
ericrk 2016/04/25 20:56:07 This looks like the same code from fake_tile_manag
64 public:
65 FakeTileTaskManager()
66 : TileTaskManager(base::WrapUnique<TileTaskWorkerPool>(
67 new FakeTileTaskWorkerPoolImpl)) {}
68 ~FakeTileTaskManager() override {}
44 void Shutdown() override {} 69 void Shutdown() override {}
45 void ScheduleTasks(TaskGraph* graph) override { 70 void ScheduleTasks(TaskGraph* graph) override {
46 for (auto& node : graph->nodes) { 71 for (auto& node : graph->nodes) {
47 TileTask* task = static_cast<TileTask*>(node.task); 72 TileTask* task = static_cast<TileTask*>(node.task);
48 73
49 task->WillSchedule(); 74 task->WillSchedule();
50 task->ScheduleOnOriginThread(this); 75 task->ScheduleOnOriginThread(
76 tile_task_worker_pool_->AsRasterBufferProvider());
51 task->DidSchedule(); 77 task->DidSchedule();
52 78
53 completed_tasks_.push_back(task); 79 completed_tasks_.push_back(task);
54 } 80 }
55 } 81 }
56 void CheckForCompletedTasks() override { 82 void CheckForCompletedTasks() override {
57 for (TileTask::Vector::iterator it = completed_tasks_.begin(); 83 for (TileTask::Vector::iterator it = completed_tasks_.begin();
58 it != completed_tasks_.end(); ++it) { 84 it != completed_tasks_.end(); ++it) {
59 TileTask* task = it->get(); 85 TileTask* task = it->get();
60 86
61 task->WillComplete(); 87 task->WillComplete();
62 task->CompleteOnOriginThread(this); 88 task->CompleteOnOriginThread(
89 tile_task_worker_pool_->AsRasterBufferProvider());
63 task->DidComplete(); 90 task->DidComplete();
64 } 91 }
65 completed_tasks_.clear(); 92 completed_tasks_.clear();
66 } 93 }
67 ResourceFormat GetResourceFormat(bool must_support_alpha) const override { 94
68 return RGBA_8888; 95 // Get TileTaskWorkerPool.
96 TileTaskWorkerPool* GetTileTaskWorkerPool() const override {
97 return tile_task_worker_pool_.get();
69 } 98 }
70 bool GetResourceRequiresSwizzle(bool must_support_alpha) const override {
71 return ResourceFormatRequiresSwizzle(GetResourceFormat(must_support_alpha));
72 }
73 RasterBufferProvider* AsRasterBufferProvider() override { return this; }
74
75 // Overridden from RasterBufferProvider:
76 std::unique_ptr<RasterBuffer> AcquireBufferForRaster(
77 const Resource* resource,
78 uint64_t new_content_id,
79 uint64_t previous_content_id) override {
80 return nullptr;
81 }
82 void ReleaseBufferForRaster(std::unique_ptr<RasterBuffer> buffer) override {}
83 99
84 private: 100 private:
85 TileTask::Vector completed_tasks_; 101 TileTask::Vector completed_tasks_;
86 }; 102 };
87 base::LazyInstance<FakeTileTaskWorkerPoolImpl> g_fake_tile_task_worker_pool = 103
104 base::LazyInstance<FakeTileTaskManager> g_fake_tile_task_manager =
88 LAZY_INSTANCE_INITIALIZER; 105 LAZY_INSTANCE_INITIALIZER;
89 106
90 class TileManagerPerfTest : public testing::Test { 107 class TileManagerPerfTest : public testing::Test {
91 public: 108 public:
92 TileManagerPerfTest() 109 TileManagerPerfTest()
93 : memory_limit_policy_(ALLOW_ANYTHING), 110 : memory_limit_policy_(ALLOW_ANYTHING),
94 max_tiles_(10000), 111 max_tiles_(10000),
95 id_(7), 112 id_(7),
96 task_runner_provider_(base::ThreadTaskRunnerHandle::Get()), 113 task_runner_provider_(base::ThreadTaskRunnerHandle::Get()),
97 output_surface_(FakeOutputSurface::Create3d()), 114 output_surface_(FakeOutputSurface::Create3d()),
(...skipping 22 matching lines...) Expand all
120 } 137 }
121 138
122 void SetUp() override { 139 void SetUp() override {
123 InitializeRenderer(); 140 InitializeRenderer();
124 SetTreePriority(SAME_PRIORITY_FOR_BOTH_TREES); 141 SetTreePriority(SAME_PRIORITY_FOR_BOTH_TREES);
125 } 142 }
126 143
127 virtual void InitializeRenderer() { 144 virtual void InitializeRenderer() {
128 host_impl_.SetVisible(true); 145 host_impl_.SetVisible(true);
129 host_impl_.InitializeRenderer(output_surface_.get()); 146 host_impl_.InitializeRenderer(output_surface_.get());
130 tile_manager()->SetTileTaskWorkerPoolForTesting( 147 tile_manager()->SetTileTaskManagerForTesting(
131 g_fake_tile_task_worker_pool.Pointer()); 148 g_fake_tile_task_manager.Pointer());
132 } 149 }
133 150
134 void SetupDefaultTrees(const gfx::Size& layer_bounds) { 151 void SetupDefaultTrees(const gfx::Size& layer_bounds) {
135 scoped_refptr<FakeRasterSource> pending_raster_source = 152 scoped_refptr<FakeRasterSource> pending_raster_source =
136 FakeRasterSource::CreateFilled(layer_bounds); 153 FakeRasterSource::CreateFilled(layer_bounds);
137 scoped_refptr<FakeRasterSource> active_raster_source = 154 scoped_refptr<FakeRasterSource> active_raster_source =
138 FakeRasterSource::CreateFilled(layer_bounds); 155 FakeRasterSource::CreateFilled(layer_bounds);
139 156
140 SetupTrees(pending_raster_source, active_raster_source); 157 SetupTrees(pending_raster_source, active_raster_source);
141 } 158 }
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after
478 RunEvictionQueueConstructAndIterateTest("10_64", 10, 64); 495 RunEvictionQueueConstructAndIterateTest("10_64", 10, 64);
479 RunEvictionQueueConstructAndIterateTest("10_128", 10, 128); 496 RunEvictionQueueConstructAndIterateTest("10_128", 10, 128);
480 RunEvictionQueueConstructAndIterateTest("50_16", 50, 16); 497 RunEvictionQueueConstructAndIterateTest("50_16", 50, 16);
481 RunEvictionQueueConstructAndIterateTest("50_32", 50, 32); 498 RunEvictionQueueConstructAndIterateTest("50_32", 50, 32);
482 RunEvictionQueueConstructAndIterateTest("50_64", 50, 64); 499 RunEvictionQueueConstructAndIterateTest("50_64", 50, 64);
483 RunEvictionQueueConstructAndIterateTest("50_128", 50, 128); 500 RunEvictionQueueConstructAndIterateTest("50_128", 50, 128);
484 } 501 }
485 502
486 } // namespace 503 } // namespace
487 } // namespace cc 504 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698