| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "cc/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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |