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 4383acc751c63aebeba3b2a2bb4c6a9a41831994..4c8ca7b6221a76067599b8e57d85e5f8fb7819cb 100644 |
--- a/cc/resources/pixel_buffer_raster_worker_pool.cc |
+++ b/cc/resources/pixel_buffer_raster_worker_pool.cc |
@@ -401,6 +401,11 @@ void PixelBufferRasterWorkerPool::CheckForCompletedUploads() { |
task->CompleteOnOriginThread(this); |
task->DidComplete(); |
+ // Async set pixels commands are not necessarily processed in-sequence with |
+ // drawing commands. Read lock fences are required to ensure that async |
+ // commands don't access the resource while used for drawing. |
+ resource_provider_->EnableReadLockFences(task->resource()->id(), true); |
+ |
DCHECK(std::find(completed_raster_tasks_.begin(), |
completed_raster_tasks_.end(), |
task) == completed_raster_tasks_.end()); |