| 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::SingleThreaded, false); | 154 RunTest(CompositorMode::SINGLE_THREADED, false); |
| 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, false); |
| 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::SingleThreaded, false); | 169 RunTest(CompositorMode::SINGLE_THREADED, false); |
| 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, false); |
| 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::SingleThreaded, false); | 210 RunTest(CompositorMode::SINGLE_THREADED, false); |
| 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, false); |
| 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 14 matching lines...) Expand all Loading... |
| 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 // TODO(vollick): Remove verify_property_trees setting after | 247 // TODO(vollick): Remove verify_property_trees setting after |
| 248 // crbug.com/444219 is fixed. | 248 // crbug.com/444219 is fixed. |
| 249 bool old_verify_property_trees = verify_property_trees(); | 249 bool old_verify_property_trees = verify_property_trees(); |
| 250 set_verify_property_trees(false); | 250 set_verify_property_trees(false); |
| 251 RunTest(CompositorMode::SingleThreaded, false); | 251 RunTest(CompositorMode::SINGLE_THREADED, false); |
| 252 set_verify_property_trees(old_verify_property_trees); | 252 set_verify_property_trees(old_verify_property_trees); |
| 253 } | 253 } |
| 254 | 254 |
| 255 TEST_F(ScrollingLayerTreePerfTest, LongScrollablePageThreaded) { | 255 TEST_F(ScrollingLayerTreePerfTest, LongScrollablePageThreaded) { |
| 256 SetTestName("long_scrollable_page_threaded_impl_side"); | 256 SetTestName("long_scrollable_page_threaded_impl_side"); |
| 257 ReadTestFile("long_scrollable_page"); | 257 ReadTestFile("long_scrollable_page"); |
| 258 // TODO(vollick): Remove verify_property_trees setting after | 258 // TODO(vollick): Remove verify_property_trees setting after |
| 259 // crbug.com/444219 is fixed. | 259 // crbug.com/444219 is fixed. |
| 260 bool old_verify_property_trees = verify_property_trees(); | 260 bool old_verify_property_trees = verify_property_trees(); |
| 261 set_verify_property_trees(false); | 261 set_verify_property_trees(false); |
| 262 RunTest(CompositorMode::Threaded, false); | 262 RunTest(CompositorMode::THREADED, false); |
| 263 set_verify_property_trees(old_verify_property_trees); | 263 set_verify_property_trees(old_verify_property_trees); |
| 264 } | 264 } |
| 265 | 265 |
| 266 static void EmptyReleaseCallback(const gpu::SyncToken& sync_token, | 266 static void EmptyReleaseCallback(const gpu::SyncToken& sync_token, |
| 267 bool lost_resource) {} | 267 bool lost_resource) {} |
| 268 | 268 |
| 269 // Simulates main-thread scrolling on each frame. | 269 // Simulates main-thread scrolling on each frame. |
| 270 class BrowserCompositorInvalidateLayerTreePerfTest | 270 class BrowserCompositorInvalidateLayerTreePerfTest |
| 271 : public LayerTreeHostPerfTestJsonReader { | 271 : public LayerTreeHostPerfTestJsonReader { |
| 272 public: | 272 public: |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 331 private: | 331 private: |
| 332 scoped_refptr<TextureLayer> tab_contents_; | 332 scoped_refptr<TextureLayer> tab_contents_; |
| 333 uint64_t next_fence_sync_; | 333 uint64_t next_fence_sync_; |
| 334 bool clean_up_started_; | 334 bool clean_up_started_; |
| 335 }; | 335 }; |
| 336 | 336 |
| 337 TEST_F(BrowserCompositorInvalidateLayerTreePerfTest, DenseBrowserUIThreaded) { | 337 TEST_F(BrowserCompositorInvalidateLayerTreePerfTest, DenseBrowserUIThreaded) { |
| 338 measure_commit_cost_ = true; | 338 measure_commit_cost_ = true; |
| 339 SetTestName("dense_layer_tree"); | 339 SetTestName("dense_layer_tree"); |
| 340 ReadTestFile("dense_layer_tree"); | 340 ReadTestFile("dense_layer_tree"); |
| 341 RunTest(CompositorMode::Threaded, false); | 341 RunTest(CompositorMode::THREADED, false); |
| 342 } | 342 } |
| 343 | 343 |
| 344 // Simulates a page with several large, transformed and animated layers. | 344 // Simulates a page with several large, transformed and animated layers. |
| 345 TEST_F(LayerTreeHostPerfTestJsonReader, HeavyPageThreaded) { | 345 TEST_F(LayerTreeHostPerfTestJsonReader, HeavyPageThreaded) { |
| 346 begin_frame_driven_drawing_ = true; | 346 begin_frame_driven_drawing_ = true; |
| 347 measure_commit_cost_ = true; | 347 measure_commit_cost_ = true; |
| 348 SetTestName("heavy_page"); | 348 SetTestName("heavy_page"); |
| 349 ReadTestFile("heavy_layer_tree"); | 349 ReadTestFile("heavy_layer_tree"); |
| 350 RunTest(CompositorMode::Threaded, false); | 350 RunTest(CompositorMode::THREADED, false); |
| 351 } | 351 } |
| 352 | 352 |
| 353 } // namespace | 353 } // namespace |
| 354 } // namespace cc | 354 } // namespace cc |
| OLD | NEW |