| 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 <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 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 180 } | 180 } |
| 181 | 181 |
| 182 void RunRasterQueueConstructTest(const std::string& test_name, | 182 void RunRasterQueueConstructTest(const std::string& test_name, |
| 183 int layer_count) { | 183 int layer_count) { |
| 184 TreePriority priorities[] = {SAME_PRIORITY_FOR_BOTH_TREES, | 184 TreePriority priorities[] = {SAME_PRIORITY_FOR_BOTH_TREES, |
| 185 SMOOTHNESS_TAKES_PRIORITY, | 185 SMOOTHNESS_TAKES_PRIORITY, |
| 186 NEW_CONTENT_TAKES_PRIORITY}; | 186 NEW_CONTENT_TAKES_PRIORITY}; |
| 187 int priority_count = 0; | 187 int priority_count = 0; |
| 188 | 188 |
| 189 std::vector<FakePictureLayerImpl*> layers = CreateLayers(layer_count, 10); | 189 std::vector<FakePictureLayerImpl*> layers = CreateLayers(layer_count, 10); |
| 190 bool resourceless_software_draw = false; | |
| 191 for (const auto& layer : layers) | 190 for (const auto& layer : layers) |
| 192 layer->UpdateTiles(resourceless_software_draw); | 191 layer->UpdateTiles(); |
| 193 | 192 |
| 194 timer_.Reset(); | 193 timer_.Reset(); |
| 195 do { | 194 do { |
| 196 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( | 195 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( |
| 197 priorities[priority_count], RasterTilePriorityQueue::Type::ALL)); | 196 priorities[priority_count], RasterTilePriorityQueue::Type::ALL)); |
| 198 priority_count = (priority_count + 1) % arraysize(priorities); | 197 priority_count = (priority_count + 1) % arraysize(priorities); |
| 199 timer_.NextLap(); | 198 timer_.NextLap(); |
| 200 } while (!timer_.HasTimeLimitExpired()); | 199 } while (!timer_.HasTimeLimitExpired()); |
| 201 | 200 |
| 202 perf_test::PrintResult("tile_manager_raster_tile_queue_construct", | 201 perf_test::PrintResult("tile_manager_raster_tile_queue_construct", |
| 203 "", | 202 "", |
| 204 test_name, | 203 test_name, |
| 205 timer_.LapsPerSecond(), | 204 timer_.LapsPerSecond(), |
| 206 "runs/s", | 205 "runs/s", |
| 207 true); | 206 true); |
| 208 } | 207 } |
| 209 | 208 |
| 210 void RunRasterQueueConstructAndIterateTest(const std::string& test_name, | 209 void RunRasterQueueConstructAndIterateTest(const std::string& test_name, |
| 211 int layer_count, | 210 int layer_count, |
| 212 int tile_count) { | 211 int tile_count) { |
| 213 TreePriority priorities[] = {SAME_PRIORITY_FOR_BOTH_TREES, | 212 TreePriority priorities[] = {SAME_PRIORITY_FOR_BOTH_TREES, |
| 214 SMOOTHNESS_TAKES_PRIORITY, | 213 SMOOTHNESS_TAKES_PRIORITY, |
| 215 NEW_CONTENT_TAKES_PRIORITY}; | 214 NEW_CONTENT_TAKES_PRIORITY}; |
| 216 | 215 |
| 217 std::vector<FakePictureLayerImpl*> layers = CreateLayers(layer_count, 100); | 216 std::vector<FakePictureLayerImpl*> layers = CreateLayers(layer_count, 100); |
| 218 bool resourceless_software_draw = false; | |
| 219 for (const auto& layer : layers) | 217 for (const auto& layer : layers) |
| 220 layer->UpdateTiles(resourceless_software_draw); | 218 layer->UpdateTiles(); |
| 221 | 219 |
| 222 int priority_count = 0; | 220 int priority_count = 0; |
| 223 timer_.Reset(); | 221 timer_.Reset(); |
| 224 do { | 222 do { |
| 225 int count = tile_count; | 223 int count = tile_count; |
| 226 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( | 224 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( |
| 227 priorities[priority_count], RasterTilePriorityQueue::Type::ALL)); | 225 priorities[priority_count], RasterTilePriorityQueue::Type::ALL)); |
| 228 while (count--) { | 226 while (count--) { |
| 229 ASSERT_FALSE(queue->IsEmpty()); | 227 ASSERT_FALSE(queue->IsEmpty()); |
| 230 ASSERT_TRUE(queue->Top().tile()); | 228 ASSERT_TRUE(queue->Top().tile()); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 244 } | 242 } |
| 245 | 243 |
| 246 void RunEvictionQueueConstructTest(const std::string& test_name, | 244 void RunEvictionQueueConstructTest(const std::string& test_name, |
| 247 int layer_count) { | 245 int layer_count) { |
| 248 TreePriority priorities[] = {SAME_PRIORITY_FOR_BOTH_TREES, | 246 TreePriority priorities[] = {SAME_PRIORITY_FOR_BOTH_TREES, |
| 249 SMOOTHNESS_TAKES_PRIORITY, | 247 SMOOTHNESS_TAKES_PRIORITY, |
| 250 NEW_CONTENT_TAKES_PRIORITY}; | 248 NEW_CONTENT_TAKES_PRIORITY}; |
| 251 int priority_count = 0; | 249 int priority_count = 0; |
| 252 | 250 |
| 253 std::vector<FakePictureLayerImpl*> layers = CreateLayers(layer_count, 10); | 251 std::vector<FakePictureLayerImpl*> layers = CreateLayers(layer_count, 10); |
| 254 bool resourceless_software_draw = false; | |
| 255 for (const auto& layer : layers) { | 252 for (const auto& layer : layers) { |
| 256 layer->UpdateTiles(resourceless_software_draw); | 253 layer->UpdateTiles(); |
| 257 for (size_t i = 0; i < layer->num_tilings(); ++i) { | 254 for (size_t i = 0; i < layer->num_tilings(); ++i) { |
| 258 tile_manager()->InitializeTilesWithResourcesForTesting( | 255 tile_manager()->InitializeTilesWithResourcesForTesting( |
| 259 layer->tilings()->tiling_at(i)->AllTilesForTesting()); | 256 layer->tilings()->tiling_at(i)->AllTilesForTesting()); |
| 260 } | 257 } |
| 261 } | 258 } |
| 262 | 259 |
| 263 timer_.Reset(); | 260 timer_.Reset(); |
| 264 do { | 261 do { |
| 265 scoped_ptr<EvictionTilePriorityQueue> queue( | 262 scoped_ptr<EvictionTilePriorityQueue> queue( |
| 266 host_impl_.BuildEvictionQueue(priorities[priority_count])); | 263 host_impl_.BuildEvictionQueue(priorities[priority_count])); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 279 void RunEvictionQueueConstructAndIterateTest(const std::string& test_name, | 276 void RunEvictionQueueConstructAndIterateTest(const std::string& test_name, |
| 280 int layer_count, | 277 int layer_count, |
| 281 int tile_count) { | 278 int tile_count) { |
| 282 TreePriority priorities[] = {SAME_PRIORITY_FOR_BOTH_TREES, | 279 TreePriority priorities[] = {SAME_PRIORITY_FOR_BOTH_TREES, |
| 283 SMOOTHNESS_TAKES_PRIORITY, | 280 SMOOTHNESS_TAKES_PRIORITY, |
| 284 NEW_CONTENT_TAKES_PRIORITY}; | 281 NEW_CONTENT_TAKES_PRIORITY}; |
| 285 int priority_count = 0; | 282 int priority_count = 0; |
| 286 | 283 |
| 287 std::vector<FakePictureLayerImpl*> layers = | 284 std::vector<FakePictureLayerImpl*> layers = |
| 288 CreateLayers(layer_count, tile_count); | 285 CreateLayers(layer_count, tile_count); |
| 289 bool resourceless_software_draw = false; | |
| 290 for (const auto& layer : layers) { | 286 for (const auto& layer : layers) { |
| 291 layer->UpdateTiles(resourceless_software_draw); | 287 layer->UpdateTiles(); |
| 292 for (size_t i = 0; i < layer->num_tilings(); ++i) { | 288 for (size_t i = 0; i < layer->num_tilings(); ++i) { |
| 293 tile_manager()->InitializeTilesWithResourcesForTesting( | 289 tile_manager()->InitializeTilesWithResourcesForTesting( |
| 294 layer->tilings()->tiling_at(i)->AllTilesForTesting()); | 290 layer->tilings()->tiling_at(i)->AllTilesForTesting()); |
| 295 } | 291 } |
| 296 } | 292 } |
| 297 | 293 |
| 298 timer_.Reset(); | 294 timer_.Reset(); |
| 299 do { | 295 do { |
| 300 int count = tile_count; | 296 int count = tile_count; |
| 301 scoped_ptr<EvictionTilePriorityQueue> queue( | 297 scoped_ptr<EvictionTilePriorityQueue> queue( |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 389 return state; | 385 return state; |
| 390 } | 386 } |
| 391 | 387 |
| 392 void RunPrepareTilesTest(const std::string& test_name, | 388 void RunPrepareTilesTest(const std::string& test_name, |
| 393 int layer_count, | 389 int layer_count, |
| 394 int approximate_tile_count_per_layer) { | 390 int approximate_tile_count_per_layer) { |
| 395 std::vector<FakePictureLayerImpl*> layers = | 391 std::vector<FakePictureLayerImpl*> layers = |
| 396 CreateLayers(layer_count, approximate_tile_count_per_layer); | 392 CreateLayers(layer_count, approximate_tile_count_per_layer); |
| 397 | 393 |
| 398 timer_.Reset(); | 394 timer_.Reset(); |
| 399 bool resourceless_software_draw = false; | |
| 400 do { | 395 do { |
| 401 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1)); | 396 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1)); |
| 402 for (const auto& layer : layers) | 397 for (const auto& layer : layers) |
| 403 layer->UpdateTiles(resourceless_software_draw); | 398 layer->UpdateTiles(); |
| 404 | 399 |
| 405 GlobalStateThatImpactsTilePriority global_state(GlobalStateForTest()); | 400 GlobalStateThatImpactsTilePriority global_state(GlobalStateForTest()); |
| 406 tile_manager()->PrepareTiles(global_state); | 401 tile_manager()->PrepareTiles(global_state); |
| 407 tile_manager()->Flush(); | 402 tile_manager()->Flush(); |
| 408 timer_.NextLap(); | 403 timer_.NextLap(); |
| 409 } while (!timer_.HasTimeLimitExpired()); | 404 } while (!timer_.HasTimeLimitExpired()); |
| 410 | 405 |
| 411 perf_test::PrintResult("prepare_tiles", "", test_name, | 406 perf_test::PrintResult("prepare_tiles", "", test_name, |
| 412 timer_.LapsPerSecond(), "runs/s", true); | 407 timer_.LapsPerSecond(), "runs/s", true); |
| 413 } | 408 } |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 480 RunEvictionQueueConstructAndIterateTest("10_64", 10, 64); | 475 RunEvictionQueueConstructAndIterateTest("10_64", 10, 64); |
| 481 RunEvictionQueueConstructAndIterateTest("10_128", 10, 128); | 476 RunEvictionQueueConstructAndIterateTest("10_128", 10, 128); |
| 482 RunEvictionQueueConstructAndIterateTest("50_16", 50, 16); | 477 RunEvictionQueueConstructAndIterateTest("50_16", 50, 16); |
| 483 RunEvictionQueueConstructAndIterateTest("50_32", 50, 32); | 478 RunEvictionQueueConstructAndIterateTest("50_32", 50, 32); |
| 484 RunEvictionQueueConstructAndIterateTest("50_64", 50, 64); | 479 RunEvictionQueueConstructAndIterateTest("50_64", 50, 64); |
| 485 RunEvictionQueueConstructAndIterateTest("50_128", 50, 128); | 480 RunEvictionQueueConstructAndIterateTest("50_128", 50, 128); |
| 486 } | 481 } |
| 487 | 482 |
| 488 } // namespace | 483 } // namespace |
| 489 } // namespace cc | 484 } // namespace cc |
| OLD | NEW |