summaryrefslogtreecommitdiffstats
path: root/cc/layers/picture_layer_impl.cc
diff options
context:
space:
mode:
authordanakj <danakj@chromium.org>2014-09-03 22:02:17 -0700
committerCommit bot <commit-bot@chromium.org>2014-09-04 05:06:27 +0000
commitbc80fa3586c3a379c367972e22b97304632641b8 (patch)
tree3d9abdfd9be108991260f13bdb1207cba39254b2 /cc/layers/picture_layer_impl.cc
parent2d514327ee39f1fecc5a993a7884bcb2b58dea0c (diff)
downloadchromium_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.cc5
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;
}
}