OLD | NEW |
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/trees/layer_tree_host.h" | 5 #include "cc/trees/layer_tree_host.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <sstream> | 9 #include <sstream> |
10 | 10 |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 | 128 |
129 void ReadTestFile(const std::string& name) { | 129 void ReadTestFile(const std::string& name) { |
130 base::FilePath test_data_dir; | 130 base::FilePath test_data_dir; |
131 ASSERT_TRUE(PathService::Get(CCPaths::DIR_TEST_DATA, &test_data_dir)); | 131 ASSERT_TRUE(PathService::Get(CCPaths::DIR_TEST_DATA, &test_data_dir)); |
132 base::FilePath json_file = test_data_dir.AppendASCII(name + ".json"); | 132 base::FilePath json_file = test_data_dir.AppendASCII(name + ".json"); |
133 ASSERT_TRUE(base::ReadFileToString(json_file, &json_)); | 133 ASSERT_TRUE(base::ReadFileToString(json_file, &json_)); |
134 } | 134 } |
135 | 135 |
136 void BuildTree() override { | 136 void BuildTree() override { |
137 gfx::Size viewport = gfx::Size(720, 1038); | 137 gfx::Size viewport = gfx::Size(720, 1038); |
138 layer_tree_host()->SetViewportSize(viewport); | 138 layer_tree()->SetViewportSize(viewport); |
139 scoped_refptr<Layer> root = ParseTreeFromJson(json_, | 139 scoped_refptr<Layer> root = ParseTreeFromJson(json_, |
140 &fake_content_layer_client_); | 140 &fake_content_layer_client_); |
141 ASSERT_TRUE(root.get()); | 141 ASSERT_TRUE(root.get()); |
142 layer_tree_host()->SetRootLayer(root); | 142 layer_tree()->SetRootLayer(root); |
143 fake_content_layer_client_.set_bounds(viewport); | 143 fake_content_layer_client_.set_bounds(viewport); |
144 } | 144 } |
145 | 145 |
146 private: | 146 private: |
147 std::string json_; | 147 std::string json_; |
148 }; | 148 }; |
149 | 149 |
150 // Simulates a tab switcher scene with two stacks of 10 tabs each. | 150 // Simulates a tab switcher scene with two stacks of 10 tabs each. |
151 TEST_F(LayerTreeHostPerfTestJsonReader, TenTenSingleThread) { | 151 TEST_F(LayerTreeHostPerfTestJsonReader, TenTenSingleThread) { |
152 SetTestName("10_10_single_thread"); | 152 SetTestName("10_10_single_thread"); |
(...skipping 24 matching lines...) Expand all Loading... |
177 } | 177 } |
178 | 178 |
179 // Invalidates a leaf layer in the tree on the main thread after every commit. | 179 // Invalidates a leaf layer in the tree on the main thread after every commit. |
180 class LayerTreeHostPerfTestLeafInvalidates | 180 class LayerTreeHostPerfTestLeafInvalidates |
181 : public LayerTreeHostPerfTestJsonReader { | 181 : public LayerTreeHostPerfTestJsonReader { |
182 public: | 182 public: |
183 void BuildTree() override { | 183 void BuildTree() override { |
184 LayerTreeHostPerfTestJsonReader::BuildTree(); | 184 LayerTreeHostPerfTestJsonReader::BuildTree(); |
185 | 185 |
186 // Find a leaf layer. | 186 // Find a leaf layer. |
187 for (layer_to_invalidate_ = layer_tree_host()->root_layer(); | 187 for (layer_to_invalidate_ = layer_tree()->root_layer(); |
188 layer_to_invalidate_->children().size(); | 188 layer_to_invalidate_->children().size(); |
189 layer_to_invalidate_ = layer_to_invalidate_->children()[0].get()) { | 189 layer_to_invalidate_ = layer_to_invalidate_->children()[0].get()) { |
190 } | 190 } |
191 } | 191 } |
192 | 192 |
193 void DidCommitAndDrawFrame() override { | 193 void DidCommitAndDrawFrame() override { |
194 if (TestEnded()) | 194 if (TestEnded()) |
195 return; | 195 return; |
196 | 196 |
197 layer_to_invalidate_->SetOpacity( | 197 layer_to_invalidate_->SetOpacity( |
(...skipping 20 matching lines...) Expand all Loading... |
218 | 218 |
219 // Simulates main-thread scrolling on each frame. | 219 // Simulates main-thread scrolling on each frame. |
220 class ScrollingLayerTreePerfTest : public LayerTreeHostPerfTestJsonReader { | 220 class ScrollingLayerTreePerfTest : public LayerTreeHostPerfTestJsonReader { |
221 public: | 221 public: |
222 ScrollingLayerTreePerfTest() | 222 ScrollingLayerTreePerfTest() |
223 : LayerTreeHostPerfTestJsonReader() { | 223 : LayerTreeHostPerfTestJsonReader() { |
224 } | 224 } |
225 | 225 |
226 void BuildTree() override { | 226 void BuildTree() override { |
227 LayerTreeHostPerfTestJsonReader::BuildTree(); | 227 LayerTreeHostPerfTestJsonReader::BuildTree(); |
228 scrollable_ = layer_tree_host()->root_layer()->children()[1]; | 228 scrollable_ = layer_tree()->root_layer()->children()[1]; |
229 ASSERT_TRUE(scrollable_.get()); | 229 ASSERT_TRUE(scrollable_.get()); |
230 } | 230 } |
231 | 231 |
232 void UpdateLayerTreeHost() override { | 232 void UpdateLayerTreeHost() override { |
233 if (TestEnded()) | 233 if (TestEnded()) |
234 return; | 234 return; |
235 static const gfx::Vector2d delta = gfx::Vector2d(0, 10); | 235 static const gfx::Vector2d delta = gfx::Vector2d(0, 10); |
236 scrollable_->SetScrollOffset( | 236 scrollable_->SetScrollOffset( |
237 gfx::ScrollOffsetWithDelta(scrollable_->scroll_offset(), delta)); | 237 gfx::ScrollOffsetWithDelta(scrollable_->scroll_offset(), delta)); |
238 } | 238 } |
(...skipping 15 matching lines...) Expand all Loading... |
254 } | 254 } |
255 | 255 |
256 // Simulates main-thread scrolling on each frame. | 256 // Simulates main-thread scrolling on each frame. |
257 class BrowserCompositorInvalidateLayerTreePerfTest | 257 class BrowserCompositorInvalidateLayerTreePerfTest |
258 : public LayerTreeHostPerfTestJsonReader { | 258 : public LayerTreeHostPerfTestJsonReader { |
259 public: | 259 public: |
260 BrowserCompositorInvalidateLayerTreePerfTest() = default; | 260 BrowserCompositorInvalidateLayerTreePerfTest() = default; |
261 | 261 |
262 void BuildTree() override { | 262 void BuildTree() override { |
263 LayerTreeHostPerfTestJsonReader::BuildTree(); | 263 LayerTreeHostPerfTestJsonReader::BuildTree(); |
264 tab_contents_ = | 264 tab_contents_ = static_cast<TextureLayer*>(layer_tree() |
265 static_cast<TextureLayer*>( | 265 ->root_layer() |
266 layer_tree_host()->root_layer()->children()[0]-> | 266 ->children()[0] |
267 children()[0]-> | 267 ->children()[0] |
268 children()[0]-> | 268 ->children()[0] |
269 children()[0].get()); | 269 ->children()[0] |
| 270 .get()); |
270 ASSERT_TRUE(tab_contents_.get()); | 271 ASSERT_TRUE(tab_contents_.get()); |
271 } | 272 } |
272 | 273 |
273 void WillCommit() override { | 274 void WillCommit() override { |
274 if (CleanUpStarted()) | 275 if (CleanUpStarted()) |
275 return; | 276 return; |
276 gpu::Mailbox gpu_mailbox; | 277 gpu::Mailbox gpu_mailbox; |
277 std::ostringstream name_stream; | 278 std::ostringstream name_stream; |
278 name_stream << "name" << next_fence_sync_; | 279 name_stream << "name" << next_fence_sync_; |
279 gpu_mailbox.SetName( | 280 gpu_mailbox.SetName( |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
344 TEST_F(LayerTreeHostPerfTestJsonReader, HeavyPageThreaded) { | 345 TEST_F(LayerTreeHostPerfTestJsonReader, HeavyPageThreaded) { |
345 begin_frame_driven_drawing_ = true; | 346 begin_frame_driven_drawing_ = true; |
346 measure_commit_cost_ = true; | 347 measure_commit_cost_ = true; |
347 SetTestName("heavy_page"); | 348 SetTestName("heavy_page"); |
348 ReadTestFile("heavy_layer_tree"); | 349 ReadTestFile("heavy_layer_tree"); |
349 RunTest(CompositorMode::THREADED); | 350 RunTest(CompositorMode::THREADED); |
350 } | 351 } |
351 | 352 |
352 } // namespace | 353 } // namespace |
353 } // namespace cc | 354 } // namespace cc |
OLD | NEW |