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

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

Issue 1134123005: cc: split UpdateGpuRasterizationStatus() into two parts. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase to ToT 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.cc ('k') | no next file » | 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_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 5914 matching lines...) Expand 10 before | Expand all | Expand 10 after
5925 5925
5926 host_impl_->SetVisible(true); 5926 host_impl_->SetVisible(true);
5927 EXPECT_EQ(policy1.bytes_limit_when_visible, current_limit_bytes_); 5927 EXPECT_EQ(policy1.bytes_limit_when_visible, current_limit_bytes_);
5928 EXPECT_EQ(everything_cutoff_value, current_priority_cutoff_value_); 5928 EXPECT_EQ(everything_cutoff_value, current_priority_cutoff_value_);
5929 5929
5930 // Now enable GPU rasterization and test if we get nice to have cutoff, 5930 // Now enable GPU rasterization and test if we get nice to have cutoff,
5931 // when visible. 5931 // when visible.
5932 LayerTreeSettings settings; 5932 LayerTreeSettings settings;
5933 settings.gpu_rasterization_enabled = true; 5933 settings.gpu_rasterization_enabled = true;
5934 CreateHostImpl(settings, CreateOutputSurface()); 5934 CreateHostImpl(settings, CreateOutputSurface());
5935 host_impl_->set_content_is_suitable_for_gpu_rasterization(true); 5935 host_impl_->SetContentIsSuitableForGpuRasterization(true);
5936 host_impl_->set_has_gpu_rasterization_trigger(true); 5936 host_impl_->SetHasGpuRasterizationTrigger(true);
5937 host_impl_->UpdateGpuRasterizationStatus();
5938 host_impl_->SetVisible(true); 5937 host_impl_->SetVisible(true);
5939 host_impl_->SetMemoryPolicy(policy1); 5938 host_impl_->SetMemoryPolicy(policy1);
5940 EXPECT_EQ(policy1.bytes_limit_when_visible, current_limit_bytes_); 5939 EXPECT_EQ(policy1.bytes_limit_when_visible, current_limit_bytes_);
5941 EXPECT_EQ(allow_nice_to_have_cutoff_value, current_priority_cutoff_value_); 5940 EXPECT_EQ(allow_nice_to_have_cutoff_value, current_priority_cutoff_value_);
5942 5941
5943 host_impl_->SetVisible(false); 5942 host_impl_->SetVisible(false);
5944 EXPECT_EQ(0u, current_limit_bytes_); 5943 EXPECT_EQ(0u, current_limit_bytes_);
5945 EXPECT_EQ(nothing_cutoff_value, current_priority_cutoff_value_); 5944 EXPECT_EQ(nothing_cutoff_value, current_priority_cutoff_value_);
5946 } 5945 }
5947 5946
(...skipping 21 matching lines...) Expand all
5969 5968
5970 TEST_F(LayerTreeHostImplTest, RequireHighResAfterGpuRasterizationToggles) { 5969 TEST_F(LayerTreeHostImplTest, RequireHighResAfterGpuRasterizationToggles) {
5971 ASSERT_TRUE(host_impl_->active_tree()); 5970 ASSERT_TRUE(host_impl_->active_tree());
5972 EXPECT_FALSE(host_impl_->use_gpu_rasterization()); 5971 EXPECT_FALSE(host_impl_->use_gpu_rasterization());
5973 5972
5974 // RequiresHighResToDraw is set when new output surface is used. 5973 // RequiresHighResToDraw is set when new output surface is used.
5975 EXPECT_TRUE(host_impl_->RequiresHighResToDraw()); 5974 EXPECT_TRUE(host_impl_->RequiresHighResToDraw());
5976 5975
5977 host_impl_->ResetRequiresHighResToDraw(); 5976 host_impl_->ResetRequiresHighResToDraw();
5978 5977
5979 host_impl_->set_content_is_suitable_for_gpu_rasterization(true); 5978 host_impl_->SetContentIsSuitableForGpuRasterization(true);
5980 host_impl_->set_has_gpu_rasterization_trigger(false); 5979 host_impl_->SetHasGpuRasterizationTrigger(false);
5981 host_impl_->UpdateGpuRasterizationStatus(); 5980 host_impl_->UpdateTreeResourcesForGpuRasterizationIfNeeded();
5982 EXPECT_FALSE(host_impl_->RequiresHighResToDraw()); 5981 EXPECT_FALSE(host_impl_->RequiresHighResToDraw());
5983 host_impl_->set_has_gpu_rasterization_trigger(true); 5982 host_impl_->SetHasGpuRasterizationTrigger(true);
5984 host_impl_->UpdateGpuRasterizationStatus(); 5983 host_impl_->UpdateTreeResourcesForGpuRasterizationIfNeeded();
5985 EXPECT_TRUE(host_impl_->RequiresHighResToDraw()); 5984 EXPECT_TRUE(host_impl_->RequiresHighResToDraw());
5986 host_impl_->set_has_gpu_rasterization_trigger(false); 5985 host_impl_->SetHasGpuRasterizationTrigger(false);
5987 host_impl_->UpdateGpuRasterizationStatus(); 5986 host_impl_->UpdateTreeResourcesForGpuRasterizationIfNeeded();
5988 EXPECT_TRUE(host_impl_->RequiresHighResToDraw()); 5987 EXPECT_TRUE(host_impl_->RequiresHighResToDraw());
5989 5988
5990 host_impl_->ResetRequiresHighResToDraw(); 5989 host_impl_->ResetRequiresHighResToDraw();
5991 5990
5992 EXPECT_FALSE(host_impl_->RequiresHighResToDraw()); 5991 EXPECT_FALSE(host_impl_->RequiresHighResToDraw());
5993 host_impl_->set_has_gpu_rasterization_trigger(true); 5992 host_impl_->SetHasGpuRasterizationTrigger(true);
5994 host_impl_->UpdateGpuRasterizationStatus(); 5993 host_impl_->UpdateTreeResourcesForGpuRasterizationIfNeeded();
5995 EXPECT_TRUE(host_impl_->RequiresHighResToDraw()); 5994 EXPECT_TRUE(host_impl_->RequiresHighResToDraw());
5996 } 5995 }
5997 5996
5998 class LayerTreeHostImplTestPrepareTiles : public LayerTreeHostImplTest { 5997 class LayerTreeHostImplTestPrepareTiles : public LayerTreeHostImplTest {
5999 public: 5998 public:
6000 void SetUp() override { 5999 void SetUp() override {
6001 LayerTreeSettings settings; 6000 LayerTreeSettings settings;
6002 settings.impl_side_painting = true; 6001 settings.impl_side_painting = true;
6003 6002
6004 fake_host_impl_ = new FakeLayerTreeHostImpl(settings, &proxy_, 6003 fake_host_impl_ = new FakeLayerTreeHostImpl(settings, &proxy_,
(...skipping 1714 matching lines...) Expand 10 before | Expand all | Expand 10 after
7719 7718
7720 begin_frame_args = CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE); 7719 begin_frame_args = CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE);
7721 EXPECT_FALSE(controller.begin_frame_args().IsValid()); 7720 EXPECT_FALSE(controller.begin_frame_args().IsValid());
7722 host_impl_->WillBeginImplFrame(begin_frame_args); 7721 host_impl_->WillBeginImplFrame(begin_frame_args);
7723 EXPECT_TRUE(controller.begin_frame_args().IsValid()); 7722 EXPECT_TRUE(controller.begin_frame_args().IsValid());
7724 } 7723 }
7725 7724
7726 TEST_F(LayerTreeHostImplTest, GpuRasterizationStatusModes) { 7725 TEST_F(LayerTreeHostImplTest, GpuRasterizationStatusModes) {
7727 EXPECT_FALSE(host_impl_->use_gpu_rasterization()); 7726 EXPECT_FALSE(host_impl_->use_gpu_rasterization());
7728 7727
7729 host_impl_->set_has_gpu_rasterization_trigger(true); 7728 host_impl_->SetHasGpuRasterizationTrigger(true);
7730 host_impl_->set_content_is_suitable_for_gpu_rasterization(true); 7729 host_impl_->SetContentIsSuitableForGpuRasterization(true);
7731 host_impl_->UpdateGpuRasterizationStatus();
7732 EXPECT_EQ(GpuRasterizationStatus::ON, host_impl_->gpu_rasterization_status()); 7730 EXPECT_EQ(GpuRasterizationStatus::ON, host_impl_->gpu_rasterization_status());
7733 EXPECT_TRUE(host_impl_->use_gpu_rasterization()); 7731 EXPECT_TRUE(host_impl_->use_gpu_rasterization());
7734 7732
7735 host_impl_->set_has_gpu_rasterization_trigger(false); 7733 host_impl_->SetHasGpuRasterizationTrigger(false);
7736 host_impl_->set_content_is_suitable_for_gpu_rasterization(true); 7734 host_impl_->SetContentIsSuitableForGpuRasterization(true);
7737 host_impl_->UpdateGpuRasterizationStatus();
7738 EXPECT_EQ(GpuRasterizationStatus::OFF_VIEWPORT, 7735 EXPECT_EQ(GpuRasterizationStatus::OFF_VIEWPORT,
7739 host_impl_->gpu_rasterization_status()); 7736 host_impl_->gpu_rasterization_status());
7740 EXPECT_FALSE(host_impl_->use_gpu_rasterization()); 7737 EXPECT_FALSE(host_impl_->use_gpu_rasterization());
7741 7738
7742 host_impl_->set_has_gpu_rasterization_trigger(true); 7739 host_impl_->SetHasGpuRasterizationTrigger(true);
7743 host_impl_->set_content_is_suitable_for_gpu_rasterization(false); 7740 host_impl_->SetContentIsSuitableForGpuRasterization(false);
7744 host_impl_->UpdateGpuRasterizationStatus();
7745 EXPECT_EQ(GpuRasterizationStatus::OFF_CONTENT, 7741 EXPECT_EQ(GpuRasterizationStatus::OFF_CONTENT,
7746 host_impl_->gpu_rasterization_status()); 7742 host_impl_->gpu_rasterization_status());
7747 EXPECT_FALSE(host_impl_->use_gpu_rasterization()); 7743 EXPECT_FALSE(host_impl_->use_gpu_rasterization());
7748 EXPECT_FALSE(host_impl_->use_msaa()); 7744 EXPECT_FALSE(host_impl_->use_msaa());
7749 7745
7750 scoped_ptr<TestWebGraphicsContext3D> context_with_msaa = 7746 scoped_ptr<TestWebGraphicsContext3D> context_with_msaa =
7751 TestWebGraphicsContext3D::Create(); 7747 TestWebGraphicsContext3D::Create();
7752 context_with_msaa->SetMaxSamples(8); 7748 context_with_msaa->SetMaxSamples(8);
7753 7749
7754 LayerTreeSettings msaaSettings = GpuRasterizationEnabledSettings(); 7750 LayerTreeSettings msaaSettings = GpuRasterizationEnabledSettings();
7755 msaaSettings.gpu_rasterization_msaa_sample_count = 4; 7751 msaaSettings.gpu_rasterization_msaa_sample_count = 4;
7756 EXPECT_TRUE(CreateHostImpl( 7752 EXPECT_TRUE(CreateHostImpl(
7757 msaaSettings, FakeOutputSurface::Create3d(context_with_msaa.Pass()))); 7753 msaaSettings, FakeOutputSurface::Create3d(context_with_msaa.Pass())));
7758 host_impl_->set_has_gpu_rasterization_trigger(true); 7754 host_impl_->SetHasGpuRasterizationTrigger(true);
7759 host_impl_->set_content_is_suitable_for_gpu_rasterization(false); 7755 host_impl_->SetContentIsSuitableForGpuRasterization(false);
7760 host_impl_->UpdateGpuRasterizationStatus();
7761 EXPECT_EQ(GpuRasterizationStatus::MSAA_CONTENT, 7756 EXPECT_EQ(GpuRasterizationStatus::MSAA_CONTENT,
7762 host_impl_->gpu_rasterization_status()); 7757 host_impl_->gpu_rasterization_status());
7763 EXPECT_TRUE(host_impl_->use_gpu_rasterization()); 7758 EXPECT_TRUE(host_impl_->use_gpu_rasterization());
7764 EXPECT_TRUE(host_impl_->use_msaa()); 7759 EXPECT_TRUE(host_impl_->use_msaa());
7765 7760
7766 LayerTreeSettings settings = DefaultSettings(); 7761 LayerTreeSettings settings = DefaultSettings();
7767 settings.gpu_rasterization_enabled = false; 7762 settings.gpu_rasterization_enabled = false;
7768 EXPECT_TRUE(CreateHostImpl(settings, FakeOutputSurface::Create3d())); 7763 EXPECT_TRUE(CreateHostImpl(settings, FakeOutputSurface::Create3d()));
7769 host_impl_->set_has_gpu_rasterization_trigger(true); 7764 host_impl_->SetHasGpuRasterizationTrigger(true);
7770 host_impl_->set_content_is_suitable_for_gpu_rasterization(true); 7765 host_impl_->SetContentIsSuitableForGpuRasterization(true);
7771 host_impl_->UpdateGpuRasterizationStatus();
7772 EXPECT_EQ(GpuRasterizationStatus::OFF_DEVICE, 7766 EXPECT_EQ(GpuRasterizationStatus::OFF_DEVICE,
7773 host_impl_->gpu_rasterization_status()); 7767 host_impl_->gpu_rasterization_status());
7774 EXPECT_FALSE(host_impl_->use_gpu_rasterization()); 7768 EXPECT_FALSE(host_impl_->use_gpu_rasterization());
7775 7769
7776 settings.gpu_rasterization_forced = true; 7770 settings.gpu_rasterization_forced = true;
7777 EXPECT_TRUE(CreateHostImpl(settings, FakeOutputSurface::Create3d())); 7771 EXPECT_TRUE(CreateHostImpl(settings, FakeOutputSurface::Create3d()));
7778 7772
7779 host_impl_->set_has_gpu_rasterization_trigger(false); 7773 host_impl_->SetHasGpuRasterizationTrigger(false);
7780 host_impl_->set_content_is_suitable_for_gpu_rasterization(false); 7774 host_impl_->SetContentIsSuitableForGpuRasterization(false);
7781 host_impl_->UpdateGpuRasterizationStatus();
7782 EXPECT_EQ(GpuRasterizationStatus::ON_FORCED, 7775 EXPECT_EQ(GpuRasterizationStatus::ON_FORCED,
7783 host_impl_->gpu_rasterization_status()); 7776 host_impl_->gpu_rasterization_status());
7784 EXPECT_TRUE(host_impl_->use_gpu_rasterization()); 7777 EXPECT_TRUE(host_impl_->use_gpu_rasterization());
7785 } 7778 }
7786 7779
7787 } // namespace 7780 } // namespace
7788 } // namespace cc 7781 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698