| 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 d7554736942a66ee541c065c99320385c42d0234..67ae593bde0a5625dc36d2d14a4fd782f442750a 100644
|
| --- a/cc/resources/pixel_buffer_raster_worker_pool.cc
|
| +++ b/cc/resources/pixel_buffer_raster_worker_pool.cc
|
| @@ -515,10 +515,13 @@ void PixelBufferRasterWorkerPool::ScheduleMoreTasks() {
|
| continue;
|
| }
|
|
|
| - // All raster tasks need to be throttled by bytes of pending uploads.
|
| + // All raster tasks need to be throttled by bytes of pending uploads,
|
| + // but if it's the only task allow it to complete no matter what its size,
|
| + // to prevent starvation of the task queue.
|
| size_t new_bytes_pending_upload = bytes_pending_upload;
|
| new_bytes_pending_upload += task->resource()->bytes();
|
| - if (new_bytes_pending_upload > max_bytes_pending_upload_) {
|
| + if (new_bytes_pending_upload > max_bytes_pending_upload_ &&
|
| + bytes_pending_upload) {
|
| did_throttle_raster_tasks = true;
|
| if (item.required_for_activation)
|
| did_throttle_raster_tasks_required_for_activation = true;
|
|
|