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

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

Issue 2007593005: Remove the concept of OutputSurface from ResourceProvider. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: resourceprovider-no-outputsurface: moreccptcompile Created 4 years, 7 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
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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "base/test/test_simple_task_runner.h" 10 #include "base/test/test_simple_task_runner.h"
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 DISALLOW_COPY_AND_ASSIGN(PerfRasterTaskImpl); 180 DISALLOW_COPY_AND_ASSIGN(PerfRasterTaskImpl);
181 }; 181 };
182 182
183 class RasterBufferProviderPerfTestBase { 183 class RasterBufferProviderPerfTestBase {
184 public: 184 public:
185 typedef std::vector<scoped_refptr<TileTask>> RasterTaskVector; 185 typedef std::vector<scoped_refptr<TileTask>> RasterTaskVector;
186 186
187 enum NamedTaskSet { REQUIRED_FOR_ACTIVATION, REQUIRED_FOR_DRAW, ALL }; 187 enum NamedTaskSet { REQUIRED_FOR_ACTIVATION, REQUIRED_FOR_DRAW, ALL };
188 188
189 RasterBufferProviderPerfTestBase() 189 RasterBufferProviderPerfTestBase()
190 : context_provider_(make_scoped_refptr(new PerfContextProvider)), 190 : compositor_context_provider_(
191 make_scoped_refptr(new PerfContextProvider)),
192 worker_context_provider_(make_scoped_refptr(new PerfContextProvider)),
191 task_runner_(new base::TestSimpleTaskRunner), 193 task_runner_(new base::TestSimpleTaskRunner),
192 task_graph_runner_(new SynchronousTaskGraphRunner), 194 task_graph_runner_(new SynchronousTaskGraphRunner),
193 timer_(kWarmupRuns, 195 timer_(kWarmupRuns,
194 base::TimeDelta::FromMilliseconds(kTimeLimitMillis), 196 base::TimeDelta::FromMilliseconds(kTimeLimitMillis),
195 kTimeCheckInterval) {} 197 kTimeCheckInterval) {}
196 198
197 void CreateImageDecodeTasks(unsigned num_image_decode_tasks, 199 void CreateImageDecodeTasks(unsigned num_image_decode_tasks,
198 TileTask::Vector* image_decode_tasks) { 200 TileTask::Vector* image_decode_tasks) {
199 for (unsigned i = 0; i < num_image_decode_tasks; ++i) 201 for (unsigned i = 0; i < num_image_decode_tasks; ++i)
200 image_decode_tasks->push_back(new PerfImageDecodeTaskImpl); 202 image_decode_tasks->push_back(new PerfImageDecodeTaskImpl);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 TaskGraph::Edge(decode_task.get(), raster_task.get())); 243 TaskGraph::Edge(decode_task.get(), raster_task.get()));
242 } 244 }
243 245
244 graph->nodes.push_back(TaskGraph::Node( 246 graph->nodes.push_back(TaskGraph::Node(
245 raster_task.get(), 0u /* group */, priority, 247 raster_task.get(), 0u /* group */, priority,
246 static_cast<uint32_t>(raster_task->dependencies().size()))); 248 static_cast<uint32_t>(raster_task->dependencies().size())));
247 } 249 }
248 } 250 }
249 251
250 protected: 252 protected:
251 scoped_refptr<ContextProvider> context_provider_; 253 scoped_refptr<ContextProvider> compositor_context_provider_;
254 scoped_refptr<ContextProvider> worker_context_provider_;
252 FakeOutputSurfaceClient output_surface_client_; 255 FakeOutputSurfaceClient output_surface_client_;
253 std::unique_ptr<FakeOutputSurface> output_surface_; 256 std::unique_ptr<FakeOutputSurface> output_surface_;
254 std::unique_ptr<ResourceProvider> resource_provider_; 257 std::unique_ptr<ResourceProvider> resource_provider_;
255 scoped_refptr<base::TestSimpleTaskRunner> task_runner_; 258 scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
256 std::unique_ptr<SynchronousTaskGraphRunner> task_graph_runner_; 259 std::unique_ptr<SynchronousTaskGraphRunner> task_graph_runner_;
257 LapTimer timer_; 260 LapTimer timer_;
258 }; 261 };
259 262
260 class RasterBufferProviderPerfTest 263 class RasterBufferProviderPerfTest
261 : public RasterBufferProviderPerfTestBase, 264 : public RasterBufferProviderPerfTestBase,
262 public testing::TestWithParam<RasterBufferProviderType> { 265 public testing::TestWithParam<RasterBufferProviderType> {
263 public: 266 public:
264 // Overridden from testing::Test: 267 // Overridden from testing::Test:
265 void SetUp() override { 268 void SetUp() override {
266 std::unique_ptr<RasterBufferProvider> raster_buffer_provider; 269 std::unique_ptr<RasterBufferProvider> raster_buffer_provider;
267 switch (GetParam()) { 270 switch (GetParam()) {
268 case RASTER_BUFFER_PROVIDER_TYPE_ZERO_COPY: 271 case RASTER_BUFFER_PROVIDER_TYPE_ZERO_COPY:
269 Create3dOutputSurfaceAndResourceProvider(); 272 Create3dOutputSurfaceAndResourceProvider();
270 raster_buffer_provider = ZeroCopyRasterBufferProvider::Create( 273 raster_buffer_provider = ZeroCopyRasterBufferProvider::Create(
271 resource_provider_.get(), PlatformColor::BestTextureFormat()); 274 resource_provider_.get(), PlatformColor::BestTextureFormat());
272 break; 275 break;
273 case RASTER_BUFFER_PROVIDER_TYPE_ONE_COPY: 276 case RASTER_BUFFER_PROVIDER_TYPE_ONE_COPY:
274 Create3dOutputSurfaceAndResourceProvider(); 277 Create3dOutputSurfaceAndResourceProvider();
275 raster_buffer_provider = OneCopyRasterBufferProvider::Create( 278 raster_buffer_provider = base::MakeUnique<OneCopyRasterBufferProvider>(
276 task_runner_.get(), context_provider_.get(), 279 task_runner_.get(), compositor_context_provider_.get(),
277 resource_provider_.get(), std::numeric_limits<int>::max(), false, 280 worker_context_provider_.get(), resource_provider_.get(),
281 std::numeric_limits<int>::max(), false,
278 std::numeric_limits<int>::max(), 282 std::numeric_limits<int>::max(),
279 PlatformColor::BestTextureFormat()); 283 PlatformColor::BestTextureFormat());
280 break; 284 break;
281 case RASTER_BUFFER_PROVIDER_TYPE_GPU: 285 case RASTER_BUFFER_PROVIDER_TYPE_GPU:
282 Create3dOutputSurfaceAndResourceProvider(); 286 Create3dOutputSurfaceAndResourceProvider();
283 raster_buffer_provider = GpuRasterBufferProvider::Create( 287 raster_buffer_provider = base::MakeUnique<GpuRasterBufferProvider>(
284 context_provider_.get(), resource_provider_.get(), false, 0); 288 compositor_context_provider_.get(), worker_context_provider_.get(),
289 resource_provider_.get(), false, 0);
285 break; 290 break;
286 case RASTER_BUFFER_PROVIDER_TYPE_BITMAP: 291 case RASTER_BUFFER_PROVIDER_TYPE_BITMAP:
287 CreateSoftwareOutputSurfaceAndResourceProvider(); 292 CreateSoftwareOutputSurfaceAndResourceProvider();
288 raster_buffer_provider = 293 raster_buffer_provider =
289 BitmapRasterBufferProvider::Create(resource_provider_.get()); 294 BitmapRasterBufferProvider::Create(resource_provider_.get());
290 break; 295 break;
291 } 296 }
292 297
293 DCHECK(raster_buffer_provider); 298 DCHECK(raster_buffer_provider);
294 299
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 TaskGraph empty; 395 TaskGraph empty;
391 tile_task_manager_->ScheduleTasks(&empty); 396 tile_task_manager_->ScheduleTasks(&empty);
392 RunMessageLoopUntilAllTasksHaveCompleted(); 397 RunMessageLoopUntilAllTasksHaveCompleted();
393 398
394 perf_test::PrintResult("schedule_and_execute_tasks", TestModifierString(), 399 perf_test::PrintResult("schedule_and_execute_tasks", TestModifierString(),
395 test_name, timer_.LapsPerSecond(), "runs/s", true); 400 test_name, timer_.LapsPerSecond(), "runs/s", true);
396 } 401 }
397 402
398 private: 403 private:
399 void Create3dOutputSurfaceAndResourceProvider() { 404 void Create3dOutputSurfaceAndResourceProvider() {
400 output_surface_ = FakeOutputSurface::Create3d(context_provider_); 405 output_surface_ = FakeOutputSurface::Create3d(compositor_context_provider_,
406 worker_context_provider_);
401 CHECK(output_surface_->BindToClient(&output_surface_client_)); 407 CHECK(output_surface_->BindToClient(&output_surface_client_));
402 resource_provider_ = FakeResourceProvider::Create( 408 resource_provider_ = FakeResourceProvider::Create(
403 output_surface_.get(), nullptr, &gpu_memory_buffer_manager_); 409 output_surface_.get(), nullptr, &gpu_memory_buffer_manager_);
404 } 410 }
405 411
406 void CreateSoftwareOutputSurfaceAndResourceProvider() { 412 void CreateSoftwareOutputSurfaceAndResourceProvider() {
407 output_surface_ = FakeOutputSurface::CreateSoftware( 413 output_surface_ = FakeOutputSurface::CreateSoftware(
408 base::WrapUnique(new SoftwareOutputDevice)); 414 base::WrapUnique(new SoftwareOutputDevice));
409 CHECK(output_surface_->BindToClient(&output_surface_client_)); 415 CHECK(output_surface_->BindToClient(&output_surface_client_));
410 resource_provider_ = FakeResourceProvider::Create( 416 resource_provider_ = FakeResourceProvider::Create(
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 RASTER_BUFFER_PROVIDER_TYPE_ONE_COPY, 470 RASTER_BUFFER_PROVIDER_TYPE_ONE_COPY,
465 RASTER_BUFFER_PROVIDER_TYPE_GPU, 471 RASTER_BUFFER_PROVIDER_TYPE_GPU,
466 RASTER_BUFFER_PROVIDER_TYPE_BITMAP)); 472 RASTER_BUFFER_PROVIDER_TYPE_BITMAP));
467 473
468 class RasterBufferProviderCommonPerfTest 474 class RasterBufferProviderCommonPerfTest
469 : public RasterBufferProviderPerfTestBase, 475 : public RasterBufferProviderPerfTestBase,
470 public testing::Test { 476 public testing::Test {
471 public: 477 public:
472 // Overridden from testing::Test: 478 // Overridden from testing::Test:
473 void SetUp() override { 479 void SetUp() override {
474 output_surface_ = FakeOutputSurface::Create3d(context_provider_); 480 output_surface_ = FakeOutputSurface::Create3d(compositor_context_provider_,
481 worker_context_provider_);
475 CHECK(output_surface_->BindToClient(&output_surface_client_)); 482 CHECK(output_surface_->BindToClient(&output_surface_client_));
476 resource_provider_ = 483 resource_provider_ =
477 FakeResourceProvider::Create(output_surface_.get(), nullptr); 484 FakeResourceProvider::Create(output_surface_.get(), nullptr);
478 } 485 }
479 486
480 void RunBuildTileTaskGraphTest(const std::string& test_name, 487 void RunBuildTileTaskGraphTest(const std::string& test_name,
481 unsigned num_raster_tasks, 488 unsigned num_raster_tasks,
482 unsigned num_image_decode_tasks) { 489 unsigned num_image_decode_tasks) {
483 TileTask::Vector image_decode_tasks; 490 TileTask::Vector image_decode_tasks;
484 RasterTaskVector raster_tasks; 491 RasterTaskVector raster_tasks;
(...skipping 19 matching lines...) Expand all
504 RunBuildTileTaskGraphTest("1_0", 1, 0); 511 RunBuildTileTaskGraphTest("1_0", 1, 0);
505 RunBuildTileTaskGraphTest("32_0", 32, 0); 512 RunBuildTileTaskGraphTest("32_0", 32, 0);
506 RunBuildTileTaskGraphTest("1_1", 1, 1); 513 RunBuildTileTaskGraphTest("1_1", 1, 1);
507 RunBuildTileTaskGraphTest("32_1", 32, 1); 514 RunBuildTileTaskGraphTest("32_1", 32, 1);
508 RunBuildTileTaskGraphTest("1_4", 1, 4); 515 RunBuildTileTaskGraphTest("1_4", 1, 4);
509 RunBuildTileTaskGraphTest("32_4", 32, 4); 516 RunBuildTileTaskGraphTest("32_4", 32, 4);
510 } 517 }
511 518
512 } // namespace 519 } // namespace
513 } // namespace cc 520 } // namespace cc
OLDNEW
« no previous file with comments | « cc/raster/one_copy_raster_buffer_provider.cc ('k') | cc/raster/raster_buffer_provider_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698