| Index: cc/layers/picture_layer_impl.cc
|
| diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc
|
| index 82eef41e66fb833e33d691cb51c73ff6a475629e..7575e2fc8389d5fb2343e6dd3b8ee45d218a634f 100644
|
| --- a/cc/layers/picture_layer_impl.cc
|
| +++ b/cc/layers/picture_layer_impl.cc
|
| @@ -293,6 +293,12 @@ void PictureLayerImpl::AppendQuads(QuadSink* quad_sink,
|
|
|
| void PictureLayerImpl::UpdateTilePriorities() {
|
| DCHECK(!needs_post_commit_initialization_);
|
| + if (!layer_tree_impl()->device_viewport_valid_for_tile_management()) {
|
| + for (size_t i = 0; i < tilings_->num_tilings(); ++i)
|
| + DCHECK(tilings_->tiling_at(i)->has_ever_been_updated());
|
| + return;
|
| + }
|
| +
|
| if (!tilings_->num_tilings())
|
| return;
|
|
|
| @@ -318,12 +324,13 @@ void PictureLayerImpl::UpdateTilePriorities() {
|
|
|
| gfx::Transform current_screen_space_transform = screen_space_transform();
|
|
|
| + gfx::Size viewport_size = layer_tree_impl()->DrawViewportSize();
|
| gfx::Rect viewport_in_content_space;
|
| gfx::Transform screen_to_layer(gfx::Transform::kSkipInitialization);
|
| if (screen_space_transform().GetInverse(&screen_to_layer)) {
|
| - gfx::Rect device_viewport(layer_tree_impl()->device_viewport_size());
|
| - viewport_in_content_space = gfx::ToEnclosingRect(
|
| - MathUtil::ProjectClippedRect(screen_to_layer, device_viewport));
|
| + viewport_in_content_space =
|
| + gfx::ToEnclosingRect(MathUtil::ProjectClippedRect(
|
| + screen_to_layer, gfx::Rect(viewport_size)));
|
| }
|
|
|
| WhichTree tree =
|
| @@ -332,7 +339,7 @@ void PictureLayerImpl::UpdateTilePriorities() {
|
| layer_tree_impl()->settings().max_tiles_for_interest_area;
|
| tilings_->UpdateTilePriorities(
|
| tree,
|
| - layer_tree_impl()->device_viewport_size(),
|
| + viewport_size,
|
| viewport_in_content_space,
|
| visible_content_rect(),
|
| last_bounds_,
|
| @@ -798,6 +805,9 @@ void PictureLayerImpl::ManageTilings(bool animating_transform_to_screen) {
|
| if (!change_target_tiling)
|
| return;
|
|
|
| + if (!layer_tree_impl()->device_viewport_valid_for_tile_management())
|
| + return;
|
| +
|
| raster_page_scale_ = ideal_page_scale_;
|
| raster_device_scale_ = ideal_device_scale_;
|
| raster_source_scale_ = ideal_source_scale_;
|
|
|