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

Side by Side Diff: cc/raster/tile_task_worker_pool_perftest.cc

Issue 1866203004: Convert //cc from scoped_ptr to std::unique_ptr. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: scopedptrcc: rebase Created 4 years, 8 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/raster/tile_task_worker_pool.cc ('k') | cc/raster/tile_task_worker_pool_unittest.cc » ('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/raster/tile_task_worker_pool.h"
6
7 #include <stddef.h> 5 #include <stddef.h>
8 #include <stdint.h> 6 #include <stdint.h>
9 7
10 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/memory/ptr_util.h"
11 #include "base/test/test_simple_task_runner.h" 10 #include "base/test/test_simple_task_runner.h"
12 #include "base/time/time.h" 11 #include "base/time/time.h"
13 #include "cc/debug/lap_timer.h" 12 #include "cc/debug/lap_timer.h"
14 #include "cc/output/context_provider.h" 13 #include "cc/output/context_provider.h"
15 #include "cc/raster/bitmap_tile_task_worker_pool.h" 14 #include "cc/raster/bitmap_tile_task_worker_pool.h"
16 #include "cc/raster/gpu_rasterizer.h" 15 #include "cc/raster/gpu_rasterizer.h"
17 #include "cc/raster/gpu_tile_task_worker_pool.h" 16 #include "cc/raster/gpu_tile_task_worker_pool.h"
18 #include "cc/raster/one_copy_tile_task_worker_pool.h" 17 #include "cc/raster/one_copy_tile_task_worker_pool.h"
19 #include "cc/raster/raster_buffer.h" 18 #include "cc/raster/raster_buffer.h"
20 #include "cc/raster/synchronous_task_graph_runner.h" 19 #include "cc/raster/synchronous_task_graph_runner.h"
21 #include "cc/raster/tile_task_runner.h" 20 #include "cc/raster/tile_task_runner.h"
21 #include "cc/raster/tile_task_worker_pool.h"
22 #include "cc/raster/zero_copy_tile_task_worker_pool.h" 22 #include "cc/raster/zero_copy_tile_task_worker_pool.h"
23 #include "cc/resources/resource_pool.h" 23 #include "cc/resources/resource_pool.h"
24 #include "cc/resources/resource_provider.h" 24 #include "cc/resources/resource_provider.h"
25 #include "cc/resources/scoped_resource.h" 25 #include "cc/resources/scoped_resource.h"
26 #include "cc/test/fake_output_surface.h" 26 #include "cc/test/fake_output_surface.h"
27 #include "cc/test/fake_output_surface_client.h" 27 #include "cc/test/fake_output_surface_client.h"
28 #include "cc/test/fake_resource_provider.h" 28 #include "cc/test/fake_resource_provider.h"
29 #include "cc/test/test_context_support.h" 29 #include "cc/test/test_context_support.h"
30 #include "cc/test/test_gpu_memory_buffer_manager.h" 30 #include "cc/test/test_gpu_memory_buffer_manager.h"
31 #include "cc/test/test_shared_bitmap_manager.h" 31 #include "cc/test/test_shared_bitmap_manager.h"
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 gr_context_.get()->resetContext(state); 100 gr_context_.get()->resetContext(state);
101 } 101 }
102 void SetupLock() override {} 102 void SetupLock() override {}
103 base::Lock* GetLock() override { return &context_lock_; } 103 base::Lock* GetLock() override { return &context_lock_; }
104 void DeleteCachedResources() override {} 104 void DeleteCachedResources() override {}
105 void SetLostContextCallback(const LostContextCallback& cb) override {} 105 void SetLostContextCallback(const LostContextCallback& cb) override {}
106 106
107 private: 107 private:
108 ~PerfContextProvider() override {} 108 ~PerfContextProvider() override {}
109 109
110 scoped_ptr<PerfGLES2Interface> context_gl_; 110 std::unique_ptr<PerfGLES2Interface> context_gl_;
111 skia::RefPtr<class GrContext> gr_context_; 111 skia::RefPtr<class GrContext> gr_context_;
112 TestContextSupport support_; 112 TestContextSupport support_;
113 base::Lock context_lock_; 113 base::Lock context_lock_;
114 }; 114 };
115 115
116 enum TileTaskWorkerPoolType { 116 enum TileTaskWorkerPoolType {
117 TILE_TASK_WORKER_POOL_TYPE_ZERO_COPY, 117 TILE_TASK_WORKER_POOL_TYPE_ZERO_COPY,
118 TILE_TASK_WORKER_POOL_TYPE_ONE_COPY, 118 TILE_TASK_WORKER_POOL_TYPE_ONE_COPY,
119 TILE_TASK_WORKER_POOL_TYPE_GPU, 119 TILE_TASK_WORKER_POOL_TYPE_GPU,
120 TILE_TASK_WORKER_POOL_TYPE_BITMAP 120 TILE_TASK_WORKER_POOL_TYPE_BITMAP
(...skipping 21 matching lines...) Expand all
142 142
143 protected: 143 protected:
144 ~PerfImageDecodeTaskImpl() override {} 144 ~PerfImageDecodeTaskImpl() override {}
145 145
146 private: 146 private:
147 DISALLOW_COPY_AND_ASSIGN(PerfImageDecodeTaskImpl); 147 DISALLOW_COPY_AND_ASSIGN(PerfImageDecodeTaskImpl);
148 }; 148 };
149 149
150 class PerfRasterTaskImpl : public RasterTask { 150 class PerfRasterTaskImpl : public RasterTask {
151 public: 151 public:
152 PerfRasterTaskImpl(scoped_ptr<ScopedResource> resource, 152 PerfRasterTaskImpl(std::unique_ptr<ScopedResource> resource,
153 ImageDecodeTask::Vector* dependencies) 153 ImageDecodeTask::Vector* dependencies)
154 : RasterTask(dependencies), resource_(std::move(resource)) {} 154 : RasterTask(dependencies), resource_(std::move(resource)) {}
155 155
156 // Overridden from Task: 156 // Overridden from Task:
157 void RunOnWorkerThread() override {} 157 void RunOnWorkerThread() override {}
158 158
159 // Overridden from TileTask: 159 // Overridden from TileTask:
160 void ScheduleOnOriginThread(TileTaskClient* client) override { 160 void ScheduleOnOriginThread(TileTaskClient* client) override {
161 // No tile ids are given to support partial updates. 161 // No tile ids are given to support partial updates.
162 raster_buffer_ = client->AcquireBufferForRaster(resource_.get(), 0, 0); 162 raster_buffer_ = client->AcquireBufferForRaster(resource_.get(), 0, 0);
163 } 163 }
164 void CompleteOnOriginThread(TileTaskClient* client) override { 164 void CompleteOnOriginThread(TileTaskClient* client) override {
165 client->ReleaseBufferForRaster(std::move(raster_buffer_)); 165 client->ReleaseBufferForRaster(std::move(raster_buffer_));
166 Reset(); 166 Reset();
167 } 167 }
168 168
169 void Reset() { 169 void Reset() {
170 did_run_ = false; 170 did_run_ = false;
171 did_complete_ = false; 171 did_complete_ = false;
172 } 172 }
173 173
174 protected: 174 protected:
175 ~PerfRasterTaskImpl() override {} 175 ~PerfRasterTaskImpl() override {}
176 176
177 private: 177 private:
178 scoped_ptr<ScopedResource> resource_; 178 std::unique_ptr<ScopedResource> resource_;
179 scoped_ptr<RasterBuffer> raster_buffer_; 179 std::unique_ptr<RasterBuffer> raster_buffer_;
180 180
181 DISALLOW_COPY_AND_ASSIGN(PerfRasterTaskImpl); 181 DISALLOW_COPY_AND_ASSIGN(PerfRasterTaskImpl);
182 }; 182 };
183 183
184 class TileTaskWorkerPoolPerfTestBase { 184 class TileTaskWorkerPoolPerfTestBase {
185 public: 185 public:
186 typedef std::vector<scoped_refptr<RasterTask>> RasterTaskVector; 186 typedef std::vector<scoped_refptr<RasterTask>> RasterTaskVector;
187 187
188 enum NamedTaskSet { REQUIRED_FOR_ACTIVATION, REQUIRED_FOR_DRAW, ALL }; 188 enum NamedTaskSet { REQUIRED_FOR_ACTIVATION, REQUIRED_FOR_DRAW, ALL };
189 189
(...skipping 10 matching lines...) Expand all
200 for (unsigned i = 0; i < num_image_decode_tasks; ++i) 200 for (unsigned i = 0; i < num_image_decode_tasks; ++i)
201 image_decode_tasks->push_back(new PerfImageDecodeTaskImpl); 201 image_decode_tasks->push_back(new PerfImageDecodeTaskImpl);
202 } 202 }
203 203
204 void CreateRasterTasks(unsigned num_raster_tasks, 204 void CreateRasterTasks(unsigned num_raster_tasks,
205 const ImageDecodeTask::Vector& image_decode_tasks, 205 const ImageDecodeTask::Vector& image_decode_tasks,
206 RasterTaskVector* raster_tasks) { 206 RasterTaskVector* raster_tasks) {
207 const gfx::Size size(1, 1); 207 const gfx::Size size(1, 1);
208 208
209 for (unsigned i = 0; i < num_raster_tasks; ++i) { 209 for (unsigned i = 0; i < num_raster_tasks; ++i) {
210 scoped_ptr<ScopedResource> resource( 210 std::unique_ptr<ScopedResource> resource(
211 ScopedResource::Create(resource_provider_.get())); 211 ScopedResource::Create(resource_provider_.get()));
212 resource->Allocate(size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, 212 resource->Allocate(size, ResourceProvider::TEXTURE_HINT_IMMUTABLE,
213 RGBA_8888); 213 RGBA_8888);
214 214
215 ImageDecodeTask::Vector dependencies = image_decode_tasks; 215 ImageDecodeTask::Vector dependencies = image_decode_tasks;
216 raster_tasks->push_back( 216 raster_tasks->push_back(
217 new PerfRasterTaskImpl(std::move(resource), &dependencies)); 217 new PerfRasterTaskImpl(std::move(resource), &dependencies));
218 } 218 }
219 } 219 }
220 220
(...skipping 13 matching lines...) Expand all
234 234
235 graph->nodes.push_back(TaskGraph::Node( 235 graph->nodes.push_back(TaskGraph::Node(
236 raster_task.get(), 0u /* group */, priority, 236 raster_task.get(), 0u /* group */, priority,
237 static_cast<uint32_t>(raster_task->dependencies().size()))); 237 static_cast<uint32_t>(raster_task->dependencies().size())));
238 } 238 }
239 } 239 }
240 240
241 protected: 241 protected:
242 scoped_refptr<ContextProvider> context_provider_; 242 scoped_refptr<ContextProvider> context_provider_;
243 FakeOutputSurfaceClient output_surface_client_; 243 FakeOutputSurfaceClient output_surface_client_;
244 scoped_ptr<FakeOutputSurface> output_surface_; 244 std::unique_ptr<FakeOutputSurface> output_surface_;
245 scoped_ptr<ResourceProvider> resource_provider_; 245 std::unique_ptr<ResourceProvider> resource_provider_;
246 scoped_refptr<base::TestSimpleTaskRunner> task_runner_; 246 scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
247 scoped_ptr<SynchronousTaskGraphRunner> task_graph_runner_; 247 std::unique_ptr<SynchronousTaskGraphRunner> task_graph_runner_;
248 LapTimer timer_; 248 LapTimer timer_;
249 }; 249 };
250 250
251 class TileTaskWorkerPoolPerfTest 251 class TileTaskWorkerPoolPerfTest
252 : public TileTaskWorkerPoolPerfTestBase, 252 : public TileTaskWorkerPoolPerfTestBase,
253 public testing::TestWithParam<TileTaskWorkerPoolType> { 253 public testing::TestWithParam<TileTaskWorkerPoolType> {
254 public: 254 public:
255 // Overridden from testing::Test: 255 // Overridden from testing::Test:
256 void SetUp() override { 256 void SetUp() override {
257 switch (GetParam()) { 257 switch (GetParam()) {
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 private: 389 private:
390 void Create3dOutputSurfaceAndResourceProvider() { 390 void Create3dOutputSurfaceAndResourceProvider() {
391 output_surface_ = FakeOutputSurface::Create3d(context_provider_); 391 output_surface_ = FakeOutputSurface::Create3d(context_provider_);
392 CHECK(output_surface_->BindToClient(&output_surface_client_)); 392 CHECK(output_surface_->BindToClient(&output_surface_client_));
393 resource_provider_ = FakeResourceProvider::Create( 393 resource_provider_ = FakeResourceProvider::Create(
394 output_surface_.get(), nullptr, &gpu_memory_buffer_manager_); 394 output_surface_.get(), nullptr, &gpu_memory_buffer_manager_);
395 } 395 }
396 396
397 void CreateSoftwareOutputSurfaceAndResourceProvider() { 397 void CreateSoftwareOutputSurfaceAndResourceProvider() {
398 output_surface_ = FakeOutputSurface::CreateSoftware( 398 output_surface_ = FakeOutputSurface::CreateSoftware(
399 make_scoped_ptr(new SoftwareOutputDevice)); 399 base::WrapUnique(new SoftwareOutputDevice));
400 CHECK(output_surface_->BindToClient(&output_surface_client_)); 400 CHECK(output_surface_->BindToClient(&output_surface_client_));
401 resource_provider_ = FakeResourceProvider::Create( 401 resource_provider_ = FakeResourceProvider::Create(
402 output_surface_.get(), &shared_bitmap_manager_, nullptr); 402 output_surface_.get(), &shared_bitmap_manager_, nullptr);
403 } 403 }
404 404
405 std::string TestModifierString() const { 405 std::string TestModifierString() const {
406 switch (GetParam()) { 406 switch (GetParam()) {
407 case TILE_TASK_WORKER_POOL_TYPE_ZERO_COPY: 407 case TILE_TASK_WORKER_POOL_TYPE_ZERO_COPY:
408 return std::string("_zero_copy_tile_task_worker_pool"); 408 return std::string("_zero_copy_tile_task_worker_pool");
409 case TILE_TASK_WORKER_POOL_TYPE_ONE_COPY: 409 case TILE_TASK_WORKER_POOL_TYPE_ONE_COPY:
410 return std::string("_one_copy_tile_task_worker_pool"); 410 return std::string("_one_copy_tile_task_worker_pool");
411 case TILE_TASK_WORKER_POOL_TYPE_GPU: 411 case TILE_TASK_WORKER_POOL_TYPE_GPU:
412 return std::string("_gpu_tile_task_worker_pool"); 412 return std::string("_gpu_tile_task_worker_pool");
413 case TILE_TASK_WORKER_POOL_TYPE_BITMAP: 413 case TILE_TASK_WORKER_POOL_TYPE_BITMAP:
414 return std::string("_bitmap_tile_task_worker_pool"); 414 return std::string("_bitmap_tile_task_worker_pool");
415 } 415 }
416 NOTREACHED(); 416 NOTREACHED();
417 return std::string(); 417 return std::string();
418 } 418 }
419 419
420 scoped_ptr<TileTaskWorkerPool> tile_task_worker_pool_; 420 std::unique_ptr<TileTaskWorkerPool> tile_task_worker_pool_;
421 TestGpuMemoryBufferManager gpu_memory_buffer_manager_; 421 TestGpuMemoryBufferManager gpu_memory_buffer_manager_;
422 TestSharedBitmapManager shared_bitmap_manager_; 422 TestSharedBitmapManager shared_bitmap_manager_;
423 }; 423 };
424 424
425 TEST_P(TileTaskWorkerPoolPerfTest, ScheduleTasks) { 425 TEST_P(TileTaskWorkerPoolPerfTest, ScheduleTasks) {
426 RunScheduleTasksTest("1_0", 1, 0); 426 RunScheduleTasksTest("1_0", 1, 0);
427 RunScheduleTasksTest("32_0", 32, 0); 427 RunScheduleTasksTest("32_0", 32, 0);
428 RunScheduleTasksTest("1_1", 1, 1); 428 RunScheduleTasksTest("1_1", 1, 1);
429 RunScheduleTasksTest("32_1", 32, 1); 429 RunScheduleTasksTest("32_1", 32, 1);
430 RunScheduleTasksTest("1_4", 1, 4); 430 RunScheduleTasksTest("1_4", 1, 4);
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 RunBuildTileTaskGraphTest("1_0", 1, 0); 494 RunBuildTileTaskGraphTest("1_0", 1, 0);
495 RunBuildTileTaskGraphTest("32_0", 32, 0); 495 RunBuildTileTaskGraphTest("32_0", 32, 0);
496 RunBuildTileTaskGraphTest("1_1", 1, 1); 496 RunBuildTileTaskGraphTest("1_1", 1, 1);
497 RunBuildTileTaskGraphTest("32_1", 32, 1); 497 RunBuildTileTaskGraphTest("32_1", 32, 1);
498 RunBuildTileTaskGraphTest("1_4", 1, 4); 498 RunBuildTileTaskGraphTest("1_4", 1, 4);
499 RunBuildTileTaskGraphTest("32_4", 32, 4); 499 RunBuildTileTaskGraphTest("32_4", 32, 4);
500 } 500 }
501 501
502 } // namespace 502 } // namespace
503 } // namespace cc 503 } // namespace cc
OLDNEW
« no previous file with comments | « cc/raster/tile_task_worker_pool.cc ('k') | cc/raster/tile_task_worker_pool_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698