| 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/test/layer_tree_test.h" | 5 #include "cc/test/layer_tree_test.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/location.h" | 8 #include "base/location.h" |
| 9 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| (...skipping 807 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 818 | 818 |
| 819 image_worker_ = base::MakeUnique<base::Thread>("ImageWorker"); | 819 image_worker_ = base::MakeUnique<base::Thread>("ImageWorker"); |
| 820 ASSERT_TRUE(image_worker_->Start()); | 820 ASSERT_TRUE(image_worker_->Start()); |
| 821 | 821 |
| 822 shared_bitmap_manager_.reset(new TestSharedBitmapManager); | 822 shared_bitmap_manager_.reset(new TestSharedBitmapManager); |
| 823 gpu_memory_buffer_manager_.reset(new TestGpuMemoryBufferManager); | 823 gpu_memory_buffer_manager_.reset(new TestGpuMemoryBufferManager); |
| 824 task_graph_runner_.reset(new TestTaskGraphRunner); | 824 task_graph_runner_.reset(new TestTaskGraphRunner); |
| 825 | 825 |
| 826 // Spend less time waiting for BeginFrame because the output is | 826 // Spend less time waiting for BeginFrame because the output is |
| 827 // mocked out. | 827 // mocked out. |
| 828 settings_.renderer_settings.refresh_rate = 200.0; | |
| 829 settings_.background_animation_rate = 200.0; | 828 settings_.background_animation_rate = 200.0; |
| 830 // Disable latency recovery to make the scheduler more predictable in its | 829 // Disable latency recovery to make the scheduler more predictable in its |
| 831 // actions and less dependent on timings to make decisions. | 830 // actions and less dependent on timings to make decisions. |
| 832 settings_.enable_latency_recovery = false; | 831 settings_.enable_latency_recovery = false; |
| 833 settings_.renderer_settings.buffer_to_texture_target_map = | 832 settings_.buffer_to_texture_target_map = |
| 834 DefaultBufferToTextureTargetMapForTesting(); | 833 DefaultBufferToTextureTargetMapForTesting(); |
| 835 InitializeSettings(&settings_); | 834 InitializeSettings(&settings_); |
| 836 | 835 |
| 837 base::ThreadTaskRunnerHandle::Get()->PostTask( | 836 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 838 FROM_HERE, | 837 FROM_HERE, |
| 839 base::BindOnce(&LayerTreeTest::DoBeginTest, base::Unretained(this))); | 838 base::BindOnce(&LayerTreeTest::DoBeginTest, base::Unretained(this))); |
| 840 | 839 |
| 841 base::RunLoop().Run(); | 840 base::RunLoop().Run(); |
| 842 DestroyLayerTreeHost(); | 841 DestroyLayerTreeHost(); |
| 843 | 842 |
| 844 timeout_.Cancel(); | 843 timeout_.Cancel(); |
| 845 | 844 |
| 846 ASSERT_FALSE(layer_tree_host_.get()); | 845 ASSERT_FALSE(layer_tree_host_.get()); |
| 847 client_ = nullptr; | 846 client_ = nullptr; |
| 848 if (timed_out_) { | 847 if (timed_out_) { |
| 849 FAIL() << "Test timed out"; | 848 FAIL() << "Test timed out"; |
| 850 return; | 849 return; |
| 851 } | 850 } |
| 852 AfterTest(); | 851 AfterTest(); |
| 853 } | 852 } |
| 854 | 853 |
| 855 void LayerTreeTest::RequestNewCompositorFrameSink() { | 854 void LayerTreeTest::RequestNewCompositorFrameSink() { |
| 856 scoped_refptr<TestContextProvider> shared_context_provider = | 855 scoped_refptr<TestContextProvider> shared_context_provider = |
| 857 TestContextProvider::Create(); | 856 TestContextProvider::Create(); |
| 858 scoped_refptr<TestContextProvider> worker_context_provider = | 857 scoped_refptr<TestContextProvider> worker_context_provider = |
| 859 TestContextProvider::CreateWorker(); | 858 TestContextProvider::CreateWorker(); |
| 860 | 859 |
| 860 RendererSettings renderer_settings; |
| 861 renderer_settings.refresh_rate = 200.0; |
| 862 renderer_settings.buffer_to_texture_target_map = |
| 863 DefaultBufferToTextureTargetMapForTesting(); |
| 861 auto compositor_frame_sink = CreateCompositorFrameSink( | 864 auto compositor_frame_sink = CreateCompositorFrameSink( |
| 862 std::move(shared_context_provider), std::move(worker_context_provider)); | 865 renderer_settings, std::move(shared_context_provider), |
| 866 std::move(worker_context_provider)); |
| 863 compositor_frame_sink->SetClient(compositor_frame_sink_client_.get()); | 867 compositor_frame_sink->SetClient(compositor_frame_sink_client_.get()); |
| 864 layer_tree_host_->SetCompositorFrameSink(std::move(compositor_frame_sink)); | 868 layer_tree_host_->SetCompositorFrameSink(std::move(compositor_frame_sink)); |
| 865 } | 869 } |
| 866 | 870 |
| 867 std::unique_ptr<TestCompositorFrameSink> | 871 std::unique_ptr<TestCompositorFrameSink> |
| 868 LayerTreeTest::CreateCompositorFrameSink( | 872 LayerTreeTest::CreateCompositorFrameSink( |
| 873 const RendererSettings& renderer_settings, |
| 869 scoped_refptr<ContextProvider> compositor_context_provider, | 874 scoped_refptr<ContextProvider> compositor_context_provider, |
| 870 scoped_refptr<ContextProvider> worker_context_provider) { | 875 scoped_refptr<ContextProvider> worker_context_provider) { |
| 871 constexpr bool disable_display_vsync = false; | 876 constexpr bool disable_display_vsync = false; |
| 872 bool synchronous_composite = | 877 bool synchronous_composite = |
| 873 !HasImplThread() && | 878 !HasImplThread() && |
| 874 !layer_tree_host()->GetSettings().single_thread_proxy_scheduler; | 879 !layer_tree_host()->GetSettings().single_thread_proxy_scheduler; |
| 875 return base::MakeUnique<TestCompositorFrameSink>( | 880 return base::MakeUnique<TestCompositorFrameSink>( |
| 876 compositor_context_provider, std::move(worker_context_provider), | 881 compositor_context_provider, std::move(worker_context_provider), |
| 877 shared_bitmap_manager(), gpu_memory_buffer_manager(), | 882 shared_bitmap_manager(), gpu_memory_buffer_manager(), renderer_settings, |
| 878 layer_tree_host()->GetSettings().renderer_settings, impl_task_runner_, | 883 impl_task_runner_, synchronous_composite, disable_display_vsync); |
| 879 synchronous_composite, disable_display_vsync); | |
| 880 } | 884 } |
| 881 | 885 |
| 882 std::unique_ptr<OutputSurface> | 886 std::unique_ptr<OutputSurface> |
| 883 LayerTreeTest::CreateDisplayOutputSurfaceOnThread( | 887 LayerTreeTest::CreateDisplayOutputSurfaceOnThread( |
| 884 scoped_refptr<ContextProvider> compositor_context_provider) { | 888 scoped_refptr<ContextProvider> compositor_context_provider) { |
| 885 // By default the Display shares a context with the LayerTreeHostImpl. | 889 // By default the Display shares a context with the LayerTreeHostImpl. |
| 886 return FakeOutputSurface::Create3d(std::move(compositor_context_provider)); | 890 return FakeOutputSurface::Create3d(std::move(compositor_context_provider)); |
| 887 } | 891 } |
| 888 | 892 |
| 889 void LayerTreeTest::DestroyLayerTreeHost() { | 893 void LayerTreeTest::DestroyLayerTreeHost() { |
| (...skipping 16 matching lines...) Expand all Loading... |
| 906 DCHECK(task_runner_provider()->IsMainThread() || | 910 DCHECK(task_runner_provider()->IsMainThread() || |
| 907 task_runner_provider()->IsMainThreadBlocked()); | 911 task_runner_provider()->IsMainThreadBlocked()); |
| 908 return layer_tree_host_.get(); | 912 return layer_tree_host_.get(); |
| 909 } | 913 } |
| 910 | 914 |
| 911 Proxy* LayerTreeTest::proxy() { | 915 Proxy* LayerTreeTest::proxy() { |
| 912 return layer_tree_host() ? layer_tree_host()->proxy() : NULL; | 916 return layer_tree_host() ? layer_tree_host()->proxy() : NULL; |
| 913 } | 917 } |
| 914 | 918 |
| 915 } // namespace cc | 919 } // namespace cc |
| OLD | NEW |