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

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: Rebase onto master. Created 6 years 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') | 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/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 1048 matching lines...) Expand 10 before | Expand all | Expand 10 after
1554 1554
1555 pending_layer_->set_fixed_tile_size(tile_size); 1555 pending_layer_->set_fixed_tile_size(tile_size);
1556 ASSERT_TRUE(pending_layer_->CanHaveTilings()); 1556 ASSERT_TRUE(pending_layer_->CanHaveTilings());
1557 PictureLayerTiling* tiling = pending_layer_->AddTiling(1.f); 1557 PictureLayerTiling* tiling = pending_layer_->AddTiling(1.f);
1558 host_impl_.pending_tree()->UpdateDrawProperties(); 1558 host_impl_.pending_tree()->UpdateDrawProperties();
1559 EXPECT_EQ(viewport, pending_layer_->visible_rect_for_tile_priority()); 1559 EXPECT_EQ(viewport, pending_layer_->visible_rect_for_tile_priority());
1560 1560
1561 base::TimeTicks time_ticks; 1561 base::TimeTicks time_ticks;
1562 time_ticks += base::TimeDelta::FromMilliseconds(1); 1562 time_ticks += base::TimeDelta::FromMilliseconds(1);
1563 host_impl_.SetCurrentBeginFrameArgs( 1563 host_impl_.SetCurrentBeginFrameArgs(
1564 CreateBeginFrameArgsForTesting(time_ticks)); 1564 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
1565 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); 1565 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
1566 EXPECT_EQ(HIGH_RESOLUTION, tiling->resolution()); 1566 EXPECT_EQ(HIGH_RESOLUTION, tiling->resolution());
1567 1567
1568 int num_visible = 0; 1568 int num_visible = 0;
1569 int num_offscreen = 0; 1569 int num_offscreen = 0;
1570 1570
1571 for (PictureLayerTiling::TilingRasterTileIterator iter(tiling); iter; 1571 for (PictureLayerTiling::TilingRasterTileIterator iter(tiling); iter;
1572 ++iter) { 1572 ++iter) {
1573 const Tile* tile = *iter; 1573 const Tile* tile = *iter;
1574 DCHECK(tile); 1574 DCHECK(tile);
1575 if (tile->priority(PENDING_TREE).distance_to_visible == 0.f) { 1575 if (tile->priority(PENDING_TREE).distance_to_visible == 0.f) {
1576 EXPECT_TRUE(tile->required_for_activation()); 1576 EXPECT_TRUE(tile->required_for_activation());
1577 num_visible++; 1577 num_visible++;
1578 } else { 1578 } else {
1579 EXPECT_FALSE(tile->required_for_activation()); 1579 EXPECT_FALSE(tile->required_for_activation());
1580 num_offscreen++; 1580 num_offscreen++;
1581 } 1581 }
1582 } 1582 }
1583 1583
1584 EXPECT_GT(num_visible, 0); 1584 EXPECT_GT(num_visible, 0);
1585 EXPECT_GT(num_offscreen, 0); 1585 EXPECT_GT(num_offscreen, 0);
1586 } 1586 }
1587 1587
1588 TEST_F(PictureLayerImplTest, TileOutsideOfViewportForTilePriorityNotRequired) { 1588 TEST_F(PictureLayerImplTest, TileOutsideOfViewportForTilePriorityNotRequired) {
1589 base::TimeTicks time_ticks; 1589 base::TimeTicks time_ticks;
1590 time_ticks += base::TimeDelta::FromMilliseconds(1); 1590 time_ticks += base::TimeDelta::FromMilliseconds(1);
1591 host_impl_.SetCurrentBeginFrameArgs( 1591 host_impl_.SetCurrentBeginFrameArgs(
1592 CreateBeginFrameArgsForTesting(time_ticks)); 1592 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
1593 1593
1594 gfx::Size tile_size(100, 100); 1594 gfx::Size tile_size(100, 100);
1595 gfx::Size layer_bounds(400, 400); 1595 gfx::Size layer_bounds(400, 400);
1596 gfx::Rect external_viewport_for_tile_priority(400, 200); 1596 gfx::Rect external_viewport_for_tile_priority(400, 200);
1597 gfx::Rect visible_content_rect(200, 400); 1597 gfx::Rect visible_content_rect(200, 400);
1598 1598
1599 scoped_refptr<FakePicturePileImpl> active_pile = 1599 scoped_refptr<FakePicturePileImpl> active_pile =
1600 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1600 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
1601 scoped_refptr<FakePicturePileImpl> pending_pile = 1601 scoped_refptr<FakePicturePileImpl> pending_pile =
1602 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1602 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
(...skipping 15 matching lines...) Expand all
1618 external_viewport_for_tile_priority, 1618 external_viewport_for_tile_priority,
1619 transform_for_tile_priority, 1619 transform_for_tile_priority,
1620 resourceless_software_draw); 1620 resourceless_software_draw);
1621 host_impl_.pending_tree()->UpdateDrawProperties(); 1621 host_impl_.pending_tree()->UpdateDrawProperties();
1622 1622
1623 // Set visible content rect that is different from 1623 // Set visible content rect that is different from
1624 // external_viewport_for_tile_priority. 1624 // external_viewport_for_tile_priority.
1625 pending_layer_->draw_properties().visible_content_rect = visible_content_rect; 1625 pending_layer_->draw_properties().visible_content_rect = visible_content_rect;
1626 time_ticks += base::TimeDelta::FromMilliseconds(200); 1626 time_ticks += base::TimeDelta::FromMilliseconds(200);
1627 host_impl_.SetCurrentBeginFrameArgs( 1627 host_impl_.SetCurrentBeginFrameArgs(
1628 CreateBeginFrameArgsForTesting(time_ticks)); 1628 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
1629 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); 1629 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
1630 1630
1631 // Intersect the two rects. Any tile outside should not be required for 1631 // Intersect the two rects. Any tile outside should not be required for
1632 // activation. 1632 // activation.
1633 gfx::Rect viewport_for_tile_priority = 1633 gfx::Rect viewport_for_tile_priority =
1634 pending_layer_->GetViewportForTilePriorityInContentSpace(); 1634 pending_layer_->GetViewportForTilePriorityInContentSpace();
1635 viewport_for_tile_priority.Intersect(pending_layer_->visible_content_rect()); 1635 viewport_for_tile_priority.Intersect(pending_layer_->visible_content_rect());
1636 1636
1637 int num_inside = 0; 1637 int num_inside = 0;
1638 int num_outside = 0; 1638 int num_outside = 0;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1671 // All tiles in activation rect is ready to draw. 1671 // All tiles in activation rect is ready to draw.
1672 EXPECT_EQ(0u, data.num_missing_tiles); 1672 EXPECT_EQ(0u, data.num_missing_tiles);
1673 EXPECT_EQ(0u, data.num_incomplete_tiles); 1673 EXPECT_EQ(0u, data.num_incomplete_tiles);
1674 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads()); 1674 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads());
1675 } 1675 }
1676 1676
1677 TEST_F(PictureLayerImplTest, HighResTileIsComplete) { 1677 TEST_F(PictureLayerImplTest, HighResTileIsComplete) {
1678 base::TimeTicks time_ticks; 1678 base::TimeTicks time_ticks;
1679 time_ticks += base::TimeDelta::FromMilliseconds(1); 1679 time_ticks += base::TimeDelta::FromMilliseconds(1);
1680 host_impl_.SetCurrentBeginFrameArgs( 1680 host_impl_.SetCurrentBeginFrameArgs(
1681 CreateBeginFrameArgsForTesting(time_ticks)); 1681 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
1682 1682
1683 gfx::Size tile_size(100, 100); 1683 gfx::Size tile_size(100, 100);
1684 gfx::Size layer_bounds(200, 200); 1684 gfx::Size layer_bounds(200, 200);
1685 1685
1686 host_impl_.SetViewportSize(layer_bounds); 1686 host_impl_.SetViewportSize(layer_bounds);
1687 1687
1688 scoped_refptr<FakePicturePileImpl> pending_pile = 1688 scoped_refptr<FakePicturePileImpl> pending_pile =
1689 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1689 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
1690 SetupPendingTree(pending_pile); 1690 SetupPendingTree(pending_pile);
1691 ActivateTree(); 1691 ActivateTree();
(...skipping 15 matching lines...) Expand all
1707 EXPECT_EQ(9u, render_pass->quad_list.size()); 1707 EXPECT_EQ(9u, render_pass->quad_list.size());
1708 EXPECT_EQ(0u, data.num_missing_tiles); 1708 EXPECT_EQ(0u, data.num_missing_tiles);
1709 EXPECT_EQ(0u, data.num_incomplete_tiles); 1709 EXPECT_EQ(0u, data.num_incomplete_tiles);
1710 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads()); 1710 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads());
1711 } 1711 }
1712 1712
1713 TEST_F(PictureLayerImplTest, HighResTileIsIncomplete) { 1713 TEST_F(PictureLayerImplTest, HighResTileIsIncomplete) {
1714 base::TimeTicks time_ticks; 1714 base::TimeTicks time_ticks;
1715 time_ticks += base::TimeDelta::FromMilliseconds(1); 1715 time_ticks += base::TimeDelta::FromMilliseconds(1);
1716 host_impl_.SetCurrentBeginFrameArgs( 1716 host_impl_.SetCurrentBeginFrameArgs(
1717 CreateBeginFrameArgsForTesting(time_ticks)); 1717 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
1718 1718
1719 gfx::Size tile_size(100, 100); 1719 gfx::Size tile_size(100, 100);
1720 gfx::Size layer_bounds(200, 200); 1720 gfx::Size layer_bounds(200, 200);
1721 1721
1722 host_impl_.SetViewportSize(layer_bounds); 1722 host_impl_.SetViewportSize(layer_bounds);
1723 1723
1724 scoped_refptr<FakePicturePileImpl> pending_pile = 1724 scoped_refptr<FakePicturePileImpl> pending_pile =
1725 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1725 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
1726 SetupPendingTree(pending_pile); 1726 SetupPendingTree(pending_pile);
1727 ActivateTree(); 1727 ActivateTree();
(...skipping 10 matching lines...) Expand all
1738 EXPECT_EQ(1u, render_pass->quad_list.size()); 1738 EXPECT_EQ(1u, render_pass->quad_list.size());
1739 EXPECT_EQ(1u, data.num_missing_tiles); 1739 EXPECT_EQ(1u, data.num_missing_tiles);
1740 EXPECT_EQ(0u, data.num_incomplete_tiles); 1740 EXPECT_EQ(0u, data.num_incomplete_tiles);
1741 EXPECT_TRUE(active_layer_->only_used_low_res_last_append_quads()); 1741 EXPECT_TRUE(active_layer_->only_used_low_res_last_append_quads());
1742 } 1742 }
1743 1743
1744 TEST_F(PictureLayerImplTest, HighResTileIsIncompleteLowResComplete) { 1744 TEST_F(PictureLayerImplTest, HighResTileIsIncompleteLowResComplete) {
1745 base::TimeTicks time_ticks; 1745 base::TimeTicks time_ticks;
1746 time_ticks += base::TimeDelta::FromMilliseconds(1); 1746 time_ticks += base::TimeDelta::FromMilliseconds(1);
1747 host_impl_.SetCurrentBeginFrameArgs( 1747 host_impl_.SetCurrentBeginFrameArgs(
1748 CreateBeginFrameArgsForTesting(time_ticks)); 1748 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
1749 1749
1750 gfx::Size tile_size(100, 100); 1750 gfx::Size tile_size(100, 100);
1751 gfx::Size layer_bounds(200, 200); 1751 gfx::Size layer_bounds(200, 200);
1752 1752
1753 host_impl_.SetViewportSize(layer_bounds); 1753 host_impl_.SetViewportSize(layer_bounds);
1754 1754
1755 scoped_refptr<FakePicturePileImpl> pending_pile = 1755 scoped_refptr<FakePicturePileImpl> pending_pile =
1756 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1756 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
1757 SetupPendingTree(pending_pile); 1757 SetupPendingTree(pending_pile);
1758 ActivateTree(); 1758 ActivateTree();
(...skipping 13 matching lines...) Expand all
1772 EXPECT_EQ(1u, render_pass->quad_list.size()); 1772 EXPECT_EQ(1u, render_pass->quad_list.size());
1773 EXPECT_EQ(0u, data.num_missing_tiles); 1773 EXPECT_EQ(0u, data.num_missing_tiles);
1774 EXPECT_EQ(1u, data.num_incomplete_tiles); 1774 EXPECT_EQ(1u, data.num_incomplete_tiles);
1775 EXPECT_TRUE(active_layer_->only_used_low_res_last_append_quads()); 1775 EXPECT_TRUE(active_layer_->only_used_low_res_last_append_quads());
1776 } 1776 }
1777 1777
1778 TEST_F(PictureLayerImplTest, LowResTileIsIncomplete) { 1778 TEST_F(PictureLayerImplTest, LowResTileIsIncomplete) {
1779 base::TimeTicks time_ticks; 1779 base::TimeTicks time_ticks;
1780 time_ticks += base::TimeDelta::FromMilliseconds(1); 1780 time_ticks += base::TimeDelta::FromMilliseconds(1);
1781 host_impl_.SetCurrentBeginFrameArgs( 1781 host_impl_.SetCurrentBeginFrameArgs(
1782 CreateBeginFrameArgsForTesting(time_ticks)); 1782 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
1783 1783
1784 gfx::Size tile_size(100, 100); 1784 gfx::Size tile_size(100, 100);
1785 gfx::Size layer_bounds(200, 200); 1785 gfx::Size layer_bounds(200, 200);
1786 1786
1787 host_impl_.SetViewportSize(layer_bounds); 1787 host_impl_.SetViewportSize(layer_bounds);
1788 1788
1789 scoped_refptr<FakePicturePileImpl> pending_pile = 1789 scoped_refptr<FakePicturePileImpl> pending_pile =
1790 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1790 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
1791 SetupPendingTree(pending_pile); 1791 SetupPendingTree(pending_pile);
1792 ActivateTree(); 1792 ActivateTree();
(...skipping 22 matching lines...) Expand all
1815 EXPECT_EQ(0u, data.num_missing_tiles); 1815 EXPECT_EQ(0u, data.num_missing_tiles);
1816 EXPECT_EQ(1u, data.num_incomplete_tiles); 1816 EXPECT_EQ(1u, data.num_incomplete_tiles);
1817 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads()); 1817 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads());
1818 } 1818 }
1819 1819
1820 TEST_F(PictureLayerImplTest, 1820 TEST_F(PictureLayerImplTest,
1821 HighResAndIdealResTileIsCompleteWhenRasterScaleIsNotIdeal) { 1821 HighResAndIdealResTileIsCompleteWhenRasterScaleIsNotIdeal) {
1822 base::TimeTicks time_ticks; 1822 base::TimeTicks time_ticks;
1823 time_ticks += base::TimeDelta::FromMilliseconds(1); 1823 time_ticks += base::TimeDelta::FromMilliseconds(1);
1824 host_impl_.SetCurrentBeginFrameArgs( 1824 host_impl_.SetCurrentBeginFrameArgs(
1825 CreateBeginFrameArgsForTesting(time_ticks)); 1825 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
1826 1826
1827 gfx::Size tile_size(100, 100); 1827 gfx::Size tile_size(100, 100);
1828 gfx::Size layer_bounds(200, 200); 1828 gfx::Size layer_bounds(200, 200);
1829 1829
1830 host_impl_.SetViewportSize(layer_bounds); 1830 host_impl_.SetViewportSize(layer_bounds);
1831 1831
1832 scoped_refptr<FakePicturePileImpl> pending_pile = 1832 scoped_refptr<FakePicturePileImpl> pending_pile =
1833 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1833 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
1834 scoped_refptr<FakePicturePileImpl> active_pile = 1834 scoped_refptr<FakePicturePileImpl> active_pile =
1835 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 1835 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
(...skipping 924 matching lines...) Expand 10 before | Expand all | Expand 10 after
2760 page_scale, 2760 page_scale,
2761 maximum_animation_scale, 2761 maximum_animation_scale,
2762 animating_transform); 2762 animating_transform);
2763 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f); 2763 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f);
2764 } 2764 }
2765 2765
2766 TEST_F(PictureLayerImplTest, LayerRasterTileIterator) { 2766 TEST_F(PictureLayerImplTest, LayerRasterTileIterator) {
2767 base::TimeTicks time_ticks; 2767 base::TimeTicks time_ticks;
2768 time_ticks += base::TimeDelta::FromMilliseconds(1); 2768 time_ticks += base::TimeDelta::FromMilliseconds(1);
2769 host_impl_.SetCurrentBeginFrameArgs( 2769 host_impl_.SetCurrentBeginFrameArgs(
2770 CreateBeginFrameArgsForTesting(time_ticks)); 2770 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
2771 2771
2772 gfx::Size tile_size(100, 100); 2772 gfx::Size tile_size(100, 100);
2773 gfx::Size layer_bounds(1000, 1000); 2773 gfx::Size layer_bounds(1000, 1000);
2774 2774
2775 scoped_refptr<FakePicturePileImpl> pending_pile = 2775 scoped_refptr<FakePicturePileImpl> pending_pile =
2776 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 2776 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
2777 2777
2778 SetupPendingTree(pending_pile); 2778 SetupPendingTree(pending_pile);
2779 2779
2780 ASSERT_TRUE(pending_layer_->CanHaveTilings()); 2780 ASSERT_TRUE(pending_layer_->CanHaveTilings());
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
2830 EXPECT_TRUE(reached_prepaint); 2830 EXPECT_TRUE(reached_prepaint);
2831 EXPECT_EQ(0u, non_ideal_tile_count); 2831 EXPECT_EQ(0u, non_ideal_tile_count);
2832 EXPECT_EQ(0u, low_res_tile_count); 2832 EXPECT_EQ(0u, low_res_tile_count);
2833 EXPECT_EQ(16u, high_res_tile_count); 2833 EXPECT_EQ(16u, high_res_tile_count);
2834 EXPECT_EQ(low_res_tile_count + high_res_tile_count + non_ideal_tile_count, 2834 EXPECT_EQ(low_res_tile_count + high_res_tile_count + non_ideal_tile_count,
2835 unique_tiles.size()); 2835 unique_tiles.size());
2836 2836
2837 // No NOW tiles. 2837 // No NOW tiles.
2838 time_ticks += base::TimeDelta::FromMilliseconds(200); 2838 time_ticks += base::TimeDelta::FromMilliseconds(200);
2839 host_impl_.SetCurrentBeginFrameArgs( 2839 host_impl_.SetCurrentBeginFrameArgs(
2840 CreateBeginFrameArgsForTesting(time_ticks)); 2840 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
2841 2841
2842 pending_layer_->draw_properties().visible_content_rect = 2842 pending_layer_->draw_properties().visible_content_rect =
2843 gfx::Rect(1100, 1100, 500, 500); 2843 gfx::Rect(1100, 1100, 500, 500);
2844 bool resourceless_software_draw = false; 2844 bool resourceless_software_draw = false;
2845 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); 2845 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
2846 2846
2847 unique_tiles.clear(); 2847 unique_tiles.clear();
2848 high_res_tile_count = 0u; 2848 high_res_tile_count = 0u;
2849 for (it = PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false); 2849 for (it = PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false);
2850 it; 2850 it;
(...skipping 10 matching lines...) Expand all
2861 high_res_tile_count += priority.resolution == HIGH_RESOLUTION; 2861 high_res_tile_count += priority.resolution == HIGH_RESOLUTION;
2862 2862
2863 unique_tiles.insert(tile); 2863 unique_tiles.insert(tile);
2864 } 2864 }
2865 2865
2866 EXPECT_EQ(16u, high_res_tile_count); 2866 EXPECT_EQ(16u, high_res_tile_count);
2867 EXPECT_EQ(high_res_tile_count, unique_tiles.size()); 2867 EXPECT_EQ(high_res_tile_count, unique_tiles.size());
2868 2868
2869 time_ticks += base::TimeDelta::FromMilliseconds(200); 2869 time_ticks += base::TimeDelta::FromMilliseconds(200);
2870 host_impl_.SetCurrentBeginFrameArgs( 2870 host_impl_.SetCurrentBeginFrameArgs(
2871 CreateBeginFrameArgsForTesting(time_ticks)); 2871 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
2872 2872
2873 pending_layer_->draw_properties().visible_content_rect = 2873 pending_layer_->draw_properties().visible_content_rect =
2874 gfx::Rect(0, 0, 500, 500); 2874 gfx::Rect(0, 0, 500, 500);
2875 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); 2875 pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
2876 2876
2877 std::vector<Tile*> high_res_tiles = high_res_tiling->AllTilesForTesting(); 2877 std::vector<Tile*> high_res_tiles = high_res_tiling->AllTilesForTesting();
2878 for (std::vector<Tile*>::iterator tile_it = high_res_tiles.begin(); 2878 for (std::vector<Tile*>::iterator tile_it = high_res_tiles.begin();
2879 tile_it != high_res_tiles.end(); 2879 tile_it != high_res_tiles.end();
2880 ++tile_it) { 2880 ++tile_it) {
2881 Tile* tile = *tile_it; 2881 Tile* tile = *tile_it;
(...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after
3363 3363
3364 AssertNoTilesRequired(pending_layer_->HighResTiling()); 3364 AssertNoTilesRequired(pending_layer_->HighResTiling());
3365 if (host_impl_.settings().create_low_res_tiling) 3365 if (host_impl_.settings().create_low_res_tiling)
3366 AssertNoTilesRequired(pending_layer_->LowResTiling()); 3366 AssertNoTilesRequired(pending_layer_->LowResTiling());
3367 } 3367 }
3368 3368
3369 TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) { 3369 TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) {
3370 base::TimeTicks time_ticks; 3370 base::TimeTicks time_ticks;
3371 time_ticks += base::TimeDelta::FromMilliseconds(1); 3371 time_ticks += base::TimeDelta::FromMilliseconds(1);
3372 host_impl_.SetCurrentBeginFrameArgs( 3372 host_impl_.SetCurrentBeginFrameArgs(
3373 CreateBeginFrameArgsForTesting(time_ticks)); 3373 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
3374 3374
3375 gfx::Size tile_size(100, 100); 3375 gfx::Size tile_size(100, 100);
3376 gfx::Size layer_bounds(400, 400); 3376 gfx::Size layer_bounds(400, 400);
3377 3377
3378 scoped_refptr<FakePicturePileImpl> pending_pile = 3378 scoped_refptr<FakePicturePileImpl> pending_pile =
3379 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 3379 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
3380 scoped_refptr<FakePicturePileImpl> active_pile = 3380 scoped_refptr<FakePicturePileImpl> active_pile =
3381 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 3381 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
3382 3382
3383 SetupTrees(pending_pile, active_pile); 3383 SetupTrees(pending_pile, active_pile);
(...skipping 21 matching lines...) Expand all
3405 gfx::Rect visible_rect_for_tile_priority = 3405 gfx::Rect visible_rect_for_tile_priority =
3406 active_layer_->visible_rect_for_tile_priority(); 3406 active_layer_->visible_rect_for_tile_priority();
3407 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); 3407 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty());
3408 gfx::Transform screen_space_transform_for_tile_priority = 3408 gfx::Transform screen_space_transform_for_tile_priority =
3409 active_layer_->screen_space_transform(); 3409 active_layer_->screen_space_transform();
3410 3410
3411 // Expand viewport and set it as invalid for prioritizing tiles. 3411 // Expand viewport and set it as invalid for prioritizing tiles.
3412 // Should update viewport and transform, but not update visible rect. 3412 // Should update viewport and transform, but not update visible rect.
3413 time_ticks += base::TimeDelta::FromMilliseconds(200); 3413 time_ticks += base::TimeDelta::FromMilliseconds(200);
3414 host_impl_.SetCurrentBeginFrameArgs( 3414 host_impl_.SetCurrentBeginFrameArgs(
3415 CreateBeginFrameArgsForTesting(time_ticks)); 3415 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
3416 resourceless_software_draw = true; 3416 resourceless_software_draw = true;
3417 viewport = gfx::ScaleToEnclosingRect(viewport, 2); 3417 viewport = gfx::ScaleToEnclosingRect(viewport, 2);
3418 transform.Translate(1.f, 1.f); 3418 transform.Translate(1.f, 1.f);
3419 active_layer_->draw_properties().visible_content_rect = viewport; 3419 active_layer_->draw_properties().visible_content_rect = viewport;
3420 active_layer_->draw_properties().screen_space_transform = transform; 3420 active_layer_->draw_properties().screen_space_transform = transform;
3421 host_impl_.SetExternalDrawConstraints(transform, 3421 host_impl_.SetExternalDrawConstraints(transform,
3422 viewport, 3422 viewport,
3423 viewport, 3423 viewport,
3424 viewport, 3424 viewport,
3425 transform, 3425 transform,
3426 resourceless_software_draw); 3426 resourceless_software_draw);
3427 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); 3427 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
3428 3428
3429 // Transform for tile priority is updated. 3429 // Transform for tile priority is updated.
3430 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, 3430 EXPECT_TRANSFORMATION_MATRIX_EQ(transform,
3431 active_layer_->screen_space_transform()); 3431 active_layer_->screen_space_transform());
3432 // Visible rect for tile priority retains old value. 3432 // Visible rect for tile priority retains old value.
3433 EXPECT_EQ(visible_rect_for_tile_priority, 3433 EXPECT_EQ(visible_rect_for_tile_priority,
3434 active_layer_->visible_rect_for_tile_priority()); 3434 active_layer_->visible_rect_for_tile_priority());
3435 3435
3436 // Keep expanded viewport but mark it valid. Should update tile viewport. 3436 // Keep expanded viewport but mark it valid. Should update tile viewport.
3437 time_ticks += base::TimeDelta::FromMilliseconds(200); 3437 time_ticks += base::TimeDelta::FromMilliseconds(200);
3438 host_impl_.SetCurrentBeginFrameArgs( 3438 host_impl_.SetCurrentBeginFrameArgs(
3439 CreateBeginFrameArgsForTesting(time_ticks)); 3439 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
3440 resourceless_software_draw = false; 3440 resourceless_software_draw = false;
3441 host_impl_.SetExternalDrawConstraints(transform, 3441 host_impl_.SetExternalDrawConstraints(transform,
3442 viewport, 3442 viewport,
3443 viewport, 3443 viewport,
3444 viewport, 3444 viewport,
3445 transform, 3445 transform,
3446 resourceless_software_draw); 3446 resourceless_software_draw);
3447 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw); 3447 active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
3448 3448
3449 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, 3449 EXPECT_TRANSFORMATION_MATRIX_EQ(transform,
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after
3874 occluded_tile_count); 3874 occluded_tile_count);
3875 } 3875 }
3876 } 3876 }
3877 }; 3877 };
3878 3878
3879 TEST_F(OcclusionTrackingPictureLayerImplTest, 3879 TEST_F(OcclusionTrackingPictureLayerImplTest,
3880 OccludedTilesSkippedDuringRasterization) { 3880 OccludedTilesSkippedDuringRasterization) {
3881 base::TimeTicks time_ticks; 3881 base::TimeTicks time_ticks;
3882 time_ticks += base::TimeDelta::FromMilliseconds(1); 3882 time_ticks += base::TimeDelta::FromMilliseconds(1);
3883 host_impl_.SetCurrentBeginFrameArgs( 3883 host_impl_.SetCurrentBeginFrameArgs(
3884 CreateBeginFrameArgsForTesting(time_ticks)); 3884 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
3885 3885
3886 gfx::Size tile_size(102, 102); 3886 gfx::Size tile_size(102, 102);
3887 gfx::Size layer_bounds(1000, 1000); 3887 gfx::Size layer_bounds(1000, 1000);
3888 gfx::Size viewport_size(500, 500); 3888 gfx::Size viewport_size(500, 500);
3889 gfx::Point occluding_layer_position(310, 0); 3889 gfx::Point occluding_layer_position(310, 0);
3890 3890
3891 scoped_refptr<FakePicturePileImpl> pending_pile = 3891 scoped_refptr<FakePicturePileImpl> pending_pile =
3892 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 3892 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
3893 SetupPendingTree(pending_pile); 3893 SetupPendingTree(pending_pile);
3894 pending_layer_->set_fixed_tile_size(tile_size); 3894 pending_layer_->set_fixed_tile_size(tile_size);
(...skipping 25 matching lines...) Expand all
3920 pending_layer_->AddChild(LayerImpl::Create(host_impl_.pending_tree(), 1)); 3920 pending_layer_->AddChild(LayerImpl::Create(host_impl_.pending_tree(), 1));
3921 LayerImpl* layer1 = pending_layer_->children()[0]; 3921 LayerImpl* layer1 = pending_layer_->children()[0];
3922 layer1->SetBounds(layer_bounds); 3922 layer1->SetBounds(layer_bounds);
3923 layer1->SetContentBounds(layer_bounds); 3923 layer1->SetContentBounds(layer_bounds);
3924 layer1->SetDrawsContent(true); 3924 layer1->SetDrawsContent(true);
3925 layer1->SetContentsOpaque(true); 3925 layer1->SetContentsOpaque(true);
3926 layer1->SetPosition(occluding_layer_position); 3926 layer1->SetPosition(occluding_layer_position);
3927 3927
3928 time_ticks += base::TimeDelta::FromMilliseconds(200); 3928 time_ticks += base::TimeDelta::FromMilliseconds(200);
3929 host_impl_.SetCurrentBeginFrameArgs( 3929 host_impl_.SetCurrentBeginFrameArgs(
3930 CreateBeginFrameArgsForTesting(time_ticks)); 3930 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
3931 host_impl_.pending_tree()->UpdateDrawProperties(); 3931 host_impl_.pending_tree()->UpdateDrawProperties();
3932 3932
3933 unoccluded_tile_count = 0; 3933 unoccluded_tile_count = 0;
3934 for (PictureLayerImpl::LayerRasterTileIterator it = 3934 for (PictureLayerImpl::LayerRasterTileIterator it =
3935 PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false); 3935 PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false);
3936 it; 3936 it;
3937 ++it) { 3937 ++it) {
3938 Tile* tile = *it; 3938 Tile* tile = *it;
3939 3939
3940 EXPECT_FALSE(tile->is_occluded(PENDING_TREE)); 3940 EXPECT_FALSE(tile->is_occluded(PENDING_TREE));
3941 3941
3942 bool tile_is_visible = 3942 bool tile_is_visible =
3943 tile->content_rect().Intersects(pending_layer_->visible_content_rect()); 3943 tile->content_rect().Intersects(pending_layer_->visible_content_rect());
3944 if (tile_is_visible) 3944 if (tile_is_visible)
3945 unoccluded_tile_count++; 3945 unoccluded_tile_count++;
3946 } 3946 }
3947 EXPECT_EQ(20, unoccluded_tile_count); 3947 EXPECT_EQ(20, unoccluded_tile_count);
3948 3948
3949 // Full occlusion. 3949 // Full occlusion.
3950 layer1->SetPosition(gfx::Point(0, 0)); 3950 layer1->SetPosition(gfx::Point(0, 0));
3951 3951
3952 time_ticks += base::TimeDelta::FromMilliseconds(200); 3952 time_ticks += base::TimeDelta::FromMilliseconds(200);
3953 host_impl_.SetCurrentBeginFrameArgs( 3953 host_impl_.SetCurrentBeginFrameArgs(
3954 CreateBeginFrameArgsForTesting(time_ticks)); 3954 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
3955 host_impl_.pending_tree()->UpdateDrawProperties(); 3955 host_impl_.pending_tree()->UpdateDrawProperties();
3956 3956
3957 unoccluded_tile_count = 0; 3957 unoccluded_tile_count = 0;
3958 for (PictureLayerImpl::LayerRasterTileIterator it = 3958 for (PictureLayerImpl::LayerRasterTileIterator it =
3959 PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false); 3959 PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false);
3960 it; 3960 it;
3961 ++it) { 3961 ++it) {
3962 Tile* tile = *it; 3962 Tile* tile = *it;
3963 3963
3964 EXPECT_FALSE(tile->is_occluded(PENDING_TREE)); 3964 EXPECT_FALSE(tile->is_occluded(PENDING_TREE));
3965 3965
3966 bool tile_is_visible = 3966 bool tile_is_visible =
3967 tile->content_rect().Intersects(pending_layer_->visible_content_rect()); 3967 tile->content_rect().Intersects(pending_layer_->visible_content_rect());
3968 if (tile_is_visible) 3968 if (tile_is_visible)
3969 unoccluded_tile_count++; 3969 unoccluded_tile_count++;
3970 } 3970 }
3971 EXPECT_EQ(unoccluded_tile_count, 0); 3971 EXPECT_EQ(unoccluded_tile_count, 0);
3972 } 3972 }
3973 3973
3974 TEST_F(OcclusionTrackingPictureLayerImplTest, 3974 TEST_F(OcclusionTrackingPictureLayerImplTest,
3975 OccludedTilesNotMarkedAsRequired) { 3975 OccludedTilesNotMarkedAsRequired) {
3976 base::TimeTicks time_ticks; 3976 base::TimeTicks time_ticks;
3977 time_ticks += base::TimeDelta::FromMilliseconds(1); 3977 time_ticks += base::TimeDelta::FromMilliseconds(1);
3978 host_impl_.SetCurrentBeginFrameArgs( 3978 host_impl_.SetCurrentBeginFrameArgs(
3979 CreateBeginFrameArgsForTesting(time_ticks)); 3979 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
3980 3980
3981 gfx::Size tile_size(102, 102); 3981 gfx::Size tile_size(102, 102);
3982 gfx::Size layer_bounds(1000, 1000); 3982 gfx::Size layer_bounds(1000, 1000);
3983 gfx::Size viewport_size(500, 500); 3983 gfx::Size viewport_size(500, 500);
3984 gfx::Point occluding_layer_position(310, 0); 3984 gfx::Point occluding_layer_position(310, 0);
3985 3985
3986 scoped_refptr<FakePicturePileImpl> pending_pile = 3986 scoped_refptr<FakePicturePileImpl> pending_pile =
3987 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 3987 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
3988 SetupPendingTree(pending_pile); 3988 SetupPendingTree(pending_pile);
3989 pending_layer_->set_fixed_tile_size(tile_size); 3989 pending_layer_->set_fixed_tile_size(tile_size);
(...skipping 30 matching lines...) Expand all
4020 pending_layer_->AddChild(LayerImpl::Create(host_impl_.pending_tree(), 1)); 4020 pending_layer_->AddChild(LayerImpl::Create(host_impl_.pending_tree(), 1));
4021 LayerImpl* layer1 = pending_layer_->children()[0]; 4021 LayerImpl* layer1 = pending_layer_->children()[0];
4022 layer1->SetBounds(layer_bounds); 4022 layer1->SetBounds(layer_bounds);
4023 layer1->SetContentBounds(layer_bounds); 4023 layer1->SetContentBounds(layer_bounds);
4024 layer1->SetDrawsContent(true); 4024 layer1->SetDrawsContent(true);
4025 layer1->SetContentsOpaque(true); 4025 layer1->SetContentsOpaque(true);
4026 layer1->SetPosition(occluding_layer_position); 4026 layer1->SetPosition(occluding_layer_position);
4027 4027
4028 time_ticks += base::TimeDelta::FromMilliseconds(200); 4028 time_ticks += base::TimeDelta::FromMilliseconds(200);
4029 host_impl_.SetCurrentBeginFrameArgs( 4029 host_impl_.SetCurrentBeginFrameArgs(
4030 CreateBeginFrameArgsForTesting(time_ticks)); 4030 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
4031 host_impl_.pending_tree()->UpdateDrawProperties(); 4031 host_impl_.pending_tree()->UpdateDrawProperties();
4032 4032
4033 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) { 4033 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) {
4034 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i); 4034 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i);
4035 tiling->UpdateAllTilePrioritiesForTesting(); 4035 tiling->UpdateAllTilePrioritiesForTesting();
4036 4036
4037 occluded_tile_count = 0; 4037 occluded_tile_count = 0;
4038 for (PictureLayerTiling::CoverageIterator iter( 4038 for (PictureLayerTiling::CoverageIterator iter(
4039 tiling, 4039 tiling,
4040 pending_layer_->contents_scale_x(), 4040 pending_layer_->contents_scale_x(),
(...skipping 19 matching lines...) Expand all
4060 default: 4060 default:
4061 NOTREACHED(); 4061 NOTREACHED();
4062 } 4062 }
4063 } 4063 }
4064 4064
4065 // Full occlusion. 4065 // Full occlusion.
4066 layer1->SetPosition(gfx::PointF(0, 0)); 4066 layer1->SetPosition(gfx::PointF(0, 0));
4067 4067
4068 time_ticks += base::TimeDelta::FromMilliseconds(200); 4068 time_ticks += base::TimeDelta::FromMilliseconds(200);
4069 host_impl_.SetCurrentBeginFrameArgs( 4069 host_impl_.SetCurrentBeginFrameArgs(
4070 CreateBeginFrameArgsForTesting(time_ticks)); 4070 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
4071 host_impl_.pending_tree()->UpdateDrawProperties(); 4071 host_impl_.pending_tree()->UpdateDrawProperties();
4072 4072
4073 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) { 4073 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) {
4074 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i); 4074 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i);
4075 tiling->UpdateAllTilePrioritiesForTesting(); 4075 tiling->UpdateAllTilePrioritiesForTesting();
4076 4076
4077 occluded_tile_count = 0; 4077 occluded_tile_count = 0;
4078 for (PictureLayerTiling::CoverageIterator iter( 4078 for (PictureLayerTiling::CoverageIterator iter(
4079 tiling, 4079 tiling,
4080 pending_layer_->contents_scale_x(), 4080 pending_layer_->contents_scale_x(),
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
4489 // Make an empty pending tree. 4489 // Make an empty pending tree.
4490 host_impl_.CreatePendingTree(); 4490 host_impl_.CreatePendingTree();
4491 host_impl_.pending_tree()->DetachLayerTree(); 4491 host_impl_.pending_tree()->DetachLayerTree();
4492 EXPECT_FALSE(active_layer_->GetRecycledTwinLayer()); 4492 EXPECT_FALSE(active_layer_->GetRecycledTwinLayer());
4493 } 4493 }
4494 4494
4495 void PictureLayerImplTest::TestQuadsForSolidColor(bool test_for_solid) { 4495 void PictureLayerImplTest::TestQuadsForSolidColor(bool test_for_solid) {
4496 base::TimeTicks time_ticks; 4496 base::TimeTicks time_ticks;
4497 time_ticks += base::TimeDelta::FromMilliseconds(1); 4497 time_ticks += base::TimeDelta::FromMilliseconds(1);
4498 host_impl_.SetCurrentBeginFrameArgs( 4498 host_impl_.SetCurrentBeginFrameArgs(
4499 CreateBeginFrameArgsForTesting(time_ticks)); 4499 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
4500 4500
4501 gfx::Size tile_size(100, 100); 4501 gfx::Size tile_size(100, 100);
4502 gfx::Size layer_bounds(200, 200); 4502 gfx::Size layer_bounds(200, 200);
4503 gfx::Rect layer_rect(layer_bounds); 4503 gfx::Rect layer_rect(layer_bounds);
4504 4504
4505 FakeContentLayerClient client; 4505 FakeContentLayerClient client;
4506 scoped_refptr<PictureLayer> layer = PictureLayer::Create(&client); 4506 scoped_refptr<PictureLayer> layer = PictureLayer::Create(&client);
4507 FakeLayerTreeHostClient host_client(FakeLayerTreeHostClient::DIRECT_3D); 4507 FakeLayerTreeHostClient host_client(FakeLayerTreeHostClient::DIRECT_3D);
4508 scoped_ptr<FakeLayerTreeHost> host = FakeLayerTreeHost::Create(&host_client); 4508 scoped_ptr<FakeLayerTreeHost> host = FakeLayerTreeHost::Create(&host_client);
4509 host->SetRootLayer(layer); 4509 host->SetRootLayer(layer);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
4556 } 4556 }
4557 4557
4558 TEST_F(PictureLayerImplTest, DrawNonSolidQuads) { 4558 TEST_F(PictureLayerImplTest, DrawNonSolidQuads) {
4559 TestQuadsForSolidColor(false); 4559 TestQuadsForSolidColor(false);
4560 } 4560 }
4561 4561
4562 TEST_F(PictureLayerImplTest, NonSolidToSolidNoTilings) { 4562 TEST_F(PictureLayerImplTest, NonSolidToSolidNoTilings) {
4563 base::TimeTicks time_ticks; 4563 base::TimeTicks time_ticks;
4564 time_ticks += base::TimeDelta::FromMilliseconds(1); 4564 time_ticks += base::TimeDelta::FromMilliseconds(1);
4565 host_impl_.SetCurrentBeginFrameArgs( 4565 host_impl_.SetCurrentBeginFrameArgs(
4566 CreateBeginFrameArgsForTesting(time_ticks)); 4566 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
4567 4567
4568 gfx::Size tile_size(100, 100); 4568 gfx::Size tile_size(100, 100);
4569 gfx::Size layer_bounds(200, 200); 4569 gfx::Size layer_bounds(200, 200);
4570 gfx::Rect layer_rect(layer_bounds); 4570 gfx::Rect layer_rect(layer_bounds);
4571 4571
4572 FakeContentLayerClient client; 4572 FakeContentLayerClient client;
4573 scoped_refptr<PictureLayer> layer = PictureLayer::Create(&client); 4573 scoped_refptr<PictureLayer> layer = PictureLayer::Create(&client);
4574 FakeLayerTreeHostClient host_client(FakeLayerTreeHostClient::DIRECT_3D); 4574 FakeLayerTreeHostClient host_client(FakeLayerTreeHostClient::DIRECT_3D);
4575 scoped_ptr<FakeLayerTreeHost> host = FakeLayerTreeHost::Create(&host_client); 4575 scoped_ptr<FakeLayerTreeHost> host = FakeLayerTreeHost::Create(&host_client);
4576 host->SetRootLayer(layer); 4576 host->SetRootLayer(layer);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
4613 4613
4614 // We've switched to a solid color, so we should end up with no tilings. 4614 // We've switched to a solid color, so we should end up with no tilings.
4615 ASSERT_TRUE(active_layer_->tilings()); 4615 ASSERT_TRUE(active_layer_->tilings());
4616 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings()); 4616 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings());
4617 } 4617 }
4618 4618
4619 TEST_F(PictureLayerImplTest, ChangeInViewportAllowsTilingUpdates) { 4619 TEST_F(PictureLayerImplTest, ChangeInViewportAllowsTilingUpdates) {
4620 base::TimeTicks time_ticks; 4620 base::TimeTicks time_ticks;
4621 time_ticks += base::TimeDelta::FromMilliseconds(1); 4621 time_ticks += base::TimeDelta::FromMilliseconds(1);
4622 host_impl_.SetCurrentBeginFrameArgs( 4622 host_impl_.SetCurrentBeginFrameArgs(
4623 CreateBeginFrameArgsForTesting(time_ticks)); 4623 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
4624 4624
4625 gfx::Size tile_size(100, 100); 4625 gfx::Size tile_size(100, 100);
4626 gfx::Size layer_bounds(400, 4000); 4626 gfx::Size layer_bounds(400, 4000);
4627 4627
4628 scoped_refptr<FakePicturePileImpl> pending_pile = 4628 scoped_refptr<FakePicturePileImpl> pending_pile =
4629 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 4629 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
4630 scoped_refptr<FakePicturePileImpl> active_pile = 4630 scoped_refptr<FakePicturePileImpl> active_pile =
4631 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 4631 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
4632 4632
4633 SetupTrees(pending_pile, active_pile); 4633 SetupTrees(pending_pile, active_pile);
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
4735 result = layer->CalculateTileSize(gfx::Size(447, 400)); 4735 result = layer->CalculateTileSize(gfx::Size(447, 400));
4736 EXPECT_EQ(result.width(), 448); 4736 EXPECT_EQ(result.width(), 448);
4737 EXPECT_EQ(result.height(), 448); 4737 EXPECT_EQ(result.height(), 448);
4738 result = layer->CalculateTileSize(gfx::Size(500, 499)); 4738 result = layer->CalculateTileSize(gfx::Size(500, 499));
4739 EXPECT_EQ(result.width(), 512); 4739 EXPECT_EQ(result.width(), 512);
4740 EXPECT_EQ(result.height(), 500 + 2); 4740 EXPECT_EQ(result.height(), 500 + 2);
4741 } 4741 }
4742 4742
4743 } // namespace 4743 } // namespace
4744 } // namespace cc 4744 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/output/begin_frame_args.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698