OLD | NEW |
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 5017 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5028 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create())); | 5028 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create())); |
5029 host_impl_->InitializeRenderer(output_surface.Pass()); | 5029 host_impl_->InitializeRenderer(output_surface.Pass()); |
5030 EXPECT_LT(0ul, host_impl_->memory_allocation_limit_bytes()); | 5030 EXPECT_LT(0ul, host_impl_->memory_allocation_limit_bytes()); |
5031 } | 5031 } |
5032 | 5032 |
5033 TEST_F(LayerTreeHostImplTest, MemoryPolicy) { | 5033 TEST_F(LayerTreeHostImplTest, MemoryPolicy) { |
5034 ManagedMemoryPolicy policy1( | 5034 ManagedMemoryPolicy policy1( |
5035 456, gpu::MemoryAllocation::CUTOFF_ALLOW_EVERYTHING, 1000); | 5035 456, gpu::MemoryAllocation::CUTOFF_ALLOW_EVERYTHING, 1000); |
5036 int everything_cutoff_value = ManagedMemoryPolicy::PriorityCutoffToValue( | 5036 int everything_cutoff_value = ManagedMemoryPolicy::PriorityCutoffToValue( |
5037 gpu::MemoryAllocation::CUTOFF_ALLOW_EVERYTHING); | 5037 gpu::MemoryAllocation::CUTOFF_ALLOW_EVERYTHING); |
| 5038 int required_only_cutoff_value = ManagedMemoryPolicy::PriorityCutoffToValue( |
| 5039 gpu::MemoryAllocation::CUTOFF_ALLOW_REQUIRED_ONLY); |
5038 int nothing_cutoff_value = ManagedMemoryPolicy::PriorityCutoffToValue( | 5040 int nothing_cutoff_value = ManagedMemoryPolicy::PriorityCutoffToValue( |
5039 gpu::MemoryAllocation::CUTOFF_ALLOW_NOTHING); | 5041 gpu::MemoryAllocation::CUTOFF_ALLOW_NOTHING); |
5040 | 5042 |
| 5043 // GPU rasterization should be disabled by default. |
| 5044 EXPECT_EQ(host_impl_->settings().gpu_rasterization, false); |
| 5045 |
5041 host_impl_->SetVisible(true); | 5046 host_impl_->SetVisible(true); |
5042 host_impl_->SetMemoryPolicy(policy1); | 5047 host_impl_->SetMemoryPolicy(policy1); |
5043 EXPECT_EQ(policy1.bytes_limit_when_visible, current_limit_bytes_); | 5048 EXPECT_EQ(policy1.bytes_limit_when_visible, current_limit_bytes_); |
5044 EXPECT_EQ(everything_cutoff_value, current_priority_cutoff_value_); | 5049 EXPECT_EQ(everything_cutoff_value, current_priority_cutoff_value_); |
5045 | 5050 |
5046 host_impl_->SetVisible(false); | 5051 host_impl_->SetVisible(false); |
5047 EXPECT_EQ(0u, current_limit_bytes_); | 5052 EXPECT_EQ(0u, current_limit_bytes_); |
5048 EXPECT_EQ(nothing_cutoff_value, current_priority_cutoff_value_); | 5053 EXPECT_EQ(nothing_cutoff_value, current_priority_cutoff_value_); |
5049 | 5054 |
5050 host_impl_->SetVisible(true); | 5055 host_impl_->SetVisible(true); |
5051 EXPECT_EQ(policy1.bytes_limit_when_visible, current_limit_bytes_); | 5056 EXPECT_EQ(policy1.bytes_limit_when_visible, current_limit_bytes_); |
5052 EXPECT_EQ(everything_cutoff_value, current_priority_cutoff_value_); | 5057 EXPECT_EQ(everything_cutoff_value, current_priority_cutoff_value_); |
| 5058 |
| 5059 // Now enable GPU rasterization and test if we get required only cutoff, |
| 5060 // when visible. |
| 5061 LayerTreeSettings settings; |
| 5062 settings.gpu_rasterization = true; |
| 5063 host_impl_ = LayerTreeHostImpl::Create( |
| 5064 settings, this, &proxy_, &stats_instrumentation_, NULL, 0); |
| 5065 |
| 5066 host_impl_->SetVisible(true); |
| 5067 host_impl_->SetMemoryPolicy(policy1); |
| 5068 EXPECT_EQ(policy1.bytes_limit_when_visible, current_limit_bytes_); |
| 5069 EXPECT_EQ(required_only_cutoff_value, current_priority_cutoff_value_); |
| 5070 |
| 5071 host_impl_->SetVisible(false); |
| 5072 EXPECT_EQ(0u, current_limit_bytes_); |
| 5073 EXPECT_EQ(nothing_cutoff_value, current_priority_cutoff_value_); |
5053 } | 5074 } |
5054 | 5075 |
5055 class LayerTreeHostImplTestManageTiles : public LayerTreeHostImplTest { | 5076 class LayerTreeHostImplTestManageTiles : public LayerTreeHostImplTest { |
5056 public: | 5077 public: |
5057 virtual void SetUp() OVERRIDE { | 5078 virtual void SetUp() OVERRIDE { |
5058 LayerTreeSettings settings; | 5079 LayerTreeSettings settings; |
5059 settings.impl_side_painting = true; | 5080 settings.impl_side_painting = true; |
5060 | 5081 |
5061 fake_host_impl_ = new FakeLayerTreeHostImpl(settings, &proxy_); | 5082 fake_host_impl_ = new FakeLayerTreeHostImpl(settings, &proxy_); |
5062 host_impl_.reset(fake_host_impl_); | 5083 host_impl_.reset(fake_host_impl_); |
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5435 &set_needs_redraw_count)); | 5456 &set_needs_redraw_count)); |
5436 // Empty damage rect won't signal the monitor. | 5457 // Empty damage rect won't signal the monitor. |
5437 host_impl_->SetNeedsRedrawRect(gfx::Rect()); | 5458 host_impl_->SetNeedsRedrawRect(gfx::Rect()); |
5438 EXPECT_EQ(0, set_needs_commit_count); | 5459 EXPECT_EQ(0, set_needs_commit_count); |
5439 EXPECT_EQ(2, set_needs_redraw_count); | 5460 EXPECT_EQ(2, set_needs_redraw_count); |
5440 } | 5461 } |
5441 } | 5462 } |
5442 | 5463 |
5443 } // namespace | 5464 } // namespace |
5444 } // namespace cc | 5465 } // namespace cc |
OLD | NEW |