Index: cc/tiles/gpu_image_decode_controller.cc |
diff --git a/cc/tiles/gpu_image_decode_controller.cc b/cc/tiles/gpu_image_decode_controller.cc |
index ce494063699f53f2a25094edf640e1b4e79ba175..4ef58e16691c310fba7b1140defd5b60644050f6 100644 |
--- a/cc/tiles/gpu_image_decode_controller.cc |
+++ b/cc/tiles/gpu_image_decode_controller.cc |
@@ -11,7 +11,7 @@ |
#include "base/thread_task_runner_handle.h" |
#include "cc/debug/devtools_instrumentation.h" |
#include "cc/output/context_provider.h" |
-#include "cc/raster/tile_task_runner.h" |
+#include "cc/raster/task.h" |
#include "gpu/command_buffer/client/context_support.h" |
#include "gpu/command_buffer/client/gles2_interface.h" |
#include "gpu_image_decode_controller.h" |
@@ -57,7 +57,7 @@ SkImage::DeferredTextureImageUsageParams ParamsFromDrawImage( |
// Task which decodes an image and stores the result in discardable memory. |
// This task does not use GPU resources and can be run on any thread. |
-class ImageDecodeTaskImpl : public ImageDecodeTask { |
+class ImageDecodeTaskImpl : public Task { |
public: |
ImageDecodeTaskImpl(GpuImageDecodeController* controller, |
const DrawImage& draw_image, |
@@ -67,7 +67,7 @@ class ImageDecodeTaskImpl : public ImageDecodeTask { |
image_ref_(skia::SharePtr(draw_image.image())), |
source_prepare_tiles_id_(source_prepare_tiles_id) { |
DCHECK(!SkipImage(draw_image)); |
- SetTaskTypeId(TASK_TYPE_IMAGE_DECODE); |
+ SetTaskType(TASK_TYPE_IMAGE_DECODE); |
} |
// Overridden from Task: |
@@ -94,31 +94,30 @@ class ImageDecodeTaskImpl : public ImageDecodeTask { |
// Task which creates an image from decoded data. Typically this involves |
// uploading data to the GPU, which requires this task be run on the non- |
// concurrent thread. |
-class ImageUploadTaskImpl : public ImageDecodeTask { |
+class ImageUploadTaskImpl : public Task { |
public: |
ImageUploadTaskImpl(GpuImageDecodeController* controller, |
const DrawImage& draw_image, |
- scoped_refptr<ImageDecodeTask> decode_dependency, |
+ scoped_refptr<Task> decode_dependency, |
uint64_t source_prepare_tiles_id) |
- : ImageDecodeTask(std::move(decode_dependency)), |
+ : Task(), |
controller_(controller), |
image_(draw_image), |
image_ref_(skia::SharePtr(draw_image.image())), |
source_prepare_tiles_id_(source_prepare_tiles_id) { |
- SetTaskTypeId(TASK_TYPE_IMAGE_UPLOAD); |
+ dependencies_.push_back(std::move(decode_dependency)); |
+ SetTaskType(TASK_TYPE_IMAGE_UPLOAD); |
DCHECK(!SkipImage(draw_image)); |
} |
// Override from Task: |
+ bool SupportsConcurrentExecution() const override { return false; } |
void RunOnWorkerThread() override { |
TRACE_EVENT2("cc", "ImageUploadTaskImpl::RunOnWorkerThread", "mode", "gpu", |
"source_prepare_tiles_id", source_prepare_tiles_id_); |
controller_->UploadImage(image_); |
} |
- // Override from ImageDecodeTask: |
- bool SupportsConcurrentExecution() const override { return false; } |
- |
protected: |
~ImageUploadTaskImpl() override {} |
@@ -169,7 +168,7 @@ GpuImageDecodeController::~GpuImageDecodeController() { |
bool GpuImageDecodeController::GetTaskForImageAndRef( |
const DrawImage& draw_image, |
uint64_t prepare_tiles_id, |
- scoped_refptr<ImageDecodeTask>* task) { |
+ scoped_refptr<Task>* task) { |
if (SkipImage(draw_image)) { |
*task = nullptr; |
return false; |
@@ -197,8 +196,7 @@ bool GpuImageDecodeController::GetTaskForImageAndRef( |
// We didn't have a pre-uploaded image, so we need an upload task. Try to find |
// an existing one. |
- scoped_refptr<ImageDecodeTask>& existing_task = |
- pending_image_upload_tasks_[image_id]; |
+ scoped_refptr<Task>& existing_task = pending_image_upload_tasks_[image_id]; |
if (existing_task) { |
// We had an existing upload task, ref the image and return the task. |
RefImage(draw_image); |
@@ -384,9 +382,9 @@ void GpuImageDecodeController::UploadImage(const DrawImage& draw_image) { |
// Checks if an existing image decode exists. If not, returns a task to produce |
// the requested decode. |
-scoped_refptr<ImageDecodeTask> |
-GpuImageDecodeController::GetImageDecodeTaskAndRef(const DrawImage& draw_image, |
- uint64_t prepare_tiles_id) { |
+scoped_refptr<Task> GpuImageDecodeController::GetImageDecodeTaskAndRef( |
+ const DrawImage& draw_image, |
+ uint64_t prepare_tiles_id) { |
lock_.AssertAcquired(); |
const uint32_t image_id = draw_image.image()->uniqueID(); |
@@ -405,8 +403,7 @@ GpuImageDecodeController::GetImageDecodeTaskAndRef(const DrawImage& draw_image, |
} |
// We didn't have an existing locked image, create a task to lock or decode. |
- scoped_refptr<ImageDecodeTask>& existing_task = |
- pending_image_decode_tasks_[image_id]; |
+ scoped_refptr<Task>& existing_task = pending_image_decode_tasks_[image_id]; |
if (!existing_task) { |
// Ref image decode and create a decode task. This ref will be released in |
// DecodeTaskCompleted. |