| 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.h" | 5 #include "cc/trees/layer_tree_host.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 3333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3344 settings->using_synchronous_renderer_compositor = true; | 3344 settings->using_synchronous_renderer_compositor = true; |
| 3345 } | 3345 } |
| 3346 | 3346 |
| 3347 std::unique_ptr<TestCompositorFrameSink> CreateCompositorFrameSink( | 3347 std::unique_ptr<TestCompositorFrameSink> CreateCompositorFrameSink( |
| 3348 scoped_refptr<ContextProvider> compositor_context_provider, | 3348 scoped_refptr<ContextProvider> compositor_context_provider, |
| 3349 scoped_refptr<ContextProvider> worker_context_provider) override { | 3349 scoped_refptr<ContextProvider> worker_context_provider) override { |
| 3350 auto on_draw_callback = base::Bind( | 3350 auto on_draw_callback = base::Bind( |
| 3351 &LayerTreeHostTestAbortedCommitDoesntStallSynchronousCompositor:: | 3351 &LayerTreeHostTestAbortedCommitDoesntStallSynchronousCompositor:: |
| 3352 CallOnDraw, | 3352 CallOnDraw, |
| 3353 base::Unretained(this)); | 3353 base::Unretained(this)); |
| 3354 RendererSettings renderer_settings; |
| 3355 InitializeRendererSettings(&renderer_settings); |
| 3354 auto frame_sink = base::MakeUnique<OnDrawCompositorFrameSink>( | 3356 auto frame_sink = base::MakeUnique<OnDrawCompositorFrameSink>( |
| 3355 compositor_context_provider, std::move(worker_context_provider), | 3357 compositor_context_provider, std::move(worker_context_provider), |
| 3356 shared_bitmap_manager(), gpu_memory_buffer_manager(), | 3358 shared_bitmap_manager(), gpu_memory_buffer_manager(), renderer_settings, |
| 3357 layer_tree_host()->GetSettings().renderer_settings, | |
| 3358 ImplThreadTaskRunner(), false /* synchronous_composite */, | 3359 ImplThreadTaskRunner(), false /* synchronous_composite */, |
| 3359 std::move(on_draw_callback)); | 3360 std::move(on_draw_callback)); |
| 3360 compositor_frame_sink_ = frame_sink.get(); | 3361 compositor_frame_sink_ = frame_sink.get(); |
| 3361 return std::move(frame_sink); | 3362 return std::move(frame_sink); |
| 3362 } | 3363 } |
| 3363 | 3364 |
| 3364 void CallOnDraw() { | 3365 void CallOnDraw() { |
| 3365 if (!TestEnded()) { | 3366 if (!TestEnded()) { |
| 3366 // Synchronous compositor does not draw unless told to do so by the output | 3367 // Synchronous compositor does not draw unless told to do so by the output |
| 3367 // surface. But it needs to be done on a new stack frame. | 3368 // surface. But it needs to be done on a new stack frame. |
| (...skipping 2598 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5966 | 5967 |
| 5967 void InitializeSettings(LayerTreeSettings* settings) override { | 5968 void InitializeSettings(LayerTreeSettings* settings) override { |
| 5968 settings->single_thread_proxy_scheduler = false; | 5969 settings->single_thread_proxy_scheduler = false; |
| 5969 settings->use_zero_copy = true; | 5970 settings->use_zero_copy = true; |
| 5970 } | 5971 } |
| 5971 | 5972 |
| 5972 std::unique_ptr<TestCompositorFrameSink> CreateCompositorFrameSink( | 5973 std::unique_ptr<TestCompositorFrameSink> CreateCompositorFrameSink( |
| 5973 scoped_refptr<ContextProvider> compositor_context_provider, | 5974 scoped_refptr<ContextProvider> compositor_context_provider, |
| 5974 scoped_refptr<ContextProvider> worker_context_provider) override { | 5975 scoped_refptr<ContextProvider> worker_context_provider) override { |
| 5975 constexpr bool disable_display_vsync = false; | 5976 constexpr bool disable_display_vsync = false; |
| 5977 RendererSettings renderer_settings; |
| 5978 InitializeRendererSettings(&renderer_settings); |
| 5976 bool synchronous_composite = | 5979 bool synchronous_composite = |
| 5977 !HasImplThread() && | 5980 !HasImplThread() && |
| 5978 !layer_tree_host()->GetSettings().single_thread_proxy_scheduler; | 5981 !layer_tree_host()->GetSettings().single_thread_proxy_scheduler; |
| 5979 return base::MakeUnique<TestCompositorFrameSink>( | 5982 return base::MakeUnique<TestCompositorFrameSink>( |
| 5980 compositor_context_provider, std::move(worker_context_provider), | 5983 compositor_context_provider, std::move(worker_context_provider), |
| 5981 shared_bitmap_manager(), gpu_memory_buffer_manager(), | 5984 shared_bitmap_manager(), gpu_memory_buffer_manager(), renderer_settings, |
| 5982 layer_tree_host()->GetSettings().renderer_settings, | |
| 5983 ImplThreadTaskRunner(), synchronous_composite, disable_display_vsync); | 5985 ImplThreadTaskRunner(), synchronous_composite, disable_display_vsync); |
| 5984 } | 5986 } |
| 5985 | 5987 |
| 5986 void BeginTest() override { | 5988 void BeginTest() override { |
| 5987 // Successful composite. | 5989 // Successful composite. |
| 5988 std::unique_ptr<SwapPromise> swap_promise0( | 5990 std::unique_ptr<SwapPromise> swap_promise0( |
| 5989 new TestSwapPromise(&swap_promise_result_[0])); | 5991 new TestSwapPromise(&swap_promise_result_[0])); |
| 5990 layer_tree_host()->GetSwapPromiseManager()->QueueSwapPromise( | 5992 layer_tree_host()->GetSwapPromiseManager()->QueueSwapPromise( |
| 5991 std::move(swap_promise0)); | 5993 std::move(swap_promise0)); |
| 5992 layer_tree_host()->Composite(base::TimeTicks::Now()); | 5994 layer_tree_host()->Composite(base::TimeTicks::Now()); |
| (...skipping 1970 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7963 void AfterTest() override {} | 7965 void AfterTest() override {} |
| 7964 | 7966 |
| 7965 private: | 7967 private: |
| 7966 bool received_ack_ = false; | 7968 bool received_ack_ = false; |
| 7967 }; | 7969 }; |
| 7968 | 7970 |
| 7969 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestDiscardAckAfterRelease); | 7971 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestDiscardAckAfterRelease); |
| 7970 | 7972 |
| 7971 } // namespace | 7973 } // namespace |
| 7972 } // namespace cc | 7974 } // namespace cc |
| OLD | NEW |