| 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 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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"); |
| 153 ReadTestFile("10_10_layer_tree"); | 153 ReadTestFile("10_10_layer_tree"); |
| 154 RunTest(CompositorMode::SINGLE_THREADED, false); | 154 RunTest(CompositorMode::SINGLE_THREADED); |
| 155 } | 155 } |
| 156 | 156 |
| 157 TEST_F(LayerTreeHostPerfTestJsonReader, TenTenThreaded) { | 157 TEST_F(LayerTreeHostPerfTestJsonReader, TenTenThreaded) { |
| 158 SetTestName("10_10_threaded_impl_side"); | 158 SetTestName("10_10_threaded_impl_side"); |
| 159 ReadTestFile("10_10_layer_tree"); | 159 ReadTestFile("10_10_layer_tree"); |
| 160 RunTest(CompositorMode::THREADED, false); | 160 RunTest(CompositorMode::THREADED); |
| 161 } | 161 } |
| 162 | 162 |
| 163 // Simulates a tab switcher scene with two stacks of 10 tabs each. | 163 // Simulates a tab switcher scene with two stacks of 10 tabs each. |
| 164 TEST_F(LayerTreeHostPerfTestJsonReader, | 164 TEST_F(LayerTreeHostPerfTestJsonReader, |
| 165 TenTenSingleThread_FullDamageEachFrame) { | 165 TenTenSingleThread_FullDamageEachFrame) { |
| 166 full_damage_each_frame_ = true; | 166 full_damage_each_frame_ = true; |
| 167 SetTestName("10_10_single_thread_full_damage_each_frame"); | 167 SetTestName("10_10_single_thread_full_damage_each_frame"); |
| 168 ReadTestFile("10_10_layer_tree"); | 168 ReadTestFile("10_10_layer_tree"); |
| 169 RunTest(CompositorMode::SINGLE_THREADED, false); | 169 RunTest(CompositorMode::SINGLE_THREADED); |
| 170 } | 170 } |
| 171 | 171 |
| 172 TEST_F(LayerTreeHostPerfTestJsonReader, TenTenThreaded_FullDamageEachFrame) { | 172 TEST_F(LayerTreeHostPerfTestJsonReader, TenTenThreaded_FullDamageEachFrame) { |
| 173 full_damage_each_frame_ = true; | 173 full_damage_each_frame_ = true; |
| 174 SetTestName("10_10_threaded_impl_side_full_damage_each_frame"); | 174 SetTestName("10_10_threaded_impl_side_full_damage_each_frame"); |
| 175 ReadTestFile("10_10_layer_tree"); | 175 ReadTestFile("10_10_layer_tree"); |
| 176 RunTest(CompositorMode::THREADED, false); | 176 RunTest(CompositorMode::THREADED); |
| 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. |
| (...skipping 13 matching lines...) Expand all Loading... |
| 200 | 200 |
| 201 protected: | 201 protected: |
| 202 Layer* layer_to_invalidate_; | 202 Layer* layer_to_invalidate_; |
| 203 }; | 203 }; |
| 204 | 204 |
| 205 // Simulates a tab switcher scene with two stacks of 10 tabs each. Invalidate a | 205 // Simulates a tab switcher scene with two stacks of 10 tabs each. Invalidate a |
| 206 // property on a leaf layer in the tree every commit. | 206 // property on a leaf layer in the tree every commit. |
| 207 TEST_F(LayerTreeHostPerfTestLeafInvalidates, TenTenSingleThread) { | 207 TEST_F(LayerTreeHostPerfTestLeafInvalidates, TenTenSingleThread) { |
| 208 SetTestName("10_10_single_thread_leaf_invalidates"); | 208 SetTestName("10_10_single_thread_leaf_invalidates"); |
| 209 ReadTestFile("10_10_layer_tree"); | 209 ReadTestFile("10_10_layer_tree"); |
| 210 RunTest(CompositorMode::SINGLE_THREADED, false); | 210 RunTest(CompositorMode::SINGLE_THREADED); |
| 211 } | 211 } |
| 212 | 212 |
| 213 TEST_F(LayerTreeHostPerfTestLeafInvalidates, TenTenThreaded) { | 213 TEST_F(LayerTreeHostPerfTestLeafInvalidates, TenTenThreaded) { |
| 214 SetTestName("10_10_threaded_impl_side_leaf_invalidates"); | 214 SetTestName("10_10_threaded_impl_side_leaf_invalidates"); |
| 215 ReadTestFile("10_10_layer_tree"); | 215 ReadTestFile("10_10_layer_tree"); |
| 216 RunTest(CompositorMode::THREADED, false); | 216 RunTest(CompositorMode::THREADED); |
| 217 } | 217 } |
| 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 { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 237 gfx::ScrollOffsetWithDelta(scrollable_->scroll_offset(), delta)); | 237 gfx::ScrollOffsetWithDelta(scrollable_->scroll_offset(), delta)); |
| 238 } | 238 } |
| 239 | 239 |
| 240 private: | 240 private: |
| 241 scoped_refptr<Layer> scrollable_; | 241 scoped_refptr<Layer> scrollable_; |
| 242 }; | 242 }; |
| 243 | 243 |
| 244 TEST_F(ScrollingLayerTreePerfTest, LongScrollablePageSingleThread) { | 244 TEST_F(ScrollingLayerTreePerfTest, LongScrollablePageSingleThread) { |
| 245 SetTestName("long_scrollable_page"); | 245 SetTestName("long_scrollable_page"); |
| 246 ReadTestFile("long_scrollable_page"); | 246 ReadTestFile("long_scrollable_page"); |
| 247 RunTest(CompositorMode::SINGLE_THREADED, false); | 247 RunTest(CompositorMode::SINGLE_THREADED); |
| 248 } | 248 } |
| 249 | 249 |
| 250 TEST_F(ScrollingLayerTreePerfTest, LongScrollablePageThreaded) { | 250 TEST_F(ScrollingLayerTreePerfTest, LongScrollablePageThreaded) { |
| 251 SetTestName("long_scrollable_page_threaded_impl_side"); | 251 SetTestName("long_scrollable_page_threaded_impl_side"); |
| 252 ReadTestFile("long_scrollable_page"); | 252 ReadTestFile("long_scrollable_page"); |
| 253 RunTest(CompositorMode::THREADED, false); | 253 RunTest(CompositorMode::THREADED); |
| 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(); |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 330 uint64_t next_fence_sync_ = 1; | 330 uint64_t next_fence_sync_ = 1; |
| 331 bool clean_up_started_ = false; | 331 bool clean_up_started_ = false; |
| 332 int sent_mailboxes_count_ = 0; | 332 int sent_mailboxes_count_ = 0; |
| 333 int released_mailboxes_count_ = 0; | 333 int released_mailboxes_count_ = 0; |
| 334 }; | 334 }; |
| 335 | 335 |
| 336 TEST_F(BrowserCompositorInvalidateLayerTreePerfTest, DenseBrowserUIThreaded) { | 336 TEST_F(BrowserCompositorInvalidateLayerTreePerfTest, DenseBrowserUIThreaded) { |
| 337 measure_commit_cost_ = true; | 337 measure_commit_cost_ = true; |
| 338 SetTestName("dense_layer_tree"); | 338 SetTestName("dense_layer_tree"); |
| 339 ReadTestFile("dense_layer_tree"); | 339 ReadTestFile("dense_layer_tree"); |
| 340 RunTest(CompositorMode::THREADED, false); | 340 RunTest(CompositorMode::THREADED); |
| 341 } | 341 } |
| 342 | 342 |
| 343 // Simulates a page with several large, transformed and animated layers. | 343 // Simulates a page with several large, transformed and animated layers. |
| 344 TEST_F(LayerTreeHostPerfTestJsonReader, HeavyPageThreaded) { | 344 TEST_F(LayerTreeHostPerfTestJsonReader, HeavyPageThreaded) { |
| 345 begin_frame_driven_drawing_ = true; | 345 begin_frame_driven_drawing_ = true; |
| 346 measure_commit_cost_ = true; | 346 measure_commit_cost_ = true; |
| 347 SetTestName("heavy_page"); | 347 SetTestName("heavy_page"); |
| 348 ReadTestFile("heavy_layer_tree"); | 348 ReadTestFile("heavy_layer_tree"); |
| 349 RunTest(CompositorMode::THREADED, false); | 349 RunTest(CompositorMode::THREADED); |
| 350 } | 350 } |
| 351 | 351 |
| 352 } // namespace | 352 } // namespace |
| 353 } // namespace cc | 353 } // namespace cc |
| OLD | NEW |