Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(88)

Side by Side Diff: cc/layers/picture_layer_impl.cc

Issue 548223003: cc: Block drawing of tiles without twins. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 9
10 #include "base/debug/trace_event_argument.h" 10 #include "base/debug/trace_event_argument.h"
(...skipping 849 matching lines...) Expand 10 before | Expand all | Expand 10 after
860 // active layer is also missing when both this layer and its twin have 860 // active layer is also missing when both this layer and its twin have
861 // "simple" sets of tilings: only 2 tilings (high and low) or only 1 high 861 // "simple" sets of tilings: only 2 tilings (high and low) or only 1 high
862 // res tiling. This avoids having to iterate/track coverage of non-ideal 862 // res tiling. This avoids having to iterate/track coverage of non-ideal
863 // tilings during the last draw call on the active layer. 863 // tilings during the last draw call on the active layer.
864 if (tilings_->num_tilings() <= 2 && 864 if (tilings_->num_tilings() <= 2 &&
865 twin_layer_->tilings_->num_tilings() <= tilings_->num_tilings()) { 865 twin_layer_->tilings_->num_tilings() <= tilings_->num_tilings()) {
866 twin_low_res = low_res ? GetTwinTiling(low_res) : NULL; 866 twin_low_res = low_res ? GetTwinTiling(low_res) : NULL;
867 twin_high_res = high_res ? GetTwinTiling(high_res) : NULL; 867 twin_high_res = high_res ? GetTwinTiling(high_res) : NULL;
868 } 868 }
869 869
870 // When there is a race between activation+drawing and rasterizing,
871 // for tiles without twins, we should prevent the active tree from
872 // drawing these tiles.
873 if (twin_high_res && !twin_high_res->tiles_size()) {
874 layer_tree_impl()->SetRequiresHighResToDraw();
sohanjg 2014/09/08 13:45:16 we should SetRequiresHighResToDraw, on the twin la
875 }
876
870 // If this layer and its twin have different transforms, then don't compare 877 // If this layer and its twin have different transforms, then don't compare
871 // them and only allow activating to high res tiles, since tiles on each 878 // them and only allow activating to high res tiles, since tiles on each
872 // layer will be in different places on screen. 879 // layer will be in different places on screen.
873 if (twin_layer_->layer_tree_impl()->RequiresHighResToDraw() || 880 if (twin_layer_->layer_tree_impl()->RequiresHighResToDraw() ||
874 bounds() != twin_layer_->bounds() || 881 bounds() != twin_layer_->bounds() ||
875 draw_properties().screen_space_transform != 882 draw_properties().screen_space_transform !=
876 twin_layer_->draw_properties().screen_space_transform) { 883 twin_layer_->draw_properties().screen_space_transform) {
877 twin_high_res = NULL; 884 twin_high_res = NULL;
878 twin_low_res = NULL; 885 twin_low_res = NULL;
879 } 886 }
(...skipping 871 matching lines...) Expand 10 before | Expand all | Expand 10 after
1751 PictureLayerTilingSet::TilingRange tiling_range = CurrentTilingRange(); 1758 PictureLayerTilingSet::TilingRange tiling_range = CurrentTilingRange();
1752 size_t current_tiling_range_offset = current_tiling_ - tiling_range.start; 1759 size_t current_tiling_range_offset = current_tiling_ - tiling_range.start;
1753 return tiling_range.end - 1 - current_tiling_range_offset; 1760 return tiling_range.end - 1 - current_tiling_range_offset;
1754 } 1761 }
1755 } 1762 }
1756 NOTREACHED(); 1763 NOTREACHED();
1757 return 0; 1764 return 0;
1758 } 1765 }
1759 1766
1760 } // namespace cc 1767 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/resources/picture_layer_tiling.h » ('j') | cc/trees/layer_tree_host_unittest_context.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698