diff options
-rw-r--r-- | cc/debug/rasterize_and_record_benchmark_impl.cc | 9 | ||||
-rw-r--r-- | cc/layers/picture_layer_impl.cc | 11 | ||||
-rw-r--r-- | cc/layers/picture_layer_impl.h | 4 | ||||
-rw-r--r-- | cc/resources/picture_layer_tiling.cc | 19 | ||||
-rw-r--r-- | cc/resources/picture_layer_tiling.h | 13 | ||||
-rw-r--r-- | cc/resources/picture_layer_tiling_perftest.cc | 3 | ||||
-rw-r--r-- | cc/resources/picture_layer_tiling_set.cc | 16 | ||||
-rw-r--r-- | cc/resources/picture_layer_tiling_set.h | 4 | ||||
-rw-r--r-- | cc/resources/picture_layer_tiling_set_unittest.cc | 19 | ||||
-rw-r--r-- | cc/resources/picture_layer_tiling_unittest.cc | 88 | ||||
-rw-r--r-- | cc/resources/tile_manager_unittest.cc | 6 | ||||
-rw-r--r-- | cc/resources/tiling_set_eviction_queue.cc | 2 | ||||
-rw-r--r-- | cc/resources/tiling_set_raster_queue_all.cc | 2 | ||||
-rw-r--r-- | cc/resources/tiling_set_raster_queue_required.cc | 2 | ||||
-rw-r--r-- | cc/test/fake_picture_layer_tiling_client.cc | 17 | ||||
-rw-r--r-- | cc/test/fake_picture_layer_tiling_client.h | 9 |
16 files changed, 88 insertions, 136 deletions
diff --git a/cc/debug/rasterize_and_record_benchmark_impl.cc b/cc/debug/rasterize_and_record_benchmark_impl.cc index 3049103..ef97419 100644 --- a/cc/debug/rasterize_and_record_benchmark_impl.cc +++ b/cc/debug/rasterize_and_record_benchmark_impl.cc @@ -90,17 +90,10 @@ class FixedInvalidationPictureLayerTilingClient return base_client_->GetPendingOrActiveTwinTiling(tiling); } - PictureLayerTiling* GetRecycledTwinTiling( - const PictureLayerTiling* tiling) override { - return base_client_->GetRecycledTwinTiling(tiling); - } - TilePriority::PriorityBin GetMaxTilePriorityBin() const override { return base_client_->GetMaxTilePriorityBin(); } - WhichTree GetTree() const override { return base_client_->GetTree(); } - bool RequiresHighResToDraw() const override { return base_client_->RequiresHighResToDraw(); } @@ -177,7 +170,7 @@ void RasterizeAndRecordBenchmarkImpl::RunOnLayer(PictureLayerImpl* layer) { // really matter. const LayerTreeSettings& settings = layer->layer_tree_impl()->settings(); scoped_ptr<PictureLayerTilingSet> tiling_set = PictureLayerTilingSet::Create( - &client, settings.max_tiles_for_interest_area, + layer->GetTree(), &client, settings.max_tiles_for_interest_area, settings.skewport_target_time_in_seconds, settings.skewport_extrapolation_limit_in_content_pixels); diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc index 34a7599..cf68bee 100644 --- a/cc/layers/picture_layer_impl.cc +++ b/cc/layers/picture_layer_impl.cc @@ -663,14 +663,6 @@ const PictureLayerTiling* PictureLayerImpl::GetPendingOrActiveTwinTiling( return twin_layer->tilings_->FindTilingWithScale(tiling->contents_scale()); } -PictureLayerTiling* PictureLayerImpl::GetRecycledTwinTiling( - const PictureLayerTiling* tiling) { - PictureLayerImpl* recycled_twin = GetRecycledTwinLayer(); - if (!recycled_twin || !recycled_twin->tilings_) - return nullptr; - return recycled_twin->tilings_->FindTilingWithScale(tiling->contents_scale()); -} - TilePriority::PriorityBin PictureLayerImpl::GetMaxTilePriorityBin() const { if (!HasValidTilePriorities()) return TilePriority::EVENTUALLY; @@ -1048,6 +1040,7 @@ void PictureLayerImpl::CleanUpTilingsOnActiveLayer( } PictureLayerTilingSet* twin_set = twin ? twin->tilings_.get() : nullptr; + // TODO(vmpstr): See if this step is required without tile sharing. PictureLayerImpl* recycled_twin = GetRecycledTwinLayer(); PictureLayerTilingSet* recycled_twin_set = recycled_twin ? recycled_twin->tilings_.get() : nullptr; @@ -1156,7 +1149,7 @@ scoped_ptr<PictureLayerTilingSet> PictureLayerImpl::CreatePictureLayerTilingSet() { const LayerTreeSettings& settings = layer_tree_impl()->settings(); return PictureLayerTilingSet::Create( - this, settings.max_tiles_for_interest_area, + GetTree(), this, settings.max_tiles_for_interest_area, layer_tree_impl()->use_gpu_rasterization() ? settings.gpu_rasterization_skewport_target_time_in_seconds : settings.skewport_target_time_in_seconds, diff --git a/cc/layers/picture_layer_impl.h b/cc/layers/picture_layer_impl.h index bd13949..f61d45f 100644 --- a/cc/layers/picture_layer_impl.h +++ b/cc/layers/picture_layer_impl.h @@ -70,10 +70,7 @@ class CC_EXPORT PictureLayerImpl const Region* GetPendingInvalidation() override; const PictureLayerTiling* GetPendingOrActiveTwinTiling( const PictureLayerTiling* tiling) const override; - PictureLayerTiling* GetRecycledTwinTiling( - const PictureLayerTiling* tiling) override; TilePriority::PriorityBin GetMaxTilePriorityBin() const override; - WhichTree GetTree() const override; bool RequiresHighResToDraw() const override; gfx::Rect GetEnclosingRectInTargetSpace() const override; @@ -86,6 +83,7 @@ class CC_EXPORT PictureLayerImpl bool UpdateTiles(bool resourceless_software_draw); void UpdateCanUseLCDTextAfterCommit(); bool RasterSourceUsesLCDText() const; + WhichTree GetTree() const; // Mask-related functions. void GetContentsResourceId(ResourceProvider::ResourceId* resource_id, diff --git a/cc/resources/picture_layer_tiling.cc b/cc/resources/picture_layer_tiling.cc index 30a73b8..01dc2a7 100644 --- a/cc/resources/picture_layer_tiling.cc +++ b/cc/resources/picture_layer_tiling.cc @@ -29,6 +29,7 @@ const float kMaxSoonBorderDistanceInScreenPixels = 312.f; } // namespace scoped_ptr<PictureLayerTiling> PictureLayerTiling::Create( + WhichTree tree, float contents_scale, scoped_refptr<RasterSource> raster_source, PictureLayerTilingClient* client, @@ -36,12 +37,13 @@ scoped_ptr<PictureLayerTiling> PictureLayerTiling::Create( float skewport_target_time_in_seconds, int skewport_extrapolation_limit_in_content_pixels) { return make_scoped_ptr(new PictureLayerTiling( - contents_scale, raster_source, client, max_tiles_for_interest_area, + tree, contents_scale, raster_source, client, max_tiles_for_interest_area, skewport_target_time_in_seconds, skewport_extrapolation_limit_in_content_pixels)); } PictureLayerTiling::PictureLayerTiling( + WhichTree tree, float contents_scale, scoped_refptr<RasterSource> raster_source, PictureLayerTilingClient* client, @@ -54,6 +56,7 @@ PictureLayerTiling::PictureLayerTiling( skewport_extrapolation_limit_in_content_pixels), contents_scale_(contents_scale), client_(client), + tree_(tree), raster_source_(raster_source), resolution_(NON_IDEAL_RESOLUTION), tiling_data_(gfx::Size(), gfx::Size(), kBorderTexels), @@ -246,7 +249,7 @@ void PictureLayerTiling::SetRasterSourceAndResize( } void PictureLayerTiling::Invalidate(const Region& layer_invalidation) { - DCHECK_IMPLIES(client_->GetTree() == ACTIVE_TREE, + DCHECK_IMPLIES(tree_ == ACTIVE_TREE, !client_->GetPendingOrActiveTwinTiling(this)); RemoveTilesInRegion(layer_invalidation, true /* recreate tiles */); } @@ -293,7 +296,7 @@ void PictureLayerTiling::RemoveTilesInRegion(const Region& layer_invalidation, } void PictureLayerTiling::SetRasterSourceOnTiles() { - if (client_->GetTree() == PENDING_TREE) + if (tree_ == PENDING_TREE) return; for (TileMap::value_type& tile_pair : tiles_) @@ -308,7 +311,7 @@ bool PictureLayerTiling::ShouldCreateTileAt(int i, int j) const { // the tile for instance). Pending tree, on the other hand, should only be // creating tiles that are different from the current active tree, which is // represented by the logic in the rest of the function. - if (client_->GetTree() == ACTIVE_TREE) + if (tree_ == ACTIVE_TREE) return true; // If the pending tree has no active twin, then it needs to create all tiles. @@ -702,7 +705,7 @@ bool PictureLayerTiling::IsTileOccluded(const Tile* tile) const { // Otherwise, if this is the pending tree, we're done and the tile is // occluded. - if (client_->GetTree() == PENDING_TREE) + if (tree_ == PENDING_TREE) return true; // On the active tree however, we need to check if this tile will be @@ -741,7 +744,7 @@ bool PictureLayerTiling::IsTileOccludedOnCurrentTree(const Tile* tile) const { } bool PictureLayerTiling::IsTileRequiredForActivation(const Tile* tile) const { - if (client_->GetTree() == PENDING_TREE) { + if (tree_ == PENDING_TREE) { if (!can_require_tiles_for_activation_) return false; @@ -777,7 +780,7 @@ bool PictureLayerTiling::IsTileRequiredForActivation(const Tile* tile) const { return true; } - DCHECK(client_->GetTree() == ACTIVE_TREE); + DCHECK_EQ(tree_, ACTIVE_TREE); const PictureLayerTiling* pending_twin = client_->GetPendingOrActiveTwinTiling(this); // If we don't have a pending tree, or the pending tree will overwrite the @@ -791,7 +794,7 @@ bool PictureLayerTiling::IsTileRequiredForActivation(const Tile* tile) const { } bool PictureLayerTiling::IsTileRequiredForDraw(const Tile* tile) const { - if (client_->GetTree() == PENDING_TREE) + if (tree_ == PENDING_TREE) return false; if (resolution_ != HIGH_RESOLUTION) diff --git a/cc/resources/picture_layer_tiling.h b/cc/resources/picture_layer_tiling.h index ad56a24..397a19d 100644 --- a/cc/resources/picture_layer_tiling.h +++ b/cc/resources/picture_layer_tiling.h @@ -44,10 +44,7 @@ class CC_EXPORT PictureLayerTilingClient { virtual const Region* GetPendingInvalidation() = 0; virtual const PictureLayerTiling* GetPendingOrActiveTwinTiling( const PictureLayerTiling* tiling) const = 0; - virtual PictureLayerTiling* GetRecycledTwinTiling( - const PictureLayerTiling* tiling) = 0; virtual TilePriority::PriorityBin GetMaxTilePriorityBin() const = 0; - virtual WhichTree GetTree() const = 0; virtual bool RequiresHighResToDraw() const = 0; protected: @@ -67,6 +64,7 @@ class CC_EXPORT PictureLayerTiling { // Create a tiling with no tiles. CreateTile() must be called to add some. static scoped_ptr<PictureLayerTiling> Create( + WhichTree tree, float contents_scale, scoped_refptr<RasterSource> raster_source, PictureLayerTilingClient* client, @@ -225,7 +223,8 @@ class CC_EXPORT PictureLayerTiling { double frame_time_in_seconds = 0.0; }; - PictureLayerTiling(float contents_scale, + PictureLayerTiling(WhichTree tree, + float contents_scale, scoped_refptr<RasterSource> raster_source, PictureLayerTilingClient* client, size_t max_tiles_for_interest_area, @@ -289,9 +288,8 @@ class CC_EXPORT PictureLayerTiling { } gfx::Rect pending_visible_rect() const { const PictureLayerTiling* pending_tiling = - client_->GetTree() == ACTIVE_TREE - ? client_->GetPendingOrActiveTwinTiling(this) - : this; + tree_ == ACTIVE_TREE ? client_->GetPendingOrActiveTwinTiling(this) + : this; if (pending_tiling) return pending_tiling->current_visible_rect(); return gfx::Rect(); @@ -317,6 +315,7 @@ class CC_EXPORT PictureLayerTiling { // Given properties. const float contents_scale_; PictureLayerTilingClient* const client_; + const WhichTree tree_; scoped_refptr<RasterSource> raster_source_; TileResolution resolution_; diff --git a/cc/resources/picture_layer_tiling_perftest.cc b/cc/resources/picture_layer_tiling_perftest.cc index 4dcfe44..ef07078 100644 --- a/cc/resources/picture_layer_tiling_perftest.cc +++ b/cc/resources/picture_layer_tiling_perftest.cc @@ -47,12 +47,11 @@ class PictureLayerTilingPerfTest : public testing::Test { void SetUp() override { LayerTreeSettings defaults; picture_layer_tiling_client_.SetTileSize(gfx::Size(256, 256)); - picture_layer_tiling_client_.set_tree(PENDING_TREE); scoped_refptr<FakePicturePileImpl> pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( gfx::Size(256 * 50, 256 * 50)); picture_layer_tiling_ = PictureLayerTiling::Create( - 1, pile, &picture_layer_tiling_client_, + PENDING_TREE, 1.f, pile, &picture_layer_tiling_client_, defaults.max_tiles_for_interest_area, defaults.skewport_target_time_in_seconds, defaults.skewport_extrapolation_limit_in_content_pixels); diff --git a/cc/resources/picture_layer_tiling_set.cc b/cc/resources/picture_layer_tiling_set.cc index 7c482bd..6f540bf 100644 --- a/cc/resources/picture_layer_tiling_set.cc +++ b/cc/resources/picture_layer_tiling_set.cc @@ -29,16 +29,19 @@ inline float LargerRatio(float float1, float float2) { // static scoped_ptr<PictureLayerTilingSet> PictureLayerTilingSet::Create( + WhichTree tree, PictureLayerTilingClient* client, size_t max_tiles_for_interest_area, float skewport_target_time_in_seconds, int skewport_extrapolation_limit_in_content_pixels) { return make_scoped_ptr(new PictureLayerTilingSet( - client, max_tiles_for_interest_area, skewport_target_time_in_seconds, + tree, client, max_tiles_for_interest_area, + skewport_target_time_in_seconds, skewport_extrapolation_limit_in_content_pixels)); } PictureLayerTilingSet::PictureLayerTilingSet( + WhichTree tree, PictureLayerTilingClient* client, size_t max_tiles_for_interest_area, float skewport_target_time_in_seconds, @@ -47,6 +50,7 @@ PictureLayerTilingSet::PictureLayerTilingSet( skewport_target_time_in_seconds_(skewport_target_time_in_seconds), skewport_extrapolation_limit_in_content_pixels_( skewport_extrapolation_limit_in_content_pixels), + tree_(tree), client_(client) { } @@ -71,8 +75,8 @@ void PictureLayerTilingSet::CopyTilingsAndPropertiesFromPendingTwin( PictureLayerTiling* this_tiling = FindTilingWithScale(contents_scale); if (!this_tiling) { scoped_ptr<PictureLayerTiling> new_tiling = PictureLayerTiling::Create( - contents_scale, raster_source, client_, max_tiles_for_interest_area_, - skewport_target_time_in_seconds_, + tree_, contents_scale, raster_source, client_, + max_tiles_for_interest_area_, skewport_target_time_in_seconds_, skewport_extrapolation_limit_in_content_pixels_); tilings_.push_back(new_tiling.Pass()); this_tiling = tilings_.back(); @@ -178,7 +182,7 @@ void PictureLayerTilingSet::VerifyTilings( << " num tilings on pending: " << pending_twin_set->tilings_.size() << " num high res on pending: " << pending_twin_set->NumHighResTilings() - << " are on active tree: " << (client_->GetTree() == ACTIVE_TREE); + << " are on active tree: " << (tree_ == ACTIVE_TREE); } } #endif @@ -259,8 +263,8 @@ PictureLayerTiling* PictureLayerTilingSet::AddTiling( } tilings_.push_back(PictureLayerTiling::Create( - contents_scale, raster_source, client_, max_tiles_for_interest_area_, - skewport_target_time_in_seconds_, + tree_, contents_scale, raster_source, client_, + max_tiles_for_interest_area_, skewport_target_time_in_seconds_, skewport_extrapolation_limit_in_content_pixels_)); PictureLayerTiling* appended = tilings_.back(); diff --git a/cc/resources/picture_layer_tiling_set.h b/cc/resources/picture_layer_tiling_set.h index d04d8d4..e51d7ec 100644 --- a/cc/resources/picture_layer_tiling_set.h +++ b/cc/resources/picture_layer_tiling_set.h @@ -38,6 +38,7 @@ class CC_EXPORT PictureLayerTilingSet { }; static scoped_ptr<PictureLayerTilingSet> Create( + WhichTree tree, PictureLayerTilingClient* client, size_t max_tiles_for_interest_area, float skewport_target_time_in_seconds, @@ -83,6 +84,7 @@ class CC_EXPORT PictureLayerTilingSet { const PictureLayerTiling* tiling_at(size_t idx) const { return tilings_[idx]; } + WhichTree tree() const { return tree_; } PictureLayerTiling* FindTilingWithScale(float scale) const; PictureLayerTiling* FindTilingWithResolution(TileResolution resolution) const; @@ -172,6 +174,7 @@ class CC_EXPORT PictureLayerTilingSet { private: explicit PictureLayerTilingSet( + WhichTree tree, PictureLayerTilingClient* client, size_t max_tiles_for_interest_area, float skewport_target_time_in_seconds, @@ -191,6 +194,7 @@ class CC_EXPORT PictureLayerTilingSet { const size_t max_tiles_for_interest_area_; const float skewport_target_time_in_seconds_; const int skewport_extrapolation_limit_in_content_pixels_; + WhichTree tree_; PictureLayerTilingClient* client_; friend class Iterator; diff --git a/cc/resources/picture_layer_tiling_set_unittest.cc b/cc/resources/picture_layer_tiling_set_unittest.cc index 3150403..7e9a393 100644 --- a/cc/resources/picture_layer_tiling_set_unittest.cc +++ b/cc/resources/picture_layer_tiling_set_unittest.cc @@ -23,7 +23,7 @@ scoped_ptr<PictureLayerTilingSet> CreateTilingSet( PictureLayerTilingClient* client) { LayerTreeSettings defaults; return PictureLayerTilingSet::Create( - client, defaults.max_tiles_for_interest_area, + ACTIVE_TREE, client, defaults.max_tiles_for_interest_area, defaults.skewport_target_time_in_seconds, defaults.skewport_extrapolation_limit_in_content_pixels); } @@ -224,7 +224,6 @@ class PictureLayerTilingSetTestWithResources : public testing::Test { FakePictureLayerTilingClient client(resource_provider.get()); client.SetTileSize(gfx::Size(256, 256)); - client.set_tree(PENDING_TREE); gfx::Size layer_bounds(1000, 800); scoped_ptr<PictureLayerTilingSet> set = CreateTilingSet(&client); scoped_refptr<FakePicturePileImpl> pile = @@ -300,10 +299,10 @@ TEST_F(PictureLayerTilingSetTestWithResources, ManyTilings_NotEqual) { TEST(PictureLayerTilingSetTest, TileSizeChange) { FakePictureLayerTilingClient pending_client; FakePictureLayerTilingClient active_client; - scoped_ptr<PictureLayerTilingSet> pending_set = - PictureLayerTilingSet::Create(&pending_client, 1000, 1.f, 1000); - scoped_ptr<PictureLayerTilingSet> active_set = - PictureLayerTilingSet::Create(&active_client, 1000, 1.f, 1000); + scoped_ptr<PictureLayerTilingSet> pending_set = PictureLayerTilingSet::Create( + PENDING_TREE, &pending_client, 1000, 1.f, 1000); + scoped_ptr<PictureLayerTilingSet> active_set = PictureLayerTilingSet::Create( + ACTIVE_TREE, &active_client, 1000, 1.f, 1000); gfx::Size layer_bounds(100, 100); scoped_refptr<FakePicturePileImpl> pile = @@ -401,10 +400,10 @@ TEST(PictureLayerTilingSetTest, TileSizeChange) { TEST(PictureLayerTilingSetTest, MaxContentScale) { FakePictureLayerTilingClient pending_client; FakePictureLayerTilingClient active_client; - scoped_ptr<PictureLayerTilingSet> pending_set = - PictureLayerTilingSet::Create(&pending_client, 1000, 1.f, 1000); - scoped_ptr<PictureLayerTilingSet> active_set = - PictureLayerTilingSet::Create(&active_client, 1000, 1.f, 1000); + scoped_ptr<PictureLayerTilingSet> pending_set = PictureLayerTilingSet::Create( + PENDING_TREE, &pending_client, 1000, 1.f, 1000); + scoped_ptr<PictureLayerTilingSet> active_set = PictureLayerTilingSet::Create( + ACTIVE_TREE, &active_client, 1000, 1.f, 1000); gfx::Size layer_bounds(100, 105); scoped_refptr<FakePicturePileImpl> pile = diff --git a/cc/resources/picture_layer_tiling_unittest.cc b/cc/resources/picture_layer_tiling_unittest.cc index ab0e68c..944b5e0 100644 --- a/cc/resources/picture_layer_tiling_unittest.cc +++ b/cc/resources/picture_layer_tiling_unittest.cc @@ -41,12 +41,13 @@ class TestablePictureLayerTiling : public PictureLayerTiling { using PictureLayerTiling::TileAt; static scoped_ptr<TestablePictureLayerTiling> Create( + WhichTree tree, float contents_scale, scoped_refptr<RasterSource> raster_source, PictureLayerTilingClient* client, const LayerTreeSettings& settings) { return make_scoped_ptr(new TestablePictureLayerTiling( - contents_scale, raster_source, client, + tree, contents_scale, raster_source, client, settings.max_tiles_for_interest_area, settings.skewport_target_time_in_seconds, settings.skewport_extrapolation_limit_in_content_pixels)); @@ -58,13 +59,15 @@ class TestablePictureLayerTiling : public PictureLayerTiling { using PictureLayerTiling::RemoveTileAt; protected: - TestablePictureLayerTiling(float contents_scale, + TestablePictureLayerTiling(WhichTree tree, + float contents_scale, scoped_refptr<RasterSource> raster_source, PictureLayerTilingClient* client, size_t max_tiles_for_interest_area, float skewport_target_time, int skewport_extrapolation_limit) - : PictureLayerTiling(contents_scale, + : PictureLayerTiling(tree, + contents_scale, raster_source, client, max_tiles_for_interest_area, @@ -81,22 +84,20 @@ class PictureLayerTilingIteratorTest : public testing::Test { float contents_scale, const gfx::Size& layer_bounds) { client_.SetTileSize(tile_size); - client_.set_tree(PENDING_TREE); scoped_refptr<FakePicturePileImpl> pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); - tiling_ = TestablePictureLayerTiling::Create(contents_scale, pile, &client_, - LayerTreeSettings()); + tiling_ = TestablePictureLayerTiling::Create( + PENDING_TREE, contents_scale, pile, &client_, LayerTreeSettings()); } void InitializeActive(const gfx::Size& tile_size, float contents_scale, const gfx::Size& layer_bounds) { client_.SetTileSize(tile_size); - client_.set_tree(ACTIVE_TREE); scoped_refptr<FakePicturePileImpl> pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); - tiling_ = TestablePictureLayerTiling::Create(contents_scale, pile, &client_, - LayerTreeSettings()); + tiling_ = TestablePictureLayerTiling::Create( + ACTIVE_TREE, contents_scale, pile, &client_, LayerTreeSettings()); } void SetLiveRectAndVerifyTiles(const gfx::Rect& live_tiles_rect) { @@ -542,7 +543,6 @@ TEST_F(PictureLayerTilingIteratorTest, NonContainedDestRect) { TEST(PictureLayerTilingTest, SkewportLimits) { FakePictureLayerTilingClient client; - client.set_tree(ACTIVE_TREE); gfx::Rect viewport(0, 0, 100, 100); gfx::Size layer_bounds(200, 200); @@ -555,7 +555,8 @@ TEST(PictureLayerTilingTest, SkewportLimits) { scoped_refptr<FakePicturePileImpl> pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); scoped_ptr<TestablePictureLayerTiling> tiling = - TestablePictureLayerTiling::Create(1.0f, pile, &client, settings); + TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, pile, &client, + settings); tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion()); @@ -636,12 +637,11 @@ TEST(PictureLayerTilingTest, ComputeSkewport) { gfx::Size layer_bounds(200, 200); client.SetTileSize(gfx::Size(100, 100)); - client.set_tree(ACTIVE_TREE); scoped_refptr<FakePicturePileImpl> pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); scoped_ptr<TestablePictureLayerTiling> tiling = - TestablePictureLayerTiling::Create(1.0f, pile, &client, + TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, pile, &client, LayerTreeSettings()); tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion()); @@ -699,12 +699,11 @@ TEST(PictureLayerTilingTest, SkewportThroughUpdateTilePriorities) { gfx::Size layer_bounds(200, 200); client.SetTileSize(gfx::Size(100, 100)); - client.set_tree(ACTIVE_TREE); scoped_refptr<FakePicturePileImpl> pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); scoped_ptr<TestablePictureLayerTiling> tiling = - TestablePictureLayerTiling::Create(1.0f, pile, &client, + TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, pile, &client, LayerTreeSettings()); tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion()); @@ -768,7 +767,6 @@ TEST(PictureLayerTilingTest, ViewportDistanceWithScale) { gfx::Size layer_bounds(1500, 1500); client.SetTileSize(gfx::Size(10, 10)); - client.set_tree(ACTIVE_TREE); LayerTreeSettings settings; settings.max_tiles_for_interest_area = 10000; @@ -780,7 +778,8 @@ TEST(PictureLayerTilingTest, ViewportDistanceWithScale) { scoped_refptr<FakePicturePileImpl> pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); scoped_ptr<TestablePictureLayerTiling> tiling = - TestablePictureLayerTiling::Create(0.25f, pile, &client, settings); + TestablePictureLayerTiling::Create(ACTIVE_TREE, 0.25f, pile, &client, + settings); gfx::Rect viewport_in_content_space = gfx::ToEnclosedRect(gfx::ScaleRect(viewport, 0.25f)); @@ -936,7 +935,7 @@ TEST(PictureLayerTilingTest, ViewportDistanceWithScale) { EXPECT_FLOAT_EQ(8.f, priority.distance_to_visible); // Test additional scales. - tiling = TestablePictureLayerTiling::Create(0.2f, pile, &client, + tiling = TestablePictureLayerTiling::Create(ACTIVE_TREE, 0.2f, pile, &client, LayerTreeSettings()); tiling->ComputeTilePriorityRects(viewport, 1.0f, 4.0, Occlusion()); tiling->UpdateAllTilePrioritiesForTesting(); @@ -1196,7 +1195,6 @@ TEST_F(PictureLayerTilingIteratorTest, TilesExist) { VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds)); VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false)); - client_.set_tree(ACTIVE_TREE); tiling_->ComputeTilePriorityRects( gfx::Rect(layer_bounds), // visible content rect 1.f, // current contents scale @@ -1220,7 +1218,6 @@ TEST_F(PictureLayerTilingIteratorTest, TilesExistGiantViewport) { gfx::Rect giant_rect(-10000000, -10000000, 1000000000, 1000000000); - client_.set_tree(ACTIVE_TREE); tiling_->ComputeTilePriorityRects( gfx::Rect(layer_bounds), // visible content rect 1.f, // current contents scale @@ -1247,7 +1244,6 @@ TEST_F(PictureLayerTilingIteratorTest, TilesExistOutsideViewport) { gfx::Rect viewport_rect(1100, 0, 1000, 1000); EXPECT_FALSE(viewport_rect.Intersects(gfx::Rect(layer_bounds))); - client_.set_tree(ACTIVE_TREE); tiling_->ComputeTilePriorityRects(viewport_rect, // visible content rect 1.f, // current contents scale 1.0, // current frame time @@ -1270,19 +1266,18 @@ TEST_F(PictureLayerTilingIteratorTest, TilesExistLargeViewportAndLayerWithSmallVisibleArea) { gfx::Size layer_bounds(10000, 10000); client_.SetTileSize(gfx::Size(100, 100)); - client_.set_tree(PENDING_TREE); LayerTreeSettings settings; settings.max_tiles_for_interest_area = 1; scoped_refptr<FakePicturePileImpl> pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); - tiling_ = TestablePictureLayerTiling::Create(1.f, pile, &client_, settings); + tiling_ = TestablePictureLayerTiling::Create(PENDING_TREE, 1.f, pile, + &client_, settings); VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds)); VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false)); gfx::Rect visible_rect(8000, 8000, 50, 50); - client_.set_tree(ACTIVE_TREE); tiling_->ComputeTilePriorityRects(visible_rect, // visible content rect 1.f, // current contents scale 1.0, // current frame time @@ -1308,13 +1303,12 @@ TEST(ComputeTilePriorityRectsTest, VisibleTiles) { current_screen_transform, device_viewport); client.SetTileSize(gfx::Size(100, 100)); - client.set_tree(ACTIVE_TREE); scoped_refptr<FakePicturePileImpl> pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( current_layer_bounds); scoped_ptr<TestablePictureLayerTiling> tiling = - TestablePictureLayerTiling::Create(1.0f, pile, &client, + TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, pile, &client, LayerTreeSettings()); tiling->ComputeTilePriorityRects(viewport_in_layer_space, @@ -1364,13 +1358,12 @@ TEST(ComputeTilePriorityRectsTest, OffscreenTiles) { current_screen_transform, device_viewport); client.SetTileSize(gfx::Size(100, 100)); - client.set_tree(ACTIVE_TREE); scoped_refptr<FakePicturePileImpl> pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( current_layer_bounds); scoped_ptr<TestablePictureLayerTiling> tiling = - TestablePictureLayerTiling::Create(1.0f, pile, &client, + TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, pile, &client, LayerTreeSettings()); tiling->ComputeTilePriorityRects(viewport_in_layer_space, @@ -1430,13 +1423,12 @@ TEST(ComputeTilePriorityRectsTest, PartiallyOffscreenLayer) { current_screen_transform, device_viewport); client.SetTileSize(gfx::Size(100, 100)); - client.set_tree(ACTIVE_TREE); scoped_refptr<FakePicturePileImpl> pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( current_layer_bounds); scoped_ptr<TestablePictureLayerTiling> tiling = - TestablePictureLayerTiling::Create(1.0f, pile, &client, + TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, pile, &client, LayerTreeSettings()); tiling->ComputeTilePriorityRects(viewport_in_layer_space, @@ -1490,13 +1482,12 @@ TEST(ComputeTilePriorityRectsTest, PartiallyOffscreenRotatedLayer) { current_screen_transform, device_viewport); client.SetTileSize(gfx::Size(100, 100)); - client.set_tree(ACTIVE_TREE); scoped_refptr<FakePicturePileImpl> pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( current_layer_bounds); scoped_ptr<TestablePictureLayerTiling> tiling = - TestablePictureLayerTiling::Create(1.0f, pile, &client, + TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, pile, &client, LayerTreeSettings()); tiling->ComputeTilePriorityRects(viewport_in_layer_space, @@ -1574,13 +1565,12 @@ TEST(ComputeTilePriorityRectsTest, PerspectiveLayer) { current_screen_transform, device_viewport); client.SetTileSize(gfx::Size(100, 100)); - client.set_tree(ACTIVE_TREE); scoped_refptr<FakePicturePileImpl> pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( current_layer_bounds); scoped_ptr<TestablePictureLayerTiling> tiling = - TestablePictureLayerTiling::Create(1.0f, pile, &client, + TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, pile, &client, LayerTreeSettings()); tiling->ComputeTilePriorityRects(viewport_in_layer_space, @@ -1668,13 +1658,12 @@ TEST(ComputeTilePriorityRectsTest, PerspectiveLayerClippedByW) { current_screen_transform, device_viewport); client.SetTileSize(gfx::Size(100, 100)); - client.set_tree(ACTIVE_TREE); scoped_refptr<FakePicturePileImpl> pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( current_layer_bounds); scoped_ptr<TestablePictureLayerTiling> tiling = - TestablePictureLayerTiling::Create(1.0f, pile, &client, + TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, pile, &client, LayerTreeSettings()); tiling->ComputeTilePriorityRects(viewport_in_layer_space, @@ -1732,7 +1721,6 @@ TEST(ComputeTilePriorityRectsTest, BasicMotion) { current_screen_transform, device_viewport); client.SetTileSize(gfx::Size(100, 100)); - client.set_tree(ACTIVE_TREE); LayerTreeSettings settings; settings.max_tiles_for_interest_area = 10000; @@ -1740,7 +1728,8 @@ TEST(ComputeTilePriorityRectsTest, BasicMotion) { FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( current_layer_bounds); scoped_ptr<TestablePictureLayerTiling> tiling = - TestablePictureLayerTiling::Create(1.0f, pile, &client, settings); + TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, pile, &client, + settings); // previous ("last") frame tiling->ComputeTilePriorityRects(viewport_in_layer_space, @@ -1812,12 +1801,11 @@ TEST(ComputeTilePriorityRectsTest, RotationMotion) { current_screen_transform, device_viewport); client.SetTileSize(gfx::Size(100, 100)); - client.set_tree(ACTIVE_TREE); scoped_refptr<FakePicturePileImpl> pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( current_layer_bounds); - tiling = TestablePictureLayerTiling::Create(1.0f, pile, &client, + tiling = TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, pile, &client, LayerTreeSettings()); // previous ("last") frame @@ -1863,7 +1851,6 @@ TEST(PictureLayerTilingTest, RecycledTilesCleared) { FakePictureLayerTilingClient active_client; active_client.SetTileSize(gfx::Size(100, 100)); - active_client.set_tree(ACTIVE_TREE); LayerTreeSettings settings; settings.max_tiles_for_interest_area = 10; @@ -1871,20 +1858,21 @@ TEST(PictureLayerTilingTest, RecycledTilesCleared) { FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( gfx::Size(10000, 10000)); scoped_ptr<TestablePictureLayerTiling> active_tiling = - TestablePictureLayerTiling::Create(1.0f, pile, &active_client, settings); + TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, pile, + &active_client, settings); // Create all tiles on this tiling. active_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1.0f, Occlusion()); FakePictureLayerTilingClient recycle_client; recycle_client.SetTileSize(gfx::Size(100, 100)); - recycle_client.set_tree(PENDING_TREE); recycle_client.set_twin_tiling(active_tiling.get()); pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( gfx::Size(10000, 10000)); scoped_ptr<TestablePictureLayerTiling> recycle_tiling = - TestablePictureLayerTiling::Create(1.0f, pile, &recycle_client, settings); + TestablePictureLayerTiling::Create(PENDING_TREE, 1.0f, pile, + &recycle_client, settings); // Create all tiles on the second tiling. All tiles should be shared. recycle_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, @@ -1892,7 +1880,6 @@ TEST(PictureLayerTilingTest, RecycledTilesCleared) { // Set the second tiling as recycled. active_client.set_twin_tiling(NULL); - active_client.set_recycled_twin_tiling(recycle_tiling.get()); recycle_client.set_twin_tiling(NULL); EXPECT_TRUE(active_tiling->TileAt(0, 0)); @@ -1917,21 +1904,19 @@ TEST(PictureLayerTilingTest, RecycledTilesCleared) { TEST(PictureLayerTilingTest, RecycledTilesClearedOnReset) { FakePictureLayerTilingClient active_client; active_client.SetTileSize(gfx::Size(100, 100)); - active_client.set_tree(ACTIVE_TREE); scoped_refptr<FakePicturePileImpl> pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( gfx::Size(100, 100)); scoped_ptr<TestablePictureLayerTiling> active_tiling = - TestablePictureLayerTiling::Create(1.0f, pile, &active_client, - LayerTreeSettings()); + TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, pile, + &active_client, LayerTreeSettings()); // Create all tiles on this tiling. active_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1.0f, Occlusion()); FakePictureLayerTilingClient recycle_client; recycle_client.SetTileSize(gfx::Size(100, 100)); - recycle_client.set_tree(PENDING_TREE); recycle_client.set_twin_tiling(active_tiling.get()); LayerTreeSettings settings; @@ -1940,7 +1925,8 @@ TEST(PictureLayerTilingTest, RecycledTilesClearedOnReset) { pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( gfx::Size(100, 100)); scoped_ptr<TestablePictureLayerTiling> recycle_tiling = - TestablePictureLayerTiling::Create(1.0f, pile, &recycle_client, settings); + TestablePictureLayerTiling::Create(PENDING_TREE, 1.0f, pile, + &recycle_client, settings); // Create all tiles on the recycle tiling. All tiles should be shared. recycle_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, @@ -1948,7 +1934,6 @@ TEST(PictureLayerTilingTest, RecycledTilesClearedOnReset) { // Set the second tiling as recycled. active_client.set_twin_tiling(NULL); - active_client.set_recycled_twin_tiling(recycle_tiling.get()); recycle_client.set_twin_tiling(NULL); EXPECT_TRUE(active_tiling->TileAt(0, 0)); @@ -1969,7 +1954,6 @@ TEST_F(PictureLayerTilingIteratorTest, ResizeTilesAndUpdateToCurrent) { EXPECT_EQ(4u, tiling_->AllRefTilesForTesting().size()); client_.SetTileSize(gfx::Size(250, 200)); - client_.set_tree(PENDING_TREE); // Tile size in the tiling should still be 150x100. EXPECT_EQ(150, tiling_->TilingDataForTesting().max_texture_size().width()); diff --git a/cc/resources/tile_manager_unittest.cc b/cc/resources/tile_manager_unittest.cc index 2ac504a..acd3a74 100644 --- a/cc/resources/tile_manager_unittest.cc +++ b/cc/resources/tile_manager_unittest.cc @@ -1175,12 +1175,11 @@ TEST_F(TileManagerTilePriorityQueueTest, soon_rect.Inset(-inset, -inset); client.SetTileSize(gfx::Size(30, 30)); - client.set_tree(ACTIVE_TREE); LayerTreeSettings settings; settings.max_tiles_for_interest_area = 10000; scoped_ptr<PictureLayerTilingSet> tiling_set = PictureLayerTilingSet::Create( - &client, settings.max_tiles_for_interest_area, + ACTIVE_TREE, &client, settings.max_tiles_for_interest_area, settings.skewport_target_time_in_seconds, settings.skewport_extrapolation_limit_in_content_pixels); @@ -1286,12 +1285,11 @@ TEST_F(TileManagerTilePriorityQueueTest, gfx::Size layer_bounds(1000, 1000); client.SetTileSize(gfx::Size(30, 30)); - client.set_tree(ACTIVE_TREE); LayerTreeSettings settings; settings.max_tiles_for_interest_area = 10000; scoped_ptr<PictureLayerTilingSet> tiling_set = PictureLayerTilingSet::Create( - &client, settings.max_tiles_for_interest_area, + ACTIVE_TREE, &client, settings.max_tiles_for_interest_area, settings.skewport_target_time_in_seconds, settings.skewport_extrapolation_limit_in_content_pixels); diff --git a/cc/resources/tiling_set_eviction_queue.cc b/cc/resources/tiling_set_eviction_queue.cc index bbe689d..2de3950 100644 --- a/cc/resources/tiling_set_eviction_queue.cc +++ b/cc/resources/tiling_set_eviction_queue.cc @@ -11,7 +11,7 @@ namespace cc { TilingSetEvictionQueue::TilingSetEvictionQueue( PictureLayerTilingSet* tiling_set, bool skip_shared_out_of_order_tiles) - : tree_(tiling_set->client()->GetTree()), + : tree_(tiling_set->tree()), skip_shared_out_of_order_tiles_(skip_shared_out_of_order_tiles), phase_(EVENTUALLY_RECT), current_tile_(nullptr) { diff --git a/cc/resources/tiling_set_raster_queue_all.cc b/cc/resources/tiling_set_raster_queue_all.cc index 7f05558..5a16adc 100644 --- a/cc/resources/tiling_set_raster_queue_all.cc +++ b/cc/resources/tiling_set_raster_queue_all.cc @@ -29,7 +29,7 @@ TilingSetRasterQueueAll::TilingSetRasterQueueAll( return; const PictureLayerTilingClient* client = tiling_set->client(); - WhichTree tree = client->GetTree(); + WhichTree tree = tiling_set->tree(); // Find high and low res tilings and initialize the iterators. PictureLayerTiling* high_res_tiling = nullptr; PictureLayerTiling* low_res_tiling = nullptr; diff --git a/cc/resources/tiling_set_raster_queue_required.cc b/cc/resources/tiling_set_raster_queue_required.cc index b44ee08..8c551ec8 100644 --- a/cc/resources/tiling_set_raster_queue_required.cc +++ b/cc/resources/tiling_set_raster_queue_required.cc @@ -24,7 +24,7 @@ TilingSetRasterQueueRequired::TilingSetRasterQueueRequired( // from tilings whose pending twin is high resolution. PictureLayerTiling* tiling = nullptr; if (type == RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION && - tiling_set->client()->GetTree() == ACTIVE_TREE) { + tiling_set->tree() == ACTIVE_TREE) { for (size_t i = 0; i < tiling_set->num_tilings(); ++i) { PictureLayerTiling* active_tiling = tiling_set->tiling_at(i); const PictureLayerTiling* pending_twin = diff --git a/cc/test/fake_picture_layer_tiling_client.cc b/cc/test/fake_picture_layer_tiling_client.cc index 41f27c5..0717a98 100644 --- a/cc/test/fake_picture_layer_tiling_client.cc +++ b/cc/test/fake_picture_layer_tiling_client.cc @@ -16,9 +16,7 @@ FakePictureLayerTilingClient::FakePictureLayerTilingClient() pile_(FakePicturePileImpl::CreateInfiniteFilledPile()), twin_set_(nullptr), twin_tiling_(nullptr), - recycled_twin_tiling_(nullptr), - max_tile_priority_bin_(TilePriority::NOW), - tree_(ACTIVE_TREE) { + max_tile_priority_bin_(TilePriority::NOW) { } FakePictureLayerTilingClient::FakePictureLayerTilingClient( @@ -29,9 +27,7 @@ FakePictureLayerTilingClient::FakePictureLayerTilingClient( pile_(FakePicturePileImpl::CreateInfiniteFilledPile()), twin_set_(nullptr), twin_tiling_(nullptr), - recycled_twin_tiling_(nullptr), - max_tile_priority_bin_(TilePriority::NOW), - tree_(ACTIVE_TREE) { + max_tile_priority_bin_(TilePriority::NOW) { } FakePictureLayerTilingClient::~FakePictureLayerTilingClient() { @@ -73,15 +69,6 @@ FakePictureLayerTilingClient::GetPendingOrActiveTwinTiling( return nullptr; } -PictureLayerTiling* FakePictureLayerTilingClient::GetRecycledTwinTiling( - const PictureLayerTiling* tiling) { - return recycled_twin_tiling_; -} - -WhichTree FakePictureLayerTilingClient::GetTree() const { - return tree_; -} - bool FakePictureLayerTilingClient::RequiresHighResToDraw() const { return false; } diff --git a/cc/test/fake_picture_layer_tiling_client.h b/cc/test/fake_picture_layer_tiling_client.h index e217a78..76636ba 100644 --- a/cc/test/fake_picture_layer_tiling_client.h +++ b/cc/test/fake_picture_layer_tiling_client.h @@ -32,10 +32,7 @@ class FakePictureLayerTilingClient : public PictureLayerTilingClient { const Region* GetPendingInvalidation() override; const PictureLayerTiling* GetPendingOrActiveTwinTiling( const PictureLayerTiling* tiling) const override; - PictureLayerTiling* GetRecycledTwinTiling( - const PictureLayerTiling* tiling) override; bool RequiresHighResToDraw() const override; - WhichTree GetTree() const override; void set_twin_tiling_set(PictureLayerTilingSet* set) { twin_set_ = set; @@ -45,15 +42,11 @@ class FakePictureLayerTilingClient : public PictureLayerTilingClient { twin_tiling_ = tiling; twin_set_ = nullptr; } - void set_recycled_twin_tiling(PictureLayerTiling* tiling) { - recycled_twin_tiling_ = tiling; - } void set_text_rect(const gfx::Rect& rect) { text_rect_ = rect; } void set_invalidation(const Region& region) { invalidation_ = region; } void set_max_tile_priority_bin(TilePriority::PriorityBin bin) { max_tile_priority_bin_ = bin; } - void set_tree(WhichTree tree) { tree_ = tree; } RasterSource* raster_source() { return pile_.get(); } TileManager* tile_manager() const { @@ -68,11 +61,9 @@ class FakePictureLayerTilingClient : public PictureLayerTilingClient { gfx::Size tile_size_; PictureLayerTilingSet* twin_set_; PictureLayerTiling* twin_tiling_; - PictureLayerTiling* recycled_twin_tiling_; gfx::Rect text_rect_; Region invalidation_; TilePriority::PriorityBin max_tile_priority_bin_; - WhichTree tree_; }; } // namespace cc |