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

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

Issue 475633008: cc: Use impl-side painting in LTH context lost tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: set high res to draw when new output surface is used. Created 6 years, 3 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
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_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 1903 matching lines...) Expand 10 before | Expand all | Expand 10 after
1914 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1914 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1915 host_impl_->DidDrawAllLayers(frame); 1915 host_impl_->DidDrawAllLayers(frame);
1916 } 1916 }
1917 1917
1918 TEST_F(LayerTreeHostImplTest, PrepareToDrawSucceedsWithMissingTiles) { 1918 TEST_F(LayerTreeHostImplTest, PrepareToDrawSucceedsWithMissingTiles) {
1919 host_impl_->active_tree()->SetRootLayer( 1919 host_impl_->active_tree()->SetRootLayer(
1920 DidDrawCheckLayer::Create(host_impl_->active_tree(), 3)); 1920 DidDrawCheckLayer::Create(host_impl_->active_tree(), 3));
1921 DidDrawCheckLayer* root = 1921 DidDrawCheckLayer* root =
1922 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); 1922 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer());
1923 1923
1924 LayerTreeHostImpl::FrameData frame;
1925 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1926 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1927 host_impl_->DidDrawAllLayers(frame);
1928
1924 bool tile_missing = true; 1929 bool tile_missing = true;
1925 bool had_incomplete_tile = false; 1930 bool had_incomplete_tile = false;
1926 bool is_animating = false; 1931 bool is_animating = false;
1927 root->AddChild( 1932 root->AddChild(
1928 MissingTextureAnimatingLayer::Create(host_impl_->active_tree(), 1933 MissingTextureAnimatingLayer::Create(host_impl_->active_tree(),
1929 4, 1934 4,
1930 tile_missing, 1935 tile_missing,
1931 had_incomplete_tile, 1936 had_incomplete_tile,
1932 is_animating, 1937 is_animating,
1933 host_impl_->resource_provider())); 1938 host_impl_->resource_provider()));
1934 LayerTreeHostImpl::FrameData frame; 1939 LayerTreeHostImpl::FrameData frame2;
1935 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1940 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame2));
1936 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1941 host_impl_->DrawLayers(&frame2, gfx::FrameTime::Now());
1937 host_impl_->DidDrawAllLayers(frame); 1942 host_impl_->DidDrawAllLayers(frame2);
1938 } 1943 }
1939 1944
1940 TEST_F(LayerTreeHostImplTest, PrepareToDrawSucceedsWithIncompleteTile) { 1945 TEST_F(LayerTreeHostImplTest, PrepareToDrawSucceedsWithIncompleteTile) {
1941 host_impl_->active_tree()->SetRootLayer( 1946 host_impl_->active_tree()->SetRootLayer(
1942 DidDrawCheckLayer::Create(host_impl_->active_tree(), 3)); 1947 DidDrawCheckLayer::Create(host_impl_->active_tree(), 3));
1943 DidDrawCheckLayer* root = 1948 DidDrawCheckLayer* root =
1944 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); 1949 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer());
1945 1950
1951 LayerTreeHostImpl::FrameData frame;
1952 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1953 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1954 host_impl_->DidDrawAllLayers(frame);
1955
1946 bool tile_missing = false; 1956 bool tile_missing = false;
1947 bool had_incomplete_tile = true; 1957 bool had_incomplete_tile = true;
1948 bool is_animating = false; 1958 bool is_animating = false;
1949 root->AddChild( 1959 root->AddChild(
1950 MissingTextureAnimatingLayer::Create(host_impl_->active_tree(), 1960 MissingTextureAnimatingLayer::Create(host_impl_->active_tree(),
1951 4, 1961 4,
1952 tile_missing, 1962 tile_missing,
1953 had_incomplete_tile, 1963 had_incomplete_tile,
1954 is_animating, 1964 is_animating,
1955 host_impl_->resource_provider())); 1965 host_impl_->resource_provider()));
1956 LayerTreeHostImpl::FrameData frame; 1966 LayerTreeHostImpl::FrameData frame2;
1957 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1967 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame2));
1958 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1968 host_impl_->DrawLayers(&frame2, gfx::FrameTime::Now());
1959 host_impl_->DidDrawAllLayers(frame); 1969 host_impl_->DidDrawAllLayers(frame2);
1960 } 1970 }
1961 1971
1962 TEST_F(LayerTreeHostImplTest, 1972 TEST_F(LayerTreeHostImplTest,
1963 PrepareToDrawFailsWithAnimationAndMissingTilesUsesCheckerboard) { 1973 PrepareToDrawFailsWithAnimationAndMissingTilesUsesCheckerboard) {
1964 host_impl_->active_tree()->SetRootLayer( 1974 host_impl_->active_tree()->SetRootLayer(
1965 DidDrawCheckLayer::Create(host_impl_->active_tree(), 5)); 1975 DidDrawCheckLayer::Create(host_impl_->active_tree(), 5));
1966 DidDrawCheckLayer* root = 1976 DidDrawCheckLayer* root =
1967 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); 1977 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer());
1978
1979 LayerTreeHostImpl::FrameData frame;
1980 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1981 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1982 host_impl_->DidDrawAllLayers(frame);
1983
1968 bool tile_missing = true; 1984 bool tile_missing = true;
1969 bool had_incomplete_tile = false; 1985 bool had_incomplete_tile = false;
1970 bool is_animating = true; 1986 bool is_animating = true;
1971 root->AddChild( 1987 root->AddChild(
1972 MissingTextureAnimatingLayer::Create(host_impl_->active_tree(), 1988 MissingTextureAnimatingLayer::Create(host_impl_->active_tree(),
1973 6, 1989 6,
1974 tile_missing, 1990 tile_missing,
1975 had_incomplete_tile, 1991 had_incomplete_tile,
1976 is_animating, 1992 is_animating,
1977 host_impl_->resource_provider())); 1993 host_impl_->resource_provider()));
1978 LayerTreeHostImpl::FrameData frame; 1994 LayerTreeHostImpl::FrameData frame2;
1979 EXPECT_EQ(DRAW_ABORTED_CHECKERBOARD_ANIMATIONS, 1995 EXPECT_EQ(DRAW_ABORTED_CHECKERBOARD_ANIMATIONS,
1980 host_impl_->PrepareToDraw(&frame)); 1996 host_impl_->PrepareToDraw(&frame2));
1981 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1997 host_impl_->DrawLayers(&frame2, gfx::FrameTime::Now());
1982 host_impl_->DidDrawAllLayers(frame); 1998 host_impl_->DidDrawAllLayers(frame2);
1983 } 1999 }
1984 2000
1985 TEST_F(LayerTreeHostImplTest, 2001 TEST_F(LayerTreeHostImplTest,
1986 PrepareToDrawSucceedsWithAnimationAndIncompleteTiles) { 2002 PrepareToDrawSucceedsWithAnimationAndIncompleteTiles) {
1987 host_impl_->active_tree()->SetRootLayer( 2003 host_impl_->active_tree()->SetRootLayer(
1988 DidDrawCheckLayer::Create(host_impl_->active_tree(), 5)); 2004 DidDrawCheckLayer::Create(host_impl_->active_tree(), 5));
1989 DidDrawCheckLayer* root = 2005 DidDrawCheckLayer* root =
1990 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); 2006 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer());
2007
2008 LayerTreeHostImpl::FrameData frame;
2009 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
2010 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
2011 host_impl_->DidDrawAllLayers(frame);
2012
1991 bool tile_missing = false; 2013 bool tile_missing = false;
1992 bool had_incomplete_tile = true; 2014 bool had_incomplete_tile = true;
1993 bool is_animating = true; 2015 bool is_animating = true;
1994 root->AddChild( 2016 root->AddChild(
1995 MissingTextureAnimatingLayer::Create(host_impl_->active_tree(), 2017 MissingTextureAnimatingLayer::Create(host_impl_->active_tree(),
1996 6, 2018 6,
1997 tile_missing, 2019 tile_missing,
1998 had_incomplete_tile, 2020 had_incomplete_tile,
1999 is_animating, 2021 is_animating,
2000 host_impl_->resource_provider())); 2022 host_impl_->resource_provider()));
2001 LayerTreeHostImpl::FrameData frame; 2023 LayerTreeHostImpl::FrameData frame2;
2002 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 2024 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame2));
2003 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 2025 host_impl_->DrawLayers(&frame2, gfx::FrameTime::Now());
2004 host_impl_->DidDrawAllLayers(frame); 2026 host_impl_->DidDrawAllLayers(frame2);
2005 } 2027 }
2006 2028
2007 TEST_F(LayerTreeHostImplTest, PrepareToDrawSucceedsWhenHighResRequired) { 2029 TEST_F(LayerTreeHostImplTest, PrepareToDrawSucceedsWhenHighResRequired) {
2008 host_impl_->active_tree()->SetRootLayer( 2030 host_impl_->active_tree()->SetRootLayer(
2009 DidDrawCheckLayer::Create(host_impl_->active_tree(), 7)); 2031 DidDrawCheckLayer::Create(host_impl_->active_tree(), 7));
2010 DidDrawCheckLayer* root = 2032 DidDrawCheckLayer* root =
2011 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); 2033 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer());
2012 bool tile_missing = false; 2034 bool tile_missing = false;
2013 bool had_incomplete_tile = false; 2035 bool had_incomplete_tile = false;
2014 bool is_animating = false; 2036 bool is_animating = false;
(...skipping 3740 matching lines...) Expand 10 before | Expand all | Expand 10 after
5755 EXPECT_EQ(allow_nice_to_have_cutoff_value, current_priority_cutoff_value_); 5777 EXPECT_EQ(allow_nice_to_have_cutoff_value, current_priority_cutoff_value_);
5756 5778
5757 host_impl_->SetVisible(false); 5779 host_impl_->SetVisible(false);
5758 EXPECT_EQ(0u, current_limit_bytes_); 5780 EXPECT_EQ(0u, current_limit_bytes_);
5759 EXPECT_EQ(nothing_cutoff_value, current_priority_cutoff_value_); 5781 EXPECT_EQ(nothing_cutoff_value, current_priority_cutoff_value_);
5760 } 5782 }
5761 5783
5762 TEST_F(LayerTreeHostImplTest, RequireHighResWhenVisible) { 5784 TEST_F(LayerTreeHostImplTest, RequireHighResWhenVisible) {
5763 ASSERT_TRUE(host_impl_->active_tree()); 5785 ASSERT_TRUE(host_impl_->active_tree());
5764 5786
5765 EXPECT_FALSE(host_impl_->active_tree()->RequiresHighResToDraw()); 5787 // RequiresHighResToDraw is set when new output surface is used.
5788 EXPECT_TRUE(host_impl_->active_tree()->RequiresHighResToDraw());
5789
5790 host_impl_->ActivateSyncTree();
5791
5766 host_impl_->SetVisible(false); 5792 host_impl_->SetVisible(false);
5767 EXPECT_FALSE(host_impl_->active_tree()->RequiresHighResToDraw()); 5793 EXPECT_FALSE(host_impl_->active_tree()->RequiresHighResToDraw());
5768 host_impl_->SetVisible(true); 5794 host_impl_->SetVisible(true);
5769 EXPECT_TRUE(host_impl_->active_tree()->RequiresHighResToDraw()); 5795 EXPECT_TRUE(host_impl_->active_tree()->RequiresHighResToDraw());
5770 host_impl_->SetVisible(false); 5796 host_impl_->SetVisible(false);
5771 EXPECT_TRUE(host_impl_->active_tree()->RequiresHighResToDraw()); 5797 EXPECT_TRUE(host_impl_->active_tree()->RequiresHighResToDraw());
5772 5798
5773 host_impl_->CreatePendingTree(); 5799 host_impl_->CreatePendingTree();
5774 host_impl_->ActivateSyncTree(); 5800 host_impl_->ActivateSyncTree();
5775 5801
5776 EXPECT_FALSE(host_impl_->active_tree()->RequiresHighResToDraw()); 5802 EXPECT_FALSE(host_impl_->active_tree()->RequiresHighResToDraw());
5777 host_impl_->SetVisible(true); 5803 host_impl_->SetVisible(true);
5778 EXPECT_TRUE(host_impl_->active_tree()->RequiresHighResToDraw()); 5804 EXPECT_TRUE(host_impl_->active_tree()->RequiresHighResToDraw());
5779 } 5805 }
5780 5806
5781 TEST_F(LayerTreeHostImplTest, RequireHighResAfterGpuRasterizationToggles) { 5807 TEST_F(LayerTreeHostImplTest, RequireHighResAfterGpuRasterizationToggles) {
5782 ASSERT_TRUE(host_impl_->active_tree()); 5808 ASSERT_TRUE(host_impl_->active_tree());
5783 EXPECT_FALSE(host_impl_->use_gpu_rasterization()); 5809 EXPECT_FALSE(host_impl_->use_gpu_rasterization());
5784 5810
5785 EXPECT_FALSE(host_impl_->active_tree()->RequiresHighResToDraw()); 5811 // RequiresHighResToDraw is set when new output surface is used.
5812 EXPECT_TRUE(host_impl_->active_tree()->RequiresHighResToDraw());
5813
5814 host_impl_->ActivateSyncTree();
5815
5786 host_impl_->SetUseGpuRasterization(false); 5816 host_impl_->SetUseGpuRasterization(false);
5787 EXPECT_FALSE(host_impl_->active_tree()->RequiresHighResToDraw()); 5817 EXPECT_FALSE(host_impl_->active_tree()->RequiresHighResToDraw());
5788 host_impl_->SetUseGpuRasterization(true); 5818 host_impl_->SetUseGpuRasterization(true);
5789 EXPECT_TRUE(host_impl_->active_tree()->RequiresHighResToDraw()); 5819 EXPECT_TRUE(host_impl_->active_tree()->RequiresHighResToDraw());
5790 host_impl_->SetUseGpuRasterization(false); 5820 host_impl_->SetUseGpuRasterization(false);
5791 EXPECT_TRUE(host_impl_->active_tree()->RequiresHighResToDraw()); 5821 EXPECT_TRUE(host_impl_->active_tree()->RequiresHighResToDraw());
5792 5822
5793 host_impl_->CreatePendingTree(); 5823 host_impl_->CreatePendingTree();
5794 host_impl_->ActivateSyncTree(); 5824 host_impl_->ActivateSyncTree();
5795 5825
(...skipping 1192 matching lines...) Expand 10 before | Expand all | Expand 10 after
6988 host_impl_->DidLoseOutputSurface(); 7018 host_impl_->DidLoseOutputSurface();
6989 EXPECT_TRUE(host_impl_->IsContextLost()); 7019 EXPECT_TRUE(host_impl_->IsContextLost());
6990 EXPECT_EQ(1, num_lost_surfaces_); 7020 EXPECT_EQ(1, num_lost_surfaces_);
6991 host_impl_->DidLoseOutputSurface(); 7021 host_impl_->DidLoseOutputSurface();
6992 EXPECT_TRUE(host_impl_->IsContextLost()); 7022 EXPECT_TRUE(host_impl_->IsContextLost());
6993 EXPECT_EQ(1, num_lost_surfaces_); 7023 EXPECT_EQ(1, num_lost_surfaces_);
6994 } 7024 }
6995 7025
6996 } // namespace 7026 } // namespace
6997 } // namespace cc 7027 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698