Chromium Code Reviews| Index: cc/raster/one_copy_tile_task_worker_pool.cc |
| diff --git a/cc/raster/one_copy_tile_task_worker_pool.cc b/cc/raster/one_copy_tile_task_worker_pool.cc |
| index 47e4c01c5a6ddb37f1513c1311f4cb402d7e97ac..cd1fd06931bad5b9fd65bb9275a21fdabbd4239c 100644 |
| --- a/cc/raster/one_copy_tile_task_worker_pool.cc |
| +++ b/cc/raster/one_copy_tile_task_worker_pool.cc |
| @@ -128,8 +128,6 @@ void OneCopyTileTaskWorkerPool::Shutdown() { |
| void OneCopyTileTaskWorkerPool::ScheduleTasks(TaskGraph* graph) { |
| TRACE_EVENT0("cc", "OneCopyTileTaskWorkerPool::ScheduleTasks"); |
| - ScheduleTasksOnOriginThread(this, graph); |
| - |
| // Barrier to sync any new resources to the worker context. |
| resource_provider_->output_surface() |
| ->context_provider() |
| @@ -139,21 +137,11 @@ void OneCopyTileTaskWorkerPool::ScheduleTasks(TaskGraph* graph) { |
| task_graph_runner_->ScheduleTasks(namespace_token_, graph); |
| } |
| -void OneCopyTileTaskWorkerPool::CheckForCompletedTasks() { |
| - TRACE_EVENT0("cc", "OneCopyTileTaskWorkerPool::CheckForCompletedTasks"); |
| - |
| - task_graph_runner_->CollectCompletedTasks(namespace_token_, |
| - &completed_tasks_); |
| +void OneCopyTileTaskWorkerPool::CollectCompletedTasks( |
| + Task::Vector* completed_tasks) { |
| + TRACE_EVENT0("cc", "OneCopyTileTaskWorkerPool::CollectCompletedTasks"); |
| - for (Task::Vector::const_iterator it = completed_tasks_.begin(); |
| - it != completed_tasks_.end(); ++it) { |
| - TileTask* task = static_cast<TileTask*>(it->get()); |
| - |
| - task->WillComplete(); |
| - task->CompleteOnOriginThread(this); |
| - task->DidComplete(); |
| - } |
| - completed_tasks_.clear(); |
| + task_graph_runner_->CollectCompletedTasks(namespace_token_, completed_tasks); |
| } |
| ResourceFormat OneCopyTileTaskWorkerPool::GetResourceFormat( |
| @@ -172,6 +160,10 @@ bool OneCopyTileTaskWorkerPool::GetResourceRequiresSwizzle( |
| return ResourceFormatRequiresSwizzle(GetResourceFormat(must_support_alpha)); |
| } |
| +TileTaskClient* OneCopyTileTaskWorkerPool::AsTileTaskClient() { |
| + return this; |
| +} |
| + |
| std::unique_ptr<RasterBuffer> OneCopyTileTaskWorkerPool::AcquireBufferForRaster( |
| const Resource* resource, |
| uint64_t resource_content_id, |
| @@ -270,6 +262,8 @@ void OneCopyTileTaskWorkerPool::CopyOnWorkerThread( |
| const RasterSource* raster_source, |
| uint64_t previous_content_id, |
| uint64_t new_content_id) { |
| + DCHECK(resource->size().width() && resource->size().height()); |
|
prashant.n
2016/04/12 15:57:45
With width = 0, it will cause divide by zero crash
|
| + |
| ContextProvider* context_provider = |
| resource_provider_->output_surface()->worker_context_provider(); |
| DCHECK(context_provider); |