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

Side by Side Diff: cc/trees/layer_tree_host_unittest.cc

Issue 839143002: Roll Chrome into Mojo. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Rebase Created 5 years, 11 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
« no previous file with comments | « cc/trees/layer_tree_host_perftest.cc ('k') | cc/trees/layer_tree_host_unittest_delegated.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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/trees/layer_tree_host.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/synchronization/lock.h" 10 #include "base/synchronization/lock.h"
(...skipping 5719 matching lines...) Expand 10 before | Expand all | Expand 10 after
5730 5730
5731 if (delegating_renderer()) 5731 if (delegating_renderer())
5732 return FakeOutputSurface::CreateDelegating3d(context3d.Pass()); 5732 return FakeOutputSurface::CreateDelegating3d(context3d.Pass());
5733 else 5733 else
5734 return FakeOutputSurface::Create3d(context3d.Pass()); 5734 return FakeOutputSurface::Create3d(context3d.Pass());
5735 } 5735 }
5736 }; 5736 };
5737 5737
5738 MULTI_THREAD_IMPL_TEST_F(LayerTreeHostTestCrispUpAfterPinchEndsWithOneCopy); 5738 MULTI_THREAD_IMPL_TEST_F(LayerTreeHostTestCrispUpAfterPinchEndsWithOneCopy);
5739 5739
5740 class RasterizeWithGpuRasterizationCreatesResources : public LayerTreeHostTest {
5741 protected:
5742 RasterizeWithGpuRasterizationCreatesResources() {}
5743
5744 void InitializeSettings(LayerTreeSettings* settings) override {
5745 settings->impl_side_painting = true;
5746 settings->gpu_rasterization_forced = true;
5747 }
5748
5749 void SetupTree() override {
5750 client_.set_fill_with_nonsolid_color(true);
5751
5752 scoped_refptr<Layer> root = Layer::Create();
5753 root->SetBounds(gfx::Size(500, 500));
5754
5755 scoped_ptr<FakePicturePile> pile(new FakePicturePile);
5756 scoped_refptr<FakePictureLayer> layer =
5757 FakePictureLayer::CreateWithRecordingSource(&client_, pile.Pass());
5758 layer->SetBounds(gfx::Size(500, 500));
5759 layer->SetContentsOpaque(true);
5760 root->AddChild(layer);
5761
5762 layer_tree_host()->SetRootLayer(root);
5763 LayerTreeHostTest::SetupTree();
5764 }
5765
5766 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
5767
5768 DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl,
5769 LayerTreeHostImpl::FrameData* frame_data,
5770 DrawResult draw_result) override {
5771 EXPECT_NE(0u, host_impl->resource_provider()->num_resources());
5772 EndTest();
5773 return draw_result;
5774 }
5775 void AfterTest() override {}
5776
5777 FakeContentLayerClient client_;
5778 };
5779
5780 MULTI_THREAD_IMPL_TEST_F(RasterizeWithGpuRasterizationCreatesResources);
5781
5740 class LayerTreeHostTestContinuousDrawWhenCreatingVisibleTiles 5782 class LayerTreeHostTestContinuousDrawWhenCreatingVisibleTiles
5741 : public LayerTreeHostTest { 5783 : public LayerTreeHostTest {
5742 protected: 5784 protected:
5743 LayerTreeHostTestContinuousDrawWhenCreatingVisibleTiles() 5785 LayerTreeHostTestContinuousDrawWhenCreatingVisibleTiles()
5744 : playback_allowed_event_(true, true) {} 5786 : playback_allowed_event_(true, true) {}
5745 5787
5746 void InitializeSettings(LayerTreeSettings* settings) override { 5788 void InitializeSettings(LayerTreeSettings* settings) override {
5747 settings->impl_side_painting = true; 5789 settings->impl_side_painting = true;
5748 } 5790 }
5749 5791
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
5963 } 6005 }
5964 6006
5965 protected: 6007 protected:
5966 FakeContentLayerClient client_; 6008 FakeContentLayerClient client_;
5967 size_t notify_ready_to_activate_count_; 6009 size_t notify_ready_to_activate_count_;
5968 size_t scheduled_prepare_tiles_count_; 6010 size_t scheduled_prepare_tiles_count_;
5969 }; 6011 };
5970 6012
5971 MULTI_THREAD_IMPL_TEST_F(LayerTreeHostTestOneActivatePerPrepareTiles); 6013 MULTI_THREAD_IMPL_TEST_F(LayerTreeHostTestOneActivatePerPrepareTiles);
5972 6014
6015 class LayerTreeHostTestActivationCausesPrepareTiles : public LayerTreeHostTest {
6016 public:
6017 LayerTreeHostTestActivationCausesPrepareTiles()
6018 : scheduled_prepare_tiles_count_(0) {}
6019
6020 void SetupTree() override {
6021 client_.set_fill_with_nonsolid_color(true);
6022 scoped_refptr<FakePictureLayer> root_layer =
6023 FakePictureLayer::Create(&client_);
6024 root_layer->SetBounds(gfx::Size(150, 150));
6025 root_layer->SetIsDrawable(true);
6026
6027 layer_tree_host()->SetRootLayer(root_layer);
6028 LayerTreeHostTest::SetupTree();
6029 }
6030
6031 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
6032
6033 void NotifyReadyToActivateOnThread(LayerTreeHostImpl* impl) override {
6034 // Ensure we've already activated.
6035 EXPECT_FALSE(impl->pending_tree());
6036
6037 // After activating, we either need to prepare tiles, or we've already
6038 // called a scheduled prepare tiles. This is done because activation might
6039 // cause us to have to memory available (old active tree is gone), so we
6040 // need to ensure we will get a PrepareTiles call.
6041 if (!impl->prepare_tiles_needed())
6042 EXPECT_GE(scheduled_prepare_tiles_count_, 1);
6043 EndTest();
6044 }
6045
6046 void ScheduledActionPrepareTiles() override {
6047 ++scheduled_prepare_tiles_count_;
6048 }
6049
6050 void AfterTest() override {}
6051
6052 protected:
6053 FakeContentLayerClient client_;
6054 int scheduled_prepare_tiles_count_;
6055 };
6056
6057 MULTI_THREAD_IMPL_TEST_F(LayerTreeHostTestActivationCausesPrepareTiles);
6058
5973 // This tests an assertion that DidCommit and WillCommit happen in the same 6059 // This tests an assertion that DidCommit and WillCommit happen in the same
5974 // stack frame with no tasks that run between them. Various embedders of 6060 // stack frame with no tasks that run between them. Various embedders of
5975 // cc depend on this logic. ui::Compositor holds a compositor lock between 6061 // cc depend on this logic. ui::Compositor holds a compositor lock between
5976 // these events and the inspector timeline wants begin/end CompositeLayers 6062 // these events and the inspector timeline wants begin/end CompositeLayers
5977 // to be properly nested with other begin/end events. 6063 // to be properly nested with other begin/end events.
5978 class LayerTreeHostTestNoTasksBetweenWillAndDidCommit 6064 class LayerTreeHostTestNoTasksBetweenWillAndDidCommit
5979 : public LayerTreeHostTest { 6065 : public LayerTreeHostTest {
5980 public: 6066 public:
5981 LayerTreeHostTestNoTasksBetweenWillAndDidCommit() : did_commit_(false) {} 6067 LayerTreeHostTestNoTasksBetweenWillAndDidCommit() : did_commit_(false) {}
5982 6068
(...skipping 18 matching lines...) Expand all
6001 6087
6002 void AfterTest() override { EXPECT_TRUE(did_commit_); } 6088 void AfterTest() override { EXPECT_TRUE(did_commit_); }
6003 6089
6004 private: 6090 private:
6005 bool did_commit_; 6091 bool did_commit_;
6006 }; 6092 };
6007 6093
6008 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestNoTasksBetweenWillAndDidCommit); 6094 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestNoTasksBetweenWillAndDidCommit);
6009 6095
6010 } // namespace cc 6096 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_perftest.cc ('k') | cc/trees/layer_tree_host_unittest_delegated.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698