Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(43)

Side by Side Diff: cc/test/layer_tree_pixel_test.cc

Issue 2161323002: cc: Make LayerTreeHostImpl unittests use a delegating output surface. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: display-lthi-tests: . Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/test/fake_output_surface.cc ('k') | cc/test/test_context_provider.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « cc/test/fake_output_surface.cc ('k') | cc/test/test_context_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698