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

Side by Side Diff: cc/resources/raster_worker_pool_perftest.cc

Issue 523243002: cc: Generalize raster task notifications (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed unused ctor Created 6 years, 3 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 "cc/resources/raster_worker_pool.h" 5 #include "cc/resources/raster_worker_pool.h"
6 6
7 #include "base/test/test_simple_task_runner.h" 7 #include "base/test/test_simple_task_runner.h"
8 #include "base/time/time.h" 8 #include "base/time/time.h"
9 #include "cc/debug/lap_timer.h" 9 #include "cc/debug/lap_timer.h"
10 #include "cc/output/context_provider.h" 10 #include "cc/output/context_provider.h"
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 private: 140 private:
141 scoped_ptr<ScopedResource> resource_; 141 scoped_ptr<ScopedResource> resource_;
142 142
143 DISALLOW_COPY_AND_ASSIGN(PerfRasterTaskImpl); 143 DISALLOW_COPY_AND_ASSIGN(PerfRasterTaskImpl);
144 }; 144 };
145 145
146 class RasterWorkerPoolPerfTestBase { 146 class RasterWorkerPoolPerfTestBase {
147 public: 147 public:
148 typedef std::vector<scoped_refptr<RasterTask> > RasterTaskVector; 148 typedef std::vector<scoped_refptr<RasterTask> > RasterTaskVector;
149 149
150 enum NamedTaskSet {
151 HIGH_RESOLUTION_IN_NOW_BIN_ON_ACTIVE_TREE = 0,
152 REQUIRED_FOR_ACTIVATION = 1,
153 ALL = 2
154 };
155
150 RasterWorkerPoolPerfTestBase() 156 RasterWorkerPoolPerfTestBase()
151 : context_provider_(make_scoped_refptr(new PerfContextProvider)), 157 : context_provider_(make_scoped_refptr(new PerfContextProvider)),
152 task_runner_(new base::TestSimpleTaskRunner), 158 task_runner_(new base::TestSimpleTaskRunner),
153 task_graph_runner_(new TaskGraphRunner), 159 task_graph_runner_(new TaskGraphRunner),
154 timer_(kWarmupRuns, 160 timer_(kWarmupRuns,
155 base::TimeDelta::FromMilliseconds(kTimeLimitMillis), 161 base::TimeDelta::FromMilliseconds(kTimeLimitMillis),
156 kTimeCheckInterval) { 162 kTimeCheckInterval) {
157 output_surface_ = FakeOutputSurface::Create3d(context_provider_).Pass(); 163 output_surface_ = FakeOutputSurface::Create3d(context_provider_).Pass();
158 CHECK(output_surface_->BindToClient(&output_surface_client_)); 164 CHECK(output_surface_->BindToClient(&output_surface_client_));
159 165
(...skipping 29 matching lines...) Expand all
189 ImageDecodeTask::Vector dependencies = image_decode_tasks; 195 ImageDecodeTask::Vector dependencies = image_decode_tasks;
190 raster_tasks->push_back( 196 raster_tasks->push_back(
191 new PerfRasterTaskImpl(resource.Pass(), &dependencies)); 197 new PerfRasterTaskImpl(resource.Pass(), &dependencies));
192 } 198 }
193 } 199 }
194 200
195 void BuildRasterTaskQueue(RasterTaskQueue* queue, 201 void BuildRasterTaskQueue(RasterTaskQueue* queue,
196 const RasterTaskVector& raster_tasks) { 202 const RasterTaskVector& raster_tasks) {
197 for (size_t i = 0u; i < raster_tasks.size(); ++i) { 203 for (size_t i = 0u; i < raster_tasks.size(); ++i) {
198 bool required_for_activation = (i % 2) == 0; 204 bool required_for_activation = (i % 2) == 0;
199 queue->items.push_back(RasterTaskQueue::Item(raster_tasks[i].get(), 205 TaskSetCollection task_set_collection;
200 required_for_activation)); 206 task_set_collection[ALL] = true;
207 task_set_collection[REQUIRED_FOR_ACTIVATION] = required_for_activation;
208 queue->items.push_back(
209 RasterTaskQueue::Item(raster_tasks[i].get(), task_set_collection));
201 } 210 }
202 } 211 }
203 212
204 protected: 213 protected:
205 scoped_refptr<ContextProvider> context_provider_; 214 scoped_refptr<ContextProvider> context_provider_;
206 FakeOutputSurfaceClient output_surface_client_; 215 FakeOutputSurfaceClient output_surface_client_;
207 scoped_ptr<FakeOutputSurface> output_surface_; 216 scoped_ptr<FakeOutputSurface> output_surface_;
208 scoped_ptr<SharedBitmapManager> shared_bitmap_manager_; 217 scoped_ptr<SharedBitmapManager> shared_bitmap_manager_;
209 scoped_ptr<ResourceProvider> resource_provider_; 218 scoped_ptr<ResourceProvider> resource_provider_;
210 scoped_ptr<ResourcePool> staging_resource_pool_; 219 scoped_ptr<ResourcePool> staging_resource_pool_;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 raster_worker_pool_->AsRasterizer()->SetClient(this); 263 raster_worker_pool_->AsRasterizer()->SetClient(this);
255 } 264 }
256 265
257 // Overridden from testing::Test: 266 // Overridden from testing::Test:
258 virtual void TearDown() OVERRIDE { 267 virtual void TearDown() OVERRIDE {
259 raster_worker_pool_->AsRasterizer()->Shutdown(); 268 raster_worker_pool_->AsRasterizer()->Shutdown();
260 raster_worker_pool_->AsRasterizer()->CheckForCompletedTasks(); 269 raster_worker_pool_->AsRasterizer()->CheckForCompletedTasks();
261 } 270 }
262 271
263 // Overriden from RasterizerClient: 272 // Overriden from RasterizerClient:
264 virtual bool ShouldForceTasksRequiredForActivationToComplete() const 273 virtual void DidFinishRunningTasks(TaskSet task_set) OVERRIDE {
265 OVERRIDE { 274 if (task_set == ALL)
reveman 2014/09/16 22:49:05 do we need this conditional? It's more realistic t
ernstm 2014/09/17 19:57:15 Done.
266 return false; 275 raster_worker_pool_->AsRasterizer()->CheckForCompletedTasks();
267 } 276 }
268 virtual void DidFinishRunningTasks() OVERRIDE { 277 virtual TaskSetCollection TasksThatShouldBeForcedToComplete() const OVERRIDE {
269 raster_worker_pool_->AsRasterizer()->CheckForCompletedTasks(); 278 return TaskSetCollection();
270 } 279 }
271 virtual void DidFinishRunningTasksRequiredForActivation() OVERRIDE {}
272 280
273 void RunMessageLoopUntilAllTasksHaveCompleted() { 281 void RunMessageLoopUntilAllTasksHaveCompleted() {
274 task_graph_runner_->RunUntilIdle(); 282 task_graph_runner_->RunUntilIdle();
275 task_runner_->RunUntilIdle(); 283 task_runner_->RunUntilIdle();
276 } 284 }
277 285
278 void RunScheduleTasksTest(const std::string& test_name, 286 void RunScheduleTasksTest(const std::string& test_name,
279 unsigned num_raster_tasks, 287 unsigned num_raster_tasks,
280 unsigned num_image_decode_tasks) { 288 unsigned num_image_decode_tasks) {
281 ImageDecodeTask::Vector image_decode_tasks; 289 ImageDecodeTask::Vector image_decode_tasks;
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 RunBuildRasterTaskQueueTest("1_0", 1, 0); 472 RunBuildRasterTaskQueueTest("1_0", 1, 0);
465 RunBuildRasterTaskQueueTest("32_0", 32, 0); 473 RunBuildRasterTaskQueueTest("32_0", 32, 0);
466 RunBuildRasterTaskQueueTest("1_1", 1, 1); 474 RunBuildRasterTaskQueueTest("1_1", 1, 1);
467 RunBuildRasterTaskQueueTest("32_1", 32, 1); 475 RunBuildRasterTaskQueueTest("32_1", 32, 1);
468 RunBuildRasterTaskQueueTest("1_4", 1, 4); 476 RunBuildRasterTaskQueueTest("1_4", 1, 4);
469 RunBuildRasterTaskQueueTest("32_4", 32, 4); 477 RunBuildRasterTaskQueueTest("32_4", 32, 4);
470 } 478 }
471 479
472 } // namespace 480 } // namespace
473 } // namespace cc 481 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698