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

Side by Side Diff: cc/resources/tile_manager_unittest.cc

Issue 900073003: cc: Rework how picture layer tiling set gets into raster queues. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: update Created 5 years, 10 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/resources/tile_manager_perftest.cc ('k') | cc/test/fake_picture_layer_tiling_client.h » ('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 "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 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 pending_layer->SetBounds(pending_layer->raster_source()->GetSize()); 123 pending_layer->SetBounds(pending_layer->raster_source()->GetSize());
124 pending_tree->SetRootLayer(pending_layer.Pass()); 124 pending_tree->SetRootLayer(pending_layer.Pass());
125 125
126 pending_layer_ = static_cast<FakePictureLayerImpl*>( 126 pending_layer_ = static_cast<FakePictureLayerImpl*>(
127 host_impl_.pending_tree()->LayerById(id_)); 127 host_impl_.pending_tree()->LayerById(id_));
128 128
129 // Add tilings/tiles for the layer. 129 // Add tilings/tiles for the layer.
130 host_impl_.pending_tree()->UpdateDrawProperties(); 130 host_impl_.pending_tree()->UpdateDrawProperties();
131 } 131 }
132 132
133 scoped_ptr<RasterTilePriorityQueue> BuildRasterQueue(
134 TreePriority tree_priority,
135 RasterTilePriorityQueue::Type type) {
136 global_state_.tree_priority = tree_priority;
137 tile_manager()->SetGlobalStateForTesting(global_state_);
138 return tile_manager()->BuildRasterQueue(type);
139 }
140
141 scoped_ptr<EvictionTilePriorityQueue> BuildEvictionQueue(
142 TreePriority tree_priority) {
143 global_state_.tree_priority = tree_priority;
144 tile_manager()->SetGlobalStateForTesting(global_state_);
145 return tile_manager()->BuildEvictionQueue();
146 }
147
133 TileManager* tile_manager() { return host_impl_.tile_manager(); } 148 TileManager* tile_manager() { return host_impl_.tile_manager(); }
134 149
135 protected: 150 protected:
136 GlobalStateThatImpactsTilePriority global_state_; 151 GlobalStateThatImpactsTilePriority global_state_;
137 152
138 TestSharedBitmapManager shared_bitmap_manager_; 153 TestSharedBitmapManager shared_bitmap_manager_;
139 TileMemoryLimitPolicy memory_limit_policy_; 154 TileMemoryLimitPolicy memory_limit_policy_;
140 int max_tiles_; 155 int max_tiles_;
141 bool ready_to_activate_; 156 bool ready_to_activate_;
142 int id_; 157 int id_;
143 FakeImplProxy proxy_; 158 FakeImplProxy proxy_;
144 FakeLayerTreeHostImpl host_impl_; 159 FakeLayerTreeHostImpl host_impl_;
145 FakePictureLayerImpl* pending_layer_; 160 FakePictureLayerImpl* pending_layer_;
146 FakePictureLayerImpl* active_layer_; 161 FakePictureLayerImpl* active_layer_;
147 }; 162 };
148 163
149 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) { 164 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) {
150 const gfx::Size layer_bounds(1000, 1000); 165 const gfx::Size layer_bounds(1000, 1000);
151 host_impl_.SetViewportSize(layer_bounds); 166 host_impl_.SetViewportSize(layer_bounds);
152 SetupDefaultTrees(layer_bounds); 167 SetupDefaultTrees(layer_bounds);
153 168
154 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( 169 scoped_ptr<RasterTilePriorityQueue> queue(BuildRasterQueue(
155 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); 170 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL));
156 EXPECT_FALSE(queue->IsEmpty()); 171 EXPECT_FALSE(queue->IsEmpty());
157 172
158 size_t tile_count = 0; 173 size_t tile_count = 0;
159 std::set<Tile*> all_tiles; 174 std::set<Tile*> all_tiles;
160 while (!queue->IsEmpty()) { 175 while (!queue->IsEmpty()) {
161 EXPECT_TRUE(queue->Top()); 176 EXPECT_TRUE(queue->Top());
162 all_tiles.insert(queue->Top()); 177 all_tiles.insert(queue->Top());
163 ++tile_count; 178 ++tile_count;
164 queue->Pop(); 179 queue->Pop();
165 } 180 }
166 181
167 EXPECT_EQ(tile_count, all_tiles.size()); 182 EXPECT_EQ(tile_count, all_tiles.size());
168 EXPECT_EQ(16u, tile_count); 183 EXPECT_EQ(16u, tile_count);
169 184
170 // Sanity check, all tiles should be visible. 185 // Sanity check, all tiles should be visible.
171 std::set<Tile*> smoothness_tiles; 186 std::set<Tile*> smoothness_tiles;
172 queue = host_impl_.BuildRasterQueue(SMOOTHNESS_TAKES_PRIORITY, 187 queue = BuildRasterQueue(SMOOTHNESS_TAKES_PRIORITY,
173 RasterTilePriorityQueue::Type::ALL); 188 RasterTilePriorityQueue::Type::ALL);
174 bool had_low_res = false; 189 bool had_low_res = false;
175 while (!queue->IsEmpty()) { 190 while (!queue->IsEmpty()) {
176 Tile* tile = queue->Top(); 191 Tile* tile = queue->Top();
177 EXPECT_TRUE(tile); 192 EXPECT_TRUE(tile);
178 EXPECT_EQ(TilePriority::NOW, tile->priority(ACTIVE_TREE).priority_bin); 193 EXPECT_EQ(TilePriority::NOW, tile->priority(ACTIVE_TREE).priority_bin);
179 EXPECT_EQ(TilePriority::NOW, tile->priority(PENDING_TREE).priority_bin); 194 EXPECT_EQ(TilePriority::NOW, tile->priority(PENDING_TREE).priority_bin);
180 if (tile->priority(ACTIVE_TREE).resolution == LOW_RESOLUTION) 195 if (tile->priority(ACTIVE_TREE).resolution == LOW_RESOLUTION)
181 had_low_res = true; 196 had_low_res = true;
182 else 197 else
183 smoothness_tiles.insert(tile); 198 smoothness_tiles.insert(tile);
184 queue->Pop(); 199 queue->Pop();
185 } 200 }
186 EXPECT_EQ(all_tiles, smoothness_tiles); 201 EXPECT_EQ(all_tiles, smoothness_tiles);
187 EXPECT_TRUE(had_low_res); 202 EXPECT_TRUE(had_low_res);
188 203
189 // Check that everything is required for activation. 204 // Check that everything is required for activation.
190 queue = host_impl_.BuildRasterQueue( 205 queue =
191 SMOOTHNESS_TAKES_PRIORITY, 206 BuildRasterQueue(SMOOTHNESS_TAKES_PRIORITY,
192 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION); 207 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION);
193 std::set<Tile*> required_for_activation_tiles; 208 std::set<Tile*> required_for_activation_tiles;
194 while (!queue->IsEmpty()) { 209 while (!queue->IsEmpty()) {
195 Tile* tile = queue->Top(); 210 Tile* tile = queue->Top();
196 EXPECT_TRUE(tile->required_for_activation()); 211 EXPECT_TRUE(tile->required_for_activation());
197 required_for_activation_tiles.insert(tile); 212 required_for_activation_tiles.insert(tile);
198 queue->Pop(); 213 queue->Pop();
199 } 214 }
200 EXPECT_EQ(all_tiles, required_for_activation_tiles); 215 EXPECT_EQ(all_tiles, required_for_activation_tiles);
201 216
202 // Check that everything is required for draw. 217 // Check that everything is required for draw.
203 queue = host_impl_.BuildRasterQueue( 218 queue = BuildRasterQueue(SMOOTHNESS_TAKES_PRIORITY,
204 SMOOTHNESS_TAKES_PRIORITY, 219 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW);
205 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW);
206 std::set<Tile*> required_for_draw_tiles; 220 std::set<Tile*> required_for_draw_tiles;
207 while (!queue->IsEmpty()) { 221 while (!queue->IsEmpty()) {
208 Tile* tile = queue->Top(); 222 Tile* tile = queue->Top();
209 EXPECT_TRUE(tile->required_for_draw()); 223 EXPECT_TRUE(tile->required_for_draw());
210 required_for_draw_tiles.insert(tile); 224 required_for_draw_tiles.insert(tile);
211 queue->Pop(); 225 queue->Pop();
212 } 226 }
213 EXPECT_EQ(all_tiles, required_for_draw_tiles); 227 EXPECT_EQ(all_tiles, required_for_draw_tiles);
214 228
215 Region invalidation(gfx::Rect(0, 0, 500, 500)); 229 Region invalidation(gfx::Rect(0, 0, 500, 500));
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 std::vector<Tile*> active_low_res_tiles = 272 std::vector<Tile*> active_low_res_tiles =
259 active_layer_->LowResTiling()->AllTilesForTesting(); 273 active_layer_->LowResTiling()->AllTilesForTesting();
260 for (size_t i = 0; i < active_low_res_tiles.size(); ++i) 274 for (size_t i = 0; i < active_low_res_tiles.size(); ++i)
261 all_tiles.insert(active_low_res_tiles[i]); 275 all_tiles.insert(active_low_res_tiles[i]);
262 276
263 Tile* last_tile = NULL; 277 Tile* last_tile = NULL;
264 smoothness_tiles.clear(); 278 smoothness_tiles.clear();
265 tile_count = 0; 279 tile_count = 0;
266 size_t correct_order_tiles = 0u; 280 size_t correct_order_tiles = 0u;
267 // Here we expect to get increasing ACTIVE_TREE priority_bin. 281 // Here we expect to get increasing ACTIVE_TREE priority_bin.
268 queue = host_impl_.BuildRasterQueue(SMOOTHNESS_TAKES_PRIORITY, 282 queue = BuildRasterQueue(SMOOTHNESS_TAKES_PRIORITY,
269 RasterTilePriorityQueue::Type::ALL); 283 RasterTilePriorityQueue::Type::ALL);
270 std::set<Tile*> expected_required_for_draw_tiles; 284 std::set<Tile*> expected_required_for_draw_tiles;
271 std::set<Tile*> expected_required_for_activation_tiles; 285 std::set<Tile*> expected_required_for_activation_tiles;
272 while (!queue->IsEmpty()) { 286 while (!queue->IsEmpty()) {
273 Tile* tile = queue->Top(); 287 Tile* tile = queue->Top();
274 EXPECT_TRUE(tile); 288 EXPECT_TRUE(tile);
275 289
276 if (!last_tile) 290 if (!last_tile)
277 last_tile = tile; 291 last_tile = tile;
278 292
279 EXPECT_LE(last_tile->priority(ACTIVE_TREE).priority_bin, 293 EXPECT_LE(last_tile->priority(ACTIVE_TREE).priority_bin,
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 queue->Pop(); 325 queue->Pop();
312 } 326 }
313 327
314 EXPECT_EQ(tile_count, smoothness_tiles.size()); 328 EXPECT_EQ(tile_count, smoothness_tiles.size());
315 EXPECT_EQ(all_tiles, smoothness_tiles); 329 EXPECT_EQ(all_tiles, smoothness_tiles);
316 // Since we don't guarantee increasing distance due to spiral iterator, we 330 // Since we don't guarantee increasing distance due to spiral iterator, we
317 // should check that we're _mostly_ right. 331 // should check that we're _mostly_ right.
318 EXPECT_GT(correct_order_tiles, 3 * tile_count / 4); 332 EXPECT_GT(correct_order_tiles, 3 * tile_count / 4);
319 333
320 // Check that we have consistent required_for_activation tiles. 334 // Check that we have consistent required_for_activation tiles.
321 queue = host_impl_.BuildRasterQueue( 335 queue =
322 SMOOTHNESS_TAKES_PRIORITY, 336 BuildRasterQueue(SMOOTHNESS_TAKES_PRIORITY,
323 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION); 337 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION);
324 required_for_activation_tiles.clear(); 338 required_for_activation_tiles.clear();
325 while (!queue->IsEmpty()) { 339 while (!queue->IsEmpty()) {
326 Tile* tile = queue->Top(); 340 Tile* tile = queue->Top();
327 EXPECT_TRUE(tile->required_for_activation()); 341 EXPECT_TRUE(tile->required_for_activation());
328 required_for_activation_tiles.insert(tile); 342 required_for_activation_tiles.insert(tile);
329 queue->Pop(); 343 queue->Pop();
330 } 344 }
331 EXPECT_EQ(expected_required_for_activation_tiles, 345 EXPECT_EQ(expected_required_for_activation_tiles,
332 required_for_activation_tiles); 346 required_for_activation_tiles);
333 EXPECT_NE(all_tiles, required_for_activation_tiles); 347 EXPECT_NE(all_tiles, required_for_activation_tiles);
334 348
335 // Check that we have consistent required_for_draw tiles. 349 // Check that we have consistent required_for_draw tiles.
336 queue = host_impl_.BuildRasterQueue( 350 queue = BuildRasterQueue(SMOOTHNESS_TAKES_PRIORITY,
337 SMOOTHNESS_TAKES_PRIORITY, 351 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW);
338 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW);
339 required_for_draw_tiles.clear(); 352 required_for_draw_tiles.clear();
340 while (!queue->IsEmpty()) { 353 while (!queue->IsEmpty()) {
341 Tile* tile = queue->Top(); 354 Tile* tile = queue->Top();
342 EXPECT_TRUE(tile->required_for_draw()); 355 EXPECT_TRUE(tile->required_for_draw());
343 required_for_draw_tiles.insert(tile); 356 required_for_draw_tiles.insert(tile);
344 queue->Pop(); 357 queue->Pop();
345 } 358 }
346 EXPECT_EQ(expected_required_for_draw_tiles, required_for_draw_tiles); 359 EXPECT_EQ(expected_required_for_draw_tiles, required_for_draw_tiles);
347 EXPECT_NE(all_tiles, required_for_draw_tiles); 360 EXPECT_NE(all_tiles, required_for_draw_tiles);
348 361
349 std::set<Tile*> new_content_tiles; 362 std::set<Tile*> new_content_tiles;
350 last_tile = NULL; 363 last_tile = NULL;
351 size_t increasing_distance_tiles = 0u; 364 size_t increasing_distance_tiles = 0u;
352 // Here we expect to get increasing PENDING_TREE priority_bin. 365 // Here we expect to get increasing PENDING_TREE priority_bin.
353 queue = host_impl_.BuildRasterQueue(NEW_CONTENT_TAKES_PRIORITY, 366 queue = BuildRasterQueue(NEW_CONTENT_TAKES_PRIORITY,
354 RasterTilePriorityQueue::Type::ALL); 367 RasterTilePriorityQueue::Type::ALL);
355 tile_count = 0; 368 tile_count = 0;
356 while (!queue->IsEmpty()) { 369 while (!queue->IsEmpty()) {
357 Tile* tile = queue->Top(); 370 Tile* tile = queue->Top();
358 EXPECT_TRUE(tile); 371 EXPECT_TRUE(tile);
359 372
360 if (!last_tile) 373 if (!last_tile)
361 last_tile = tile; 374 last_tile = tile;
362 375
363 EXPECT_LE(last_tile->priority(PENDING_TREE).priority_bin, 376 EXPECT_LE(last_tile->priority(PENDING_TREE).priority_bin,
364 tile->priority(PENDING_TREE).priority_bin); 377 tile->priority(PENDING_TREE).priority_bin);
(...skipping 17 matching lines...) Expand all
382 queue->Pop(); 395 queue->Pop();
383 } 396 }
384 397
385 EXPECT_EQ(tile_count, new_content_tiles.size()); 398 EXPECT_EQ(tile_count, new_content_tiles.size());
386 EXPECT_EQ(high_res_tiles, new_content_tiles); 399 EXPECT_EQ(high_res_tiles, new_content_tiles);
387 // Since we don't guarantee increasing distance due to spiral iterator, we 400 // Since we don't guarantee increasing distance due to spiral iterator, we
388 // should check that we're _mostly_ right. 401 // should check that we're _mostly_ right.
389 EXPECT_GE(increasing_distance_tiles, 3 * tile_count / 4); 402 EXPECT_GE(increasing_distance_tiles, 3 * tile_count / 4);
390 403
391 // Check that we have consistent required_for_activation tiles. 404 // Check that we have consistent required_for_activation tiles.
392 queue = host_impl_.BuildRasterQueue( 405 queue =
393 NEW_CONTENT_TAKES_PRIORITY, 406 BuildRasterQueue(NEW_CONTENT_TAKES_PRIORITY,
394 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION); 407 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION);
395 required_for_activation_tiles.clear(); 408 required_for_activation_tiles.clear();
396 while (!queue->IsEmpty()) { 409 while (!queue->IsEmpty()) {
397 Tile* tile = queue->Top(); 410 Tile* tile = queue->Top();
398 EXPECT_TRUE(tile->required_for_activation()); 411 EXPECT_TRUE(tile->required_for_activation());
399 required_for_activation_tiles.insert(tile); 412 required_for_activation_tiles.insert(tile);
400 queue->Pop(); 413 queue->Pop();
401 } 414 }
402 EXPECT_EQ(expected_required_for_activation_tiles, 415 EXPECT_EQ(expected_required_for_activation_tiles,
403 required_for_activation_tiles); 416 required_for_activation_tiles);
404 EXPECT_NE(new_content_tiles, required_for_activation_tiles); 417 EXPECT_NE(new_content_tiles, required_for_activation_tiles);
405 418
406 // Check that we have consistent required_for_draw tiles. 419 // Check that we have consistent required_for_draw tiles.
407 queue = host_impl_.BuildRasterQueue( 420 queue = BuildRasterQueue(NEW_CONTENT_TAKES_PRIORITY,
408 NEW_CONTENT_TAKES_PRIORITY, 421 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW);
409 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW);
410 required_for_draw_tiles.clear(); 422 required_for_draw_tiles.clear();
411 while (!queue->IsEmpty()) { 423 while (!queue->IsEmpty()) {
412 Tile* tile = queue->Top(); 424 Tile* tile = queue->Top();
413 EXPECT_TRUE(tile->required_for_draw()); 425 EXPECT_TRUE(tile->required_for_draw());
414 required_for_draw_tiles.insert(tile); 426 required_for_draw_tiles.insert(tile);
415 queue->Pop(); 427 queue->Pop();
416 } 428 }
417 EXPECT_EQ(expected_required_for_draw_tiles, required_for_draw_tiles); 429 EXPECT_EQ(expected_required_for_draw_tiles, required_for_draw_tiles);
418 EXPECT_NE(new_content_tiles, required_for_draw_tiles); 430 EXPECT_NE(new_content_tiles, required_for_draw_tiles);
419 } 431 }
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
471 for (int j = 0; j <= 3; ++j) { 483 for (int j = 0; j <= 3; ++j) {
472 expected_all_tiles.insert(pending_layer_->HighResTiling()->TileAt(i, j)); 484 expected_all_tiles.insert(pending_layer_->HighResTiling()->TileAt(i, j));
473 expected_all_tiles.insert(active_layer_->HighResTiling()->TileAt(i, j)); 485 expected_all_tiles.insert(active_layer_->HighResTiling()->TileAt(i, j));
474 } 486 }
475 } 487 }
476 // Expect 15 shared tiles and 1 unshared tile. 488 // Expect 15 shared tiles and 1 unshared tile.
477 EXPECT_EQ(17u, expected_all_tiles.size()); 489 EXPECT_EQ(17u, expected_all_tiles.size());
478 490
479 // 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
480 // return the same information as computed manually above. 492 // return the same information as computed manually above.
481 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( 493 scoped_ptr<RasterTilePriorityQueue> queue(BuildRasterQueue(
482 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); 494 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL));
483 std::set<Tile*> actual_now_tiles; 495 std::set<Tile*> actual_now_tiles;
484 std::set<Tile*> actual_all_tiles; 496 std::set<Tile*> actual_all_tiles;
485 while (!queue->IsEmpty()) { 497 while (!queue->IsEmpty()) {
486 Tile* tile = queue->Top(); 498 Tile* tile = queue->Top();
487 queue->Pop(); 499 queue->Pop();
488 if (tile->combined_priority().priority_bin == TilePriority::NOW) 500 if (tile->combined_priority().priority_bin == TilePriority::NOW)
489 actual_now_tiles.insert(tile); 501 actual_now_tiles.insert(tile);
490 actual_all_tiles.insert(tile); 502 actual_all_tiles.insert(tile);
491 } 503 }
492 EXPECT_EQ(expected_now_tiles, actual_now_tiles); 504 EXPECT_EQ(expected_now_tiles, actual_now_tiles);
493 EXPECT_EQ(expected_all_tiles, actual_all_tiles); 505 EXPECT_EQ(expected_all_tiles, actual_all_tiles);
494 506
495 queue = host_impl_.BuildRasterQueue( 507 queue = BuildRasterQueue(SAME_PRIORITY_FOR_BOTH_TREES,
496 SAME_PRIORITY_FOR_BOTH_TREES, 508 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW);
497 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW);
498 std::set<Tile*> actual_required_for_draw_tiles; 509 std::set<Tile*> actual_required_for_draw_tiles;
499 while (!queue->IsEmpty()) { 510 while (!queue->IsEmpty()) {
500 Tile* tile = queue->Top(); 511 Tile* tile = queue->Top();
501 queue->Pop(); 512 queue->Pop();
502 actual_required_for_draw_tiles.insert(tile); 513 actual_required_for_draw_tiles.insert(tile);
503 } 514 }
504 EXPECT_EQ(expected_required_for_draw_tiles, actual_required_for_draw_tiles); 515 EXPECT_EQ(expected_required_for_draw_tiles, actual_required_for_draw_tiles);
505 516
506 queue = host_impl_.BuildRasterQueue( 517 queue =
507 SAME_PRIORITY_FOR_BOTH_TREES, 518 BuildRasterQueue(SAME_PRIORITY_FOR_BOTH_TREES,
508 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION); 519 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION);
509 std::set<Tile*> actual_required_for_activation_tiles; 520 std::set<Tile*> actual_required_for_activation_tiles;
510 while (!queue->IsEmpty()) { 521 while (!queue->IsEmpty()) {
511 Tile* tile = queue->Top(); 522 Tile* tile = queue->Top();
512 queue->Pop(); 523 queue->Pop();
513 actual_required_for_activation_tiles.insert(tile); 524 actual_required_for_activation_tiles.insert(tile);
514 } 525 }
515 EXPECT_EQ(expected_required_for_activation_tiles, 526 EXPECT_EQ(expected_required_for_activation_tiles,
516 actual_required_for_activation_tiles); 527 actual_required_for_activation_tiles);
517 } 528 }
518 529
(...skipping 18 matching lines...) Expand all
537 pending_layer_->AddChild(pending_child.Pass()); 548 pending_layer_->AddChild(pending_child.Pass());
538 549
539 // Set a small viewport, so we have soon and eventually tiles. 550 // Set a small viewport, so we have soon and eventually tiles.
540 host_impl_.SetViewportSize(gfx::Size(200, 200)); 551 host_impl_.SetViewportSize(gfx::Size(200, 200));
541 time_ticks += base::TimeDelta::FromMilliseconds(1); 552 time_ticks += base::TimeDelta::FromMilliseconds(1);
542 host_impl_.SetCurrentBeginFrameArgs( 553 host_impl_.SetCurrentBeginFrameArgs(
543 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); 554 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
544 host_impl_.pending_tree()->UpdateDrawProperties(); 555 host_impl_.pending_tree()->UpdateDrawProperties();
545 556
546 host_impl_.SetRequiresHighResToDraw(); 557 host_impl_.SetRequiresHighResToDraw();
547 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( 558 scoped_ptr<RasterTilePriorityQueue> queue(BuildRasterQueue(
548 SMOOTHNESS_TAKES_PRIORITY, RasterTilePriorityQueue::Type::ALL)); 559 SMOOTHNESS_TAKES_PRIORITY, RasterTilePriorityQueue::Type::ALL));
549 EXPECT_FALSE(queue->IsEmpty()); 560 EXPECT_FALSE(queue->IsEmpty());
550 561
551 // Get all the tiles that are NOW or SOON and make sure they are ready to 562 // Get all the tiles that are NOW or SOON and make sure they are ready to
552 // draw. 563 // draw.
553 std::vector<Tile*> all_tiles; 564 std::vector<Tile*> all_tiles;
554 while (!queue->IsEmpty()) { 565 while (!queue->IsEmpty()) {
555 Tile* tile = queue->Top(); 566 Tile* tile = queue->Top();
556 if (tile->combined_priority().priority_bin >= TilePriority::EVENTUALLY) 567 if (tile->combined_priority().priority_bin >= TilePriority::EVENTUALLY)
557 break; 568 break;
558 569
559 all_tiles.push_back(tile); 570 all_tiles.push_back(tile);
560 queue->Pop(); 571 queue->Pop();
561 } 572 }
562 573
563 tile_manager()->InitializeTilesWithResourcesForTesting( 574 tile_manager()->InitializeTilesWithResourcesForTesting(
564 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); 575 std::vector<Tile*>(all_tiles.begin(), all_tiles.end()));
565 576
566 // Ensure we can activate. 577 // Ensure we can activate.
567 EXPECT_TRUE(tile_manager()->IsReadyToActivate()); 578 EXPECT_TRUE(tile_manager()->IsReadyToActivate());
568 } 579 }
569 580
570 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueue) { 581 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueue) {
571 const gfx::Size layer_bounds(1000, 1000); 582 const gfx::Size layer_bounds(1000, 1000);
572 host_impl_.SetViewportSize(layer_bounds); 583 host_impl_.SetViewportSize(layer_bounds);
573 SetupDefaultTrees(layer_bounds); 584 SetupDefaultTrees(layer_bounds);
574 585
575 scoped_ptr<EvictionTilePriorityQueue> empty_queue( 586 scoped_ptr<EvictionTilePriorityQueue> empty_queue(
576 host_impl_.BuildEvictionQueue(SAME_PRIORITY_FOR_BOTH_TREES)); 587 BuildEvictionQueue(SAME_PRIORITY_FOR_BOTH_TREES));
577 EXPECT_TRUE(empty_queue->IsEmpty()); 588 EXPECT_TRUE(empty_queue->IsEmpty());
578 std::set<Tile*> all_tiles; 589 std::set<Tile*> all_tiles;
579 size_t tile_count = 0; 590 size_t tile_count = 0;
580 591
581 scoped_ptr<RasterTilePriorityQueue> raster_queue(host_impl_.BuildRasterQueue( 592 scoped_ptr<RasterTilePriorityQueue> raster_queue(BuildRasterQueue(
582 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); 593 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL));
583 while (!raster_queue->IsEmpty()) { 594 while (!raster_queue->IsEmpty()) {
584 ++tile_count; 595 ++tile_count;
585 EXPECT_TRUE(raster_queue->Top()); 596 EXPECT_TRUE(raster_queue->Top());
586 all_tiles.insert(raster_queue->Top()); 597 all_tiles.insert(raster_queue->Top());
587 raster_queue->Pop(); 598 raster_queue->Pop();
588 } 599 }
589 600
590 EXPECT_EQ(tile_count, all_tiles.size()); 601 EXPECT_EQ(tile_count, all_tiles.size());
591 EXPECT_EQ(16u, tile_count); 602 EXPECT_EQ(16u, tile_count);
592 603
593 tile_manager()->InitializeTilesWithResourcesForTesting( 604 tile_manager()->InitializeTilesWithResourcesForTesting(
594 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); 605 std::vector<Tile*>(all_tiles.begin(), all_tiles.end()));
595 606
596 scoped_ptr<EvictionTilePriorityQueue> queue( 607 scoped_ptr<EvictionTilePriorityQueue> queue(
597 host_impl_.BuildEvictionQueue(SMOOTHNESS_TAKES_PRIORITY)); 608 BuildEvictionQueue(SMOOTHNESS_TAKES_PRIORITY));
598 EXPECT_FALSE(queue->IsEmpty()); 609 EXPECT_FALSE(queue->IsEmpty());
599 610
600 // Sanity check, all tiles should be visible. 611 // Sanity check, all tiles should be visible.
601 std::set<Tile*> smoothness_tiles; 612 std::set<Tile*> smoothness_tiles;
602 while (!queue->IsEmpty()) { 613 while (!queue->IsEmpty()) {
603 Tile* tile = queue->Top(); 614 Tile* tile = queue->Top();
604 EXPECT_TRUE(tile); 615 EXPECT_TRUE(tile);
605 EXPECT_EQ(TilePriority::NOW, tile->priority(ACTIVE_TREE).priority_bin); 616 EXPECT_EQ(TilePriority::NOW, tile->priority(ACTIVE_TREE).priority_bin);
606 EXPECT_EQ(TilePriority::NOW, tile->priority(PENDING_TREE).priority_bin); 617 EXPECT_EQ(TilePriority::NOW, tile->priority(PENDING_TREE).priority_bin);
607 EXPECT_TRUE(tile->HasResource()); 618 EXPECT_TRUE(tile->HasResource());
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
656 for (size_t i = 0; i < active_low_res_tiles.size(); ++i) 667 for (size_t i = 0; i < active_low_res_tiles.size(); ++i)
657 all_tiles.insert(active_low_res_tiles[i]); 668 all_tiles.insert(active_low_res_tiles[i]);
658 669
659 tile_manager()->InitializeTilesWithResourcesForTesting( 670 tile_manager()->InitializeTilesWithResourcesForTesting(
660 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); 671 std::vector<Tile*>(all_tiles.begin(), all_tiles.end()));
661 672
662 Tile* last_tile = NULL; 673 Tile* last_tile = NULL;
663 smoothness_tiles.clear(); 674 smoothness_tiles.clear();
664 tile_count = 0; 675 tile_count = 0;
665 // Here we expect to get increasing ACTIVE_TREE priority_bin. 676 // Here we expect to get increasing ACTIVE_TREE priority_bin.
666 queue = host_impl_.BuildEvictionQueue(SMOOTHNESS_TAKES_PRIORITY); 677 queue = BuildEvictionQueue(SMOOTHNESS_TAKES_PRIORITY);
667 int distance_increasing = 0; 678 int distance_increasing = 0;
668 int distance_decreasing = 0; 679 int distance_decreasing = 0;
669 while (!queue->IsEmpty()) { 680 while (!queue->IsEmpty()) {
670 Tile* tile = queue->Top(); 681 Tile* tile = queue->Top();
671 EXPECT_TRUE(tile); 682 EXPECT_TRUE(tile);
672 EXPECT_TRUE(tile->HasResource()); 683 EXPECT_TRUE(tile->HasResource());
673 684
674 if (!last_tile) 685 if (!last_tile)
675 last_tile = tile; 686 last_tile = tile;
676 687
(...skipping 21 matching lines...) Expand all
698 709
699 // Ensure that the distance is decreasing many more times than increasing. 710 // Ensure that the distance is decreasing many more times than increasing.
700 EXPECT_EQ(3, distance_increasing); 711 EXPECT_EQ(3, distance_increasing);
701 EXPECT_EQ(17, distance_decreasing); 712 EXPECT_EQ(17, distance_decreasing);
702 EXPECT_EQ(tile_count, smoothness_tiles.size()); 713 EXPECT_EQ(tile_count, smoothness_tiles.size());
703 EXPECT_EQ(all_tiles, smoothness_tiles); 714 EXPECT_EQ(all_tiles, smoothness_tiles);
704 715
705 std::set<Tile*> new_content_tiles; 716 std::set<Tile*> new_content_tiles;
706 last_tile = NULL; 717 last_tile = NULL;
707 // Here we expect to get increasing PENDING_TREE priority_bin. 718 // Here we expect to get increasing PENDING_TREE priority_bin.
708 queue = host_impl_.BuildEvictionQueue(NEW_CONTENT_TAKES_PRIORITY); 719 queue = BuildEvictionQueue(NEW_CONTENT_TAKES_PRIORITY);
709 distance_decreasing = 0; 720 distance_decreasing = 0;
710 distance_increasing = 0; 721 distance_increasing = 0;
711 while (!queue->IsEmpty()) { 722 while (!queue->IsEmpty()) {
712 Tile* tile = queue->Top(); 723 Tile* tile = queue->Top();
713 EXPECT_TRUE(tile); 724 EXPECT_TRUE(tile);
714 725
715 if (!last_tile) 726 if (!last_tile)
716 last_tile = tile; 727 last_tile = tile;
717 728
718 EXPECT_GE(last_tile->priority(PENDING_TREE).priority_bin, 729 EXPECT_GE(last_tile->priority(PENDING_TREE).priority_bin,
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
768 static_cast<FakePictureLayerImpl*>(pending_layer_->children()[0]); 779 static_cast<FakePictureLayerImpl*>(pending_layer_->children()[0]);
769 pending_child_layer->SetDrawsContent(true); 780 pending_child_layer->SetDrawsContent(true);
770 781
771 time_ticks += base::TimeDelta::FromMilliseconds(1); 782 time_ticks += base::TimeDelta::FromMilliseconds(1);
772 host_impl_.SetCurrentBeginFrameArgs( 783 host_impl_.SetCurrentBeginFrameArgs(
773 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); 784 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
774 host_impl_.pending_tree()->UpdateDrawProperties(); 785 host_impl_.pending_tree()->UpdateDrawProperties();
775 786
776 std::set<Tile*> all_tiles; 787 std::set<Tile*> all_tiles;
777 size_t tile_count = 0; 788 size_t tile_count = 0;
778 scoped_ptr<RasterTilePriorityQueue> raster_queue(host_impl_.BuildRasterQueue( 789 scoped_ptr<RasterTilePriorityQueue> raster_queue(BuildRasterQueue(
779 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); 790 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL));
780 while (!raster_queue->IsEmpty()) { 791 while (!raster_queue->IsEmpty()) {
781 ++tile_count; 792 ++tile_count;
782 EXPECT_TRUE(raster_queue->Top()); 793 EXPECT_TRUE(raster_queue->Top());
783 all_tiles.insert(raster_queue->Top()); 794 all_tiles.insert(raster_queue->Top());
784 raster_queue->Pop(); 795 raster_queue->Pop();
785 } 796 }
786 EXPECT_EQ(tile_count, all_tiles.size()); 797 EXPECT_EQ(tile_count, all_tiles.size());
787 EXPECT_EQ(32u, tile_count); 798 EXPECT_EQ(32u, tile_count);
788 799
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
824 pending_child_low_res_tiles.end()); 835 pending_child_low_res_tiles.end());
825 836
826 tile_manager()->InitializeTilesWithResourcesForTesting( 837 tile_manager()->InitializeTilesWithResourcesForTesting(
827 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); 838 std::vector<Tile*>(all_tiles.begin(), all_tiles.end()));
828 839
829 // Verify occlusion is considered by EvictionTilePriorityQueue. 840 // Verify occlusion is considered by EvictionTilePriorityQueue.
830 TreePriority tree_priority = NEW_CONTENT_TAKES_PRIORITY; 841 TreePriority tree_priority = NEW_CONTENT_TAKES_PRIORITY;
831 size_t occluded_count = 0u; 842 size_t occluded_count = 0u;
832 Tile* last_tile = NULL; 843 Tile* last_tile = NULL;
833 scoped_ptr<EvictionTilePriorityQueue> queue( 844 scoped_ptr<EvictionTilePriorityQueue> queue(
834 host_impl_.BuildEvictionQueue(tree_priority)); 845 BuildEvictionQueue(tree_priority));
835 while (!queue->IsEmpty()) { 846 while (!queue->IsEmpty()) {
836 Tile* tile = queue->Top(); 847 Tile* tile = queue->Top();
837 if (!last_tile) 848 if (!last_tile)
838 last_tile = tile; 849 last_tile = tile;
839 850
840 bool tile_is_occluded = tile->is_occluded_for_tree_priority(tree_priority); 851 bool tile_is_occluded = tile->is_occluded_for_tree_priority(tree_priority);
841 852
842 // The only way we will encounter an occluded tile after an unoccluded 853 // The only way we will encounter an occluded tile after an unoccluded
843 // tile is if the priorty bin decreased, the tile is required for 854 // tile is if the priorty bin decreased, the tile is required for
844 // activation, or the scale changed. 855 // activation, or the scale changed.
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
950 EXPECT_TRUE(pending_layer_->HasValidTilePriorities()); 961 EXPECT_TRUE(pending_layer_->HasValidTilePriorities());
951 EXPECT_FALSE(pending_child_layer->HasValidTilePriorities()); 962 EXPECT_FALSE(pending_child_layer->HasValidTilePriorities());
952 963
953 // Verify that eviction queue returns tiles also from layers without valid 964 // Verify that eviction queue returns tiles also from layers without valid
954 // tile priorities and that the tile priority bin of those tiles is (at most) 965 // tile priorities and that the tile priority bin of those tiles is (at most)
955 // EVENTUALLY. 966 // EVENTUALLY.
956 TreePriority tree_priority = NEW_CONTENT_TAKES_PRIORITY; 967 TreePriority tree_priority = NEW_CONTENT_TAKES_PRIORITY;
957 std::set<Tile*> new_content_tiles; 968 std::set<Tile*> new_content_tiles;
958 size_t tile_count = 0; 969 size_t tile_count = 0;
959 scoped_ptr<EvictionTilePriorityQueue> queue( 970 scoped_ptr<EvictionTilePriorityQueue> queue(
960 host_impl_.BuildEvictionQueue(tree_priority)); 971 BuildEvictionQueue(tree_priority));
961 while (!queue->IsEmpty()) { 972 while (!queue->IsEmpty()) {
962 Tile* tile = queue->Top(); 973 Tile* tile = queue->Top();
963 const TilePriority& pending_priority = tile->priority(PENDING_TREE); 974 const TilePriority& pending_priority = tile->priority(PENDING_TREE);
964 EXPECT_NE(std::numeric_limits<float>::infinity(), 975 EXPECT_NE(std::numeric_limits<float>::infinity(),
965 pending_priority.distance_to_visible); 976 pending_priority.distance_to_visible);
966 if (all_pending_child_tiles.find(tile) != all_pending_child_tiles.end()) 977 if (all_pending_child_tiles.find(tile) != all_pending_child_tiles.end())
967 EXPECT_EQ(TilePriority::EVENTUALLY, pending_priority.priority_bin); 978 EXPECT_EQ(TilePriority::EVENTUALLY, pending_priority.priority_bin);
968 else 979 else
969 EXPECT_EQ(TilePriority::NOW, pending_priority.priority_bin); 980 EXPECT_EQ(TilePriority::NOW, pending_priority.priority_bin);
970 new_content_tiles.insert(tile); 981 new_content_tiles.insert(tile);
971 ++tile_count; 982 ++tile_count;
972 queue->Pop(); 983 queue->Pop();
973 } 984 }
974 EXPECT_EQ(tile_count, new_content_tiles.size()); 985 EXPECT_EQ(tile_count, new_content_tiles.size());
975 EXPECT_EQ(all_tiles, new_content_tiles); 986 EXPECT_EQ(all_tiles, new_content_tiles);
976 } 987 }
977 988
978 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueEmptyLayers) { 989 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueEmptyLayers) {
979 const gfx::Size layer_bounds(1000, 1000); 990 const gfx::Size layer_bounds(1000, 1000);
980 host_impl_.SetViewportSize(layer_bounds); 991 host_impl_.SetViewportSize(layer_bounds);
981 SetupDefaultTrees(layer_bounds); 992 SetupDefaultTrees(layer_bounds);
982 993
983 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( 994 scoped_ptr<RasterTilePriorityQueue> queue(BuildRasterQueue(
984 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); 995 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL));
985 EXPECT_FALSE(queue->IsEmpty()); 996 EXPECT_FALSE(queue->IsEmpty());
986 997
987 size_t tile_count = 0; 998 size_t tile_count = 0;
988 std::set<Tile*> all_tiles; 999 std::set<Tile*> all_tiles;
989 while (!queue->IsEmpty()) { 1000 while (!queue->IsEmpty()) {
990 EXPECT_TRUE(queue->Top()); 1001 EXPECT_TRUE(queue->Top());
991 all_tiles.insert(queue->Top()); 1002 all_tiles.insert(queue->Top());
992 ++tile_count; 1003 ++tile_count;
993 queue->Pop(); 1004 queue->Pop();
994 } 1005 }
995 1006
996 EXPECT_EQ(tile_count, all_tiles.size()); 1007 EXPECT_EQ(tile_count, all_tiles.size());
997 EXPECT_EQ(16u, tile_count); 1008 EXPECT_EQ(16u, tile_count);
998 1009
999 for (int i = 1; i < 10; ++i) { 1010 for (int i = 1; i < 10; ++i) {
1000 scoped_ptr<FakePictureLayerImpl> pending_layer = 1011 scoped_ptr<FakePictureLayerImpl> pending_layer =
1001 FakePictureLayerImpl::Create(host_impl_.pending_tree(), id_ + i); 1012 FakePictureLayerImpl::Create(host_impl_.pending_tree(), id_ + i);
1002 pending_layer->SetDrawsContent(true); 1013 pending_layer->SetDrawsContent(true);
1003 pending_layer->set_has_valid_tile_priorities(true); 1014 pending_layer->set_has_valid_tile_priorities(true);
1004 pending_layer_->AddChild(pending_layer.Pass()); 1015 pending_layer_->AddChild(pending_layer.Pass());
1005 } 1016 }
1006 1017
1007 queue = host_impl_.BuildRasterQueue(SAME_PRIORITY_FOR_BOTH_TREES, 1018 queue = BuildRasterQueue(SAME_PRIORITY_FOR_BOTH_TREES,
1008 RasterTilePriorityQueue::Type::ALL); 1019 RasterTilePriorityQueue::Type::ALL);
1009 EXPECT_FALSE(queue->IsEmpty()); 1020 EXPECT_FALSE(queue->IsEmpty());
1010 1021
1011 tile_count = 0; 1022 tile_count = 0;
1012 all_tiles.clear(); 1023 all_tiles.clear();
1013 while (!queue->IsEmpty()) { 1024 while (!queue->IsEmpty()) {
1014 EXPECT_TRUE(queue->Top()); 1025 EXPECT_TRUE(queue->Top());
1015 all_tiles.insert(queue->Top()); 1026 all_tiles.insert(queue->Top());
1016 ++tile_count; 1027 ++tile_count;
1017 queue->Pop(); 1028 queue->Pop();
1018 } 1029 }
1019 EXPECT_EQ(tile_count, all_tiles.size()); 1030 EXPECT_EQ(tile_count, all_tiles.size());
1020 EXPECT_EQ(16u, tile_count); 1031 EXPECT_EQ(16u, tile_count);
1021 } 1032 }
1022 1033
1023 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueueEmptyLayers) { 1034 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueueEmptyLayers) {
1024 const gfx::Size layer_bounds(1000, 1000); 1035 const gfx::Size layer_bounds(1000, 1000);
1025 host_impl_.SetViewportSize(layer_bounds); 1036 host_impl_.SetViewportSize(layer_bounds);
1026 SetupDefaultTrees(layer_bounds); 1037 SetupDefaultTrees(layer_bounds);
1027 1038
1028 scoped_ptr<RasterTilePriorityQueue> raster_queue(host_impl_.BuildRasterQueue( 1039 scoped_ptr<RasterTilePriorityQueue> raster_queue(BuildRasterQueue(
1029 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); 1040 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL));
1030 EXPECT_FALSE(raster_queue->IsEmpty()); 1041 EXPECT_FALSE(raster_queue->IsEmpty());
1031 1042
1032 size_t tile_count = 0; 1043 size_t tile_count = 0;
1033 std::set<Tile*> all_tiles; 1044 std::set<Tile*> all_tiles;
1034 while (!raster_queue->IsEmpty()) { 1045 while (!raster_queue->IsEmpty()) {
1035 EXPECT_TRUE(raster_queue->Top()); 1046 EXPECT_TRUE(raster_queue->Top());
1036 all_tiles.insert(raster_queue->Top()); 1047 all_tiles.insert(raster_queue->Top());
1037 ++tile_count; 1048 ++tile_count;
1038 raster_queue->Pop(); 1049 raster_queue->Pop();
1039 } 1050 }
1040 EXPECT_EQ(tile_count, all_tiles.size()); 1051 EXPECT_EQ(tile_count, all_tiles.size());
1041 EXPECT_EQ(16u, tile_count); 1052 EXPECT_EQ(16u, tile_count);
1042 1053
1043 std::vector<Tile*> tiles(all_tiles.begin(), all_tiles.end()); 1054 std::vector<Tile*> tiles(all_tiles.begin(), all_tiles.end());
1044 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(tiles); 1055 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(tiles);
1045 1056
1046 for (int i = 1; i < 10; ++i) { 1057 for (int i = 1; i < 10; ++i) {
1047 scoped_ptr<FakePictureLayerImpl> pending_layer = 1058 scoped_ptr<FakePictureLayerImpl> pending_layer =
1048 FakePictureLayerImpl::Create(host_impl_.pending_tree(), id_ + i); 1059 FakePictureLayerImpl::Create(host_impl_.pending_tree(), id_ + i);
1049 pending_layer->SetDrawsContent(true); 1060 pending_layer->SetDrawsContent(true);
1050 pending_layer->set_has_valid_tile_priorities(true); 1061 pending_layer->set_has_valid_tile_priorities(true);
1051 pending_layer_->AddChild(pending_layer.Pass()); 1062 pending_layer_->AddChild(pending_layer.Pass());
1052 } 1063 }
1053 1064
1054 scoped_ptr<EvictionTilePriorityQueue> queue( 1065 scoped_ptr<EvictionTilePriorityQueue> queue(
1055 host_impl_.BuildEvictionQueue(SAME_PRIORITY_FOR_BOTH_TREES)); 1066 BuildEvictionQueue(SAME_PRIORITY_FOR_BOTH_TREES));
1056 EXPECT_FALSE(queue->IsEmpty()); 1067 EXPECT_FALSE(queue->IsEmpty());
1057 1068
1058 tile_count = 0; 1069 tile_count = 0;
1059 all_tiles.clear(); 1070 all_tiles.clear();
1060 while (!queue->IsEmpty()) { 1071 while (!queue->IsEmpty()) {
1061 EXPECT_TRUE(queue->Top()); 1072 EXPECT_TRUE(queue->Top());
1062 all_tiles.insert(queue->Top()); 1073 all_tiles.insert(queue->Top());
1063 ++tile_count; 1074 ++tile_count;
1064 queue->Pop(); 1075 queue->Pop();
1065 } 1076 }
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
1252 EXPECT_GT(eventually_bin_order_correct_count, 1263 EXPECT_GT(eventually_bin_order_correct_count,
1253 eventually_bin_order_incorrect_count); 1264 eventually_bin_order_incorrect_count);
1254 1265
1255 EXPECT_TRUE(have_tiles[TilePriority::NOW]); 1266 EXPECT_TRUE(have_tiles[TilePriority::NOW]);
1256 EXPECT_TRUE(have_tiles[TilePriority::SOON]); 1267 EXPECT_TRUE(have_tiles[TilePriority::SOON]);
1257 EXPECT_TRUE(have_tiles[TilePriority::EVENTUALLY]); 1268 EXPECT_TRUE(have_tiles[TilePriority::EVENTUALLY]);
1258 } 1269 }
1259 1270
1260 } // namespace 1271 } // namespace
1261 } // namespace cc 1272 } // namespace cc
OLDNEW
« no previous file with comments | « cc/resources/tile_manager_perftest.cc ('k') | cc/test/fake_picture_layer_tiling_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698