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 |