Index: cc/layers/picture_layer_impl_unittest.cc |
diff --git a/cc/layers/picture_layer_impl_unittest.cc b/cc/layers/picture_layer_impl_unittest.cc |
index 9e80f926ee50e7a91c599718631105bed5175d8d..249dcf02f14fa61f4267325475bf4f9f76b41554 100644 |
--- a/cc/layers/picture_layer_impl_unittest.cc |
+++ b/cc/layers/picture_layer_impl_unittest.cc |
@@ -415,7 +415,8 @@ TEST_F(PictureLayerImplTest, ExternalViewportRectForPrioritizingTiles) { |
} |
} |
-TEST_F(PictureLayerImplTest, InvalidViewportForPrioritizingTiles) { |
+TEST_F(PictureLayerImplTest, |
+ ResourcelessSoftwareDrawHasValidViewportForTilePriority) { |
base::TimeTicks time_ticks; |
time_ticks += base::TimeDelta::FromMilliseconds(1); |
host_impl_.SetCurrentBeginFrameArgs( |
@@ -436,8 +437,6 @@ TEST_F(PictureLayerImplTest, InvalidViewportForPrioritizingTiles) { |
SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false); |
// UpdateTiles with valid viewport. Should update tile viewport. |
- // Note viewport is considered invalid if and only if in resourceless |
- // software draw. |
bool resourceless_software_draw = false; |
gfx::Rect viewport = gfx::Rect(layer_bounds); |
gfx::Transform transform; |
@@ -460,8 +459,9 @@ TEST_F(PictureLayerImplTest, InvalidViewportForPrioritizingTiles) { |
gfx::Transform screen_space_transform_for_tile_priority = |
active_layer_->screen_space_transform_for_tile_priority(); |
- // Expand viewport and set it as invalid for prioritizing tiles. |
- // Should not update tile viewport. |
+ // PictureLayerImpl does not make a special case for |
+ // resource_less_software_draw, so the tile viewport and matrix should be |
+ // respected. |
time_ticks += base::TimeDelta::FromMilliseconds(200); |
host_impl_.SetCurrentBeginFrameArgs( |
CreateBeginFrameArgsForTesting(time_ticks)); |
@@ -478,6 +478,11 @@ TEST_F(PictureLayerImplTest, InvalidViewportForPrioritizingTiles) { |
resourceless_software_draw); |
active_layer_->UpdateTiles(NULL); |
+ visible_rect_for_tile_priority = |
+ gfx::ScaleToEnclosingRect(visible_rect_for_tile_priority, 2); |
+ viewport_rect_for_tile_priority = |
+ gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority, 2); |
+ screen_space_transform_for_tile_priority = transform; |
EXPECT_RECT_EQ(visible_rect_for_tile_priority, |
active_layer_->visible_rect_for_tile_priority()); |
EXPECT_RECT_EQ(viewport_rect_for_tile_priority, |
@@ -485,60 +490,6 @@ TEST_F(PictureLayerImplTest, InvalidViewportForPrioritizingTiles) { |
EXPECT_TRANSFORMATION_MATRIX_EQ( |
screen_space_transform_for_tile_priority, |
active_layer_->screen_space_transform_for_tile_priority()); |
- |
- // Keep expanded viewport but mark it valid. Should update tile viewport. |
- time_ticks += base::TimeDelta::FromMilliseconds(200); |
- host_impl_.SetCurrentBeginFrameArgs( |
- CreateBeginFrameArgsForTesting(time_ticks)); |
- resourceless_software_draw = false; |
- host_impl_.SetExternalDrawConstraints(transform, |
- viewport, |
- viewport, |
- viewport, |
- transform, |
- resourceless_software_draw); |
- active_layer_->UpdateTiles(NULL); |
- |
- EXPECT_FALSE(visible_rect_for_tile_priority == |
- active_layer_->visible_rect_for_tile_priority()); |
- EXPECT_FALSE(viewport_rect_for_tile_priority == |
- active_layer_->viewport_rect_for_tile_priority()); |
- EXPECT_FALSE(screen_space_transform_for_tile_priority == |
- active_layer_->screen_space_transform_for_tile_priority()); |
-} |
- |
-TEST_F(PictureLayerImplTest, InvalidViewportAfterReleaseResources) { |
- gfx::Size tile_size(100, 100); |
- gfx::Size layer_bounds(400, 400); |
- |
- scoped_refptr<FakePicturePileImpl> pending_pile = |
- FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
- scoped_refptr<FakePicturePileImpl> active_pile = |
- FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
- |
- SetupTrees(pending_pile, active_pile); |
- |
- Region invalidation; |
- AddDefaultTilingsWithInvalidation(invalidation); |
- |
- bool resourceless_software_draw = true; |
- gfx::Rect viewport = gfx::Rect(layer_bounds); |
- gfx::Transform identity = gfx::Transform(); |
- host_impl_.SetExternalDrawConstraints(identity, |
- viewport, |
- viewport, |
- viewport, |
- identity, |
- resourceless_software_draw); |
- ResetTilingsAndRasterScales(); |
- host_impl_.pending_tree()->UpdateDrawProperties(); |
- host_impl_.active_tree()->UpdateDrawProperties(); |
- EXPECT_TRUE(active_layer_->HighResTiling()); |
- |
- size_t num_tilings = active_layer_->num_tilings(); |
- active_layer_->UpdateTiles(NULL); |
- pending_layer_->AddTiling(0.5f); |
- EXPECT_EQ(num_tilings + 1, active_layer_->num_tilings()); |
} |
TEST_F(PictureLayerImplTest, ClonePartialInvalidation) { |
@@ -3043,7 +2994,8 @@ TEST_F(NoLowResPictureLayerImplTest, NothingRequiredIfActiveMissingTiles) { |
AssertNoTilesRequired(pending_layer_->LowResTiling()); |
} |
-TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) { |
+TEST_F(NoLowResPictureLayerImplTest, |
+ ResourcelessSoftwareDrawHasValidViewportForTilePriority) { |
base::TimeTicks time_ticks; |
time_ticks += base::TimeDelta::FromMilliseconds(1); |
host_impl_.SetCurrentBeginFrameArgs( |
@@ -3064,8 +3016,6 @@ TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) { |
SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false); |
// UpdateTiles with valid viewport. Should update tile viewport. |
- // Note viewport is considered invalid if and only if in resourceless |
- // software draw. |
bool resourceless_software_draw = false; |
gfx::Rect viewport = gfx::Rect(layer_bounds); |
gfx::Transform transform; |
@@ -3088,8 +3038,9 @@ TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) { |
gfx::Transform screen_space_transform_for_tile_priority = |
active_layer_->screen_space_transform_for_tile_priority(); |
- // Expand viewport and set it as invalid for prioritizing tiles. |
- // Should not update tile viewport. |
+ // PictureLayerImpl does not make a special case for |
+ // resource_less_software_draw, so the tile viewport and matrix should be |
+ // respected. |
time_ticks += base::TimeDelta::FromMilliseconds(200); |
host_impl_.SetCurrentBeginFrameArgs( |
CreateBeginFrameArgsForTesting(time_ticks)); |
@@ -3106,6 +3057,12 @@ TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) { |
resourceless_software_draw); |
active_layer_->UpdateTiles(NULL); |
+ visible_rect_for_tile_priority = |
+ gfx::ScaleToEnclosingRect(visible_rect_for_tile_priority, 2); |
+ viewport_rect_for_tile_priority = |
+ gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority, 2); |
+ screen_space_transform_for_tile_priority = transform; |
+ |
EXPECT_RECT_EQ(visible_rect_for_tile_priority, |
active_layer_->visible_rect_for_tile_priority()); |
EXPECT_RECT_EQ(viewport_rect_for_tile_priority, |
@@ -3113,60 +3070,6 @@ TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) { |
EXPECT_TRANSFORMATION_MATRIX_EQ( |
screen_space_transform_for_tile_priority, |
active_layer_->screen_space_transform_for_tile_priority()); |
- |
- // Keep expanded viewport but mark it valid. Should update tile viewport. |
- time_ticks += base::TimeDelta::FromMilliseconds(200); |
- host_impl_.SetCurrentBeginFrameArgs( |
- CreateBeginFrameArgsForTesting(time_ticks)); |
- resourceless_software_draw = false; |
- host_impl_.SetExternalDrawConstraints(transform, |
- viewport, |
- viewport, |
- viewport, |
- transform, |
- resourceless_software_draw); |
- active_layer_->UpdateTiles(NULL); |
- |
- EXPECT_FALSE(visible_rect_for_tile_priority == |
- active_layer_->visible_rect_for_tile_priority()); |
- EXPECT_FALSE(viewport_rect_for_tile_priority == |
- active_layer_->viewport_rect_for_tile_priority()); |
- EXPECT_FALSE(screen_space_transform_for_tile_priority == |
- active_layer_->screen_space_transform_for_tile_priority()); |
-} |
- |
-TEST_F(NoLowResPictureLayerImplTest, InvalidViewportAfterReleaseResources) { |
- gfx::Size tile_size(100, 100); |
- gfx::Size layer_bounds(400, 400); |
- |
- scoped_refptr<FakePicturePileImpl> pending_pile = |
- FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
- scoped_refptr<FakePicturePileImpl> active_pile = |
- FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
- |
- SetupTrees(pending_pile, active_pile); |
- |
- Region invalidation; |
- AddDefaultTilingsWithInvalidation(invalidation); |
- |
- bool resourceless_software_draw = true; |
- gfx::Rect viewport = gfx::Rect(layer_bounds); |
- gfx::Transform identity = gfx::Transform(); |
- host_impl_.SetExternalDrawConstraints(identity, |
- viewport, |
- viewport, |
- viewport, |
- identity, |
- resourceless_software_draw); |
- ResetTilingsAndRasterScales(); |
- host_impl_.pending_tree()->UpdateDrawProperties(); |
- host_impl_.active_tree()->UpdateDrawProperties(); |
- EXPECT_TRUE(active_layer_->HighResTiling()); |
- |
- size_t num_tilings = active_layer_->num_tilings(); |
- active_layer_->UpdateTiles(NULL); |
- pending_layer_->AddTiling(0.5f); |
- EXPECT_EQ(num_tilings + 1, active_layer_->num_tilings()); |
} |
TEST_F(NoLowResPictureLayerImplTest, CleanUpTilings) { |