Chromium Code Reviews| 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 "cc/resources/eviction_tile_priority_queue.h" | 5 #include "cc/resources/eviction_tile_priority_queue.h" |
| 6 #include "cc/resources/raster_tile_priority_queue.h" | 6 #include "cc/resources/raster_tile_priority_queue.h" |
| 7 #include "cc/resources/tile.h" | 7 #include "cc/resources/tile.h" |
| 8 #include "cc/resources/tile_priority.h" | 8 #include "cc/resources/tile_priority.h" |
| 9 #include "cc/resources/tiling_set_raster_queue_all.h" | 9 #include "cc/resources/tiling_set_raster_queue_all.h" |
| 10 #include "cc/test/begin_frame_args_test.h" | 10 #include "cc/test/begin_frame_args_test.h" |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 144 FakeLayerTreeHostImpl host_impl_; | 144 FakeLayerTreeHostImpl host_impl_; |
| 145 FakePictureLayerImpl* pending_layer_; | 145 FakePictureLayerImpl* pending_layer_; |
| 146 FakePictureLayerImpl* active_layer_; | 146 FakePictureLayerImpl* active_layer_; |
| 147 }; | 147 }; |
| 148 | 148 |
| 149 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) { | 149 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) { |
| 150 const gfx::Size layer_bounds(1000, 1000); | 150 const gfx::Size layer_bounds(1000, 1000); |
| 151 host_impl_.SetViewportSize(layer_bounds); | 151 host_impl_.SetViewportSize(layer_bounds); |
| 152 SetupDefaultTrees(layer_bounds); | 152 SetupDefaultTrees(layer_bounds); |
| 153 | 153 |
| 154 RasterTilePriorityQueue queue; | 154 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( |
| 155 host_impl_.BuildRasterQueue(&queue, SAME_PRIORITY_FOR_BOTH_TREES, | 155 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); |
| 156 RasterTilePriorityQueue::Type::ALL); | 156 EXPECT_FALSE(queue->IsEmpty()); |
| 157 EXPECT_FALSE(queue.IsEmpty()); | |
| 158 | 157 |
| 159 size_t tile_count = 0; | 158 size_t tile_count = 0; |
| 160 std::set<Tile*> all_tiles; | 159 std::set<Tile*> all_tiles; |
| 161 while (!queue.IsEmpty()) { | 160 while (!queue->IsEmpty()) { |
| 162 EXPECT_TRUE(queue.Top()); | 161 EXPECT_TRUE(queue->Top()); |
| 163 all_tiles.insert(queue.Top()); | 162 all_tiles.insert(queue->Top()); |
| 164 ++tile_count; | 163 ++tile_count; |
| 165 queue.Pop(); | 164 queue->Pop(); |
| 166 } | 165 } |
| 167 | 166 |
| 168 EXPECT_EQ(tile_count, all_tiles.size()); | 167 EXPECT_EQ(tile_count, all_tiles.size()); |
| 169 EXPECT_EQ(16u, tile_count); | 168 EXPECT_EQ(16u, tile_count); |
| 170 | 169 |
| 171 // Sanity check, all tiles should be visible. | 170 // Sanity check, all tiles should be visible. |
| 172 std::set<Tile*> smoothness_tiles; | 171 std::set<Tile*> smoothness_tiles; |
| 173 queue.Reset(); | 172 queue.reset(host_impl_.BuildRasterQueue(SMOOTHNESS_TAKES_PRIORITY, |
|
danakj
2015/01/22 20:24:16
why not queue =
vmpstr
2015/01/22 22:44:35
Done.
| |
| 174 host_impl_.BuildRasterQueue(&queue, SMOOTHNESS_TAKES_PRIORITY, | 173 RasterTilePriorityQueue::Type::ALL) |
| 175 RasterTilePriorityQueue::Type::ALL); | 174 .release()); |
| 176 bool had_low_res = false; | 175 bool had_low_res = false; |
| 177 while (!queue.IsEmpty()) { | 176 while (!queue->IsEmpty()) { |
| 178 Tile* tile = queue.Top(); | 177 Tile* tile = queue->Top(); |
| 179 EXPECT_TRUE(tile); | 178 EXPECT_TRUE(tile); |
| 180 EXPECT_EQ(TilePriority::NOW, tile->priority(ACTIVE_TREE).priority_bin); | 179 EXPECT_EQ(TilePriority::NOW, tile->priority(ACTIVE_TREE).priority_bin); |
| 181 EXPECT_EQ(TilePriority::NOW, tile->priority(PENDING_TREE).priority_bin); | 180 EXPECT_EQ(TilePriority::NOW, tile->priority(PENDING_TREE).priority_bin); |
| 182 if (tile->priority(ACTIVE_TREE).resolution == LOW_RESOLUTION) | 181 if (tile->priority(ACTIVE_TREE).resolution == LOW_RESOLUTION) |
| 183 had_low_res = true; | 182 had_low_res = true; |
| 184 else | 183 else |
| 185 smoothness_tiles.insert(tile); | 184 smoothness_tiles.insert(tile); |
| 186 queue.Pop(); | 185 queue->Pop(); |
| 187 } | 186 } |
| 188 EXPECT_EQ(all_tiles, smoothness_tiles); | 187 EXPECT_EQ(all_tiles, smoothness_tiles); |
| 189 EXPECT_TRUE(had_low_res); | 188 EXPECT_TRUE(had_low_res); |
| 190 | 189 |
| 191 // Check that everything is required for activation. | 190 // Check that everything is required for activation. |
| 192 queue.Reset(); | 191 queue.reset( |
|
danakj
2015/01/22 20:24:16
dittos throughout
vmpstr
2015/01/22 22:44:35
Done.
| |
| 193 host_impl_.BuildRasterQueue( | 192 host_impl_.BuildRasterQueue( |
| 194 &queue, SMOOTHNESS_TAKES_PRIORITY, | 193 SMOOTHNESS_TAKES_PRIORITY, |
| 195 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION); | 194 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION) |
| 195 .release()); | |
| 196 std::set<Tile*> required_for_activation_tiles; | 196 std::set<Tile*> required_for_activation_tiles; |
| 197 while (!queue.IsEmpty()) { | 197 while (!queue->IsEmpty()) { |
| 198 Tile* tile = queue.Top(); | 198 Tile* tile = queue->Top(); |
| 199 EXPECT_TRUE(tile->required_for_activation()); | 199 EXPECT_TRUE(tile->required_for_activation()); |
| 200 required_for_activation_tiles.insert(tile); | 200 required_for_activation_tiles.insert(tile); |
| 201 queue.Pop(); | 201 queue->Pop(); |
| 202 } | 202 } |
| 203 EXPECT_EQ(all_tiles, required_for_activation_tiles); | 203 EXPECT_EQ(all_tiles, required_for_activation_tiles); |
| 204 | 204 |
| 205 // Check that everything is required for draw. | 205 // Check that everything is required for draw. |
| 206 queue.Reset(); | 206 queue.reset(host_impl_.BuildRasterQueue( |
| 207 host_impl_.BuildRasterQueue(&queue, SMOOTHNESS_TAKES_PRIORITY, | 207 SMOOTHNESS_TAKES_PRIORITY, |
| 208 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW); | 208 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW) |
| 209 .release()); | |
| 209 std::set<Tile*> required_for_draw_tiles; | 210 std::set<Tile*> required_for_draw_tiles; |
| 210 while (!queue.IsEmpty()) { | 211 while (!queue->IsEmpty()) { |
| 211 Tile* tile = queue.Top(); | 212 Tile* tile = queue->Top(); |
| 212 EXPECT_TRUE(tile->required_for_draw()); | 213 EXPECT_TRUE(tile->required_for_draw()); |
| 213 required_for_draw_tiles.insert(tile); | 214 required_for_draw_tiles.insert(tile); |
| 214 queue.Pop(); | 215 queue->Pop(); |
| 215 } | 216 } |
| 216 EXPECT_EQ(all_tiles, required_for_draw_tiles); | 217 EXPECT_EQ(all_tiles, required_for_draw_tiles); |
| 217 | 218 |
| 218 Region invalidation(gfx::Rect(0, 0, 500, 500)); | 219 Region invalidation(gfx::Rect(0, 0, 500, 500)); |
| 219 | 220 |
| 220 // Invalidate the pending tree. | 221 // Invalidate the pending tree. |
| 221 pending_layer_->set_invalidation(invalidation); | 222 pending_layer_->set_invalidation(invalidation); |
| 222 pending_layer_->HighResTiling()->Invalidate(invalidation); | 223 pending_layer_->HighResTiling()->Invalidate(invalidation); |
| 223 pending_layer_->LowResTiling()->Invalidate(invalidation); | 224 pending_layer_->LowResTiling()->Invalidate(invalidation); |
| 224 | 225 |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 261 std::vector<Tile*> active_low_res_tiles = | 262 std::vector<Tile*> active_low_res_tiles = |
| 262 active_layer_->LowResTiling()->AllTilesForTesting(); | 263 active_layer_->LowResTiling()->AllTilesForTesting(); |
| 263 for (size_t i = 0; i < active_low_res_tiles.size(); ++i) | 264 for (size_t i = 0; i < active_low_res_tiles.size(); ++i) |
| 264 all_tiles.insert(active_low_res_tiles[i]); | 265 all_tiles.insert(active_low_res_tiles[i]); |
| 265 | 266 |
| 266 Tile* last_tile = NULL; | 267 Tile* last_tile = NULL; |
| 267 smoothness_tiles.clear(); | 268 smoothness_tiles.clear(); |
| 268 tile_count = 0; | 269 tile_count = 0; |
| 269 size_t correct_order_tiles = 0u; | 270 size_t correct_order_tiles = 0u; |
| 270 // Here we expect to get increasing ACTIVE_TREE priority_bin. | 271 // Here we expect to get increasing ACTIVE_TREE priority_bin. |
| 271 queue.Reset(); | 272 queue.reset(host_impl_.BuildRasterQueue(SMOOTHNESS_TAKES_PRIORITY, |
| 272 host_impl_.BuildRasterQueue(&queue, SMOOTHNESS_TAKES_PRIORITY, | 273 RasterTilePriorityQueue::Type::ALL) |
| 273 RasterTilePriorityQueue::Type::ALL); | 274 .release()); |
| 274 std::set<Tile*> expected_required_for_draw_tiles; | 275 std::set<Tile*> expected_required_for_draw_tiles; |
| 275 std::set<Tile*> expected_required_for_activation_tiles; | 276 std::set<Tile*> expected_required_for_activation_tiles; |
| 276 while (!queue.IsEmpty()) { | 277 while (!queue->IsEmpty()) { |
| 277 Tile* tile = queue.Top(); | 278 Tile* tile = queue->Top(); |
| 278 EXPECT_TRUE(tile); | 279 EXPECT_TRUE(tile); |
| 279 | 280 |
| 280 if (!last_tile) | 281 if (!last_tile) |
| 281 last_tile = tile; | 282 last_tile = tile; |
| 282 | 283 |
| 283 EXPECT_LE(last_tile->priority(ACTIVE_TREE).priority_bin, | 284 EXPECT_LE(last_tile->priority(ACTIVE_TREE).priority_bin, |
| 284 tile->priority(ACTIVE_TREE).priority_bin); | 285 tile->priority(ACTIVE_TREE).priority_bin); |
| 285 bool skip_updating_last_tile = false; | 286 bool skip_updating_last_tile = false; |
| 286 if (last_tile->priority(ACTIVE_TREE).priority_bin == | 287 if (last_tile->priority(ACTIVE_TREE).priority_bin == |
| 287 tile->priority(ACTIVE_TREE).priority_bin) { | 288 tile->priority(ACTIVE_TREE).priority_bin) { |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 305 } | 306 } |
| 306 | 307 |
| 307 if (!skip_updating_last_tile) | 308 if (!skip_updating_last_tile) |
| 308 last_tile = tile; | 309 last_tile = tile; |
| 309 ++tile_count; | 310 ++tile_count; |
| 310 smoothness_tiles.insert(tile); | 311 smoothness_tiles.insert(tile); |
| 311 if (tile->required_for_draw()) | 312 if (tile->required_for_draw()) |
| 312 expected_required_for_draw_tiles.insert(tile); | 313 expected_required_for_draw_tiles.insert(tile); |
| 313 if (tile->required_for_activation()) | 314 if (tile->required_for_activation()) |
| 314 expected_required_for_activation_tiles.insert(tile); | 315 expected_required_for_activation_tiles.insert(tile); |
| 315 queue.Pop(); | 316 queue->Pop(); |
| 316 } | 317 } |
| 317 | 318 |
| 318 EXPECT_EQ(tile_count, smoothness_tiles.size()); | 319 EXPECT_EQ(tile_count, smoothness_tiles.size()); |
| 319 EXPECT_EQ(all_tiles, smoothness_tiles); | 320 EXPECT_EQ(all_tiles, smoothness_tiles); |
| 320 // Since we don't guarantee increasing distance due to spiral iterator, we | 321 // Since we don't guarantee increasing distance due to spiral iterator, we |
| 321 // should check that we're _mostly_ right. | 322 // should check that we're _mostly_ right. |
| 322 EXPECT_GT(correct_order_tiles, 3 * tile_count / 4); | 323 EXPECT_GT(correct_order_tiles, 3 * tile_count / 4); |
| 323 | 324 |
| 324 // Check that we have consistent required_for_activation tiles. | 325 // Check that we have consistent required_for_activation tiles. |
| 325 queue.Reset(); | 326 queue.reset( |
| 326 host_impl_.BuildRasterQueue( | 327 host_impl_.BuildRasterQueue( |
| 327 &queue, SMOOTHNESS_TAKES_PRIORITY, | 328 SMOOTHNESS_TAKES_PRIORITY, |
| 328 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION); | 329 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION) |
| 330 .release()); | |
| 329 required_for_activation_tiles.clear(); | 331 required_for_activation_tiles.clear(); |
| 330 while (!queue.IsEmpty()) { | 332 while (!queue->IsEmpty()) { |
| 331 Tile* tile = queue.Top(); | 333 Tile* tile = queue->Top(); |
| 332 EXPECT_TRUE(tile->required_for_activation()); | 334 EXPECT_TRUE(tile->required_for_activation()); |
| 333 required_for_activation_tiles.insert(tile); | 335 required_for_activation_tiles.insert(tile); |
| 334 queue.Pop(); | 336 queue->Pop(); |
| 335 } | 337 } |
| 336 EXPECT_EQ(expected_required_for_activation_tiles, | 338 EXPECT_EQ(expected_required_for_activation_tiles, |
| 337 required_for_activation_tiles); | 339 required_for_activation_tiles); |
| 338 EXPECT_NE(all_tiles, required_for_activation_tiles); | 340 EXPECT_NE(all_tiles, required_for_activation_tiles); |
| 339 | 341 |
| 340 // Check that we have consistent required_for_draw tiles. | 342 // Check that we have consistent required_for_draw tiles. |
| 341 queue.Reset(); | 343 queue.reset(host_impl_.BuildRasterQueue( |
| 342 host_impl_.BuildRasterQueue(&queue, SMOOTHNESS_TAKES_PRIORITY, | 344 SMOOTHNESS_TAKES_PRIORITY, |
| 343 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW); | 345 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW) |
| 346 .release()); | |
| 344 required_for_draw_tiles.clear(); | 347 required_for_draw_tiles.clear(); |
| 345 while (!queue.IsEmpty()) { | 348 while (!queue->IsEmpty()) { |
| 346 Tile* tile = queue.Top(); | 349 Tile* tile = queue->Top(); |
| 347 EXPECT_TRUE(tile->required_for_draw()); | 350 EXPECT_TRUE(tile->required_for_draw()); |
| 348 required_for_draw_tiles.insert(tile); | 351 required_for_draw_tiles.insert(tile); |
| 349 queue.Pop(); | 352 queue->Pop(); |
| 350 } | 353 } |
| 351 EXPECT_EQ(expected_required_for_draw_tiles, required_for_draw_tiles); | 354 EXPECT_EQ(expected_required_for_draw_tiles, required_for_draw_tiles); |
| 352 EXPECT_NE(all_tiles, required_for_draw_tiles); | 355 EXPECT_NE(all_tiles, required_for_draw_tiles); |
| 353 | 356 |
| 354 std::set<Tile*> new_content_tiles; | 357 std::set<Tile*> new_content_tiles; |
| 355 last_tile = NULL; | 358 last_tile = NULL; |
| 356 size_t increasing_distance_tiles = 0u; | 359 size_t increasing_distance_tiles = 0u; |
| 357 // Here we expect to get increasing PENDING_TREE priority_bin. | 360 // Here we expect to get increasing PENDING_TREE priority_bin. |
| 358 queue.Reset(); | 361 queue.reset(host_impl_.BuildRasterQueue(NEW_CONTENT_TAKES_PRIORITY, |
| 359 host_impl_.BuildRasterQueue(&queue, NEW_CONTENT_TAKES_PRIORITY, | 362 RasterTilePriorityQueue::Type::ALL) |
| 360 RasterTilePriorityQueue::Type::ALL); | 363 .release()); |
| 361 tile_count = 0; | 364 tile_count = 0; |
| 362 while (!queue.IsEmpty()) { | 365 while (!queue->IsEmpty()) { |
| 363 Tile* tile = queue.Top(); | 366 Tile* tile = queue->Top(); |
| 364 EXPECT_TRUE(tile); | 367 EXPECT_TRUE(tile); |
| 365 | 368 |
| 366 if (!last_tile) | 369 if (!last_tile) |
| 367 last_tile = tile; | 370 last_tile = tile; |
| 368 | 371 |
| 369 EXPECT_LE(last_tile->priority(PENDING_TREE).priority_bin, | 372 EXPECT_LE(last_tile->priority(PENDING_TREE).priority_bin, |
| 370 tile->priority(PENDING_TREE).priority_bin); | 373 tile->priority(PENDING_TREE).priority_bin); |
| 371 if (last_tile->priority(PENDING_TREE).priority_bin == | 374 if (last_tile->priority(PENDING_TREE).priority_bin == |
| 372 tile->priority(PENDING_TREE).priority_bin) { | 375 tile->priority(PENDING_TREE).priority_bin) { |
| 373 increasing_distance_tiles += | 376 increasing_distance_tiles += |
| 374 last_tile->priority(PENDING_TREE).distance_to_visible <= | 377 last_tile->priority(PENDING_TREE).distance_to_visible <= |
| 375 tile->priority(PENDING_TREE).distance_to_visible; | 378 tile->priority(PENDING_TREE).distance_to_visible; |
| 376 } | 379 } |
| 377 | 380 |
| 378 if (tile->priority(PENDING_TREE).priority_bin == TilePriority::NOW && | 381 if (tile->priority(PENDING_TREE).priority_bin == TilePriority::NOW && |
| 379 last_tile->priority(PENDING_TREE).resolution != | 382 last_tile->priority(PENDING_TREE).resolution != |
| 380 tile->priority(PENDING_TREE).resolution) { | 383 tile->priority(PENDING_TREE).resolution) { |
| 381 // High resolution should come first. | 384 // High resolution should come first. |
| 382 EXPECT_EQ(HIGH_RESOLUTION, last_tile->priority(PENDING_TREE).resolution); | 385 EXPECT_EQ(HIGH_RESOLUTION, last_tile->priority(PENDING_TREE).resolution); |
| 383 } | 386 } |
| 384 | 387 |
| 385 last_tile = tile; | 388 last_tile = tile; |
| 386 new_content_tiles.insert(tile); | 389 new_content_tiles.insert(tile); |
| 387 ++tile_count; | 390 ++tile_count; |
| 388 queue.Pop(); | 391 queue->Pop(); |
| 389 } | 392 } |
| 390 | 393 |
| 391 EXPECT_EQ(tile_count, new_content_tiles.size()); | 394 EXPECT_EQ(tile_count, new_content_tiles.size()); |
| 392 EXPECT_EQ(high_res_tiles, new_content_tiles); | 395 EXPECT_EQ(high_res_tiles, new_content_tiles); |
| 393 // Since we don't guarantee increasing distance due to spiral iterator, we | 396 // Since we don't guarantee increasing distance due to spiral iterator, we |
| 394 // should check that we're _mostly_ right. | 397 // should check that we're _mostly_ right. |
| 395 EXPECT_GE(increasing_distance_tiles, 3 * tile_count / 4); | 398 EXPECT_GE(increasing_distance_tiles, 3 * tile_count / 4); |
| 396 | 399 |
| 397 // Check that we have consistent required_for_activation tiles. | 400 // Check that we have consistent required_for_activation tiles. |
| 398 queue.Reset(); | 401 queue.reset( |
| 399 host_impl_.BuildRasterQueue( | 402 host_impl_.BuildRasterQueue( |
| 400 &queue, NEW_CONTENT_TAKES_PRIORITY, | 403 NEW_CONTENT_TAKES_PRIORITY, |
| 401 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION); | 404 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION) |
| 405 .release()); | |
| 402 required_for_activation_tiles.clear(); | 406 required_for_activation_tiles.clear(); |
| 403 while (!queue.IsEmpty()) { | 407 while (!queue->IsEmpty()) { |
| 404 Tile* tile = queue.Top(); | 408 Tile* tile = queue->Top(); |
| 405 EXPECT_TRUE(tile->required_for_activation()); | 409 EXPECT_TRUE(tile->required_for_activation()); |
| 406 required_for_activation_tiles.insert(tile); | 410 required_for_activation_tiles.insert(tile); |
| 407 queue.Pop(); | 411 queue->Pop(); |
| 408 } | 412 } |
| 409 EXPECT_EQ(expected_required_for_activation_tiles, | 413 EXPECT_EQ(expected_required_for_activation_tiles, |
| 410 required_for_activation_tiles); | 414 required_for_activation_tiles); |
| 411 EXPECT_NE(new_content_tiles, required_for_activation_tiles); | 415 EXPECT_NE(new_content_tiles, required_for_activation_tiles); |
| 412 | 416 |
| 413 // Check that we have consistent required_for_draw tiles. | 417 // Check that we have consistent required_for_draw tiles. |
| 414 queue.Reset(); | 418 queue.reset(host_impl_.BuildRasterQueue( |
| 415 host_impl_.BuildRasterQueue(&queue, NEW_CONTENT_TAKES_PRIORITY, | 419 NEW_CONTENT_TAKES_PRIORITY, |
| 416 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW); | 420 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW) |
| 421 .release()); | |
| 417 required_for_draw_tiles.clear(); | 422 required_for_draw_tiles.clear(); |
| 418 while (!queue.IsEmpty()) { | 423 while (!queue->IsEmpty()) { |
| 419 Tile* tile = queue.Top(); | 424 Tile* tile = queue->Top(); |
| 420 EXPECT_TRUE(tile->required_for_draw()); | 425 EXPECT_TRUE(tile->required_for_draw()); |
| 421 required_for_draw_tiles.insert(tile); | 426 required_for_draw_tiles.insert(tile); |
| 422 queue.Pop(); | 427 queue->Pop(); |
| 423 } | 428 } |
| 424 EXPECT_EQ(expected_required_for_draw_tiles, required_for_draw_tiles); | 429 EXPECT_EQ(expected_required_for_draw_tiles, required_for_draw_tiles); |
| 425 EXPECT_NE(new_content_tiles, required_for_draw_tiles); | 430 EXPECT_NE(new_content_tiles, required_for_draw_tiles); |
| 426 } | 431 } |
| 427 | 432 |
| 428 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueInvalidation) { | 433 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueInvalidation) { |
| 429 const gfx::Size layer_bounds(1000, 1000); | 434 const gfx::Size layer_bounds(1000, 1000); |
| 430 host_impl_.SetViewportSize(gfx::Size(500, 500)); | 435 host_impl_.SetViewportSize(gfx::Size(500, 500)); |
| 431 SetupDefaultTrees(layer_bounds); | 436 SetupDefaultTrees(layer_bounds); |
| 432 | 437 |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 478 for (int j = 0; j <= 3; ++j) { | 483 for (int j = 0; j <= 3; ++j) { |
| 479 expected_all_tiles.insert(pending_layer_->HighResTiling()->TileAt(i, j)); | 484 expected_all_tiles.insert(pending_layer_->HighResTiling()->TileAt(i, j)); |
| 480 expected_all_tiles.insert(active_layer_->HighResTiling()->TileAt(i, j)); | 485 expected_all_tiles.insert(active_layer_->HighResTiling()->TileAt(i, j)); |
| 481 } | 486 } |
| 482 } | 487 } |
| 483 // Expect 15 shared tiles and 1 unshared tile. | 488 // Expect 15 shared tiles and 1 unshared tile. |
| 484 EXPECT_EQ(17u, expected_all_tiles.size()); | 489 EXPECT_EQ(17u, expected_all_tiles.size()); |
| 485 | 490 |
| 486 // The actual test will now build different queues and verify that the queues | 491 // The actual test will now build different queues and verify that the queues |
| 487 // return the same information as computed manually above. | 492 // return the same information as computed manually above. |
| 488 RasterTilePriorityQueue queue; | 493 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( |
| 489 host_impl_.BuildRasterQueue(&queue, SAME_PRIORITY_FOR_BOTH_TREES, | 494 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); |
| 490 RasterTilePriorityQueue::Type::ALL); | |
| 491 std::set<Tile*> actual_now_tiles; | 495 std::set<Tile*> actual_now_tiles; |
| 492 std::set<Tile*> actual_all_tiles; | 496 std::set<Tile*> actual_all_tiles; |
| 493 while (!queue.IsEmpty()) { | 497 while (!queue->IsEmpty()) { |
| 494 Tile* tile = queue.Top(); | 498 Tile* tile = queue->Top(); |
| 495 queue.Pop(); | 499 queue->Pop(); |
| 496 if (tile->combined_priority().priority_bin == TilePriority::NOW) | 500 if (tile->combined_priority().priority_bin == TilePriority::NOW) |
| 497 actual_now_tiles.insert(tile); | 501 actual_now_tiles.insert(tile); |
| 498 actual_all_tiles.insert(tile); | 502 actual_all_tiles.insert(tile); |
| 499 } | 503 } |
| 500 EXPECT_EQ(expected_now_tiles, actual_now_tiles); | 504 EXPECT_EQ(expected_now_tiles, actual_now_tiles); |
| 501 EXPECT_EQ(expected_all_tiles, actual_all_tiles); | 505 EXPECT_EQ(expected_all_tiles, actual_all_tiles); |
| 502 | 506 |
| 503 queue.Reset(); | 507 queue.reset(host_impl_.BuildRasterQueue( |
| 504 host_impl_.BuildRasterQueue(&queue, SAME_PRIORITY_FOR_BOTH_TREES, | 508 SAME_PRIORITY_FOR_BOTH_TREES, |
| 505 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW); | 509 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW) |
| 510 .release()); | |
| 506 std::set<Tile*> actual_required_for_draw_tiles; | 511 std::set<Tile*> actual_required_for_draw_tiles; |
| 507 while (!queue.IsEmpty()) { | 512 while (!queue->IsEmpty()) { |
| 508 Tile* tile = queue.Top(); | 513 Tile* tile = queue->Top(); |
| 509 queue.Pop(); | 514 queue->Pop(); |
| 510 actual_required_for_draw_tiles.insert(tile); | 515 actual_required_for_draw_tiles.insert(tile); |
| 511 } | 516 } |
| 512 EXPECT_EQ(expected_required_for_draw_tiles, actual_required_for_draw_tiles); | 517 EXPECT_EQ(expected_required_for_draw_tiles, actual_required_for_draw_tiles); |
| 513 | 518 |
| 514 queue.Reset(); | 519 queue.reset( |
| 515 host_impl_.BuildRasterQueue( | 520 host_impl_.BuildRasterQueue( |
| 516 &queue, SAME_PRIORITY_FOR_BOTH_TREES, | 521 SAME_PRIORITY_FOR_BOTH_TREES, |
| 517 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION); | 522 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION) |
| 523 .release()); | |
| 518 std::set<Tile*> actual_required_for_activation_tiles; | 524 std::set<Tile*> actual_required_for_activation_tiles; |
| 519 while (!queue.IsEmpty()) { | 525 while (!queue->IsEmpty()) { |
| 520 Tile* tile = queue.Top(); | 526 Tile* tile = queue->Top(); |
| 521 queue.Pop(); | 527 queue->Pop(); |
| 522 actual_required_for_activation_tiles.insert(tile); | 528 actual_required_for_activation_tiles.insert(tile); |
| 523 } | 529 } |
| 524 EXPECT_EQ(expected_required_for_activation_tiles, | 530 EXPECT_EQ(expected_required_for_activation_tiles, |
| 525 actual_required_for_activation_tiles); | 531 actual_required_for_activation_tiles); |
| 526 } | 532 } |
| 527 | 533 |
| 528 TEST_F(TileManagerTilePriorityQueueTest, ActivationComesBeforeEventually) { | 534 TEST_F(TileManagerTilePriorityQueueTest, ActivationComesBeforeEventually) { |
| 529 base::TimeTicks time_ticks; | 535 base::TimeTicks time_ticks; |
| 530 time_ticks += base::TimeDelta::FromMilliseconds(1); | 536 time_ticks += base::TimeDelta::FromMilliseconds(1); |
| 531 host_impl_.SetCurrentBeginFrameArgs( | 537 host_impl_.SetCurrentBeginFrameArgs( |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 545 pending_child_raw->SetDrawsContent(true); | 551 pending_child_raw->SetDrawsContent(true); |
| 546 pending_layer_->AddChild(pending_child.Pass()); | 552 pending_layer_->AddChild(pending_child.Pass()); |
| 547 | 553 |
| 548 // Set a small viewport, so we have soon and eventually tiles. | 554 // Set a small viewport, so we have soon and eventually tiles. |
| 549 host_impl_.SetViewportSize(gfx::Size(200, 200)); | 555 host_impl_.SetViewportSize(gfx::Size(200, 200)); |
| 550 time_ticks += base::TimeDelta::FromMilliseconds(1); | 556 time_ticks += base::TimeDelta::FromMilliseconds(1); |
| 551 host_impl_.SetCurrentBeginFrameArgs( | 557 host_impl_.SetCurrentBeginFrameArgs( |
| 552 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); | 558 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 553 host_impl_.pending_tree()->UpdateDrawProperties(); | 559 host_impl_.pending_tree()->UpdateDrawProperties(); |
| 554 | 560 |
| 555 RasterTilePriorityQueue queue; | |
| 556 host_impl_.SetRequiresHighResToDraw(); | 561 host_impl_.SetRequiresHighResToDraw(); |
| 557 host_impl_.BuildRasterQueue(&queue, SMOOTHNESS_TAKES_PRIORITY, | 562 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( |
| 558 RasterTilePriorityQueue::Type::ALL); | 563 SMOOTHNESS_TAKES_PRIORITY, RasterTilePriorityQueue::Type::ALL)); |
| 559 EXPECT_FALSE(queue.IsEmpty()); | 564 EXPECT_FALSE(queue->IsEmpty()); |
| 560 | 565 |
| 561 // Get all the tiles that are NOW or SOON and make sure they are ready to | 566 // Get all the tiles that are NOW or SOON and make sure they are ready to |
| 562 // draw. | 567 // draw. |
| 563 std::vector<Tile*> all_tiles; | 568 std::vector<Tile*> all_tiles; |
| 564 while (!queue.IsEmpty()) { | 569 while (!queue->IsEmpty()) { |
| 565 Tile* tile = queue.Top(); | 570 Tile* tile = queue->Top(); |
| 566 if (tile->combined_priority().priority_bin >= TilePriority::EVENTUALLY) | 571 if (tile->combined_priority().priority_bin >= TilePriority::EVENTUALLY) |
| 567 break; | 572 break; |
| 568 | 573 |
| 569 all_tiles.push_back(tile); | 574 all_tiles.push_back(tile); |
| 570 queue.Pop(); | 575 queue->Pop(); |
| 571 } | 576 } |
| 572 | 577 |
| 573 tile_manager()->InitializeTilesWithResourcesForTesting( | 578 tile_manager()->InitializeTilesWithResourcesForTesting( |
| 574 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); | 579 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); |
| 575 | 580 |
| 576 // Ensure we can activate. | 581 // Ensure we can activate. |
| 577 EXPECT_TRUE(pending_layer_->AllTilesRequiredForActivationAreReadyToDraw()); | 582 EXPECT_TRUE(pending_layer_->AllTilesRequiredForActivationAreReadyToDraw()); |
| 578 EXPECT_TRUE(pending_child_raw->AllTilesRequiredForActivationAreReadyToDraw()); | 583 EXPECT_TRUE(pending_child_raw->AllTilesRequiredForActivationAreReadyToDraw()); |
| 579 } | 584 } |
| 580 | 585 |
| 581 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueue) { | 586 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueue) { |
| 582 const gfx::Size layer_bounds(1000, 1000); | 587 const gfx::Size layer_bounds(1000, 1000); |
| 583 host_impl_.SetViewportSize(layer_bounds); | 588 host_impl_.SetViewportSize(layer_bounds); |
| 584 SetupDefaultTrees(layer_bounds); | 589 SetupDefaultTrees(layer_bounds); |
| 585 | 590 |
| 586 EvictionTilePriorityQueue empty_queue; | 591 EvictionTilePriorityQueue empty_queue; |
| 587 host_impl_.BuildEvictionQueue(&empty_queue, SAME_PRIORITY_FOR_BOTH_TREES); | 592 host_impl_.BuildEvictionQueue(&empty_queue, SAME_PRIORITY_FOR_BOTH_TREES); |
| 588 EXPECT_TRUE(empty_queue.IsEmpty()); | 593 EXPECT_TRUE(empty_queue.IsEmpty()); |
| 589 std::set<Tile*> all_tiles; | 594 std::set<Tile*> all_tiles; |
| 590 size_t tile_count = 0; | 595 size_t tile_count = 0; |
| 591 | 596 |
| 592 RasterTilePriorityQueue raster_queue; | 597 scoped_ptr<RasterTilePriorityQueue> raster_queue(host_impl_.BuildRasterQueue( |
| 593 host_impl_.BuildRasterQueue(&raster_queue, SAME_PRIORITY_FOR_BOTH_TREES, | 598 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); |
| 594 RasterTilePriorityQueue::Type::ALL); | 599 while (!raster_queue->IsEmpty()) { |
| 595 while (!raster_queue.IsEmpty()) { | |
| 596 ++tile_count; | 600 ++tile_count; |
| 597 EXPECT_TRUE(raster_queue.Top()); | 601 EXPECT_TRUE(raster_queue->Top()); |
| 598 all_tiles.insert(raster_queue.Top()); | 602 all_tiles.insert(raster_queue->Top()); |
| 599 raster_queue.Pop(); | 603 raster_queue->Pop(); |
| 600 } | 604 } |
| 601 | 605 |
| 602 EXPECT_EQ(tile_count, all_tiles.size()); | 606 EXPECT_EQ(tile_count, all_tiles.size()); |
| 603 EXPECT_EQ(16u, tile_count); | 607 EXPECT_EQ(16u, tile_count); |
| 604 | 608 |
| 605 tile_manager()->InitializeTilesWithResourcesForTesting( | 609 tile_manager()->InitializeTilesWithResourcesForTesting( |
| 606 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); | 610 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); |
| 607 | 611 |
| 608 EvictionTilePriorityQueue queue; | 612 EvictionTilePriorityQueue queue; |
| 609 host_impl_.BuildEvictionQueue(&queue, SMOOTHNESS_TAKES_PRIORITY); | 613 host_impl_.BuildEvictionQueue(&queue, SMOOTHNESS_TAKES_PRIORITY); |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 780 static_cast<FakePictureLayerImpl*>(pending_layer_->children()[0]); | 784 static_cast<FakePictureLayerImpl*>(pending_layer_->children()[0]); |
| 781 pending_child_layer->SetDrawsContent(true); | 785 pending_child_layer->SetDrawsContent(true); |
| 782 | 786 |
| 783 time_ticks += base::TimeDelta::FromMilliseconds(1); | 787 time_ticks += base::TimeDelta::FromMilliseconds(1); |
| 784 host_impl_.SetCurrentBeginFrameArgs( | 788 host_impl_.SetCurrentBeginFrameArgs( |
| 785 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); | 789 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); |
| 786 host_impl_.pending_tree()->UpdateDrawProperties(); | 790 host_impl_.pending_tree()->UpdateDrawProperties(); |
| 787 | 791 |
| 788 std::set<Tile*> all_tiles; | 792 std::set<Tile*> all_tiles; |
| 789 size_t tile_count = 0; | 793 size_t tile_count = 0; |
| 790 RasterTilePriorityQueue raster_queue; | 794 scoped_ptr<RasterTilePriorityQueue> raster_queue(host_impl_.BuildRasterQueue( |
| 791 host_impl_.BuildRasterQueue(&raster_queue, SAME_PRIORITY_FOR_BOTH_TREES, | 795 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); |
| 792 RasterTilePriorityQueue::Type::ALL); | 796 while (!raster_queue->IsEmpty()) { |
| 793 while (!raster_queue.IsEmpty()) { | |
| 794 ++tile_count; | 797 ++tile_count; |
| 795 EXPECT_TRUE(raster_queue.Top()); | 798 EXPECT_TRUE(raster_queue->Top()); |
| 796 all_tiles.insert(raster_queue.Top()); | 799 all_tiles.insert(raster_queue->Top()); |
| 797 raster_queue.Pop(); | 800 raster_queue->Pop(); |
| 798 } | 801 } |
| 799 EXPECT_EQ(tile_count, all_tiles.size()); | 802 EXPECT_EQ(tile_count, all_tiles.size()); |
| 800 EXPECT_EQ(32u, tile_count); | 803 EXPECT_EQ(32u, tile_count); |
| 801 | 804 |
| 802 pending_layer_->ResetAllTilesPriorities(); | 805 pending_layer_->ResetAllTilesPriorities(); |
| 803 | 806 |
| 804 // Renew all of the tile priorities. | 807 // Renew all of the tile priorities. |
| 805 gfx::Rect viewport(layer_bounds); | 808 gfx::Rect viewport(layer_bounds); |
| 806 pending_layer_->HighResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0, | 809 pending_layer_->HighResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0, |
| 807 Occlusion()); | 810 Occlusion()); |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 986 } | 989 } |
| 987 EXPECT_EQ(tile_count, new_content_tiles.size()); | 990 EXPECT_EQ(tile_count, new_content_tiles.size()); |
| 988 EXPECT_EQ(all_tiles, new_content_tiles); | 991 EXPECT_EQ(all_tiles, new_content_tiles); |
| 989 } | 992 } |
| 990 | 993 |
| 991 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueEmptyLayers) { | 994 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueEmptyLayers) { |
| 992 const gfx::Size layer_bounds(1000, 1000); | 995 const gfx::Size layer_bounds(1000, 1000); |
| 993 host_impl_.SetViewportSize(layer_bounds); | 996 host_impl_.SetViewportSize(layer_bounds); |
| 994 SetupDefaultTrees(layer_bounds); | 997 SetupDefaultTrees(layer_bounds); |
| 995 | 998 |
| 996 RasterTilePriorityQueue queue; | 999 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( |
| 997 host_impl_.BuildRasterQueue(&queue, SAME_PRIORITY_FOR_BOTH_TREES, | 1000 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); |
| 998 RasterTilePriorityQueue::Type::ALL); | 1001 EXPECT_FALSE(queue->IsEmpty()); |
| 999 EXPECT_FALSE(queue.IsEmpty()); | |
| 1000 | 1002 |
| 1001 size_t tile_count = 0; | 1003 size_t tile_count = 0; |
| 1002 std::set<Tile*> all_tiles; | 1004 std::set<Tile*> all_tiles; |
| 1003 while (!queue.IsEmpty()) { | 1005 while (!queue->IsEmpty()) { |
| 1004 EXPECT_TRUE(queue.Top()); | 1006 EXPECT_TRUE(queue->Top()); |
| 1005 all_tiles.insert(queue.Top()); | 1007 all_tiles.insert(queue->Top()); |
| 1006 ++tile_count; | 1008 ++tile_count; |
| 1007 queue.Pop(); | 1009 queue->Pop(); |
| 1008 } | 1010 } |
| 1009 | 1011 |
| 1010 EXPECT_EQ(tile_count, all_tiles.size()); | 1012 EXPECT_EQ(tile_count, all_tiles.size()); |
| 1011 EXPECT_EQ(16u, tile_count); | 1013 EXPECT_EQ(16u, tile_count); |
| 1012 | 1014 |
| 1013 queue.Reset(); | |
| 1014 for (int i = 1; i < 10; ++i) { | 1015 for (int i = 1; i < 10; ++i) { |
| 1015 scoped_ptr<FakePictureLayerImpl> pending_layer = | 1016 scoped_ptr<FakePictureLayerImpl> pending_layer = |
| 1016 FakePictureLayerImpl::Create(host_impl_.pending_tree(), id_ + i); | 1017 FakePictureLayerImpl::Create(host_impl_.pending_tree(), id_ + i); |
| 1017 pending_layer->SetDrawsContent(true); | 1018 pending_layer->SetDrawsContent(true); |
| 1018 pending_layer->set_has_valid_tile_priorities(true); | 1019 pending_layer->set_has_valid_tile_priorities(true); |
| 1019 pending_layer_->AddChild(pending_layer.Pass()); | 1020 pending_layer_->AddChild(pending_layer.Pass()); |
| 1020 } | 1021 } |
| 1021 | 1022 |
| 1022 host_impl_.BuildRasterQueue(&queue, SAME_PRIORITY_FOR_BOTH_TREES, | 1023 queue.reset(host_impl_.BuildRasterQueue(SAME_PRIORITY_FOR_BOTH_TREES, |
| 1023 RasterTilePriorityQueue::Type::ALL); | 1024 RasterTilePriorityQueue::Type::ALL) |
| 1024 EXPECT_FALSE(queue.IsEmpty()); | 1025 .release()); |
| 1026 EXPECT_FALSE(queue->IsEmpty()); | |
| 1025 | 1027 |
| 1026 tile_count = 0; | 1028 tile_count = 0; |
| 1027 all_tiles.clear(); | 1029 all_tiles.clear(); |
| 1028 while (!queue.IsEmpty()) { | 1030 while (!queue->IsEmpty()) { |
| 1029 EXPECT_TRUE(queue.Top()); | 1031 EXPECT_TRUE(queue->Top()); |
| 1030 all_tiles.insert(queue.Top()); | 1032 all_tiles.insert(queue->Top()); |
| 1031 ++tile_count; | 1033 ++tile_count; |
| 1032 queue.Pop(); | 1034 queue->Pop(); |
| 1033 } | 1035 } |
| 1034 EXPECT_EQ(tile_count, all_tiles.size()); | 1036 EXPECT_EQ(tile_count, all_tiles.size()); |
| 1035 EXPECT_EQ(16u, tile_count); | 1037 EXPECT_EQ(16u, tile_count); |
| 1036 } | 1038 } |
| 1037 | 1039 |
| 1038 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueueEmptyLayers) { | 1040 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueueEmptyLayers) { |
| 1039 const gfx::Size layer_bounds(1000, 1000); | 1041 const gfx::Size layer_bounds(1000, 1000); |
| 1040 host_impl_.SetViewportSize(layer_bounds); | 1042 host_impl_.SetViewportSize(layer_bounds); |
| 1041 SetupDefaultTrees(layer_bounds); | 1043 SetupDefaultTrees(layer_bounds); |
| 1042 | 1044 |
| 1043 RasterTilePriorityQueue raster_queue; | 1045 scoped_ptr<RasterTilePriorityQueue> raster_queue(host_impl_.BuildRasterQueue( |
| 1044 host_impl_.BuildRasterQueue(&raster_queue, SAME_PRIORITY_FOR_BOTH_TREES, | 1046 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); |
| 1045 RasterTilePriorityQueue::Type::ALL); | 1047 EXPECT_FALSE(raster_queue->IsEmpty()); |
| 1046 EXPECT_FALSE(raster_queue.IsEmpty()); | |
| 1047 | 1048 |
| 1048 size_t tile_count = 0; | 1049 size_t tile_count = 0; |
| 1049 std::set<Tile*> all_tiles; | 1050 std::set<Tile*> all_tiles; |
| 1050 while (!raster_queue.IsEmpty()) { | 1051 while (!raster_queue->IsEmpty()) { |
| 1051 EXPECT_TRUE(raster_queue.Top()); | 1052 EXPECT_TRUE(raster_queue->Top()); |
| 1052 all_tiles.insert(raster_queue.Top()); | 1053 all_tiles.insert(raster_queue->Top()); |
| 1053 ++tile_count; | 1054 ++tile_count; |
| 1054 raster_queue.Pop(); | 1055 raster_queue->Pop(); |
| 1055 } | 1056 } |
| 1056 EXPECT_EQ(tile_count, all_tiles.size()); | 1057 EXPECT_EQ(tile_count, all_tiles.size()); |
| 1057 EXPECT_EQ(16u, tile_count); | 1058 EXPECT_EQ(16u, tile_count); |
| 1058 | 1059 |
| 1059 std::vector<Tile*> tiles(all_tiles.begin(), all_tiles.end()); | 1060 std::vector<Tile*> tiles(all_tiles.begin(), all_tiles.end()); |
| 1060 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(tiles); | 1061 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(tiles); |
| 1061 | 1062 |
| 1062 EvictionTilePriorityQueue queue; | 1063 EvictionTilePriorityQueue queue; |
| 1063 for (int i = 1; i < 10; ++i) { | 1064 for (int i = 1; i < 10; ++i) { |
| 1064 scoped_ptr<FakePictureLayerImpl> pending_layer = | 1065 scoped_ptr<FakePictureLayerImpl> pending_layer = |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1265 EXPECT_GT(eventually_bin_order_correct_count, | 1266 EXPECT_GT(eventually_bin_order_correct_count, |
| 1266 eventually_bin_order_incorrect_count); | 1267 eventually_bin_order_incorrect_count); |
| 1267 | 1268 |
| 1268 EXPECT_TRUE(have_tiles[TilePriority::NOW]); | 1269 EXPECT_TRUE(have_tiles[TilePriority::NOW]); |
| 1269 EXPECT_TRUE(have_tiles[TilePriority::SOON]); | 1270 EXPECT_TRUE(have_tiles[TilePriority::SOON]); |
| 1270 EXPECT_TRUE(have_tiles[TilePriority::EVENTUALLY]); | 1271 EXPECT_TRUE(have_tiles[TilePriority::EVENTUALLY]); |
| 1271 } | 1272 } |
| 1272 | 1273 |
| 1273 } // namespace | 1274 } // namespace |
| 1274 } // namespace cc | 1275 } // namespace cc |
| OLD | NEW |