diff options
author | danakj <danakj@chromium.org> | 2014-09-03 22:02:17 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-09-04 05:06:27 +0000 |
commit | bc80fa3586c3a379c367972e22b97304632641b8 (patch) | |
tree | 3d9abdfd9be108991260f13bdb1207cba39254b2 /cc/layers/picture_layer_impl.cc | |
parent | 2d514327ee39f1fecc5a993a7884bcb2b58dea0c (diff) | |
download | chromium_src-bc80fa3586c3a379c367972e22b97304632641b8.zip chromium_src-bc80fa3586c3a379c367972e22b97304632641b8.tar.gz chromium_src-bc80fa3586c3a379c367972e22b97304632641b8.tar.bz2 |
cc: Don't require low res to activate for shared ready-to-draw tiles.
When a tile is shared (no invalidation) and is being drawn on the
active tree (ready-to-draw), then that tile is not marked as required
for activation since activating it can't cause a bad-resolution flash.
However, we also would also say that "twin_had_missing_tile" in this
scenario, which causes us to mark low-res tilings as required. But
this is a bug since the tile is not missing in this case, and we do
not need low res to fill it in.
Instead, check to see if the active tree's tile is /not/ ready-to-draw.
When that is the case, the active tile is not being drawn and is
actually missing. Then a low res tile should be required if the
active tree is showing a low res tile in the same place.
For perf tests without scrolling (ie pages that just update in place
without input), this fixes us to never require low res tiles to
activate, since we won't show them.
R=enne, vmpstr
BUG=407121
Review URL: https://codereview.chromium.org/540663002
Cr-Commit-Position: refs/heads/master@{#293262}
Diffstat (limited to 'cc/layers/picture_layer_impl.cc')
-rw-r--r-- | cc/layers/picture_layer_impl.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc index 1f8e5a8..763f05e 100644 --- a/cc/layers/picture_layer_impl.cc +++ b/cc/layers/picture_layer_impl.cc @@ -936,7 +936,10 @@ bool PictureLayerImpl::MarkVisibleTilesAsRequired( if (optional_twin_tiling) { Tile* twin_tile = optional_twin_tiling->TileAt(iter.i(), iter.j()); if (!twin_tile || twin_tile == tile) { - twin_had_missing_tile = true; + // However if the shared tile is being used on the active tree, then + // there's no missing content in this place, and low res is not needed. + if (!twin_tile || !twin_tile->IsReadyToDraw()) + twin_had_missing_tile = true; continue; } } |