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

Side by Side Diff: cc/layers/picture_layer_impl_unittest.cc

Issue 735723005: cc: Adding creation location to debug BeginFrameArgs objects. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Change without deps (can't run on trybots) Created 6 years, 1 month 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 | « no previous file | cc/output/begin_frame_args.h » ('j') | cc/output/begin_frame_args.h » ('J')
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/layers/picture_layer_impl.h" 5 #include "cc/layers/picture_layer_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <set> 9 #include <set>
10 #include <utility> 10 #include <utility>
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 const PictureLayerTilingSet* tilings = pending_layer_->tilings(); 323 const PictureLayerTilingSet* tilings = pending_layer_->tilings();
324 EXPECT_GT(tilings->num_tilings(), 0u); 324 EXPECT_GT(tilings->num_tilings(), 0u);
325 for (size_t i = 0; i < tilings->num_tilings(); ++i) 325 for (size_t i = 0; i < tilings->num_tilings(); ++i)
326 VerifyAllTilesExistAndHavePile(tilings->tiling_at(i), active_pile.get()); 326 VerifyAllTilesExistAndHavePile(tilings->tiling_at(i), active_pile.get());
327 } 327 }
328 328
329 TEST_F(PictureLayerImplTest, ExternalViewportRectForPrioritizingTiles) { 329 TEST_F(PictureLayerImplTest, ExternalViewportRectForPrioritizingTiles) {
330 base::TimeTicks time_ticks; 330 base::TimeTicks time_ticks;
331 time_ticks += base::TimeDelta::FromMilliseconds(1); 331 time_ticks += base::TimeDelta::FromMilliseconds(1);
332 host_impl_.SetCurrentBeginFrameArgs( 332 host_impl_.SetCurrentBeginFrameArgs(
333 CreateBeginFrameArgsForTesting(time_ticks)); 333 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
334 gfx::Size tile_size(100, 100); 334 gfx::Size tile_size(100, 100);
335 gfx::Size layer_bounds(400, 400); 335 gfx::Size layer_bounds(400, 400);
336 336
337 scoped_refptr<FakePicturePileImpl> pending_pile = 337 scoped_refptr<FakePicturePileImpl> pending_pile =
338 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 338 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
339 scoped_refptr<FakePicturePileImpl> active_pile = 339 scoped_refptr<FakePicturePileImpl> active_pile =
340 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 340 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
341 341
342 SetupTrees(pending_pile, active_pile); 342 SetupTrees(pending_pile, active_pile);
343 343
344 Region invalidation; 344 Region invalidation;
345 AddDefaultTilingsWithInvalidation(invalidation); 345 AddDefaultTilingsWithInvalidation(invalidation);
346 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false); 346 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false);
347 347
348 time_ticks += base::TimeDelta::FromMilliseconds(200); 348 time_ticks += base::TimeDelta::FromMilliseconds(200);
349 host_impl_.SetCurrentBeginFrameArgs( 349 host_impl_.SetCurrentBeginFrameArgs(
350 CreateBeginFrameArgsForTesting(time_ticks)); 350 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
351 351
352 // Update tiles with viewport for tile priority as (0, 0, 100, 100) and the 352 // Update tiles with viewport for tile priority as (0, 0, 100, 100) and the
353 // identify transform for tile priority. 353 // identify transform for tile priority.
354 bool resourceless_software_draw = false; 354 bool resourceless_software_draw = false;
355 gfx::Rect viewport = gfx::Rect(layer_bounds), 355 gfx::Rect viewport = gfx::Rect(layer_bounds),
356 viewport_rect_for_tile_priority = gfx::Rect(0, 0, 100, 100); 356 viewport_rect_for_tile_priority = gfx::Rect(0, 0, 100, 100);
357 gfx::Transform transform, transform_for_tile_priority; 357 gfx::Transform transform, transform_for_tile_priority;
358 358
359 host_impl_.SetExternalDrawConstraints(transform, 359 host_impl_.SetExternalDrawConstraints(transform,
360 viewport, 360 viewport,
(...skipping 17 matching lines...) Expand all
378 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority_in_view_space, 378 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority_in_view_space,
379 tiling->contents_scale())); 379 tiling->contents_scale()));
380 } 380 }
381 381
382 // Update tiles with viewport for tile priority as (200, 200, 100, 100) in 382 // Update tiles with viewport for tile priority as (200, 200, 100, 100) in
383 // screen space and the transform for tile priority is translated and 383 // screen space and the transform for tile priority is translated and
384 // rotated. The actual viewport for tile priority used by PictureLayerImpl 384 // rotated. The actual viewport for tile priority used by PictureLayerImpl
385 // should be (200, 200, 100, 100) applied with the said transform. 385 // should be (200, 200, 100, 100) applied with the said transform.
386 time_ticks += base::TimeDelta::FromMilliseconds(200); 386 time_ticks += base::TimeDelta::FromMilliseconds(200);
387 host_impl_.SetCurrentBeginFrameArgs( 387 host_impl_.SetCurrentBeginFrameArgs(
388 CreateBeginFrameArgsForTesting(time_ticks)); 388 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
389 389
390 viewport_rect_for_tile_priority = gfx::Rect(200, 200, 100, 100); 390 viewport_rect_for_tile_priority = gfx::Rect(200, 200, 100, 100);
391 transform_for_tile_priority.Translate(100, 100); 391 transform_for_tile_priority.Translate(100, 100);
392 transform_for_tile_priority.Rotate(45); 392 transform_for_tile_priority.Rotate(45);
393 host_impl_.SetExternalDrawConstraints(transform, 393 host_impl_.SetExternalDrawConstraints(transform,
394 viewport, 394 viewport,
395 viewport, 395 viewport,
396 viewport_rect_for_tile_priority, 396 viewport_rect_for_tile_priority,
397 transform_for_tile_priority, 397 transform_for_tile_priority,
398 resourceless_software_draw); 398 resourceless_software_draw);
(...skipping 20 matching lines...) Expand all
419 tiling->GetCurrentVisibleRectForTesting(), 419 tiling->GetCurrentVisibleRectForTesting(),
420 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority_in_view_space, 420 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority_in_view_space,
421 tiling->contents_scale())); 421 tiling->contents_scale()));
422 } 422 }
423 } 423 }
424 424
425 TEST_F(PictureLayerImplTest, InvalidViewportForPrioritizingTiles) { 425 TEST_F(PictureLayerImplTest, InvalidViewportForPrioritizingTiles) {
426 base::TimeTicks time_ticks; 426 base::TimeTicks time_ticks;
427 time_ticks += base::TimeDelta::FromMilliseconds(1); 427 time_ticks += base::TimeDelta::FromMilliseconds(1);
428 host_impl_.SetCurrentBeginFrameArgs( 428 host_impl_.SetCurrentBeginFrameArgs(
429 CreateBeginFrameArgsForTesting(time_ticks)); 429 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
430 430
431 gfx::Size tile_size(100, 100); 431 gfx::Size tile_size(100, 100);
432 gfx::Size layer_bounds(400, 400); 432 gfx::Size layer_bounds(400, 400);
433 433
434 scoped_refptr<FakePicturePileImpl> pending_pile = 434 scoped_refptr<FakePicturePileImpl> pending_pile =
435 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 435 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
436 scoped_refptr<FakePicturePileImpl> active_pile = 436 scoped_refptr<FakePicturePileImpl> active_pile =
437 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 437 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
438 438
439 SetupTrees(pending_pile, active_pile); 439 SetupTrees(pending_pile, active_pile);
(...skipping 21 matching lines...) Expand all
461 gfx::Rect visible_rect_for_tile_priority = 461 gfx::Rect visible_rect_for_tile_priority =
462 active_layer_->visible_rect_for_tile_priority(); 462 active_layer_->visible_rect_for_tile_priority();
463 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); 463 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty());
464 gfx::Transform screen_space_transform_for_tile_priority = 464 gfx::Transform screen_space_transform_for_tile_priority =
465 active_layer_->screen_space_transform(); 465 active_layer_->screen_space_transform();
466 466
467 // Expand viewport and set it as invalid for prioritizing tiles. 467 // Expand viewport and set it as invalid for prioritizing tiles.
468 // Should update viewport and transform, but not update visible rect. 468 // Should update viewport and transform, but not update visible rect.
469 time_ticks += base::TimeDelta::FromMilliseconds(200); 469 time_ticks += base::TimeDelta::FromMilliseconds(200);
470 host_impl_.SetCurrentBeginFrameArgs( 470 host_impl_.SetCurrentBeginFrameArgs(
471 CreateBeginFrameArgsForTesting(time_ticks)); 471 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
472 resourceless_software_draw = true; 472 resourceless_software_draw = true;
473 viewport = gfx::ScaleToEnclosingRect(viewport, 2); 473 viewport = gfx::ScaleToEnclosingRect(viewport, 2);
474 transform.Translate(1.f, 1.f); 474 transform.Translate(1.f, 1.f);
475 active_layer_->draw_properties().visible_content_rect = viewport; 475 active_layer_->draw_properties().visible_content_rect = viewport;
476 active_layer_->draw_properties().screen_space_transform = transform; 476 active_layer_->draw_properties().screen_space_transform = transform;
477 host_impl_.SetExternalDrawConstraints(transform, 477 host_impl_.SetExternalDrawConstraints(transform,
478 viewport, 478 viewport,
479 viewport, 479 viewport,
480 viewport, 480 viewport,
481 transform, 481 transform,
482 resourceless_software_draw); 482 resourceless_software_draw);
483 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); 483 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
484 484
485 // Transform for tile priority is updated. 485 // Transform for tile priority is updated.
486 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, 486 EXPECT_TRANSFORMATION_MATRIX_EQ(transform,
487 active_layer_->screen_space_transform()); 487 active_layer_->screen_space_transform());
488 // Visible rect for tile priority retains old value. 488 // Visible rect for tile priority retains old value.
489 EXPECT_EQ(visible_rect_for_tile_priority, 489 EXPECT_EQ(visible_rect_for_tile_priority,
490 active_layer_->visible_rect_for_tile_priority()); 490 active_layer_->visible_rect_for_tile_priority());
491 491
492 // Keep expanded viewport but mark it valid. Should update tile viewport. 492 // Keep expanded viewport but mark it valid. Should update tile viewport.
493 time_ticks += base::TimeDelta::FromMilliseconds(200); 493 time_ticks += base::TimeDelta::FromMilliseconds(200);
494 host_impl_.SetCurrentBeginFrameArgs( 494 host_impl_.SetCurrentBeginFrameArgs(
495 CreateBeginFrameArgsForTesting(time_ticks)); 495 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
496 resourceless_software_draw = false; 496 resourceless_software_draw = false;
497 host_impl_.SetExternalDrawConstraints(transform, 497 host_impl_.SetExternalDrawConstraints(transform,
498 viewport, 498 viewport,
499 viewport, 499 viewport,
500 viewport, 500 viewport,
501 transform, 501 transform,
502 resourceless_software_draw); 502 resourceless_software_draw);
503 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); 503 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
504 504
505 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, 505 EXPECT_TRANSFORMATION_MATRIX_EQ(transform,
(...skipping 1030 matching lines...) Expand 10 before | Expand all | Expand 10 after
1536 1536
1537 pending_layer_->set_fixed_tile_size(tile_size); 1537 pending_layer_->set_fixed_tile_size(tile_size);
1538 ASSERT_TRUE(pending_layer_->CanHaveTilings()); 1538 ASSERT_TRUE(pending_layer_->CanHaveTilings());
1539 PictureLayerTiling* tiling = pending_layer_->AddTiling(1.f); 1539 PictureLayerTiling* tiling = pending_layer_->AddTiling(1.f);
1540 host_impl_.pending_tree()->UpdateDrawProperties(); 1540 host_impl_.pending_tree()->UpdateDrawProperties();
1541 EXPECT_EQ(viewport, pending_layer_->visible_rect_for_tile_priority()); 1541 EXPECT_EQ(viewport, pending_layer_->visible_rect_for_tile_priority());
1542 1542
1543 base::TimeTicks time_ticks; 1543 base::TimeTicks time_ticks;
1544 time_ticks += base::TimeDelta::FromMilliseconds(1); 1544 time_ticks += base::TimeDelta::FromMilliseconds(1);
1545 host_impl_.SetCurrentBeginFrameArgs( 1545 host_impl_.SetCurrentBeginFrameArgs(
1546 CreateBeginFrameArgsForTesting(time_ticks)); 1546 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
1547 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); 1547 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
1548 EXPECT_EQ(HIGH_RESOLUTION, tiling->resolution()); 1548 EXPECT_EQ(HIGH_RESOLUTION, tiling->resolution());
1549 1549
1550 int num_visible = 0; 1550 int num_visible = 0;
1551 int num_offscreen = 0; 1551 int num_offscreen = 0;
1552 1552
1553 for (PictureLayerTiling::TilingRasterTileIterator iter(tiling); iter; 1553 for (PictureLayerTiling::TilingRasterTileIterator iter(tiling); iter;
1554 ++iter) { 1554 ++iter) {
1555 const Tile* tile = *iter; 1555 const Tile* tile = *iter;
1556 DCHECK(tile); 1556 DCHECK(tile);
1557 if (tile->priority(PENDING_TREE).distance_to_visible == 0.f) { 1557 if (tile->priority(PENDING_TREE).distance_to_visible == 0.f) {
1558 EXPECT_TRUE(tile->required_for_activation()); 1558 EXPECT_TRUE(tile->required_for_activation());
1559 num_visible++; 1559 num_visible++;
1560 } else { 1560 } else {
1561 EXPECT_FALSE(tile->required_for_activation()); 1561 EXPECT_FALSE(tile->required_for_activation());
1562 num_offscreen++; 1562 num_offscreen++;
1563 } 1563 }
1564 } 1564 }
1565 1565
1566 EXPECT_GT(num_visible, 0); 1566 EXPECT_GT(num_visible, 0);
1567 EXPECT_GT(num_offscreen, 0); 1567 EXPECT_GT(num_offscreen, 0);
1568 } 1568 }
1569 1569
1570 TEST_F(PictureLayerImplTest, TileOutsideOfViewportForTilePriorityNotRequired) { 1570 TEST_F(PictureLayerImplTest, TileOutsideOfViewportForTilePriorityNotRequired) {
1571 base::TimeTicks time_ticks; 1571 base::TimeTicks time_ticks;
1572 time_ticks += base::TimeDelta::FromMilliseconds(1); 1572 time_ticks += base::TimeDelta::FromMilliseconds(1);
1573 host_impl_.SetCurrentBeginFrameArgs( 1573 host_impl_.SetCurrentBeginFrameArgs(
1574 CreateBeginFrameArgsForTesting(time_ticks)); 1574 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
1575 1575
1576 gfx::Size tile_size(100, 100); 1576 gfx::Size tile_size(100, 100);
1577 gfx::Size layer_bounds(400, 400); 1577 gfx::Size layer_bounds(400, 400);
1578 gfx::Rect external_viewport_for_tile_priority(400, 200); 1578 gfx::Rect external_viewport_for_tile_priority(400, 200);
1579 gfx::Rect visible_content_rect(200, 400); 1579 gfx::Rect visible_content_rect(200, 400);
1580 1580
1581 scoped_refptr<FakePicturePileImpl> active_pile = 1581 scoped_refptr<FakePicturePileImpl> active_pile =
1582 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1582 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
1583 scoped_refptr<FakePicturePileImpl> pending_pile = 1583 scoped_refptr<FakePicturePileImpl> pending_pile =
1584 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1584 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
(...skipping 15 matching lines...) Expand all
1600 external_viewport_for_tile_priority, 1600 external_viewport_for_tile_priority,
1601 transform_for_tile_priority, 1601 transform_for_tile_priority,
1602 resourceless_software_draw); 1602 resourceless_software_draw);
1603 host_impl_.pending_tree()->UpdateDrawProperties(); 1603 host_impl_.pending_tree()->UpdateDrawProperties();
1604 1604
1605 // Set visible content rect that is different from 1605 // Set visible content rect that is different from
1606 // external_viewport_for_tile_priority. 1606 // external_viewport_for_tile_priority.
1607 pending_layer_->draw_properties().visible_content_rect = visible_content_rect; 1607 pending_layer_->draw_properties().visible_content_rect = visible_content_rect;
1608 time_ticks += base::TimeDelta::FromMilliseconds(200); 1608 time_ticks += base::TimeDelta::FromMilliseconds(200);
1609 host_impl_.SetCurrentBeginFrameArgs( 1609 host_impl_.SetCurrentBeginFrameArgs(
1610 CreateBeginFrameArgsForTesting(time_ticks)); 1610 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
1611 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); 1611 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
1612 1612
1613 // Intersect the two rects. Any tile outside should not be required for 1613 // Intersect the two rects. Any tile outside should not be required for
1614 // activation. 1614 // activation.
1615 gfx::Rect viewport_for_tile_priority = 1615 gfx::Rect viewport_for_tile_priority =
1616 pending_layer_->GetViewportForTilePriorityInContentSpace(); 1616 pending_layer_->GetViewportForTilePriorityInContentSpace();
1617 viewport_for_tile_priority.Intersect(pending_layer_->visible_content_rect()); 1617 viewport_for_tile_priority.Intersect(pending_layer_->visible_content_rect());
1618 1618
1619 int num_inside = 0; 1619 int num_inside = 0;
1620 int num_outside = 0; 1620 int num_outside = 0;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1653 // All tiles in activation rect is ready to draw. 1653 // All tiles in activation rect is ready to draw.
1654 EXPECT_EQ(0u, data.num_missing_tiles); 1654 EXPECT_EQ(0u, data.num_missing_tiles);
1655 EXPECT_EQ(0u, data.num_incomplete_tiles); 1655 EXPECT_EQ(0u, data.num_incomplete_tiles);
1656 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads()); 1656 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads());
1657 } 1657 }
1658 1658
1659 TEST_F(PictureLayerImplTest, HighResTileIsComplete) { 1659 TEST_F(PictureLayerImplTest, HighResTileIsComplete) {
1660 base::TimeTicks time_ticks; 1660 base::TimeTicks time_ticks;
1661 time_ticks += base::TimeDelta::FromMilliseconds(1); 1661 time_ticks += base::TimeDelta::FromMilliseconds(1);
1662 host_impl_.SetCurrentBeginFrameArgs( 1662 host_impl_.SetCurrentBeginFrameArgs(
1663 CreateBeginFrameArgsForTesting(time_ticks)); 1663 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
1664 1664
1665 gfx::Size tile_size(100, 100); 1665 gfx::Size tile_size(100, 100);
1666 gfx::Size layer_bounds(200, 200); 1666 gfx::Size layer_bounds(200, 200);
1667 1667
1668 host_impl_.SetViewportSize(layer_bounds); 1668 host_impl_.SetViewportSize(layer_bounds);
1669 1669
1670 scoped_refptr<FakePicturePileImpl> pending_pile = 1670 scoped_refptr<FakePicturePileImpl> pending_pile =
1671 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1671 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
1672 SetupPendingTree(pending_pile); 1672 SetupPendingTree(pending_pile);
1673 ActivateTree(); 1673 ActivateTree();
(...skipping 15 matching lines...) Expand all
1689 EXPECT_EQ(9u, render_pass->quad_list.size()); 1689 EXPECT_EQ(9u, render_pass->quad_list.size());
1690 EXPECT_EQ(0u, data.num_missing_tiles); 1690 EXPECT_EQ(0u, data.num_missing_tiles);
1691 EXPECT_EQ(0u, data.num_incomplete_tiles); 1691 EXPECT_EQ(0u, data.num_incomplete_tiles);
1692 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads()); 1692 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads());
1693 } 1693 }
1694 1694
1695 TEST_F(PictureLayerImplTest, HighResTileIsIncomplete) { 1695 TEST_F(PictureLayerImplTest, HighResTileIsIncomplete) {
1696 base::TimeTicks time_ticks; 1696 base::TimeTicks time_ticks;
1697 time_ticks += base::TimeDelta::FromMilliseconds(1); 1697 time_ticks += base::TimeDelta::FromMilliseconds(1);
1698 host_impl_.SetCurrentBeginFrameArgs( 1698 host_impl_.SetCurrentBeginFrameArgs(
1699 CreateBeginFrameArgsForTesting(time_ticks)); 1699 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
1700 1700
1701 gfx::Size tile_size(100, 100); 1701 gfx::Size tile_size(100, 100);
1702 gfx::Size layer_bounds(200, 200); 1702 gfx::Size layer_bounds(200, 200);
1703 1703
1704 host_impl_.SetViewportSize(layer_bounds); 1704 host_impl_.SetViewportSize(layer_bounds);
1705 1705
1706 scoped_refptr<FakePicturePileImpl> pending_pile = 1706 scoped_refptr<FakePicturePileImpl> pending_pile =
1707 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1707 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
1708 SetupPendingTree(pending_pile); 1708 SetupPendingTree(pending_pile);
1709 ActivateTree(); 1709 ActivateTree();
(...skipping 10 matching lines...) Expand all
1720 EXPECT_EQ(1u, render_pass->quad_list.size()); 1720 EXPECT_EQ(1u, render_pass->quad_list.size());
1721 EXPECT_EQ(1u, data.num_missing_tiles); 1721 EXPECT_EQ(1u, data.num_missing_tiles);
1722 EXPECT_EQ(0u, data.num_incomplete_tiles); 1722 EXPECT_EQ(0u, data.num_incomplete_tiles);
1723 EXPECT_TRUE(active_layer_->only_used_low_res_last_append_quads()); 1723 EXPECT_TRUE(active_layer_->only_used_low_res_last_append_quads());
1724 } 1724 }
1725 1725
1726 TEST_F(PictureLayerImplTest, HighResTileIsIncompleteLowResComplete) { 1726 TEST_F(PictureLayerImplTest, HighResTileIsIncompleteLowResComplete) {
1727 base::TimeTicks time_ticks; 1727 base::TimeTicks time_ticks;
1728 time_ticks += base::TimeDelta::FromMilliseconds(1); 1728 time_ticks += base::TimeDelta::FromMilliseconds(1);
1729 host_impl_.SetCurrentBeginFrameArgs( 1729 host_impl_.SetCurrentBeginFrameArgs(
1730 CreateBeginFrameArgsForTesting(time_ticks)); 1730 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
1731 1731
1732 gfx::Size tile_size(100, 100); 1732 gfx::Size tile_size(100, 100);
1733 gfx::Size layer_bounds(200, 200); 1733 gfx::Size layer_bounds(200, 200);
1734 1734
1735 host_impl_.SetViewportSize(layer_bounds); 1735 host_impl_.SetViewportSize(layer_bounds);
1736 1736
1737 scoped_refptr<FakePicturePileImpl> pending_pile = 1737 scoped_refptr<FakePicturePileImpl> pending_pile =
1738 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1738 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
1739 SetupPendingTree(pending_pile); 1739 SetupPendingTree(pending_pile);
1740 ActivateTree(); 1740 ActivateTree();
(...skipping 13 matching lines...) Expand all
1754 EXPECT_EQ(1u, render_pass->quad_list.size()); 1754 EXPECT_EQ(1u, render_pass->quad_list.size());
1755 EXPECT_EQ(0u, data.num_missing_tiles); 1755 EXPECT_EQ(0u, data.num_missing_tiles);
1756 EXPECT_EQ(1u, data.num_incomplete_tiles); 1756 EXPECT_EQ(1u, data.num_incomplete_tiles);
1757 EXPECT_TRUE(active_layer_->only_used_low_res_last_append_quads()); 1757 EXPECT_TRUE(active_layer_->only_used_low_res_last_append_quads());
1758 } 1758 }
1759 1759
1760 TEST_F(PictureLayerImplTest, LowResTileIsIncomplete) { 1760 TEST_F(PictureLayerImplTest, LowResTileIsIncomplete) {
1761 base::TimeTicks time_ticks; 1761 base::TimeTicks time_ticks;
1762 time_ticks += base::TimeDelta::FromMilliseconds(1); 1762 time_ticks += base::TimeDelta::FromMilliseconds(1);
1763 host_impl_.SetCurrentBeginFrameArgs( 1763 host_impl_.SetCurrentBeginFrameArgs(
1764 CreateBeginFrameArgsForTesting(time_ticks)); 1764 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
1765 1765
1766 gfx::Size tile_size(100, 100); 1766 gfx::Size tile_size(100, 100);
1767 gfx::Size layer_bounds(200, 200); 1767 gfx::Size layer_bounds(200, 200);
1768 1768
1769 host_impl_.SetViewportSize(layer_bounds); 1769 host_impl_.SetViewportSize(layer_bounds);
1770 1770
1771 scoped_refptr<FakePicturePileImpl> pending_pile = 1771 scoped_refptr<FakePicturePileImpl> pending_pile =
1772 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1772 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
1773 SetupPendingTree(pending_pile); 1773 SetupPendingTree(pending_pile);
1774 ActivateTree(); 1774 ActivateTree();
(...skipping 22 matching lines...) Expand all
1797 EXPECT_EQ(0u, data.num_missing_tiles); 1797 EXPECT_EQ(0u, data.num_missing_tiles);
1798 EXPECT_EQ(1u, data.num_incomplete_tiles); 1798 EXPECT_EQ(1u, data.num_incomplete_tiles);
1799 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads()); 1799 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads());
1800 } 1800 }
1801 1801
1802 TEST_F(PictureLayerImplTest, 1802 TEST_F(PictureLayerImplTest,
1803 HighResAndIdealResTileIsCompleteWhenRasterScaleIsNotIdeal) { 1803 HighResAndIdealResTileIsCompleteWhenRasterScaleIsNotIdeal) {
1804 base::TimeTicks time_ticks; 1804 base::TimeTicks time_ticks;
1805 time_ticks += base::TimeDelta::FromMilliseconds(1); 1805 time_ticks += base::TimeDelta::FromMilliseconds(1);
1806 host_impl_.SetCurrentBeginFrameArgs( 1806 host_impl_.SetCurrentBeginFrameArgs(
1807 CreateBeginFrameArgsForTesting(time_ticks)); 1807 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
1808 1808
1809 gfx::Size tile_size(100, 100); 1809 gfx::Size tile_size(100, 100);
1810 gfx::Size layer_bounds(200, 200); 1810 gfx::Size layer_bounds(200, 200);
1811 1811
1812 host_impl_.SetViewportSize(layer_bounds); 1812 host_impl_.SetViewportSize(layer_bounds);
1813 1813
1814 scoped_refptr<FakePicturePileImpl> pending_pile = 1814 scoped_refptr<FakePicturePileImpl> pending_pile =
1815 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1815 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
1816 scoped_refptr<FakePicturePileImpl> active_pile = 1816 scoped_refptr<FakePicturePileImpl> active_pile =
1817 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1817 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
(...skipping 924 matching lines...) Expand 10 before | Expand all | Expand 10 after
2742 page_scale, 2742 page_scale,
2743 maximum_animation_scale, 2743 maximum_animation_scale,
2744 animating_transform); 2744 animating_transform);
2745 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f); 2745 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f);
2746 } 2746 }
2747 2747
2748 TEST_F(PictureLayerImplTest, LayerRasterTileIterator) { 2748 TEST_F(PictureLayerImplTest, LayerRasterTileIterator) {
2749 base::TimeTicks time_ticks; 2749 base::TimeTicks time_ticks;
2750 time_ticks += base::TimeDelta::FromMilliseconds(1); 2750 time_ticks += base::TimeDelta::FromMilliseconds(1);
2751 host_impl_.SetCurrentBeginFrameArgs( 2751 host_impl_.SetCurrentBeginFrameArgs(
2752 CreateBeginFrameArgsForTesting(time_ticks)); 2752 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
2753 2753
2754 gfx::Size tile_size(100, 100); 2754 gfx::Size tile_size(100, 100);
2755 gfx::Size layer_bounds(1000, 1000); 2755 gfx::Size layer_bounds(1000, 1000);
2756 2756
2757 scoped_refptr<FakePicturePileImpl> pending_pile = 2757 scoped_refptr<FakePicturePileImpl> pending_pile =
2758 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 2758 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
2759 2759
2760 SetupPendingTree(pending_pile); 2760 SetupPendingTree(pending_pile);
2761 2761
2762 ASSERT_TRUE(pending_layer_->CanHaveTilings()); 2762 ASSERT_TRUE(pending_layer_->CanHaveTilings());
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
2812 EXPECT_TRUE(reached_prepaint); 2812 EXPECT_TRUE(reached_prepaint);
2813 EXPECT_EQ(0u, non_ideal_tile_count); 2813 EXPECT_EQ(0u, non_ideal_tile_count);
2814 EXPECT_EQ(0u, low_res_tile_count); 2814 EXPECT_EQ(0u, low_res_tile_count);
2815 EXPECT_EQ(16u, high_res_tile_count); 2815 EXPECT_EQ(16u, high_res_tile_count);
2816 EXPECT_EQ(low_res_tile_count + high_res_tile_count + non_ideal_tile_count, 2816 EXPECT_EQ(low_res_tile_count + high_res_tile_count + non_ideal_tile_count,
2817 unique_tiles.size()); 2817 unique_tiles.size());
2818 2818
2819 // No NOW tiles. 2819 // No NOW tiles.
2820 time_ticks += base::TimeDelta::FromMilliseconds(200); 2820 time_ticks += base::TimeDelta::FromMilliseconds(200);
2821 host_impl_.SetCurrentBeginFrameArgs( 2821 host_impl_.SetCurrentBeginFrameArgs(
2822 CreateBeginFrameArgsForTesting(time_ticks)); 2822 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
2823 2823
2824 pending_layer_->draw_properties().visible_content_rect = 2824 pending_layer_->draw_properties().visible_content_rect =
2825 gfx::Rect(1100, 1100, 500, 500); 2825 gfx::Rect(1100, 1100, 500, 500);
2826 bool resourceless_software_draw = false; 2826 bool resourceless_software_draw = false;
2827 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); 2827 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
2828 2828
2829 unique_tiles.clear(); 2829 unique_tiles.clear();
2830 high_res_tile_count = 0u; 2830 high_res_tile_count = 0u;
2831 for (it = PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false); 2831 for (it = PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false);
2832 it; 2832 it;
(...skipping 10 matching lines...) Expand all
2843 high_res_tile_count += priority.resolution == HIGH_RESOLUTION; 2843 high_res_tile_count += priority.resolution == HIGH_RESOLUTION;
2844 2844
2845 unique_tiles.insert(tile); 2845 unique_tiles.insert(tile);
2846 } 2846 }
2847 2847
2848 EXPECT_EQ(16u, high_res_tile_count); 2848 EXPECT_EQ(16u, high_res_tile_count);
2849 EXPECT_EQ(high_res_tile_count, unique_tiles.size()); 2849 EXPECT_EQ(high_res_tile_count, unique_tiles.size());
2850 2850
2851 time_ticks += base::TimeDelta::FromMilliseconds(200); 2851 time_ticks += base::TimeDelta::FromMilliseconds(200);
2852 host_impl_.SetCurrentBeginFrameArgs( 2852 host_impl_.SetCurrentBeginFrameArgs(
2853 CreateBeginFrameArgsForTesting(time_ticks)); 2853 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
2854 2854
2855 pending_layer_->draw_properties().visible_content_rect = 2855 pending_layer_->draw_properties().visible_content_rect =
2856 gfx::Rect(0, 0, 500, 500); 2856 gfx::Rect(0, 0, 500, 500);
2857 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); 2857 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
2858 2858
2859 std::vector<Tile*> high_res_tiles = high_res_tiling->AllTilesForTesting(); 2859 std::vector<Tile*> high_res_tiles = high_res_tiling->AllTilesForTesting();
2860 for (std::vector<Tile*>::iterator tile_it = high_res_tiles.begin(); 2860 for (std::vector<Tile*>::iterator tile_it = high_res_tiles.begin();
2861 tile_it != high_res_tiles.end(); 2861 tile_it != high_res_tiles.end();
2862 ++tile_it) { 2862 ++tile_it) {
2863 Tile* tile = *tile_it; 2863 Tile* tile = *tile_it;
(...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after
3349 3349
3350 AssertNoTilesRequired(pending_layer_->HighResTiling()); 3350 AssertNoTilesRequired(pending_layer_->HighResTiling());
3351 if (host_impl_.settings().create_low_res_tiling) 3351 if (host_impl_.settings().create_low_res_tiling)
3352 AssertNoTilesRequired(pending_layer_->LowResTiling()); 3352 AssertNoTilesRequired(pending_layer_->LowResTiling());
3353 } 3353 }
3354 3354
3355 TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) { 3355 TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) {
3356 base::TimeTicks time_ticks; 3356 base::TimeTicks time_ticks;
3357 time_ticks += base::TimeDelta::FromMilliseconds(1); 3357 time_ticks += base::TimeDelta::FromMilliseconds(1);
3358 host_impl_.SetCurrentBeginFrameArgs( 3358 host_impl_.SetCurrentBeginFrameArgs(
3359 CreateBeginFrameArgsForTesting(time_ticks)); 3359 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
3360 3360
3361 gfx::Size tile_size(100, 100); 3361 gfx::Size tile_size(100, 100);
3362 gfx::Size layer_bounds(400, 400); 3362 gfx::Size layer_bounds(400, 400);
3363 3363
3364 scoped_refptr<FakePicturePileImpl> pending_pile = 3364 scoped_refptr<FakePicturePileImpl> pending_pile =
3365 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 3365 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
3366 scoped_refptr<FakePicturePileImpl> active_pile = 3366 scoped_refptr<FakePicturePileImpl> active_pile =
3367 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 3367 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
3368 3368
3369 SetupTrees(pending_pile, active_pile); 3369 SetupTrees(pending_pile, active_pile);
(...skipping 21 matching lines...) Expand all
3391 gfx::Rect visible_rect_for_tile_priority = 3391 gfx::Rect visible_rect_for_tile_priority =
3392 active_layer_->visible_rect_for_tile_priority(); 3392 active_layer_->visible_rect_for_tile_priority();
3393 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); 3393 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty());
3394 gfx::Transform screen_space_transform_for_tile_priority = 3394 gfx::Transform screen_space_transform_for_tile_priority =
3395 active_layer_->screen_space_transform(); 3395 active_layer_->screen_space_transform();
3396 3396
3397 // Expand viewport and set it as invalid for prioritizing tiles. 3397 // Expand viewport and set it as invalid for prioritizing tiles.
3398 // Should update viewport and transform, but not update visible rect. 3398 // Should update viewport and transform, but not update visible rect.
3399 time_ticks += base::TimeDelta::FromMilliseconds(200); 3399 time_ticks += base::TimeDelta::FromMilliseconds(200);
3400 host_impl_.SetCurrentBeginFrameArgs( 3400 host_impl_.SetCurrentBeginFrameArgs(
3401 CreateBeginFrameArgsForTesting(time_ticks)); 3401 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
3402 resourceless_software_draw = true; 3402 resourceless_software_draw = true;
3403 viewport = gfx::ScaleToEnclosingRect(viewport, 2); 3403 viewport = gfx::ScaleToEnclosingRect(viewport, 2);
3404 transform.Translate(1.f, 1.f); 3404 transform.Translate(1.f, 1.f);
3405 active_layer_->draw_properties().visible_content_rect = viewport; 3405 active_layer_->draw_properties().visible_content_rect = viewport;
3406 active_layer_->draw_properties().screen_space_transform = transform; 3406 active_layer_->draw_properties().screen_space_transform = transform;
3407 host_impl_.SetExternalDrawConstraints(transform, 3407 host_impl_.SetExternalDrawConstraints(transform,
3408 viewport, 3408 viewport,
3409 viewport, 3409 viewport,
3410 viewport, 3410 viewport,
3411 transform, 3411 transform,
3412 resourceless_software_draw); 3412 resourceless_software_draw);
3413 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); 3413 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
3414 3414
3415 // Transform for tile priority is updated. 3415 // Transform for tile priority is updated.
3416 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, 3416 EXPECT_TRANSFORMATION_MATRIX_EQ(transform,
3417 active_layer_->screen_space_transform()); 3417 active_layer_->screen_space_transform());
3418 // Visible rect for tile priority retains old value. 3418 // Visible rect for tile priority retains old value.
3419 EXPECT_EQ(visible_rect_for_tile_priority, 3419 EXPECT_EQ(visible_rect_for_tile_priority,
3420 active_layer_->visible_rect_for_tile_priority()); 3420 active_layer_->visible_rect_for_tile_priority());
3421 3421
3422 // Keep expanded viewport but mark it valid. Should update tile viewport. 3422 // Keep expanded viewport but mark it valid. Should update tile viewport.
3423 time_ticks += base::TimeDelta::FromMilliseconds(200); 3423 time_ticks += base::TimeDelta::FromMilliseconds(200);
3424 host_impl_.SetCurrentBeginFrameArgs( 3424 host_impl_.SetCurrentBeginFrameArgs(
3425 CreateBeginFrameArgsForTesting(time_ticks)); 3425 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
3426 resourceless_software_draw = false; 3426 resourceless_software_draw = false;
3427 host_impl_.SetExternalDrawConstraints(transform, 3427 host_impl_.SetExternalDrawConstraints(transform,
3428 viewport, 3428 viewport,
3429 viewport, 3429 viewport,
3430 viewport, 3430 viewport,
3431 transform, 3431 transform,
3432 resourceless_software_draw); 3432 resourceless_software_draw);
3433 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); 3433 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
3434 3434
3435 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, 3435 EXPECT_TRANSFORMATION_MATRIX_EQ(transform,
(...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after
3861 occluded_tile_count); 3861 occluded_tile_count);
3862 } 3862 }
3863 } 3863 }
3864 }; 3864 };
3865 3865
3866 TEST_F(OcclusionTrackingPictureLayerImplTest, 3866 TEST_F(OcclusionTrackingPictureLayerImplTest,
3867 OccludedTilesSkippedDuringRasterization) { 3867 OccludedTilesSkippedDuringRasterization) {
3868 base::TimeTicks time_ticks; 3868 base::TimeTicks time_ticks;
3869 time_ticks += base::TimeDelta::FromMilliseconds(1); 3869 time_ticks += base::TimeDelta::FromMilliseconds(1);
3870 host_impl_.SetCurrentBeginFrameArgs( 3870 host_impl_.SetCurrentBeginFrameArgs(
3871 CreateBeginFrameArgsForTesting(time_ticks)); 3871 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
3872 3872
3873 gfx::Size tile_size(102, 102); 3873 gfx::Size tile_size(102, 102);
3874 gfx::Size layer_bounds(1000, 1000); 3874 gfx::Size layer_bounds(1000, 1000);
3875 gfx::Size viewport_size(500, 500); 3875 gfx::Size viewport_size(500, 500);
3876 gfx::Point occluding_layer_position(310, 0); 3876 gfx::Point occluding_layer_position(310, 0);
3877 3877
3878 scoped_refptr<FakePicturePileImpl> pending_pile = 3878 scoped_refptr<FakePicturePileImpl> pending_pile =
3879 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 3879 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
3880 SetupPendingTree(pending_pile); 3880 SetupPendingTree(pending_pile);
3881 pending_layer_->set_fixed_tile_size(tile_size); 3881 pending_layer_->set_fixed_tile_size(tile_size);
(...skipping 25 matching lines...) Expand all
3907 pending_layer_->AddChild(LayerImpl::Create(host_impl_.pending_tree(), 1)); 3907 pending_layer_->AddChild(LayerImpl::Create(host_impl_.pending_tree(), 1));
3908 LayerImpl* layer1 = pending_layer_->children()[0]; 3908 LayerImpl* layer1 = pending_layer_->children()[0];
3909 layer1->SetBounds(layer_bounds); 3909 layer1->SetBounds(layer_bounds);
3910 layer1->SetContentBounds(layer_bounds); 3910 layer1->SetContentBounds(layer_bounds);
3911 layer1->SetDrawsContent(true); 3911 layer1->SetDrawsContent(true);
3912 layer1->SetContentsOpaque(true); 3912 layer1->SetContentsOpaque(true);
3913 layer1->SetPosition(occluding_layer_position); 3913 layer1->SetPosition(occluding_layer_position);
3914 3914
3915 time_ticks += base::TimeDelta::FromMilliseconds(200); 3915 time_ticks += base::TimeDelta::FromMilliseconds(200);
3916 host_impl_.SetCurrentBeginFrameArgs( 3916 host_impl_.SetCurrentBeginFrameArgs(
3917 CreateBeginFrameArgsForTesting(time_ticks)); 3917 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
3918 host_impl_.pending_tree()->UpdateDrawProperties(); 3918 host_impl_.pending_tree()->UpdateDrawProperties();
3919 3919
3920 unoccluded_tile_count = 0; 3920 unoccluded_tile_count = 0;
3921 for (PictureLayerImpl::LayerRasterTileIterator it = 3921 for (PictureLayerImpl::LayerRasterTileIterator it =
3922 PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false); 3922 PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false);
3923 it; 3923 it;
3924 ++it) { 3924 ++it) {
3925 Tile* tile = *it; 3925 Tile* tile = *it;
3926 3926
3927 EXPECT_FALSE(tile->is_occluded(PENDING_TREE)); 3927 EXPECT_FALSE(tile->is_occluded(PENDING_TREE));
3928 3928
3929 bool tile_is_visible = 3929 bool tile_is_visible =
3930 tile->content_rect().Intersects(pending_layer_->visible_content_rect()); 3930 tile->content_rect().Intersects(pending_layer_->visible_content_rect());
3931 if (tile_is_visible) 3931 if (tile_is_visible)
3932 unoccluded_tile_count++; 3932 unoccluded_tile_count++;
3933 } 3933 }
3934 EXPECT_EQ(20, unoccluded_tile_count); 3934 EXPECT_EQ(20, unoccluded_tile_count);
3935 3935
3936 // Full occlusion. 3936 // Full occlusion.
3937 layer1->SetPosition(gfx::Point(0, 0)); 3937 layer1->SetPosition(gfx::Point(0, 0));
3938 3938
3939 time_ticks += base::TimeDelta::FromMilliseconds(200); 3939 time_ticks += base::TimeDelta::FromMilliseconds(200);
3940 host_impl_.SetCurrentBeginFrameArgs( 3940 host_impl_.SetCurrentBeginFrameArgs(
3941 CreateBeginFrameArgsForTesting(time_ticks)); 3941 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
3942 host_impl_.pending_tree()->UpdateDrawProperties(); 3942 host_impl_.pending_tree()->UpdateDrawProperties();
3943 3943
3944 unoccluded_tile_count = 0; 3944 unoccluded_tile_count = 0;
3945 for (PictureLayerImpl::LayerRasterTileIterator it = 3945 for (PictureLayerImpl::LayerRasterTileIterator it =
3946 PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false); 3946 PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false);
3947 it; 3947 it;
3948 ++it) { 3948 ++it) {
3949 Tile* tile = *it; 3949 Tile* tile = *it;
3950 3950
3951 EXPECT_FALSE(tile->is_occluded(PENDING_TREE)); 3951 EXPECT_FALSE(tile->is_occluded(PENDING_TREE));
3952 3952
3953 bool tile_is_visible = 3953 bool tile_is_visible =
3954 tile->content_rect().Intersects(pending_layer_->visible_content_rect()); 3954 tile->content_rect().Intersects(pending_layer_->visible_content_rect());
3955 if (tile_is_visible) 3955 if (tile_is_visible)
3956 unoccluded_tile_count++; 3956 unoccluded_tile_count++;
3957 } 3957 }
3958 EXPECT_EQ(unoccluded_tile_count, 0); 3958 EXPECT_EQ(unoccluded_tile_count, 0);
3959 } 3959 }
3960 3960
3961 TEST_F(OcclusionTrackingPictureLayerImplTest, 3961 TEST_F(OcclusionTrackingPictureLayerImplTest,
3962 OccludedTilesNotMarkedAsRequired) { 3962 OccludedTilesNotMarkedAsRequired) {
3963 base::TimeTicks time_ticks; 3963 base::TimeTicks time_ticks;
3964 time_ticks += base::TimeDelta::FromMilliseconds(1); 3964 time_ticks += base::TimeDelta::FromMilliseconds(1);
3965 host_impl_.SetCurrentBeginFrameArgs( 3965 host_impl_.SetCurrentBeginFrameArgs(
3966 CreateBeginFrameArgsForTesting(time_ticks)); 3966 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
3967 3967
3968 gfx::Size tile_size(102, 102); 3968 gfx::Size tile_size(102, 102);
3969 gfx::Size layer_bounds(1000, 1000); 3969 gfx::Size layer_bounds(1000, 1000);
3970 gfx::Size viewport_size(500, 500); 3970 gfx::Size viewport_size(500, 500);
3971 gfx::Point occluding_layer_position(310, 0); 3971 gfx::Point occluding_layer_position(310, 0);
3972 3972
3973 scoped_refptr<FakePicturePileImpl> pending_pile = 3973 scoped_refptr<FakePicturePileImpl> pending_pile =
3974 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 3974 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
3975 SetupPendingTree(pending_pile); 3975 SetupPendingTree(pending_pile);
3976 pending_layer_->set_fixed_tile_size(tile_size); 3976 pending_layer_->set_fixed_tile_size(tile_size);
(...skipping 30 matching lines...) Expand all
4007 pending_layer_->AddChild(LayerImpl::Create(host_impl_.pending_tree(), 1)); 4007 pending_layer_->AddChild(LayerImpl::Create(host_impl_.pending_tree(), 1));
4008 LayerImpl* layer1 = pending_layer_->children()[0]; 4008 LayerImpl* layer1 = pending_layer_->children()[0];
4009 layer1->SetBounds(layer_bounds); 4009 layer1->SetBounds(layer_bounds);
4010 layer1->SetContentBounds(layer_bounds); 4010 layer1->SetContentBounds(layer_bounds);
4011 layer1->SetDrawsContent(true); 4011 layer1->SetDrawsContent(true);
4012 layer1->SetContentsOpaque(true); 4012 layer1->SetContentsOpaque(true);
4013 layer1->SetPosition(occluding_layer_position); 4013 layer1->SetPosition(occluding_layer_position);
4014 4014
4015 time_ticks += base::TimeDelta::FromMilliseconds(200); 4015 time_ticks += base::TimeDelta::FromMilliseconds(200);
4016 host_impl_.SetCurrentBeginFrameArgs( 4016 host_impl_.SetCurrentBeginFrameArgs(
4017 CreateBeginFrameArgsForTesting(time_ticks)); 4017 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
4018 host_impl_.pending_tree()->UpdateDrawProperties(); 4018 host_impl_.pending_tree()->UpdateDrawProperties();
4019 4019
4020 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) { 4020 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) {
4021 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i); 4021 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i);
4022 tiling->UpdateAllTilePrioritiesForTesting(); 4022 tiling->UpdateAllTilePrioritiesForTesting();
4023 4023
4024 occluded_tile_count = 0; 4024 occluded_tile_count = 0;
4025 for (PictureLayerTiling::CoverageIterator iter( 4025 for (PictureLayerTiling::CoverageIterator iter(
4026 tiling, 4026 tiling,
4027 pending_layer_->contents_scale_x(), 4027 pending_layer_->contents_scale_x(),
(...skipping 19 matching lines...) Expand all
4047 default: 4047 default:
4048 NOTREACHED(); 4048 NOTREACHED();
4049 } 4049 }
4050 } 4050 }
4051 4051
4052 // Full occlusion. 4052 // Full occlusion.
4053 layer1->SetPosition(gfx::PointF(0, 0)); 4053 layer1->SetPosition(gfx::PointF(0, 0));
4054 4054
4055 time_ticks += base::TimeDelta::FromMilliseconds(200); 4055 time_ticks += base::TimeDelta::FromMilliseconds(200);
4056 host_impl_.SetCurrentBeginFrameArgs( 4056 host_impl_.SetCurrentBeginFrameArgs(
4057 CreateBeginFrameArgsForTesting(time_ticks)); 4057 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
4058 host_impl_.pending_tree()->UpdateDrawProperties(); 4058 host_impl_.pending_tree()->UpdateDrawProperties();
4059 4059
4060 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) { 4060 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) {
4061 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i); 4061 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i);
4062 tiling->UpdateAllTilePrioritiesForTesting(); 4062 tiling->UpdateAllTilePrioritiesForTesting();
4063 4063
4064 occluded_tile_count = 0; 4064 occluded_tile_count = 0;
4065 for (PictureLayerTiling::CoverageIterator iter( 4065 for (PictureLayerTiling::CoverageIterator iter(
4066 tiling, 4066 tiling,
4067 pending_layer_->contents_scale_x(), 4067 pending_layer_->contents_scale_x(),
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
4476 // Make an empty pending tree. 4476 // Make an empty pending tree.
4477 host_impl_.CreatePendingTree(); 4477 host_impl_.CreatePendingTree();
4478 host_impl_.pending_tree()->DetachLayerTree(); 4478 host_impl_.pending_tree()->DetachLayerTree();
4479 EXPECT_FALSE(active_layer_->GetRecycledTwinLayer()); 4479 EXPECT_FALSE(active_layer_->GetRecycledTwinLayer());
4480 } 4480 }
4481 4481
4482 void PictureLayerImplTest::TestQuadsForSolidColor(bool test_for_solid) { 4482 void PictureLayerImplTest::TestQuadsForSolidColor(bool test_for_solid) {
4483 base::TimeTicks time_ticks; 4483 base::TimeTicks time_ticks;
4484 time_ticks += base::TimeDelta::FromMilliseconds(1); 4484 time_ticks += base::TimeDelta::FromMilliseconds(1);
4485 host_impl_.SetCurrentBeginFrameArgs( 4485 host_impl_.SetCurrentBeginFrameArgs(
4486 CreateBeginFrameArgsForTesting(time_ticks)); 4486 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
4487 4487
4488 gfx::Size tile_size(100, 100); 4488 gfx::Size tile_size(100, 100);
4489 gfx::Size layer_bounds(200, 200); 4489 gfx::Size layer_bounds(200, 200);
4490 gfx::Rect layer_rect(layer_bounds); 4490 gfx::Rect layer_rect(layer_bounds);
4491 4491
4492 FakeContentLayerClient client; 4492 FakeContentLayerClient client;
4493 scoped_refptr<PictureLayer> layer = PictureLayer::Create(&client); 4493 scoped_refptr<PictureLayer> layer = PictureLayer::Create(&client);
4494 FakeLayerTreeHostClient host_client(FakeLayerTreeHostClient::DIRECT_3D); 4494 FakeLayerTreeHostClient host_client(FakeLayerTreeHostClient::DIRECT_3D);
4495 scoped_ptr<FakeLayerTreeHost> host = FakeLayerTreeHost::Create(&host_client); 4495 scoped_ptr<FakeLayerTreeHost> host = FakeLayerTreeHost::Create(&host_client);
4496 host->SetRootLayer(layer); 4496 host->SetRootLayer(layer);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
4543 } 4543 }
4544 4544
4545 TEST_F(PictureLayerImplTest, DrawNonSolidQuads) { 4545 TEST_F(PictureLayerImplTest, DrawNonSolidQuads) {
4546 TestQuadsForSolidColor(false); 4546 TestQuadsForSolidColor(false);
4547 } 4547 }
4548 4548
4549 TEST_F(PictureLayerImplTest, NonSolidToSolidNoTilings) { 4549 TEST_F(PictureLayerImplTest, NonSolidToSolidNoTilings) {
4550 base::TimeTicks time_ticks; 4550 base::TimeTicks time_ticks;
4551 time_ticks += base::TimeDelta::FromMilliseconds(1); 4551 time_ticks += base::TimeDelta::FromMilliseconds(1);
4552 host_impl_.SetCurrentBeginFrameArgs( 4552 host_impl_.SetCurrentBeginFrameArgs(
4553 CreateBeginFrameArgsForTesting(time_ticks)); 4553 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
4554 4554
4555 gfx::Size tile_size(100, 100); 4555 gfx::Size tile_size(100, 100);
4556 gfx::Size layer_bounds(200, 200); 4556 gfx::Size layer_bounds(200, 200);
4557 gfx::Rect layer_rect(layer_bounds); 4557 gfx::Rect layer_rect(layer_bounds);
4558 4558
4559 FakeContentLayerClient client; 4559 FakeContentLayerClient client;
4560 scoped_refptr<PictureLayer> layer = PictureLayer::Create(&client); 4560 scoped_refptr<PictureLayer> layer = PictureLayer::Create(&client);
4561 FakeLayerTreeHostClient host_client(FakeLayerTreeHostClient::DIRECT_3D); 4561 FakeLayerTreeHostClient host_client(FakeLayerTreeHostClient::DIRECT_3D);
4562 scoped_ptr<FakeLayerTreeHost> host = FakeLayerTreeHost::Create(&host_client); 4562 scoped_ptr<FakeLayerTreeHost> host = FakeLayerTreeHost::Create(&host_client);
4563 host->SetRootLayer(layer); 4563 host->SetRootLayer(layer);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
4600 4600
4601 // We've switched to a solid color, so we should end up with no tilings. 4601 // We've switched to a solid color, so we should end up with no tilings.
4602 ASSERT_TRUE(active_layer_->tilings()); 4602 ASSERT_TRUE(active_layer_->tilings());
4603 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings()); 4603 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings());
4604 } 4604 }
4605 4605
4606 TEST_F(PictureLayerImplTest, ChangeInViewportAllowsTilingUpdates) { 4606 TEST_F(PictureLayerImplTest, ChangeInViewportAllowsTilingUpdates) {
4607 base::TimeTicks time_ticks; 4607 base::TimeTicks time_ticks;
4608 time_ticks += base::TimeDelta::FromMilliseconds(1); 4608 time_ticks += base::TimeDelta::FromMilliseconds(1);
4609 host_impl_.SetCurrentBeginFrameArgs( 4609 host_impl_.SetCurrentBeginFrameArgs(
4610 CreateBeginFrameArgsForTesting(time_ticks)); 4610 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
4611 4611
4612 gfx::Size tile_size(100, 100); 4612 gfx::Size tile_size(100, 100);
4613 gfx::Size layer_bounds(400, 4000); 4613 gfx::Size layer_bounds(400, 4000);
4614 4614
4615 scoped_refptr<FakePicturePileImpl> pending_pile = 4615 scoped_refptr<FakePicturePileImpl> pending_pile =
4616 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 4616 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
4617 scoped_refptr<FakePicturePileImpl> active_pile = 4617 scoped_refptr<FakePicturePileImpl> active_pile =
4618 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 4618 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
4619 4619
4620 SetupTrees(pending_pile, active_pile); 4620 SetupTrees(pending_pile, active_pile);
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
4722 result = layer->CalculateTileSize(gfx::Size(447, 400)); 4722 result = layer->CalculateTileSize(gfx::Size(447, 400));
4723 EXPECT_EQ(result.width(), 448); 4723 EXPECT_EQ(result.width(), 448);
4724 EXPECT_EQ(result.height(), 448); 4724 EXPECT_EQ(result.height(), 448);
4725 result = layer->CalculateTileSize(gfx::Size(500, 499)); 4725 result = layer->CalculateTileSize(gfx::Size(500, 499));
4726 EXPECT_EQ(result.width(), 512); 4726 EXPECT_EQ(result.width(), 512);
4727 EXPECT_EQ(result.height(), 500 + 2); 4727 EXPECT_EQ(result.height(), 500 + 2);
4728 } 4728 }
4729 4729
4730 } // namespace 4730 } // namespace
4731 } // namespace cc 4731 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/output/begin_frame_args.h » ('j') | cc/output/begin_frame_args.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698