Index: cc/resources/pixel_buffer_raster_worker_pool.cc |
diff --git a/cc/resources/pixel_buffer_raster_worker_pool.cc b/cc/resources/pixel_buffer_raster_worker_pool.cc |
index 32a79aa97ccb1ece69a24399a70f22444ad9a7c0..a0a1604227431b5efce987dc031a940cf0088905 100644 |
--- a/cc/resources/pixel_buffer_raster_worker_pool.cc |
+++ b/cc/resources/pixel_buffer_raster_worker_pool.cc |
@@ -216,19 +216,22 @@ void PixelBufferRasterWorkerPool::CheckForCompletedTasks() { |
CheckForCompletedGpuRasterTasks(); |
} |
-void* PixelBufferRasterWorkerPool::AcquireBufferForRaster( |
- internal::RasterWorkerPoolTask* task, |
- int* stride) { |
- // Request a pixel buffer. This will reserve shared memory. |
- resource_provider()->AcquirePixelBuffer(task->resource()->id()); |
- |
- *stride = 0; |
- return resource_provider()->MapPixelBuffer(task->resource()->id()); |
+SkCanvas* PixelBufferRasterWorkerPool::AcquireCanvasForRaster( |
+ internal::RasterWorkerPoolTask* task) { |
+ if (task->use_gpu_rasterization()) |
+ return RasterWorkerPool::AcquireCanvasForRaster(task); |
+ resource_provider()->AcquirePixelRasterBuffer(task->resource()->id()); |
+ return resource_provider()->MapPixelRasterBuffer(task->resource()->id()); |
} |
void PixelBufferRasterWorkerPool::OnRasterCompleted( |
internal::RasterWorkerPoolTask* task, |
const PicturePileImpl::Analysis& analysis) { |
+ if (task->use_gpu_rasterization()) { |
+ RasterWorkerPool::OnRasterCompleted(task, analysis); |
+ return; |
+ } |
+ |
TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("cc"), |
"PixelBufferRasterWorkerPool::OnRasterCompleted", |
"was_canceled", |
@@ -239,11 +242,11 @@ void PixelBufferRasterWorkerPool::OnRasterCompleted( |
DCHECK(raster_task_states_.find(task) != raster_task_states_.end()); |
DCHECK_EQ(SCHEDULED, raster_task_states_[task]); |
- // Balanced with MapPixelBuffer() call in AcquireBufferForRaster(). |
- resource_provider()->UnmapPixelBuffer(task->resource()->id()); |
+ // Balanced with MapPixelRasterBuffer() call in AcquireCanvasForRaster(). |
+ resource_provider()->UnmapPixelRasterBuffer(task->resource()->id()); |
if (!task->HasFinishedRunning() || analysis.is_solid_color) { |
- resource_provider()->ReleasePixelBuffer(task->resource()->id()); |
+ resource_provider()->ReleasePixelRasterBuffer(task->resource()->id()); |
if (!task->HasFinishedRunning()) { |
// When priorites change, a raster task can be canceled as a result of |
@@ -376,7 +379,7 @@ void PixelBufferRasterWorkerPool::CheckForCompletedUploads() { |
tasks_with_completed_uploads.front().get(); |
// It's now safe to release the pixel buffer and the shared memory. |
- resource_provider()->ReleasePixelBuffer(task->resource()->id()); |
+ resource_provider()->ReleasePixelRasterBuffer(task->resource()->id()); |
bytes_pending_upload_ -= task->resource()->bytes(); |