| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_pixel_test.h" | 5 #include "cc/test/layer_tree_pixel_test.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| 11 #include "base/path_service.h" | 11 #include "base/path_service.h" |
| 12 #include "cc/base/switches.h" | 12 #include "cc/base/switches.h" |
| 13 #include "cc/layers/solid_color_layer.h" | 13 #include "cc/layers/solid_color_layer.h" |
| 14 #include "cc/layers/texture_layer.h" | 14 #include "cc/layers/texture_layer.h" |
| 15 #include "cc/output/copy_output_request.h" | 15 #include "cc/output/copy_output_request.h" |
| 16 #include "cc/output/copy_output_result.h" | 16 #include "cc/output/copy_output_result.h" |
| 17 #include "cc/output/texture_mailbox_deleter.h" | |
| 18 #include "cc/resources/texture_mailbox.h" | 17 #include "cc/resources/texture_mailbox.h" |
| 19 #include "cc/scheduler/begin_frame_source.h" | |
| 20 #include "cc/scheduler/delay_based_time_source.h" | |
| 21 #include "cc/test/paths.h" | 18 #include "cc/test/paths.h" |
| 22 #include "cc/test/pixel_comparator.h" | 19 #include "cc/test/pixel_comparator.h" |
| 23 #include "cc/test/pixel_test_output_surface.h" | 20 #include "cc/test/pixel_test_output_surface.h" |
| 24 #include "cc/test/pixel_test_software_output_device.h" | 21 #include "cc/test/pixel_test_software_output_device.h" |
| 25 #include "cc/test/pixel_test_utils.h" | 22 #include "cc/test/pixel_test_utils.h" |
| 26 #include "cc/test/test_delegating_output_surface.h" | 23 #include "cc/test/test_delegating_output_surface.h" |
| 27 #include "cc/test/test_in_process_context_provider.h" | 24 #include "cc/test/test_in_process_context_provider.h" |
| 28 #include "cc/trees/layer_tree_impl.h" | 25 #include "cc/trees/layer_tree_impl.h" |
| 29 #include "gpu/command_buffer/client/gl_in_process_context.h" | 26 #include "gpu/command_buffer/client/gl_in_process_context.h" |
| 30 #include "gpu/command_buffer/client/gles2_implementation.h" | 27 #include "gpu/command_buffer/client/gles2_implementation.h" |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 } else { | 61 } else { |
| 65 std::unique_ptr<PixelTestSoftwareOutputDevice> software_output_device( | 62 std::unique_ptr<PixelTestSoftwareOutputDevice> software_output_device( |
| 66 new PixelTestSoftwareOutputDevice); | 63 new PixelTestSoftwareOutputDevice); |
| 67 software_output_device->set_surface_expansion_size(surface_expansion_size); | 64 software_output_device->set_surface_expansion_size(surface_expansion_size); |
| 68 display_output_surface = base::MakeUnique<PixelTestOutputSurface>( | 65 display_output_surface = base::MakeUnique<PixelTestOutputSurface>( |
| 69 std::move(software_output_device)); | 66 std::move(software_output_device)); |
| 70 } | 67 } |
| 71 display_output_surface->set_surface_expansion_size(surface_expansion_size); | 68 display_output_surface->set_surface_expansion_size(surface_expansion_size); |
| 72 | 69 |
| 73 auto* task_runner = ImplThreadTaskRunner(); | 70 auto* task_runner = ImplThreadTaskRunner(); |
| 74 CHECK(task_runner); | 71 bool synchronous_composite = |
| 75 | 72 !HasImplThread() && |
| 76 std::unique_ptr<SyntheticBeginFrameSource> begin_frame_source; | 73 !layer_tree_host()->settings().single_thread_proxy_scheduler; |
| 77 std::unique_ptr<DisplayScheduler> scheduler; | 74 auto delegating_output_surface = |
| 78 if (layer_tree_host()->settings().single_thread_proxy_scheduler) { | 75 base::MakeUnique<TestDelegatingOutputSurface>( |
| 79 begin_frame_source.reset(new DelayBasedBeginFrameSource( | 76 std::move(compositor_context_provider), |
| 80 base::MakeUnique<DelayBasedTimeSource>(task_runner))); | 77 std::move(worker_context_provider), std::move(display_output_surface), |
| 81 scheduler.reset(new DisplayScheduler( | 78 shared_bitmap_manager(), gpu_memory_buffer_manager(), |
| 82 begin_frame_source.get(), task_runner, | 79 RendererSettings(), task_runner, synchronous_composite); |
| 83 display_output_surface->capabilities().max_frames_pending)); | 80 delegating_output_surface->display()->SetEnlargePassTextureAmountForTesting( |
| 84 } | 81 enlarge_texture_amount_); |
| 85 | 82 return std::move(delegating_output_surface); |
| 86 std::unique_ptr<Display> display( | |
| 87 new Display(shared_bitmap_manager(), gpu_memory_buffer_manager(), | |
| 88 RendererSettings(), std::move(begin_frame_source), | |
| 89 std::move(display_output_surface), std::move(scheduler), | |
| 90 base::MakeUnique<TextureMailboxDeleter>(task_runner))); | |
| 91 display->SetEnlargePassTextureAmountForTesting(enlarge_texture_amount_); | |
| 92 | |
| 93 const bool context_shared_with_compositor = false; | |
| 94 const bool allow_force_reclaim_resources = true; | |
| 95 return base::MakeUnique<TestDelegatingOutputSurface>( | |
| 96 std::move(compositor_context_provider), | |
| 97 std::move(worker_context_provider), std::move(display), | |
| 98 context_shared_with_compositor, allow_force_reclaim_resources); | |
| 99 } | 83 } |
| 100 | 84 |
| 101 std::unique_ptr<CopyOutputRequest> | 85 std::unique_ptr<CopyOutputRequest> |
| 102 LayerTreePixelTest::CreateCopyOutputRequest() { | 86 LayerTreePixelTest::CreateCopyOutputRequest() { |
| 103 return CopyOutputRequest::CreateBitmapRequest( | 87 return CopyOutputRequest::CreateBitmapRequest( |
| 104 base::Bind(&LayerTreePixelTest::ReadbackResult, base::Unretained(this))); | 88 base::Bind(&LayerTreePixelTest::ReadbackResult, base::Unretained(this))); |
| 105 } | 89 } |
| 106 | 90 |
| 107 void LayerTreePixelTest::ReadbackResult( | 91 void LayerTreePixelTest::ReadbackResult( |
| 108 std::unique_ptr<CopyOutputResult> result) { | 92 std::unique_ptr<CopyOutputResult> result) { |
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 297 } | 281 } |
| 298 | 282 |
| 299 void LayerTreePixelTest::Finish() { | 283 void LayerTreePixelTest::Finish() { |
| 300 std::unique_ptr<gpu::GLInProcessContext> context = | 284 std::unique_ptr<gpu::GLInProcessContext> context = |
| 301 CreateTestInProcessContext(); | 285 CreateTestInProcessContext(); |
| 302 GLES2Interface* gl = context->GetImplementation(); | 286 GLES2Interface* gl = context->GetImplementation(); |
| 303 gl->Finish(); | 287 gl->Finish(); |
| 304 } | 288 } |
| 305 | 289 |
| 306 } // namespace cc | 290 } // namespace cc |
| OLD | NEW |