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

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

Issue 1866203004: Convert //cc from scoped_ptr to std::unique_ptr. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: scopedptrcc: rebase 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
« no previous file with comments | « cc/tiles/tile_manager.cc ('k') | cc/tiles/tile_manager_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 completed_tasks_.clear(); 64 completed_tasks_.clear();
65 } 65 }
66 ResourceFormat GetResourceFormat(bool must_support_alpha) const override { 66 ResourceFormat GetResourceFormat(bool must_support_alpha) const override {
67 return RGBA_8888; 67 return RGBA_8888;
68 } 68 }
69 bool GetResourceRequiresSwizzle(bool must_support_alpha) const override { 69 bool GetResourceRequiresSwizzle(bool must_support_alpha) const override {
70 return ResourceFormatRequiresSwizzle(GetResourceFormat(must_support_alpha)); 70 return ResourceFormatRequiresSwizzle(GetResourceFormat(must_support_alpha));
71 } 71 }
72 72
73 // Overridden from TileTaskClient: 73 // Overridden from TileTaskClient:
74 scoped_ptr<RasterBuffer> AcquireBufferForRaster( 74 std::unique_ptr<RasterBuffer> AcquireBufferForRaster(
75 const Resource* resource, 75 const Resource* resource,
76 uint64_t new_content_id, 76 uint64_t new_content_id,
77 uint64_t previous_content_id) override { 77 uint64_t previous_content_id) override {
78 return nullptr; 78 return nullptr;
79 } 79 }
80 void ReleaseBufferForRaster(scoped_ptr<RasterBuffer> buffer) override {} 80 void ReleaseBufferForRaster(std::unique_ptr<RasterBuffer> buffer) override {}
81 81
82 private: 82 private:
83 TileTask::Vector completed_tasks_; 83 TileTask::Vector completed_tasks_;
84 }; 84 };
85 base::LazyInstance<FakeTileTaskRunnerImpl> g_fake_tile_task_runner = 85 base::LazyInstance<FakeTileTaskRunnerImpl> g_fake_tile_task_runner =
86 LAZY_INSTANCE_INITIALIZER; 86 LAZY_INSTANCE_INITIALIZER;
87 87
88 class TileManagerPerfTest : public testing::Test { 88 class TileManagerPerfTest : public testing::Test {
89 public: 89 public:
90 TileManagerPerfTest() 90 TileManagerPerfTest()
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 ActivateTree(); 159 ActivateTree();
160 SetupPendingTree(pending_raster_source); 160 SetupPendingTree(pending_raster_source);
161 } 161 }
162 162
163 void SetupPendingTree(scoped_refptr<RasterSource> raster_source) { 163 void SetupPendingTree(scoped_refptr<RasterSource> raster_source) {
164 host_impl_.CreatePendingTree(); 164 host_impl_.CreatePendingTree();
165 LayerTreeImpl* pending_tree = host_impl_.pending_tree(); 165 LayerTreeImpl* pending_tree = host_impl_.pending_tree();
166 // Clear recycled tree. 166 // Clear recycled tree.
167 pending_tree->ClearLayers(); 167 pending_tree->ClearLayers();
168 168
169 scoped_ptr<FakePictureLayerImpl> pending_layer = 169 std::unique_ptr<FakePictureLayerImpl> pending_layer =
170 FakePictureLayerImpl::CreateWithRasterSource(pending_tree, id_, 170 FakePictureLayerImpl::CreateWithRasterSource(pending_tree, id_,
171 raster_source); 171 raster_source);
172 pending_layer->SetDrawsContent(true); 172 pending_layer->SetDrawsContent(true);
173 pending_layer->SetForceRenderSurface(true); 173 pending_layer->SetForceRenderSurface(true);
174 pending_tree->SetRootLayer(std::move(pending_layer)); 174 pending_tree->SetRootLayer(std::move(pending_layer));
175 pending_tree->BuildPropertyTreesForTesting(); 175 pending_tree->BuildPropertyTreesForTesting();
176 176
177 pending_root_layer_ = static_cast<FakePictureLayerImpl*>( 177 pending_root_layer_ = static_cast<FakePictureLayerImpl*>(
178 host_impl_.pending_tree()->LayerById(id_)); 178 host_impl_.pending_tree()->LayerById(id_));
179 } 179 }
180 180
181 void RunRasterQueueConstructTest(const std::string& test_name, 181 void RunRasterQueueConstructTest(const std::string& test_name,
182 int layer_count) { 182 int layer_count) {
183 TreePriority priorities[] = {SAME_PRIORITY_FOR_BOTH_TREES, 183 TreePriority priorities[] = {SAME_PRIORITY_FOR_BOTH_TREES,
184 SMOOTHNESS_TAKES_PRIORITY, 184 SMOOTHNESS_TAKES_PRIORITY,
185 NEW_CONTENT_TAKES_PRIORITY}; 185 NEW_CONTENT_TAKES_PRIORITY};
186 int priority_count = 0; 186 int priority_count = 0;
187 187
188 std::vector<FakePictureLayerImpl*> layers = CreateLayers(layer_count, 10); 188 std::vector<FakePictureLayerImpl*> layers = CreateLayers(layer_count, 10);
189 for (const auto& layer : layers) 189 for (const auto& layer : layers)
190 layer->UpdateTiles(); 190 layer->UpdateTiles();
191 191
192 timer_.Reset(); 192 timer_.Reset();
193 do { 193 do {
194 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( 194 std::unique_ptr<RasterTilePriorityQueue> queue(
195 priorities[priority_count], RasterTilePriorityQueue::Type::ALL)); 195 host_impl_.BuildRasterQueue(priorities[priority_count],
196 RasterTilePriorityQueue::Type::ALL));
196 priority_count = (priority_count + 1) % arraysize(priorities); 197 priority_count = (priority_count + 1) % arraysize(priorities);
197 timer_.NextLap(); 198 timer_.NextLap();
198 } while (!timer_.HasTimeLimitExpired()); 199 } while (!timer_.HasTimeLimitExpired());
199 200
200 perf_test::PrintResult("tile_manager_raster_tile_queue_construct", 201 perf_test::PrintResult("tile_manager_raster_tile_queue_construct",
201 "", 202 "",
202 test_name, 203 test_name,
203 timer_.LapsPerSecond(), 204 timer_.LapsPerSecond(),
204 "runs/s", 205 "runs/s",
205 true); 206 true);
206 } 207 }
207 208
208 void RunRasterQueueConstructAndIterateTest(const std::string& test_name, 209 void RunRasterQueueConstructAndIterateTest(const std::string& test_name,
209 int layer_count, 210 int layer_count,
210 int tile_count) { 211 int tile_count) {
211 TreePriority priorities[] = {SAME_PRIORITY_FOR_BOTH_TREES, 212 TreePriority priorities[] = {SAME_PRIORITY_FOR_BOTH_TREES,
212 SMOOTHNESS_TAKES_PRIORITY, 213 SMOOTHNESS_TAKES_PRIORITY,
213 NEW_CONTENT_TAKES_PRIORITY}; 214 NEW_CONTENT_TAKES_PRIORITY};
214 215
215 std::vector<FakePictureLayerImpl*> layers = CreateLayers(layer_count, 100); 216 std::vector<FakePictureLayerImpl*> layers = CreateLayers(layer_count, 100);
216 for (const auto& layer : layers) 217 for (const auto& layer : layers)
217 layer->UpdateTiles(); 218 layer->UpdateTiles();
218 219
219 int priority_count = 0; 220 int priority_count = 0;
220 timer_.Reset(); 221 timer_.Reset();
221 do { 222 do {
222 int count = tile_count; 223 int count = tile_count;
223 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( 224 std::unique_ptr<RasterTilePriorityQueue> queue(
224 priorities[priority_count], RasterTilePriorityQueue::Type::ALL)); 225 host_impl_.BuildRasterQueue(priorities[priority_count],
226 RasterTilePriorityQueue::Type::ALL));
225 while (count--) { 227 while (count--) {
226 ASSERT_FALSE(queue->IsEmpty()); 228 ASSERT_FALSE(queue->IsEmpty());
227 ASSERT_TRUE(queue->Top().tile()); 229 ASSERT_TRUE(queue->Top().tile());
228 queue->Pop(); 230 queue->Pop();
229 } 231 }
230 priority_count = (priority_count + 1) % arraysize(priorities); 232 priority_count = (priority_count + 1) % arraysize(priorities);
231 timer_.NextLap(); 233 timer_.NextLap();
232 } while (!timer_.HasTimeLimitExpired()); 234 } while (!timer_.HasTimeLimitExpired());
233 235
234 perf_test::PrintResult( 236 perf_test::PrintResult(
(...skipping 16 matching lines...) Expand all
251 for (const auto& layer : layers) { 253 for (const auto& layer : layers) {
252 layer->UpdateTiles(); 254 layer->UpdateTiles();
253 for (size_t i = 0; i < layer->num_tilings(); ++i) { 255 for (size_t i = 0; i < layer->num_tilings(); ++i) {
254 tile_manager()->InitializeTilesWithResourcesForTesting( 256 tile_manager()->InitializeTilesWithResourcesForTesting(
255 layer->tilings()->tiling_at(i)->AllTilesForTesting()); 257 layer->tilings()->tiling_at(i)->AllTilesForTesting());
256 } 258 }
257 } 259 }
258 260
259 timer_.Reset(); 261 timer_.Reset();
260 do { 262 do {
261 scoped_ptr<EvictionTilePriorityQueue> queue( 263 std::unique_ptr<EvictionTilePriorityQueue> queue(
262 host_impl_.BuildEvictionQueue(priorities[priority_count])); 264 host_impl_.BuildEvictionQueue(priorities[priority_count]));
263 priority_count = (priority_count + 1) % arraysize(priorities); 265 priority_count = (priority_count + 1) % arraysize(priorities);
264 timer_.NextLap(); 266 timer_.NextLap();
265 } while (!timer_.HasTimeLimitExpired()); 267 } while (!timer_.HasTimeLimitExpired());
266 268
267 perf_test::PrintResult("tile_manager_eviction_tile_queue_construct", 269 perf_test::PrintResult("tile_manager_eviction_tile_queue_construct",
268 "", 270 "",
269 test_name, 271 test_name,
270 timer_.LapsPerSecond(), 272 timer_.LapsPerSecond(),
271 "runs/s", 273 "runs/s",
(...skipping 14 matching lines...) Expand all
286 layer->UpdateTiles(); 288 layer->UpdateTiles();
287 for (size_t i = 0; i < layer->num_tilings(); ++i) { 289 for (size_t i = 0; i < layer->num_tilings(); ++i) {
288 tile_manager()->InitializeTilesWithResourcesForTesting( 290 tile_manager()->InitializeTilesWithResourcesForTesting(
289 layer->tilings()->tiling_at(i)->AllTilesForTesting()); 291 layer->tilings()->tiling_at(i)->AllTilesForTesting());
290 } 292 }
291 } 293 }
292 294
293 timer_.Reset(); 295 timer_.Reset();
294 do { 296 do {
295 int count = tile_count; 297 int count = tile_count;
296 scoped_ptr<EvictionTilePriorityQueue> queue( 298 std::unique_ptr<EvictionTilePriorityQueue> queue(
297 host_impl_.BuildEvictionQueue(priorities[priority_count])); 299 host_impl_.BuildEvictionQueue(priorities[priority_count]));
298 while (count--) { 300 while (count--) {
299 ASSERT_FALSE(queue->IsEmpty()); 301 ASSERT_FALSE(queue->IsEmpty());
300 ASSERT_TRUE(queue->Top().tile()); 302 ASSERT_TRUE(queue->Top().tile());
301 queue->Pop(); 303 queue->Pop();
302 } 304 }
303 priority_count = (priority_count + 1) % arraysize(priorities); 305 priority_count = (priority_count + 1) % arraysize(priorities);
304 timer_.NextLap(); 306 timer_.NextLap();
305 } while (!timer_.HasTimeLimitExpired()); 307 } while (!timer_.HasTimeLimitExpired());
306 308
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 std::vector<FakePictureLayerImpl*> layers; 345 std::vector<FakePictureLayerImpl*> layers;
344 346
345 // Pending layer counts as one layer. 347 // Pending layer counts as one layer.
346 layers.push_back(pending_root_layer_); 348 layers.push_back(pending_root_layer_);
347 int next_id = id_ + 1; 349 int next_id = id_ + 1;
348 350
349 // Create the rest of the layers as children of the root layer. 351 // Create the rest of the layers as children of the root layer.
350 scoped_refptr<FakeRasterSource> raster_source = 352 scoped_refptr<FakeRasterSource> raster_source =
351 FakeRasterSource::CreateFilled(layer_bounds); 353 FakeRasterSource::CreateFilled(layer_bounds);
352 while (static_cast<int>(layers.size()) < layer_count) { 354 while (static_cast<int>(layers.size()) < layer_count) {
353 scoped_ptr<FakePictureLayerImpl> layer = 355 std::unique_ptr<FakePictureLayerImpl> layer =
354 FakePictureLayerImpl::CreateWithRasterSource( 356 FakePictureLayerImpl::CreateWithRasterSource(
355 host_impl_.pending_tree(), next_id, raster_source); 357 host_impl_.pending_tree(), next_id, raster_source);
356 layer->SetBounds(layer_bounds); 358 layer->SetBounds(layer_bounds);
357 layer->SetDrawsContent(true); 359 layer->SetDrawsContent(true);
358 layers.push_back(layer.get()); 360 layers.push_back(layer.get());
359 pending_root_layer_->AddChild(std::move(layer)); 361 pending_root_layer_->AddChild(std::move(layer));
360 ++next_id; 362 ++next_id;
361 } 363 }
362 364
363 // Property trees need to be rebuilt because layers were added above. 365 // Property trees need to be rebuilt because layers were added above.
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 412
411 protected: 413 protected:
412 GlobalStateThatImpactsTilePriority global_state_; 414 GlobalStateThatImpactsTilePriority global_state_;
413 415
414 TestSharedBitmapManager shared_bitmap_manager_; 416 TestSharedBitmapManager shared_bitmap_manager_;
415 TestTaskGraphRunner task_graph_runner_; 417 TestTaskGraphRunner task_graph_runner_;
416 TileMemoryLimitPolicy memory_limit_policy_; 418 TileMemoryLimitPolicy memory_limit_policy_;
417 int max_tiles_; 419 int max_tiles_;
418 int id_; 420 int id_;
419 FakeImplTaskRunnerProvider task_runner_provider_; 421 FakeImplTaskRunnerProvider task_runner_provider_;
420 scoped_ptr<OutputSurface> output_surface_; 422 std::unique_ptr<OutputSurface> output_surface_;
421 FakeLayerTreeHostImpl host_impl_; 423 FakeLayerTreeHostImpl host_impl_;
422 FakePictureLayerImpl* pending_root_layer_; 424 FakePictureLayerImpl* pending_root_layer_;
423 FakePictureLayerImpl* active_root_layer_; 425 FakePictureLayerImpl* active_root_layer_;
424 LapTimer timer_; 426 LapTimer timer_;
425 LayerTreeSettings settings_; 427 LayerTreeSettings settings_;
426 }; 428 };
427 429
428 TEST_F(TileManagerPerfTest, PrepareTiles) { 430 TEST_F(TileManagerPerfTest, PrepareTiles) {
429 RunPrepareTilesTest("2_100", 2, 100); 431 RunPrepareTilesTest("2_100", 2, 100);
430 RunPrepareTilesTest("2_500", 2, 500); 432 RunPrepareTilesTest("2_500", 2, 500);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
474 RunEvictionQueueConstructAndIterateTest("10_64", 10, 64); 476 RunEvictionQueueConstructAndIterateTest("10_64", 10, 64);
475 RunEvictionQueueConstructAndIterateTest("10_128", 10, 128); 477 RunEvictionQueueConstructAndIterateTest("10_128", 10, 128);
476 RunEvictionQueueConstructAndIterateTest("50_16", 50, 16); 478 RunEvictionQueueConstructAndIterateTest("50_16", 50, 16);
477 RunEvictionQueueConstructAndIterateTest("50_32", 50, 32); 479 RunEvictionQueueConstructAndIterateTest("50_32", 50, 32);
478 RunEvictionQueueConstructAndIterateTest("50_64", 50, 64); 480 RunEvictionQueueConstructAndIterateTest("50_64", 50, 64);
479 RunEvictionQueueConstructAndIterateTest("50_128", 50, 128); 481 RunEvictionQueueConstructAndIterateTest("50_128", 50, 128);
480 } 482 }
481 483
482 } // namespace 484 } // namespace
483 } // namespace cc 485 } // namespace cc
OLDNEW
« no previous file with comments | « cc/tiles/tile_manager.cc ('k') | cc/tiles/tile_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698