Index: cc/raster/tile_task_worker_pool_perftest.cc |
diff --git a/cc/raster/tile_task_worker_pool_perftest.cc b/cc/raster/tile_task_worker_pool_perftest.cc |
index 086d7b192dcf06d1239e17e6effeb12c04f52d7a..044646f06885ae2f237fa1201e1d4adaeb0cbdac 100644 |
--- a/cc/raster/tile_task_worker_pool_perftest.cc |
+++ b/cc/raster/tile_task_worker_pool_perftest.cc |
@@ -131,17 +131,13 @@ class PerfImageDecodeTaskImpl : public ImageDecodeTask { |
// Overridden from Task: |
void RunOnWorkerThread() override {} |
- // Overridden from TileTask: |
- void ScheduleOnOriginThread(TileTaskClient* client) override {} |
- void CompleteOnOriginThread(TileTaskClient* client) override { Reset(); } |
- |
void Reset() { |
did_run_ = false; |
did_complete_ = false; |
} |
protected: |
- ~PerfImageDecodeTaskImpl() override {} |
+ ~PerfImageDecodeTaskImpl() override { Reset(); } |
private: |
DISALLOW_COPY_AND_ASSIGN(PerfImageDecodeTaskImpl); |
@@ -150,29 +146,22 @@ class PerfImageDecodeTaskImpl : public ImageDecodeTask { |
class PerfRasterTaskImpl : public RasterTask { |
public: |
PerfRasterTaskImpl(scoped_ptr<ScopedResource> resource, |
+ scoped_ptr<RasterBuffer> raster_buffer, |
ImageDecodeTask::Vector* dependencies) |
- : RasterTask(dependencies), resource_(std::move(resource)) {} |
+ : RasterTask(dependencies), |
+ resource_(std::move(resource)), |
+ raster_buffer_(std::move(raster_buffer)) {} |
// Overridden from Task: |
void RunOnWorkerThread() override {} |
- // Overridden from TileTask: |
- void ScheduleOnOriginThread(TileTaskClient* client) override { |
- // No tile ids are given to support partial updates. |
- raster_buffer_ = client->AcquireBufferForRaster(resource_.get(), 0, 0); |
- } |
- void CompleteOnOriginThread(TileTaskClient* client) override { |
- client->ReleaseBufferForRaster(std::move(raster_buffer_)); |
- Reset(); |
- } |
- |
void Reset() { |
did_run_ = false; |
did_complete_ = false; |
} |
protected: |
- ~PerfRasterTaskImpl() override {} |
+ ~PerfRasterTaskImpl() override { Reset(); } |
private: |
scoped_ptr<ScopedResource> resource_; |
@@ -181,7 +170,7 @@ class PerfRasterTaskImpl : public RasterTask { |
DISALLOW_COPY_AND_ASSIGN(PerfRasterTaskImpl); |
}; |
-class TileTaskWorkerPoolPerfTestBase { |
+class TileTaskWorkerPoolPerfTestBase : public TileTaskClient { |
public: |
typedef std::vector<scoped_refptr<RasterTask>> RasterTaskVector; |
@@ -195,6 +184,15 @@ class TileTaskWorkerPoolPerfTestBase { |
base::TimeDelta::FromMilliseconds(kTimeLimitMillis), |
kTimeCheckInterval) {} |
+ // Overridden from TileTaskClient: |
+ scoped_ptr<RasterBuffer> AcquireBufferForRaster( |
+ const Resource* resource, |
+ uint64_t resource_content_id, |
+ uint64_t previous_content_id) override { |
+ return nullptr; |
+ } |
+ void ReleaseBufferForRaster(scoped_ptr<RasterBuffer> buffer) override {} |
+ |
void CreateImageDecodeTasks(unsigned num_image_decode_tasks, |
ImageDecodeTask::Vector* image_decode_tasks) { |
for (unsigned i = 0; i < num_image_decode_tasks; ++i) |
@@ -211,10 +209,11 @@ class TileTaskWorkerPoolPerfTestBase { |
ScopedResource::Create(resource_provider_.get())); |
resource->Allocate(size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, |
RGBA_8888); |
- |
ImageDecodeTask::Vector dependencies = image_decode_tasks; |
- raster_tasks->push_back( |
- new PerfRasterTaskImpl(std::move(resource), &dependencies)); |
+ scoped_ptr<RasterBuffer> raster_buffer = |
+ AcquireBufferForRaster(resource.get(), 0, 0); |
+ raster_tasks->push_back(new PerfRasterTaskImpl( |
+ std::move(resource), std::move(raster_buffer), &dependencies)); |
} |
} |
@@ -288,7 +287,9 @@ class TileTaskWorkerPoolPerfTest |
} |
void TearDown() override { |
tile_task_worker_pool_->AsTileTaskRunner()->Shutdown(); |
- tile_task_worker_pool_->AsTileTaskRunner()->CheckForCompletedTasks(); |
+ Task::Vector completed_tasks; |
+ tile_task_worker_pool_->AsTileTaskRunner()->CollectCompletedTasks( |
+ &completed_tasks); |
} |
void RunMessageLoopUntilAllTasksHaveCompleted() { |
@@ -312,7 +313,9 @@ class TileTaskWorkerPoolPerfTest |
graph.Reset(); |
BuildTileTaskGraph(&graph, raster_tasks); |
tile_task_worker_pool_->AsTileTaskRunner()->ScheduleTasks(&graph); |
- tile_task_worker_pool_->AsTileTaskRunner()->CheckForCompletedTasks(); |
+ Task::Vector completed_tasks; |
+ tile_task_worker_pool_->AsTileTaskRunner()->CollectCompletedTasks( |
+ &completed_tasks); |
timer_.NextLap(); |
} while (!timer_.HasTimeLimitExpired()); |
@@ -345,7 +348,9 @@ class TileTaskWorkerPoolPerfTest |
graph.Reset(); |
BuildTileTaskGraph(&graph, raster_tasks[count % kNumVersions]); |
tile_task_worker_pool_->AsTileTaskRunner()->ScheduleTasks(&graph); |
- tile_task_worker_pool_->AsTileTaskRunner()->CheckForCompletedTasks(); |
+ Task::Vector completed_tasks; |
+ tile_task_worker_pool_->AsTileTaskRunner()->CollectCompletedTasks( |
+ &completed_tasks); |
++count; |
timer_.NextLap(); |
} while (!timer_.HasTimeLimitExpired()); |