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

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

Issue 1111743002: cc: Adding DidFinishImplFrame to LTHI. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixing surfaces_scheduler. Created 5 years, 7 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_impl_unittest.cc ('k') | cc/trees/single_thread_proxy.h » ('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/location.h" 10 #include "base/location.h"
(...skipping 2290 matching lines...) Expand 10 before | Expand all | Expand 10 after
2301 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestContinuousInvalidate); 2301 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestContinuousInvalidate);
2302 2302
2303 class LayerTreeHostTestDeferCommits : public LayerTreeHostTest { 2303 class LayerTreeHostTestDeferCommits : public LayerTreeHostTest {
2304 public: 2304 public:
2305 LayerTreeHostTestDeferCommits() 2305 LayerTreeHostTestDeferCommits()
2306 : num_will_begin_impl_frame_(0), 2306 : num_will_begin_impl_frame_(0),
2307 num_send_begin_main_frame_(0) {} 2307 num_send_begin_main_frame_(0) {}
2308 2308
2309 void BeginTest() override { PostSetNeedsCommitToMainThread(); } 2309 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
2310 2310
2311 void WillBeginImplFrame(const BeginFrameArgs& args) override { 2311 void WillBeginImplFrameOnThread(LayerTreeHostImpl* host_impl,
2312 const BeginFrameArgs& args) override {
2312 num_will_begin_impl_frame_++; 2313 num_will_begin_impl_frame_++;
2313 switch (num_will_begin_impl_frame_) { 2314 switch (num_will_begin_impl_frame_) {
2314 case 1: 2315 case 1:
2315 break; 2316 break;
2316 case 2: 2317 case 2:
2317 case 3: 2318 case 3:
2318 case 4: 2319 case 4:
2319 // Post a number of frames to increase the chance that, if there exist 2320 // Post a number of frames to increase the chance that, if there exist
2320 // bugs, an unexpected BeginMainFrame will be issued. 2321 // bugs, an unexpected BeginMainFrame will be issued.
2321 PostSetNeedsCommitToMainThread(); 2322 PostSetNeedsCommitToMainThread();
(...skipping 3183 matching lines...) Expand 10 before | Expand all | Expand 10 after
5505 int num_draws_; 5506 int num_draws_;
5506 const gfx::Size bounds_; 5507 const gfx::Size bounds_;
5507 FakeContentLayerClient client_; 5508 FakeContentLayerClient client_;
5508 scoped_refptr<ContentLayerWithUpdateTracking> content_layer_; 5509 scoped_refptr<ContentLayerWithUpdateTracking> content_layer_;
5509 scoped_refptr<FakePictureLayer> picture_layer_; 5510 scoped_refptr<FakePictureLayer> picture_layer_;
5510 Layer* child_layer_; 5511 Layer* child_layer_;
5511 }; 5512 };
5512 5513
5513 MULTI_THREAD_TEST_F(LayerTreeHostTestContinuousPainting); 5514 MULTI_THREAD_TEST_F(LayerTreeHostTestContinuousPainting);
5514 5515
5516 class LayerTreeHostTestWillBeginImplFrameHasDidFinishImplFrame
5517 : public LayerTreeHostTest {
5518 public:
5519 enum { kExpectedNumImplFrames = 10 };
5520
5521 LayerTreeHostTestWillBeginImplFrameHasDidFinishImplFrame()
5522 : will_begin_impl_frame_count_(0), did_finish_impl_frame_count_(0) {}
5523
5524 void BeginTest() override {
5525 // Kick off the test with a commit.
5526 PostSetNeedsCommitToMainThread();
5527 }
5528
5529 void WillBeginImplFrameOnThread(LayerTreeHostImpl* host_impl,
5530 const BeginFrameArgs& args) override {
5531 EXPECT_EQ(will_begin_impl_frame_count_, did_finish_impl_frame_count_);
5532 EXPECT_FALSE(TestEnded());
5533 will_begin_impl_frame_count_++;
5534 }
5535
5536 void DidFinishImplFrameOnThread(LayerTreeHostImpl* host_impl) override {
5537 did_finish_impl_frame_count_++;
5538 EXPECT_EQ(will_begin_impl_frame_count_, did_finish_impl_frame_count_);
5539
5540 // Request a number of commits to cause multiple impl frames. We expect to
5541 // get one more impl frames than the number of commits requested because
5542 // after a commit it takes one frame to become idle.
5543 if (did_finish_impl_frame_count_ < kExpectedNumImplFrames - 1)
5544 PostSetNeedsCommitToMainThread();
5545 }
5546
5547 void SendBeginMainFrameNotExpectedSoon() override { EndTest(); }
5548
5549 void AfterTest() override {
5550 EXPECT_GT(will_begin_impl_frame_count_, 0);
5551 EXPECT_GT(did_finish_impl_frame_count_, 0);
5552 EXPECT_EQ(will_begin_impl_frame_count_, did_finish_impl_frame_count_);
5553
5554 // TODO(mithro): Figure out why the multithread version of this test
5555 // sometimes has one more frame then expected. Possibly related to
5556 // http://crbug.com/443185
5557 if (!HasImplThread()) {
5558 EXPECT_EQ(will_begin_impl_frame_count_, kExpectedNumImplFrames);
5559 EXPECT_EQ(did_finish_impl_frame_count_, kExpectedNumImplFrames);
5560 }
5561 }
5562
5563 private:
5564 int will_begin_impl_frame_count_;
5565 int did_finish_impl_frame_count_;
5566 };
5567
5568 SINGLE_AND_MULTI_THREAD_TEST_F(
5569 LayerTreeHostTestWillBeginImplFrameHasDidFinishImplFrame);
5570
5515 class LayerTreeHostTestSendBeginFramesToChildren : public LayerTreeHostTest { 5571 class LayerTreeHostTestSendBeginFramesToChildren : public LayerTreeHostTest {
5516 public: 5572 public:
5517 LayerTreeHostTestSendBeginFramesToChildren() 5573 LayerTreeHostTestSendBeginFramesToChildren()
5518 : begin_frame_sent_to_children_(false) { 5574 : begin_frame_sent_to_children_(false) {
5519 } 5575 }
5520 5576
5521 void BeginTest() override { 5577 void BeginTest() override {
5522 // Kick off the test with a commit. 5578 // Kick off the test with a commit.
5523 PostSetNeedsCommitToMainThread(); 5579 PostSetNeedsCommitToMainThread();
5524 } 5580 }
(...skipping 1525 matching lines...) Expand 10 before | Expand all | Expand 10 after
7050 void AfterTest() override {} 7106 void AfterTest() override {}
7051 7107
7052 scoped_refptr<FakePictureLayer> content_child_layer_; 7108 scoped_refptr<FakePictureLayer> content_child_layer_;
7053 FakeContentLayerClient client_; 7109 FakeContentLayerClient client_;
7054 }; 7110 };
7055 7111
7056 SINGLE_AND_MULTI_THREAD_TEST_F( 7112 SINGLE_AND_MULTI_THREAD_TEST_F(
7057 LayerTreeTestReflectionMaskLayerForSurfaceWithUnclippedChild); 7113 LayerTreeTestReflectionMaskLayerForSurfaceWithUnclippedChild);
7058 7114
7059 } // namespace cc 7115 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl_unittest.cc ('k') | cc/trees/single_thread_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698