diff options
author | brianderson <brianderson@chromium.org> | 2015-07-23 22:11:20 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-07-24 05:11:57 +0000 |
commit | abad13419002bc51bedb647bb89dac3838323996 (patch) | |
tree | fac3d1ae0ae90e110ae6eb78cffcce4ea811e966 /cc/surfaces/display_unittest.cc | |
parent | 32d7af200850f2378d0a554f8fe046d8b14265ca (diff) | |
download | chromium_src-abad13419002bc51bedb647bb89dac3838323996.zip chromium_src-abad13419002bc51bedb647bb89dac3838323996.tar.gz chromium_src-abad13419002bc51bedb647bb89dac3838323996.tar.bz2 |
cc: Make DisplayScheduler aware of resize and add tracing.
Tracing makes it easier to see what's going on during
resize.
DisplayScheduler will now wait for a new root surface or
damage on the existing root surface after
a resize event before triggering its deadline.
BUG=506300
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/1251823005
Cr-Commit-Position: refs/heads/master@{#340225}
Diffstat (limited to 'cc/surfaces/display_unittest.cc')
-rw-r--r-- | cc/surfaces/display_unittest.cc | 44 |
1 files changed, 29 insertions, 15 deletions
diff --git a/cc/surfaces/display_unittest.cc b/cc/surfaces/display_unittest.cc index 93ff0f8..74dfa93 100644 --- a/cc/surfaces/display_unittest.cc +++ b/cc/surfaces/display_unittest.cc @@ -89,13 +89,16 @@ class TestDisplayScheduler : public DisplayScheduler { base::NullTaskRunner* task_runner) : DisplayScheduler(client, begin_frame_source, task_runner, 1), damaged(false), - entire_display_damaged(false), + display_resized_(false), + has_new_root_surface(false), swapped(false) {} ~TestDisplayScheduler() override {} - void EntireDisplayDamaged(SurfaceId root_surface_id) override { - entire_display_damaged = true; + void DisplayResized() override { display_resized_ = true; } + + void SetNewRootSurface(SurfaceId root_surface_id) override { + has_new_root_surface = true; } void SurfaceDamaged(SurfaceId surface_id) override { @@ -107,11 +110,13 @@ class TestDisplayScheduler : public DisplayScheduler { void ResetDamageForTest() { damaged = false; - entire_display_damaged = false; + display_resized_ = false; + has_new_root_surface = false; } bool damaged; - bool entire_display_damaged; + bool display_resized_; + bool has_new_root_surface; bool swapped; }; @@ -135,15 +140,17 @@ TEST_F(DisplayTest, DisplayDamaged) { SurfaceId surface_id(7u); EXPECT_FALSE(scheduler.damaged); - EXPECT_FALSE(scheduler.entire_display_damaged); + EXPECT_FALSE(scheduler.has_new_root_surface); display.SetSurfaceId(surface_id, 1.f); EXPECT_FALSE(scheduler.damaged); - EXPECT_TRUE(scheduler.entire_display_damaged); + EXPECT_FALSE(scheduler.display_resized_); + EXPECT_TRUE(scheduler.has_new_root_surface); scheduler.ResetDamageForTest(); display.Resize(gfx::Size(100, 100)); EXPECT_FALSE(scheduler.damaged); - EXPECT_TRUE(scheduler.entire_display_damaged); + EXPECT_TRUE(scheduler.display_resized_); + EXPECT_FALSE(scheduler.has_new_root_surface); factory_.Create(surface_id); @@ -158,7 +165,8 @@ TEST_F(DisplayTest, DisplayDamaged) { scheduler.ResetDamageForTest(); SubmitFrame(&pass_list, surface_id); EXPECT_TRUE(scheduler.damaged); - EXPECT_FALSE(scheduler.entire_display_damaged); + EXPECT_FALSE(scheduler.display_resized_); + EXPECT_FALSE(scheduler.has_new_root_surface); EXPECT_FALSE(scheduler.swapped); EXPECT_EQ(0u, output_surface_ptr_->num_sent_frames()); @@ -183,7 +191,8 @@ TEST_F(DisplayTest, DisplayDamaged) { scheduler.ResetDamageForTest(); SubmitFrame(&pass_list, surface_id); EXPECT_TRUE(scheduler.damaged); - EXPECT_FALSE(scheduler.entire_display_damaged); + EXPECT_FALSE(scheduler.display_resized_); + EXPECT_FALSE(scheduler.has_new_root_surface); scheduler.swapped = false; display.DrawAndSwap(); @@ -208,7 +217,8 @@ TEST_F(DisplayTest, DisplayDamaged) { scheduler.ResetDamageForTest(); SubmitFrame(&pass_list, surface_id); EXPECT_TRUE(scheduler.damaged); - EXPECT_FALSE(scheduler.entire_display_damaged); + EXPECT_FALSE(scheduler.display_resized_); + EXPECT_FALSE(scheduler.has_new_root_surface); scheduler.swapped = false; display.DrawAndSwap(); @@ -227,7 +237,8 @@ TEST_F(DisplayTest, DisplayDamaged) { scheduler.ResetDamageForTest(); SubmitFrame(&pass_list, surface_id); EXPECT_TRUE(scheduler.damaged); - EXPECT_FALSE(scheduler.entire_display_damaged); + EXPECT_FALSE(scheduler.display_resized_); + EXPECT_FALSE(scheduler.has_new_root_surface); scheduler.swapped = false; display.DrawAndSwap(); @@ -249,7 +260,8 @@ TEST_F(DisplayTest, DisplayDamaged) { scheduler.ResetDamageForTest(); SubmitFrame(&pass_list, surface_id); EXPECT_TRUE(scheduler.damaged); - EXPECT_FALSE(scheduler.entire_display_damaged); + EXPECT_FALSE(scheduler.display_resized_); + EXPECT_FALSE(scheduler.has_new_root_surface); scheduler.swapped = false; display.DrawAndSwap(); @@ -277,7 +289,8 @@ TEST_F(DisplayTest, DisplayDamaged) { factory_.SubmitFrame(surface_id, frame.Pass(), SurfaceFactory::DrawCallback()); EXPECT_TRUE(scheduler.damaged); - EXPECT_FALSE(scheduler.entire_display_damaged); + EXPECT_FALSE(scheduler.display_resized_); + EXPECT_FALSE(scheduler.has_new_root_surface); scheduler.swapped = false; display.DrawAndSwap(); @@ -308,7 +321,8 @@ TEST_F(DisplayTest, DisplayDamaged) { factory_.SubmitFrame(surface_id, frame.Pass(), SurfaceFactory::DrawCallback()); EXPECT_TRUE(scheduler.damaged); - EXPECT_FALSE(scheduler.entire_display_damaged); + EXPECT_FALSE(scheduler.display_resized_); + EXPECT_FALSE(scheduler.has_new_root_surface); scheduler.swapped = false; display.Resize(gfx::Size(100, 100)); |