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 <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 namespace { | 80 namespace { |
81 | 81 |
82 class LayerTreeHostImplTest : public testing::Test, | 82 class LayerTreeHostImplTest : public testing::Test, |
83 public LayerTreeHostImplClient { | 83 public LayerTreeHostImplClient { |
84 public: | 84 public: |
85 LayerTreeHostImplTest() | 85 LayerTreeHostImplTest() |
86 : proxy_(base::ThreadTaskRunnerHandle::Get(), | 86 : proxy_(base::ThreadTaskRunnerHandle::Get(), |
87 base::ThreadTaskRunnerHandle::Get()), | 87 base::ThreadTaskRunnerHandle::Get()), |
88 always_impl_thread_(&proxy_), | 88 always_impl_thread_(&proxy_), |
89 always_main_thread_blocked_(&proxy_), | 89 always_main_thread_blocked_(&proxy_), |
90 shared_bitmap_manager_(new TestSharedBitmapManager), | |
91 gpu_memory_buffer_manager_(new TestGpuMemoryBufferManager), | |
92 task_graph_runner_(new TestTaskGraphRunner), | |
93 on_can_draw_state_changed_called_(false), | 90 on_can_draw_state_changed_called_(false), |
94 did_notify_ready_to_activate_(false), | 91 did_notify_ready_to_activate_(false), |
95 did_request_commit_(false), | 92 did_request_commit_(false), |
96 did_request_redraw_(false), | 93 did_request_redraw_(false), |
97 did_request_animate_(false), | 94 did_request_animate_(false), |
98 did_request_prepare_tiles_(false), | 95 did_request_prepare_tiles_(false), |
99 did_complete_page_scale_animation_(false), | 96 did_complete_page_scale_animation_(false), |
100 reduce_memory_result_(true), | 97 reduce_memory_result_(true), |
101 current_limit_bytes_(0), | 98 current_limit_bytes_(0), |
102 current_priority_cutoff_value_(0) { | 99 current_priority_cutoff_value_(0) { |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
172 override {} | 169 override {} |
173 | 170 |
174 void set_reduce_memory_result(bool reduce_memory_result) { | 171 void set_reduce_memory_result(bool reduce_memory_result) { |
175 reduce_memory_result_ = reduce_memory_result; | 172 reduce_memory_result_ = reduce_memory_result; |
176 } | 173 } |
177 | 174 |
178 virtual bool CreateHostImpl(const LayerTreeSettings& settings, | 175 virtual bool CreateHostImpl(const LayerTreeSettings& settings, |
179 scoped_ptr<OutputSurface> output_surface) { | 176 scoped_ptr<OutputSurface> output_surface) { |
180 host_impl_ = LayerTreeHostImpl::Create( | 177 host_impl_ = LayerTreeHostImpl::Create( |
181 settings, this, &proxy_, &stats_instrumentation_, | 178 settings, this, &proxy_, &stats_instrumentation_, |
182 shared_bitmap_manager_.get(), gpu_memory_buffer_manager_.get(), | 179 &shared_bitmap_manager_, &gpu_memory_buffer_manager_, |
183 task_graph_runner_.get(), 0); | 180 &task_graph_runner_, 0); |
184 bool init = host_impl_->InitializeRenderer(output_surface.Pass()); | 181 bool init = host_impl_->InitializeRenderer(output_surface.Pass()); |
185 host_impl_->SetViewportSize(gfx::Size(10, 10)); | 182 host_impl_->SetViewportSize(gfx::Size(10, 10)); |
186 // Set the BeginFrameArgs so that methods which use it are able to. | 183 // Set the BeginFrameArgs so that methods which use it are able to. |
187 host_impl_->WillBeginImplFrame( | 184 host_impl_->WillBeginImplFrame( |
188 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE)); | 185 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE)); |
189 return init; | 186 return init; |
190 } | 187 } |
191 | 188 |
192 void SetupRootLayerImpl(scoped_ptr<LayerImpl> root) { | 189 void SetupRootLayerImpl(scoped_ptr<LayerImpl> root) { |
193 root->SetPosition(gfx::PointF()); | 190 root->SetPosition(gfx::PointF()); |
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
417 void DrawOneFrame() { | 414 void DrawOneFrame() { |
418 LayerTreeHostImpl::FrameData frame_data; | 415 LayerTreeHostImpl::FrameData frame_data; |
419 host_impl_->PrepareToDraw(&frame_data); | 416 host_impl_->PrepareToDraw(&frame_data); |
420 host_impl_->DidDrawAllLayers(frame_data); | 417 host_impl_->DidDrawAllLayers(frame_data); |
421 } | 418 } |
422 | 419 |
423 FakeProxy proxy_; | 420 FakeProxy proxy_; |
424 DebugScopedSetImplThread always_impl_thread_; | 421 DebugScopedSetImplThread always_impl_thread_; |
425 DebugScopedSetMainThreadBlocked always_main_thread_blocked_; | 422 DebugScopedSetMainThreadBlocked always_main_thread_blocked_; |
426 | 423 |
427 scoped_ptr<TestSharedBitmapManager> shared_bitmap_manager_; | 424 TestSharedBitmapManager shared_bitmap_manager_; |
428 scoped_ptr<TestGpuMemoryBufferManager> gpu_memory_buffer_manager_; | 425 TestGpuMemoryBufferManager gpu_memory_buffer_manager_; |
429 scoped_ptr<TestTaskGraphRunner> task_graph_runner_; | 426 TestTaskGraphRunner task_graph_runner_; |
430 scoped_ptr<LayerTreeHostImpl> host_impl_; | 427 scoped_ptr<LayerTreeHostImpl> host_impl_; |
431 FakeRenderingStatsInstrumentation stats_instrumentation_; | 428 FakeRenderingStatsInstrumentation stats_instrumentation_; |
432 bool on_can_draw_state_changed_called_; | 429 bool on_can_draw_state_changed_called_; |
433 bool did_notify_ready_to_activate_; | 430 bool did_notify_ready_to_activate_; |
434 bool did_request_commit_; | 431 bool did_request_commit_; |
435 bool did_request_redraw_; | 432 bool did_request_redraw_; |
436 bool did_request_animate_; | 433 bool did_request_animate_; |
437 bool did_request_prepare_tiles_; | 434 bool did_request_prepare_tiles_; |
438 bool did_complete_page_scale_animation_; | 435 bool did_complete_page_scale_animation_; |
439 bool reduce_memory_result_; | 436 bool reduce_memory_result_; |
(...skipping 1317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1757 EXPECT_TRUE(did_complete_page_scale_animation_); | 1754 EXPECT_TRUE(did_complete_page_scale_animation_); |
1758 } | 1755 } |
1759 | 1756 |
1760 class LayerTreeHostImplOverridePhysicalTime : public LayerTreeHostImpl { | 1757 class LayerTreeHostImplOverridePhysicalTime : public LayerTreeHostImpl { |
1761 public: | 1758 public: |
1762 LayerTreeHostImplOverridePhysicalTime( | 1759 LayerTreeHostImplOverridePhysicalTime( |
1763 const LayerTreeSettings& settings, | 1760 const LayerTreeSettings& settings, |
1764 LayerTreeHostImplClient* client, | 1761 LayerTreeHostImplClient* client, |
1765 Proxy* proxy, | 1762 Proxy* proxy, |
1766 SharedBitmapManager* manager, | 1763 SharedBitmapManager* manager, |
| 1764 TaskGraphRunner* task_graph_runner, |
1767 RenderingStatsInstrumentation* rendering_stats_instrumentation) | 1765 RenderingStatsInstrumentation* rendering_stats_instrumentation) |
1768 : LayerTreeHostImpl(settings, | 1766 : LayerTreeHostImpl(settings, |
1769 client, | 1767 client, |
1770 proxy, | 1768 proxy, |
1771 rendering_stats_instrumentation, | 1769 rendering_stats_instrumentation, |
1772 manager, | 1770 manager, |
1773 NULL, | 1771 nullptr, |
1774 NULL, | 1772 task_graph_runner, |
1775 0) {} | 1773 0) {} |
1776 | 1774 |
1777 BeginFrameArgs CurrentBeginFrameArgs() const override { | 1775 BeginFrameArgs CurrentBeginFrameArgs() const override { |
1778 return CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, | 1776 return CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, |
1779 fake_current_physical_time_); | 1777 fake_current_physical_time_); |
1780 } | 1778 } |
1781 | 1779 |
1782 void SetCurrentPhysicalTimeTicksForTest(base::TimeTicks fake_now) { | 1780 void SetCurrentPhysicalTimeTicksForTest(base::TimeTicks fake_now) { |
1783 fake_current_physical_time_ = fake_now; | 1781 fake_current_physical_time_ = fake_now; |
1784 } | 1782 } |
1785 | 1783 |
1786 private: | 1784 private: |
1787 base::TimeTicks fake_current_physical_time_; | 1785 base::TimeTicks fake_current_physical_time_; |
1788 }; | 1786 }; |
1789 | 1787 |
1790 class LayerTreeHostImplTestScrollbarAnimation : public LayerTreeHostImplTest { | 1788 class LayerTreeHostImplTestScrollbarAnimation : public LayerTreeHostImplTest { |
1791 protected: | 1789 protected: |
1792 void SetupLayers(LayerTreeSettings settings) { | 1790 void SetupLayers(LayerTreeSettings settings) { |
1793 gfx::Size viewport_size(10, 10); | 1791 gfx::Size viewport_size(10, 10); |
1794 gfx::Size content_size(100, 100); | 1792 gfx::Size content_size(100, 100); |
1795 | 1793 |
1796 LayerTreeHostImplOverridePhysicalTime* host_impl_override_time = | 1794 LayerTreeHostImplOverridePhysicalTime* host_impl_override_time = |
1797 new LayerTreeHostImplOverridePhysicalTime(settings, this, &proxy_, | 1795 new LayerTreeHostImplOverridePhysicalTime( |
1798 shared_bitmap_manager_.get(), | 1796 settings, this, &proxy_, &shared_bitmap_manager_, |
1799 &stats_instrumentation_); | 1797 &task_graph_runner_, &stats_instrumentation_); |
1800 host_impl_ = make_scoped_ptr(host_impl_override_time); | 1798 host_impl_ = make_scoped_ptr(host_impl_override_time); |
1801 host_impl_->InitializeRenderer(CreateOutputSurface()); | 1799 host_impl_->InitializeRenderer(CreateOutputSurface()); |
1802 host_impl_->SetViewportSize(viewport_size); | 1800 host_impl_->SetViewportSize(viewport_size); |
1803 | 1801 |
1804 scoped_ptr<LayerImpl> root = | 1802 scoped_ptr<LayerImpl> root = |
1805 LayerImpl::Create(host_impl_->active_tree(), 1); | 1803 LayerImpl::Create(host_impl_->active_tree(), 1); |
1806 root->SetBounds(viewport_size); | 1804 root->SetBounds(viewport_size); |
1807 | 1805 |
1808 scoped_ptr<LayerImpl> scroll = | 1806 scoped_ptr<LayerImpl> scroll = |
1809 LayerImpl::Create(host_impl_->active_tree(), 2); | 1807 LayerImpl::Create(host_impl_->active_tree(), 2); |
(...skipping 3440 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5250 FakeOutputSurface::Create3d(context_provider)); | 5248 FakeOutputSurface::Create3d(context_provider)); |
5251 FakeOutputSurface* fake_output_surface = output_surface.get(); | 5249 FakeOutputSurface* fake_output_surface = output_surface.get(); |
5252 | 5250 |
5253 // This test creates its own LayerTreeHostImpl, so | 5251 // This test creates its own LayerTreeHostImpl, so |
5254 // that we can force partial swap enabled. | 5252 // that we can force partial swap enabled. |
5255 LayerTreeSettings settings; | 5253 LayerTreeSettings settings; |
5256 settings.renderer_settings.partial_swap_enabled = true; | 5254 settings.renderer_settings.partial_swap_enabled = true; |
5257 scoped_ptr<LayerTreeHostImpl> layer_tree_host_impl = | 5255 scoped_ptr<LayerTreeHostImpl> layer_tree_host_impl = |
5258 LayerTreeHostImpl::Create( | 5256 LayerTreeHostImpl::Create( |
5259 settings, this, &proxy_, &stats_instrumentation_, | 5257 settings, this, &proxy_, &stats_instrumentation_, |
5260 shared_bitmap_manager_.get(), NULL, task_graph_runner_.get(), 0); | 5258 &shared_bitmap_manager_, NULL, &task_graph_runner_, 0); |
5261 layer_tree_host_impl->InitializeRenderer(output_surface.Pass()); | 5259 layer_tree_host_impl->InitializeRenderer(output_surface.Pass()); |
5262 layer_tree_host_impl->WillBeginImplFrame( | 5260 layer_tree_host_impl->WillBeginImplFrame( |
5263 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE)); | 5261 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE)); |
5264 layer_tree_host_impl->SetViewportSize(gfx::Size(500, 500)); | 5262 layer_tree_host_impl->SetViewportSize(gfx::Size(500, 500)); |
5265 | 5263 |
5266 scoped_ptr<LayerImpl> root = | 5264 scoped_ptr<LayerImpl> root = |
5267 FakeDrawableLayerImpl::Create(layer_tree_host_impl->active_tree(), 1); | 5265 FakeDrawableLayerImpl::Create(layer_tree_host_impl->active_tree(), 1); |
5268 root->SetHasRenderSurface(true); | 5266 root->SetHasRenderSurface(true); |
5269 scoped_ptr<LayerImpl> child = | 5267 scoped_ptr<LayerImpl> child = |
5270 FakeDrawableLayerImpl::Create(layer_tree_host_impl->active_tree(), 2); | 5268 FakeDrawableLayerImpl::Create(layer_tree_host_impl->active_tree(), 2); |
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5530 host_impl_->DidDrawAllLayers(frame); | 5528 host_impl_->DidDrawAllLayers(frame); |
5531 } | 5529 } |
5532 Mock::VerifyAndClearExpectations(&mock_context); | 5530 Mock::VerifyAndClearExpectations(&mock_context); |
5533 } | 5531 } |
5534 | 5532 |
5535 static scoped_ptr<LayerTreeHostImpl> SetupLayersForOpacity( | 5533 static scoped_ptr<LayerTreeHostImpl> SetupLayersForOpacity( |
5536 bool partial_swap, | 5534 bool partial_swap, |
5537 LayerTreeHostImplClient* client, | 5535 LayerTreeHostImplClient* client, |
5538 Proxy* proxy, | 5536 Proxy* proxy, |
5539 SharedBitmapManager* manager, | 5537 SharedBitmapManager* manager, |
| 5538 TaskGraphRunner* task_graph_runner, |
5540 RenderingStatsInstrumentation* stats_instrumentation) { | 5539 RenderingStatsInstrumentation* stats_instrumentation) { |
5541 scoped_refptr<TestContextProvider> provider(TestContextProvider::Create()); | 5540 scoped_refptr<TestContextProvider> provider(TestContextProvider::Create()); |
5542 scoped_ptr<OutputSurface> output_surface( | 5541 scoped_ptr<OutputSurface> output_surface( |
5543 FakeOutputSurface::Create3d(provider)); | 5542 FakeOutputSurface::Create3d(provider)); |
5544 provider->BindToCurrentThread(); | 5543 provider->BindToCurrentThread(); |
5545 provider->TestContext3d()->set_have_post_sub_buffer(true); | 5544 provider->TestContext3d()->set_have_post_sub_buffer(true); |
5546 | 5545 |
5547 LayerTreeSettings settings; | 5546 LayerTreeSettings settings; |
5548 settings.renderer_settings.partial_swap_enabled = partial_swap; | 5547 settings.renderer_settings.partial_swap_enabled = partial_swap; |
5549 scoped_ptr<LayerTreeHostImpl> my_host_impl = LayerTreeHostImpl::Create( | 5548 scoped_ptr<LayerTreeHostImpl> my_host_impl = |
5550 settings, client, proxy, stats_instrumentation, manager, NULL, NULL, 0); | 5549 LayerTreeHostImpl::Create(settings, client, proxy, stats_instrumentation, |
| 5550 manager, nullptr, task_graph_runner, 0); |
5551 my_host_impl->InitializeRenderer(output_surface.Pass()); | 5551 my_host_impl->InitializeRenderer(output_surface.Pass()); |
5552 my_host_impl->WillBeginImplFrame( | 5552 my_host_impl->WillBeginImplFrame( |
5553 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE)); | 5553 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE)); |
5554 my_host_impl->SetViewportSize(gfx::Size(100, 100)); | 5554 my_host_impl->SetViewportSize(gfx::Size(100, 100)); |
5555 | 5555 |
5556 /* | 5556 /* |
5557 Layers are created as follows: | 5557 Layers are created as follows: |
5558 | 5558 |
5559 +--------------------+ | 5559 +--------------------+ |
5560 | 1 | | 5560 | 1 | |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5605 grand_child->SetDrawsContent(true); | 5605 grand_child->SetDrawsContent(true); |
5606 | 5606 |
5607 child->AddChild(grand_child.Pass()); | 5607 child->AddChild(grand_child.Pass()); |
5608 root->AddChild(child.Pass()); | 5608 root->AddChild(child.Pass()); |
5609 | 5609 |
5610 my_host_impl->active_tree()->SetRootLayer(root.Pass()); | 5610 my_host_impl->active_tree()->SetRootLayer(root.Pass()); |
5611 return my_host_impl.Pass(); | 5611 return my_host_impl.Pass(); |
5612 } | 5612 } |
5613 | 5613 |
5614 TEST_F(LayerTreeHostImplTest, ContributingLayerEmptyScissorPartialSwap) { | 5614 TEST_F(LayerTreeHostImplTest, ContributingLayerEmptyScissorPartialSwap) { |
5615 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 5615 TestSharedBitmapManager shared_bitmap_manager; |
5616 new TestSharedBitmapManager()); | 5616 TestTaskGraphRunner task_graph_runner; |
5617 scoped_ptr<LayerTreeHostImpl> my_host_impl = | 5617 scoped_ptr<LayerTreeHostImpl> my_host_impl = |
5618 SetupLayersForOpacity(true, | 5618 SetupLayersForOpacity(true, this, &proxy_, &shared_bitmap_manager, |
5619 this, | 5619 &task_graph_runner, &stats_instrumentation_); |
5620 &proxy_, | |
5621 shared_bitmap_manager.get(), | |
5622 &stats_instrumentation_); | |
5623 { | 5620 { |
5624 LayerTreeHostImpl::FrameData frame; | 5621 LayerTreeHostImpl::FrameData frame; |
5625 EXPECT_EQ(DRAW_SUCCESS, my_host_impl->PrepareToDraw(&frame)); | 5622 EXPECT_EQ(DRAW_SUCCESS, my_host_impl->PrepareToDraw(&frame)); |
5626 | 5623 |
5627 // Verify all quads have been computed | 5624 // Verify all quads have been computed |
5628 ASSERT_EQ(2U, frame.render_passes.size()); | 5625 ASSERT_EQ(2U, frame.render_passes.size()); |
5629 ASSERT_EQ(1U, frame.render_passes[0]->quad_list.size()); | 5626 ASSERT_EQ(1U, frame.render_passes[0]->quad_list.size()); |
5630 ASSERT_EQ(1U, frame.render_passes[1]->quad_list.size()); | 5627 ASSERT_EQ(1U, frame.render_passes[1]->quad_list.size()); |
5631 EXPECT_EQ(DrawQuad::SOLID_COLOR, | 5628 EXPECT_EQ(DrawQuad::SOLID_COLOR, |
5632 frame.render_passes[0]->quad_list.front()->material); | 5629 frame.render_passes[0]->quad_list.front()->material); |
5633 EXPECT_EQ(DrawQuad::RENDER_PASS, | 5630 EXPECT_EQ(DrawQuad::RENDER_PASS, |
5634 frame.render_passes[1]->quad_list.front()->material); | 5631 frame.render_passes[1]->quad_list.front()->material); |
5635 | 5632 |
5636 my_host_impl->DrawLayers(&frame); | 5633 my_host_impl->DrawLayers(&frame); |
5637 my_host_impl->DidDrawAllLayers(frame); | 5634 my_host_impl->DidDrawAllLayers(frame); |
5638 } | 5635 } |
5639 } | 5636 } |
5640 | 5637 |
5641 TEST_F(LayerTreeHostImplTest, ContributingLayerEmptyScissorNoPartialSwap) { | 5638 TEST_F(LayerTreeHostImplTest, ContributingLayerEmptyScissorNoPartialSwap) { |
5642 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 5639 TestSharedBitmapManager shared_bitmap_manager; |
5643 new TestSharedBitmapManager()); | 5640 TestTaskGraphRunner task_graph_runner; |
5644 scoped_ptr<LayerTreeHostImpl> my_host_impl = | 5641 scoped_ptr<LayerTreeHostImpl> my_host_impl = |
5645 SetupLayersForOpacity(false, | 5642 SetupLayersForOpacity(false, this, &proxy_, &shared_bitmap_manager, |
5646 this, | 5643 &task_graph_runner, &stats_instrumentation_); |
5647 &proxy_, | |
5648 shared_bitmap_manager.get(), | |
5649 &stats_instrumentation_); | |
5650 { | 5644 { |
5651 LayerTreeHostImpl::FrameData frame; | 5645 LayerTreeHostImpl::FrameData frame; |
5652 EXPECT_EQ(DRAW_SUCCESS, my_host_impl->PrepareToDraw(&frame)); | 5646 EXPECT_EQ(DRAW_SUCCESS, my_host_impl->PrepareToDraw(&frame)); |
5653 | 5647 |
5654 // Verify all quads have been computed | 5648 // Verify all quads have been computed |
5655 ASSERT_EQ(2U, frame.render_passes.size()); | 5649 ASSERT_EQ(2U, frame.render_passes.size()); |
5656 ASSERT_EQ(1U, frame.render_passes[0]->quad_list.size()); | 5650 ASSERT_EQ(1U, frame.render_passes[0]->quad_list.size()); |
5657 ASSERT_EQ(1U, frame.render_passes[1]->quad_list.size()); | 5651 ASSERT_EQ(1U, frame.render_passes[1]->quad_list.size()); |
5658 EXPECT_EQ(DrawQuad::SOLID_COLOR, | 5652 EXPECT_EQ(DrawQuad::SOLID_COLOR, |
5659 frame.render_passes[0]->quad_list.front()->material); | 5653 frame.render_passes[0]->quad_list.front()->material); |
(...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6094 | 6088 |
6095 EXPECT_EQ(1u, frame.will_draw_layers.size()); | 6089 EXPECT_EQ(1u, frame.will_draw_layers.size()); |
6096 EXPECT_EQ(host_impl_->active_tree()->root_layer(), frame.will_draw_layers[0]); | 6090 EXPECT_EQ(host_impl_->active_tree()->root_layer(), frame.will_draw_layers[0]); |
6097 } | 6091 } |
6098 | 6092 |
6099 // Checks that we have a non-0 default allocation if we pass a context that | 6093 // Checks that we have a non-0 default allocation if we pass a context that |
6100 // doesn't support memory management extensions. | 6094 // doesn't support memory management extensions. |
6101 TEST_F(LayerTreeHostImplTest, DefaultMemoryAllocation) { | 6095 TEST_F(LayerTreeHostImplTest, DefaultMemoryAllocation) { |
6102 LayerTreeSettings settings; | 6096 LayerTreeSettings settings; |
6103 host_impl_ = LayerTreeHostImpl::Create( | 6097 host_impl_ = LayerTreeHostImpl::Create( |
6104 settings, this, &proxy_, &stats_instrumentation_, | 6098 settings, this, &proxy_, &stats_instrumentation_, &shared_bitmap_manager_, |
6105 shared_bitmap_manager_.get(), gpu_memory_buffer_manager_.get(), | 6099 &gpu_memory_buffer_manager_, &task_graph_runner_, 0); |
6106 task_graph_runner_.get(), 0); | |
6107 | 6100 |
6108 scoped_ptr<OutputSurface> output_surface( | 6101 scoped_ptr<OutputSurface> output_surface( |
6109 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create())); | 6102 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create())); |
6110 host_impl_->InitializeRenderer(output_surface.Pass()); | 6103 host_impl_->InitializeRenderer(output_surface.Pass()); |
6111 EXPECT_LT(0ul, host_impl_->memory_allocation_limit_bytes()); | 6104 EXPECT_LT(0ul, host_impl_->memory_allocation_limit_bytes()); |
6112 } | 6105 } |
6113 | 6106 |
6114 TEST_F(LayerTreeHostImplTest, MemoryPolicy) { | 6107 TEST_F(LayerTreeHostImplTest, MemoryPolicy) { |
6115 ManagedMemoryPolicy policy1( | 6108 ManagedMemoryPolicy policy1( |
6116 456, gpu::MemoryAllocation::CUTOFF_ALLOW_EVERYTHING, 1000); | 6109 456, gpu::MemoryAllocation::CUTOFF_ALLOW_EVERYTHING, 1000); |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6205 host_impl_->UpdateTreeResourcesForGpuRasterizationIfNeeded(); | 6198 host_impl_->UpdateTreeResourcesForGpuRasterizationIfNeeded(); |
6206 EXPECT_TRUE(host_impl_->RequiresHighResToDraw()); | 6199 EXPECT_TRUE(host_impl_->RequiresHighResToDraw()); |
6207 } | 6200 } |
6208 | 6201 |
6209 class LayerTreeHostImplTestPrepareTiles : public LayerTreeHostImplTest { | 6202 class LayerTreeHostImplTestPrepareTiles : public LayerTreeHostImplTest { |
6210 public: | 6203 public: |
6211 void SetUp() override { | 6204 void SetUp() override { |
6212 LayerTreeSettings settings; | 6205 LayerTreeSettings settings; |
6213 settings.impl_side_painting = true; | 6206 settings.impl_side_painting = true; |
6214 | 6207 |
6215 fake_host_impl_ = new FakeLayerTreeHostImpl(settings, &proxy_, | 6208 fake_host_impl_ = new FakeLayerTreeHostImpl( |
6216 shared_bitmap_manager_.get(), | 6209 settings, &proxy_, &shared_bitmap_manager_, &task_graph_runner_); |
6217 task_graph_runner_.get()); | |
6218 host_impl_.reset(fake_host_impl_); | 6210 host_impl_.reset(fake_host_impl_); |
6219 host_impl_->InitializeRenderer(CreateOutputSurface()); | 6211 host_impl_->InitializeRenderer(CreateOutputSurface()); |
6220 host_impl_->SetViewportSize(gfx::Size(10, 10)); | 6212 host_impl_->SetViewportSize(gfx::Size(10, 10)); |
6221 } | 6213 } |
6222 | 6214 |
6223 FakeLayerTreeHostImpl* fake_host_impl_; | 6215 FakeLayerTreeHostImpl* fake_host_impl_; |
6224 }; | 6216 }; |
6225 | 6217 |
6226 TEST_F(LayerTreeHostImplTestPrepareTiles, PrepareTilesWhenInvisible) { | 6218 TEST_F(LayerTreeHostImplTestPrepareTiles, PrepareTilesWhenInvisible) { |
6227 fake_host_impl_->DidModifyTilePriorities(); | 6219 fake_host_impl_->DidModifyTilePriorities(); |
(...skipping 1820 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8048 // Hold an unowned pointer to the output surface to use for mock expectations. | 8040 // Hold an unowned pointer to the output surface to use for mock expectations. |
8049 MockReclaimResourcesOutputSurface* mock_output_surface = output_surface.get(); | 8041 MockReclaimResourcesOutputSurface* mock_output_surface = output_surface.get(); |
8050 | 8042 |
8051 CreateHostImpl(DefaultSettings(), output_surface.Pass()); | 8043 CreateHostImpl(DefaultSettings(), output_surface.Pass()); |
8052 EXPECT_CALL(*mock_output_surface, ForceReclaimResources()).Times(1); | 8044 EXPECT_CALL(*mock_output_surface, ForceReclaimResources()).Times(1); |
8053 host_impl_->BeginCommit(); | 8045 host_impl_->BeginCommit(); |
8054 } | 8046 } |
8055 | 8047 |
8056 } // namespace | 8048 } // namespace |
8057 } // namespace cc | 8049 } // namespace cc |
OLD | NEW |