Index: cc/tiles/gpu_image_decode_cache.cc |
diff --git a/cc/tiles/gpu_image_decode_controller.cc b/cc/tiles/gpu_image_decode_cache.cc |
similarity index 86% |
rename from cc/tiles/gpu_image_decode_controller.cc |
rename to cc/tiles/gpu_image_decode_cache.cc |
index d78f55fdb03ffd00b8ea69507a9718843c859182..b06da1f9b216464efc1f94a1ac4482996b683775 100644 |
--- a/cc/tiles/gpu_image_decode_controller.cc |
+++ b/cc/tiles/gpu_image_decode_cache.cc |
@@ -2,7 +2,7 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "cc/tiles/gpu_image_decode_controller.h" |
+#include "cc/tiles/gpu_image_decode_cache.h" |
#include <inttypes.h> |
@@ -22,7 +22,7 @@ |
#include "cc/tiles/mipmap_util.h" |
#include "gpu/command_buffer/client/context_support.h" |
#include "gpu/command_buffer/client/gles2_interface.h" |
-#include "gpu_image_decode_controller.h" |
+#include "gpu_image_decode_cache.h" |
#include "skia/ext/texture_handle.h" |
#include "third_party/skia/include/core/SkCanvas.h" |
#include "third_party/skia/include/core/SkRefCnt.h" |
@@ -134,24 +134,24 @@ uint64_t GenerateInUseCacheKey(const DrawImage& draw_image) { |
} // namespace |
-GpuImageDecodeController::InUseCacheEntry::InUseCacheEntry( |
+GpuImageDecodeCache::InUseCacheEntry::InUseCacheEntry( |
scoped_refptr<ImageData> image_data) |
: image_data(std::move(image_data)) {} |
-GpuImageDecodeController::InUseCacheEntry::InUseCacheEntry( |
- const InUseCacheEntry&) = default; |
-GpuImageDecodeController::InUseCacheEntry::InUseCacheEntry(InUseCacheEntry&&) = |
+GpuImageDecodeCache::InUseCacheEntry::InUseCacheEntry(const InUseCacheEntry&) = |
default; |
-GpuImageDecodeController::InUseCacheEntry::~InUseCacheEntry() = default; |
+GpuImageDecodeCache::InUseCacheEntry::InUseCacheEntry(InUseCacheEntry&&) = |
+ default; |
+GpuImageDecodeCache::InUseCacheEntry::~InUseCacheEntry() = default; |
// 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 TileTask { |
public: |
- ImageDecodeTaskImpl(GpuImageDecodeController* controller, |
+ ImageDecodeTaskImpl(GpuImageDecodeCache* cache, |
const DrawImage& draw_image, |
- const ImageDecodeController::TracingInfo& tracing_info) |
+ const ImageDecodeCache::TracingInfo& tracing_info) |
: TileTask(true), |
- controller_(controller), |
+ cache_(cache), |
image_(draw_image), |
tracing_info_(tracing_info) { |
DCHECK(!SkipImage(draw_image)); |
@@ -164,21 +164,21 @@ class ImageDecodeTaskImpl : public TileTask { |
devtools_instrumentation::ScopedImageDecodeTask image_decode_task( |
image_.image().get(), |
devtools_instrumentation::ScopedImageDecodeTask::GPU); |
- controller_->DecodeImage(image_); |
+ cache_->DecodeImage(image_); |
} |
// Overridden from TileTask: |
void OnTaskCompleted() override { |
- controller_->OnImageDecodeTaskCompleted(image_); |
+ cache_->OnImageDecodeTaskCompleted(image_); |
} |
protected: |
~ImageDecodeTaskImpl() override {} |
private: |
- GpuImageDecodeController* controller_; |
+ GpuImageDecodeCache* cache_; |
DrawImage image_; |
- const ImageDecodeController::TracingInfo tracing_info_; |
+ const ImageDecodeCache::TracingInfo tracing_info_; |
DISALLOW_COPY_AND_ASSIGN(ImageDecodeTaskImpl); |
}; |
@@ -188,12 +188,12 @@ class ImageDecodeTaskImpl : public TileTask { |
// concurrent thread. |
class ImageUploadTaskImpl : public TileTask { |
public: |
- ImageUploadTaskImpl(GpuImageDecodeController* controller, |
+ ImageUploadTaskImpl(GpuImageDecodeCache* cache, |
const DrawImage& draw_image, |
scoped_refptr<TileTask> decode_dependency, |
- const ImageDecodeController::TracingInfo& tracing_info) |
+ const ImageDecodeCache::TracingInfo& tracing_info) |
: TileTask(false), |
- controller_(controller), |
+ cache_(cache), |
image_(draw_image), |
tracing_info_(tracing_info) { |
DCHECK(!SkipImage(draw_image)); |
@@ -207,31 +207,31 @@ class ImageUploadTaskImpl : public TileTask { |
void RunOnWorkerThread() override { |
TRACE_EVENT2("cc", "ImageUploadTaskImpl::RunOnWorkerThread", "mode", "gpu", |
"source_prepare_tiles_id", tracing_info_.prepare_tiles_id); |
- controller_->UploadImage(image_); |
+ cache_->UploadImage(image_); |
} |
// Overridden from TileTask: |
void OnTaskCompleted() override { |
- controller_->OnImageUploadTaskCompleted(image_); |
+ cache_->OnImageUploadTaskCompleted(image_); |
} |
protected: |
~ImageUploadTaskImpl() override {} |
private: |
- GpuImageDecodeController* controller_; |
+ GpuImageDecodeCache* cache_; |
DrawImage image_; |
- const ImageDecodeController::TracingInfo tracing_info_; |
+ const ImageDecodeCache::TracingInfo tracing_info_; |
DISALLOW_COPY_AND_ASSIGN(ImageUploadTaskImpl); |
}; |
-GpuImageDecodeController::DecodedImageData::DecodedImageData() = default; |
-GpuImageDecodeController::DecodedImageData::~DecodedImageData() { |
+GpuImageDecodeCache::DecodedImageData::DecodedImageData() = default; |
+GpuImageDecodeCache::DecodedImageData::~DecodedImageData() { |
ResetData(); |
} |
-bool GpuImageDecodeController::DecodedImageData::Lock() { |
+bool GpuImageDecodeCache::DecodedImageData::Lock() { |
DCHECK(!is_locked_); |
is_locked_ = data_->Lock(); |
if (is_locked_) |
@@ -239,7 +239,7 @@ bool GpuImageDecodeController::DecodedImageData::Lock() { |
return is_locked_; |
} |
-void GpuImageDecodeController::DecodedImageData::Unlock() { |
+void GpuImageDecodeCache::DecodedImageData::Unlock() { |
DCHECK(is_locked_); |
data_->Unlock(); |
if (usage_stats_.lock_count == 1) |
@@ -247,7 +247,7 @@ void GpuImageDecodeController::DecodedImageData::Unlock() { |
is_locked_ = false; |
} |
-void GpuImageDecodeController::DecodedImageData::SetLockedData( |
+void GpuImageDecodeCache::DecodedImageData::SetLockedData( |
std::unique_ptr<base::DiscardableMemory> data) { |
DCHECK(!is_locked_); |
DCHECK(data); |
@@ -256,7 +256,7 @@ void GpuImageDecodeController::DecodedImageData::SetLockedData( |
is_locked_ = true; |
} |
-void GpuImageDecodeController::DecodedImageData::ResetData() { |
+void GpuImageDecodeCache::DecodedImageData::ResetData() { |
DCHECK(!is_locked_); |
if (data_) |
ReportUsageStats(); |
@@ -264,7 +264,7 @@ void GpuImageDecodeController::DecodedImageData::ResetData() { |
usage_stats_ = UsageStats(); |
} |
-void GpuImageDecodeController::DecodedImageData::ReportUsageStats() const { |
+void GpuImageDecodeCache::DecodedImageData::ReportUsageStats() const { |
// lock_count │ used │ result state |
// ═══════════╪═══════╪══════════════════ |
// 1 │ false │ WASTED_ONCE |
@@ -299,13 +299,12 @@ void GpuImageDecodeController::DecodedImageData::ReportUsageStats() const { |
usage_stats_.first_lock_wasted); |
} |
-GpuImageDecodeController::UploadedImageData::UploadedImageData() = default; |
-GpuImageDecodeController::UploadedImageData::~UploadedImageData() { |
+GpuImageDecodeCache::UploadedImageData::UploadedImageData() = default; |
+GpuImageDecodeCache::UploadedImageData::~UploadedImageData() { |
SetImage(nullptr); |
} |
-void GpuImageDecodeController::UploadedImageData::SetImage( |
- sk_sp<SkImage> image) { |
+void GpuImageDecodeCache::UploadedImageData::SetImage(sk_sp<SkImage> image) { |
DCHECK(!image_ || !image); |
if (image_) { |
ReportUsageStats(); |
@@ -314,20 +313,20 @@ void GpuImageDecodeController::UploadedImageData::SetImage( |
image_ = std::move(image); |
} |
-void GpuImageDecodeController::UploadedImageData::ReportUsageStats() const { |
+void GpuImageDecodeCache::UploadedImageData::ReportUsageStats() const { |
UMA_HISTOGRAM_BOOLEAN("Renderer4.GpuImageUploadState.Used", |
usage_stats_.used); |
UMA_HISTOGRAM_BOOLEAN("Renderer4.GpuImageUploadState.FirstRefWasted", |
usage_stats_.first_ref_wasted); |
} |
-GpuImageDecodeController::ImageData::ImageData( |
+GpuImageDecodeCache::ImageData::ImageData( |
DecodedDataMode mode, |
size_t size, |
const SkImage::DeferredTextureImageUsageParams& upload_params) |
: mode(mode), size(size), upload_params(upload_params) {} |
-GpuImageDecodeController::ImageData::~ImageData() { |
+GpuImageDecodeCache::ImageData::~ImageData() { |
// We should never delete ImageData while it is in use or before it has been |
// cleaned up. |
DCHECK_EQ(0u, upload.ref_count); |
@@ -338,9 +337,9 @@ GpuImageDecodeController::ImageData::~ImageData() { |
DCHECK(!upload.image()); |
} |
-GpuImageDecodeController::GpuImageDecodeController(ContextProvider* context, |
- ResourceFormat decode_format, |
- size_t max_gpu_image_bytes) |
+GpuImageDecodeCache::GpuImageDecodeCache(ContextProvider* context, |
+ ResourceFormat decode_format, |
+ size_t max_gpu_image_bytes) |
: format_(decode_format), |
context_(context), |
persistent_cache_(PersistentCache::NO_AUTO_EVICT), |
@@ -357,14 +356,13 @@ GpuImageDecodeController::GpuImageDecodeController(ContextProvider* context, |
// Don't register a dump provider in these cases. |
if (base::ThreadTaskRunnerHandle::IsSet()) { |
base::trace_event::MemoryDumpManager::GetInstance()->RegisterDumpProvider( |
- this, "cc::GpuImageDecodeController", |
- base::ThreadTaskRunnerHandle::Get()); |
+ this, "cc::GpuImageDecodeCache", base::ThreadTaskRunnerHandle::Get()); |
} |
// Register this component with base::MemoryCoordinatorClientRegistry. |
base::MemoryCoordinatorClientRegistry::GetInstance()->Register(this); |
} |
-GpuImageDecodeController::~GpuImageDecodeController() { |
+GpuImageDecodeCache::~GpuImageDecodeCache() { |
// SetShouldAggressivelyFreeResources will zero our limits and free all |
// outstanding image memory. |
SetShouldAggressivelyFreeResources(true); |
@@ -376,12 +374,11 @@ GpuImageDecodeController::~GpuImageDecodeController() { |
base::MemoryCoordinatorClientRegistry::GetInstance()->Unregister(this); |
} |
-bool GpuImageDecodeController::GetTaskForImageAndRef( |
- const DrawImage& draw_image, |
- const TracingInfo& tracing_info, |
- scoped_refptr<TileTask>* task) { |
+bool GpuImageDecodeCache::GetTaskForImageAndRef(const DrawImage& draw_image, |
+ const TracingInfo& tracing_info, |
+ scoped_refptr<TileTask>* task) { |
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), |
- "GpuImageDecodeController::GetTaskForImageAndRef"); |
+ "GpuImageDecodeCache::GetTaskForImageAndRef"); |
if (SkipImage(draw_image)) { |
*task = nullptr; |
return false; |
@@ -441,16 +438,16 @@ bool GpuImageDecodeController::GetTaskForImageAndRef( |
return true; |
} |
-void GpuImageDecodeController::UnrefImage(const DrawImage& draw_image) { |
+void GpuImageDecodeCache::UnrefImage(const DrawImage& draw_image) { |
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), |
- "GpuImageDecodeController::UnrefImage"); |
+ "GpuImageDecodeCache::UnrefImage"); |
base::AutoLock lock(lock_); |
UnrefImageInternal(draw_image); |
} |
-DecodedDrawImage GpuImageDecodeController::GetDecodedImageForDraw( |
+DecodedDrawImage GpuImageDecodeCache::GetDecodedImageForDraw( |
const DrawImage& draw_image) { |
- TRACE_EVENT0("cc", "GpuImageDecodeController::GetDecodedImageForDraw"); |
+ TRACE_EVENT0("cc", "GpuImageDecodeCache::GetDecodedImageForDraw"); |
// We are being called during raster. The context lock must already be |
// acquired by the caller. |
@@ -498,10 +495,10 @@ DecodedDrawImage GpuImageDecodeController::GetDecodedImageForDraw( |
return decoded_draw_image; |
} |
-void GpuImageDecodeController::DrawWithImageFinished( |
+void GpuImageDecodeCache::DrawWithImageFinished( |
const DrawImage& draw_image, |
const DecodedDrawImage& decoded_draw_image) { |
- TRACE_EVENT0("cc", "GpuImageDecodeController::DrawWithImageFinished"); |
+ TRACE_EVENT0("cc", "GpuImageDecodeCache::DrawWithImageFinished"); |
// We are being called during raster. The context lock must already be |
// acquired by the caller. |
@@ -519,17 +516,17 @@ void GpuImageDecodeController::DrawWithImageFinished( |
DeletePendingImages(); |
} |
-void GpuImageDecodeController::ReduceCacheUsage() { |
+void GpuImageDecodeCache::ReduceCacheUsage() { |
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), |
- "GpuImageDecodeController::ReduceCacheUsage"); |
+ "GpuImageDecodeCache::ReduceCacheUsage"); |
base::AutoLock lock(lock_); |
EnsureCapacity(0); |
} |
-void GpuImageDecodeController::SetShouldAggressivelyFreeResources( |
+void GpuImageDecodeCache::SetShouldAggressivelyFreeResources( |
bool aggressively_free_resources) { |
TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("cc.debug"), |
- "GpuImageDecodeController::SetShouldAggressivelyFreeResources", |
+ "GpuImageDecodeCache::SetShouldAggressivelyFreeResources", |
"agressive_free_resources", aggressively_free_resources); |
if (aggressively_free_resources) { |
ContextProvider::ScopedContextLock context_lock(context_); |
@@ -548,7 +545,7 @@ void GpuImageDecodeController::SetShouldAggressivelyFreeResources( |
} |
} |
-bool GpuImageDecodeController::OnMemoryDump( |
+bool GpuImageDecodeCache::OnMemoryDump( |
const base::trace_event::MemoryDumpArgs& args, |
base::trace_event::ProcessMemoryDump* pmd) { |
using base::trace_event::MemoryAllocatorDump; |
@@ -556,12 +553,11 @@ bool GpuImageDecodeController::OnMemoryDump( |
using base::trace_event::MemoryDumpLevelOfDetail; |
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), |
- "GpuImageDecodeController::OnMemoryDump"); |
+ "GpuImageDecodeCache::OnMemoryDump"); |
if (args.level_of_detail == MemoryDumpLevelOfDetail::BACKGROUND) { |
- std::string dump_name = |
- base::StringPrintf("cc/image_memory/controller_0x%" PRIXPTR, |
- reinterpret_cast<uintptr_t>(this)); |
+ std::string dump_name = base::StringPrintf( |
+ "cc/image_memory/cache_0x%" PRIXPTR, reinterpret_cast<uintptr_t>(this)); |
MemoryAllocatorDump* dump = pmd->CreateAllocatorDump(dump_name); |
dump->AddScalar(MemoryAllocatorDump::kNameSize, |
MemoryAllocatorDump::kUnitsBytes, bytes_used_); |
@@ -577,7 +573,7 @@ bool GpuImageDecodeController::OnMemoryDump( |
// If we have discardable decoded data, dump this here. |
if (image_data->decode.data()) { |
std::string discardable_dump_name = base::StringPrintf( |
- "cc/image_memory/controller_0x%" PRIXPTR "/discardable/image_%d", |
+ "cc/image_memory/cache_0x%" PRIXPTR "/discardable/image_%d", |
reinterpret_cast<uintptr_t>(this), image_id); |
MemoryAllocatorDump* dump = |
image_data->decode.data()->CreateMemoryAllocatorDump( |
@@ -598,7 +594,7 @@ bool GpuImageDecodeController::OnMemoryDump( |
if (image_data->upload.image() && |
image_data->mode == DecodedDataMode::GPU) { |
std::string gpu_dump_name = base::StringPrintf( |
- "cc/image_memory/controller_0x%" PRIXPTR "/gpu/image_%d", |
+ "cc/image_memory/cache_0x%" PRIXPTR "/gpu/image_%d", |
reinterpret_cast<uintptr_t>(this), image_id); |
MemoryAllocatorDump* dump = pmd->CreateAllocatorDump(gpu_dump_name); |
dump->AddScalar(MemoryAllocatorDump::kNameSize, |
@@ -626,9 +622,9 @@ bool GpuImageDecodeController::OnMemoryDump( |
return true; |
} |
-void GpuImageDecodeController::DecodeImage(const DrawImage& draw_image) { |
+void GpuImageDecodeCache::DecodeImage(const DrawImage& draw_image) { |
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), |
- "GpuImageDecodeController::DecodeImage"); |
+ "GpuImageDecodeCache::DecodeImage"); |
base::AutoLock lock(lock_); |
ImageData* image_data = GetImageDataForDrawImage(draw_image); |
DCHECK(image_data); |
@@ -636,9 +632,9 @@ void GpuImageDecodeController::DecodeImage(const DrawImage& draw_image) { |
DecodeImageIfNecessary(draw_image, image_data); |
} |
-void GpuImageDecodeController::UploadImage(const DrawImage& draw_image) { |
+void GpuImageDecodeCache::UploadImage(const DrawImage& draw_image) { |
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), |
- "GpuImageDecodeController::UploadImage"); |
+ "GpuImageDecodeCache::UploadImage"); |
ContextProvider::ScopedContextLock context_lock(context_); |
base::AutoLock lock(lock_); |
ImageData* image_data = GetImageDataForDrawImage(draw_image); |
@@ -647,10 +643,10 @@ void GpuImageDecodeController::UploadImage(const DrawImage& draw_image) { |
UploadImageIfNecessary(draw_image, image_data); |
} |
-void GpuImageDecodeController::OnImageDecodeTaskCompleted( |
+void GpuImageDecodeCache::OnImageDecodeTaskCompleted( |
const DrawImage& draw_image) { |
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), |
- "GpuImageDecodeController::OnImageDecodeTaskCompleted"); |
+ "GpuImageDecodeCache::OnImageDecodeTaskCompleted"); |
base::AutoLock lock(lock_); |
// Decode task is complete, remove our reference to it. |
ImageData* image_data = GetImageDataForDrawImage(draw_image); |
@@ -663,10 +659,10 @@ void GpuImageDecodeController::OnImageDecodeTaskCompleted( |
UnrefImageDecode(draw_image); |
} |
-void GpuImageDecodeController::OnImageUploadTaskCompleted( |
+void GpuImageDecodeCache::OnImageUploadTaskCompleted( |
const DrawImage& draw_image) { |
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), |
- "GpuImageDecodeController::OnImageUploadTaskCompleted"); |
+ "GpuImageDecodeCache::OnImageUploadTaskCompleted"); |
base::AutoLock lock(lock_); |
// Upload task is complete, remove our reference to it. |
ImageData* image_data = GetImageDataForDrawImage(draw_image); |
@@ -683,11 +679,11 @@ void GpuImageDecodeController::OnImageUploadTaskCompleted( |
// Checks if an existing image decode exists. If not, returns a task to produce |
// the requested decode. |
-scoped_refptr<TileTask> GpuImageDecodeController::GetImageDecodeTaskAndRef( |
+scoped_refptr<TileTask> GpuImageDecodeCache::GetImageDecodeTaskAndRef( |
const DrawImage& draw_image, |
const TracingInfo& tracing_info) { |
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), |
- "GpuImageDecodeController::GetImageDecodeTaskAndRef"); |
+ "GpuImageDecodeCache::GetImageDecodeTaskAndRef"); |
lock_.AssertAcquired(); |
// This ref is kept alive while an upload task may need this decode. We |
@@ -716,9 +712,9 @@ scoped_refptr<TileTask> GpuImageDecodeController::GetImageDecodeTaskAndRef( |
return existing_task; |
} |
-void GpuImageDecodeController::RefImageDecode(const DrawImage& draw_image) { |
+void GpuImageDecodeCache::RefImageDecode(const DrawImage& draw_image) { |
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), |
- "GpuImageDecodeController::RefImageDecode"); |
+ "GpuImageDecodeCache::RefImageDecode"); |
lock_.AssertAcquired(); |
auto found = in_use_cache_.find(GenerateInUseCacheKey(draw_image)); |
DCHECK(found != in_use_cache_.end()); |
@@ -727,9 +723,9 @@ void GpuImageDecodeController::RefImageDecode(const DrawImage& draw_image) { |
OwnershipChanged(draw_image, found->second.image_data.get()); |
} |
-void GpuImageDecodeController::UnrefImageDecode(const DrawImage& draw_image) { |
+void GpuImageDecodeCache::UnrefImageDecode(const DrawImage& draw_image) { |
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), |
- "GpuImageDecodeController::UnrefImageDecode"); |
+ "GpuImageDecodeCache::UnrefImageDecode"); |
lock_.AssertAcquired(); |
auto found = in_use_cache_.find(GenerateInUseCacheKey(draw_image)); |
DCHECK(found != in_use_cache_.end()); |
@@ -743,9 +739,9 @@ void GpuImageDecodeController::UnrefImageDecode(const DrawImage& draw_image) { |
} |
} |
-void GpuImageDecodeController::RefImage(const DrawImage& draw_image) { |
+void GpuImageDecodeCache::RefImage(const DrawImage& draw_image) { |
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), |
- "GpuImageDecodeController::RefImage"); |
+ "GpuImageDecodeCache::RefImage"); |
lock_.AssertAcquired(); |
InUseCacheKey key = GenerateInUseCacheKey(draw_image); |
auto found = in_use_cache_.find(key); |
@@ -770,7 +766,7 @@ void GpuImageDecodeController::RefImage(const DrawImage& draw_image) { |
OwnershipChanged(draw_image, found->second.image_data.get()); |
} |
-void GpuImageDecodeController::UnrefImageInternal(const DrawImage& draw_image) { |
+void GpuImageDecodeCache::UnrefImageInternal(const DrawImage& draw_image) { |
lock_.AssertAcquired(); |
auto found = in_use_cache_.find(GenerateInUseCacheKey(draw_image)); |
DCHECK(found != in_use_cache_.end()); |
@@ -786,8 +782,8 @@ void GpuImageDecodeController::UnrefImageInternal(const DrawImage& draw_image) { |
// Called any time an image or decode ref count changes. Takes care of any |
// necessary memory budget book-keeping and cleanup. |
-void GpuImageDecodeController::OwnershipChanged(const DrawImage& draw_image, |
- ImageData* image_data) { |
+void GpuImageDecodeCache::OwnershipChanged(const DrawImage& draw_image, |
+ ImageData* image_data) { |
lock_.AssertAcquired(); |
bool has_any_refs = |
@@ -883,9 +879,9 @@ void GpuImageDecodeController::OwnershipChanged(const DrawImage& draw_image, |
// Ensures that we can fit a new image of size |required_size| in our cache. In |
// doing so, this function will free unreferenced image data as necessary to |
// create rooom. |
-bool GpuImageDecodeController::EnsureCapacity(size_t required_size) { |
+bool GpuImageDecodeCache::EnsureCapacity(size_t required_size) { |
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), |
- "GpuImageDecodeController::EnsureCapacity"); |
+ "GpuImageDecodeCache::EnsureCapacity"); |
lock_.AssertAcquired(); |
if (CanFitSize(required_size) && !ExceedsPreferredCount()) |
@@ -936,7 +932,7 @@ bool GpuImageDecodeController::EnsureCapacity(size_t required_size) { |
return CanFitSize(required_size); |
} |
-bool GpuImageDecodeController::CanFitSize(size_t size) const { |
+bool GpuImageDecodeCache::CanFitSize(size_t size) const { |
lock_.AssertAcquired(); |
size_t bytes_limit; |
@@ -954,7 +950,7 @@ bool GpuImageDecodeController::CanFitSize(size_t size) const { |
return new_size.IsValid() && new_size.ValueOrDie() <= bytes_limit; |
} |
-bool GpuImageDecodeController::ExceedsPreferredCount() const { |
+bool GpuImageDecodeCache::ExceedsPreferredCount() const { |
lock_.AssertAcquired(); |
size_t items_limit; |
@@ -970,9 +966,8 @@ bool GpuImageDecodeController::ExceedsPreferredCount() const { |
return persistent_cache_.size() > items_limit; |
} |
-void GpuImageDecodeController::DecodeImageIfNecessary( |
- const DrawImage& draw_image, |
- ImageData* image_data) { |
+void GpuImageDecodeCache::DecodeImageIfNecessary(const DrawImage& draw_image, |
+ ImageData* image_data) { |
lock_.AssertAcquired(); |
DCHECK_GT(image_data->decode.ref_count, 0u); |
@@ -993,7 +988,7 @@ void GpuImageDecodeController::DecodeImageIfNecessary( |
return; |
} |
- TRACE_EVENT0("cc", "GpuImageDecodeController::DecodeImage"); |
+ TRACE_EVENT0("cc", "GpuImageDecodeCache::DecodeImage"); |
image_data->decode.ResetData(); |
std::unique_ptr<base::DiscardableMemory> backing_memory; |
@@ -1052,9 +1047,8 @@ void GpuImageDecodeController::DecodeImageIfNecessary( |
image_data->decode.SetLockedData(std::move(backing_memory)); |
} |
-void GpuImageDecodeController::UploadImageIfNecessary( |
- const DrawImage& draw_image, |
- ImageData* image_data) { |
+void GpuImageDecodeCache::UploadImageIfNecessary(const DrawImage& draw_image, |
+ ImageData* image_data) { |
context_->GetLock()->AssertAcquired(); |
lock_.AssertAcquired(); |
@@ -1068,7 +1062,7 @@ void GpuImageDecodeController::UploadImageIfNecessary( |
return; |
} |
- TRACE_EVENT0("cc", "GpuImageDecodeController::UploadImage"); |
+ TRACE_EVENT0("cc", "GpuImageDecodeCache::UploadImage"); |
DCHECK(image_data->decode.is_locked()); |
DCHECK_GT(image_data->decode.ref_count, 0u); |
DCHECK_GT(image_data->upload.ref_count, 0u); |
@@ -1108,10 +1102,10 @@ void GpuImageDecodeController::UploadImageIfNecessary( |
image_data->upload.SetImage(std::move(uploaded_image)); |
} |
-scoped_refptr<GpuImageDecodeController::ImageData> |
-GpuImageDecodeController::CreateImageData(const DrawImage& draw_image) { |
+scoped_refptr<GpuImageDecodeCache::ImageData> |
+GpuImageDecodeCache::CreateImageData(const DrawImage& draw_image) { |
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), |
- "GpuImageDecodeController::CreateImageData"); |
+ "GpuImageDecodeCache::CreateImageData"); |
lock_.AssertAcquired(); |
DecodedDataMode mode; |
@@ -1135,13 +1129,13 @@ GpuImageDecodeController::CreateImageData(const DrawImage& draw_image) { |
return make_scoped_refptr(new ImageData(mode, data_size, params)); |
} |
-void GpuImageDecodeController::DeletePendingImages() { |
+void GpuImageDecodeCache::DeletePendingImages() { |
context_->GetLock()->AssertAcquired(); |
lock_.AssertAcquired(); |
images_pending_deletion_.clear(); |
} |
-SkImageInfo GpuImageDecodeController::CreateImageInfoForDrawImage( |
+SkImageInfo GpuImageDecodeCache::CreateImageInfoForDrawImage( |
const DrawImage& draw_image, |
int upload_scale_mip_level) const { |
gfx::Size mip_size = |
@@ -1154,11 +1148,10 @@ SkImageInfo GpuImageDecodeController::CreateImageInfoForDrawImage( |
// Tries to find an ImageData that can be used to draw the provided |
// |draw_image|. First looks for an exact entry in our |in_use_cache_|. If one |
// cannot be found, it looks for a compatible entry in our |persistent_cache_|. |
-GpuImageDecodeController::ImageData* |
-GpuImageDecodeController::GetImageDataForDrawImage( |
+GpuImageDecodeCache::ImageData* GpuImageDecodeCache::GetImageDataForDrawImage( |
const DrawImage& draw_image) { |
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), |
- "GpuImageDecodeController::GetImageDataForDrawImage"); |
+ "GpuImageDecodeCache::GetImageDataForDrawImage"); |
lock_.AssertAcquired(); |
auto found_in_use = in_use_cache_.find(GenerateInUseCacheKey(draw_image)); |
if (found_in_use != in_use_cache_.end()) |
@@ -1186,8 +1179,8 @@ GpuImageDecodeController::GetImageDataForDrawImage( |
// |image_data|. This is true if the |image_data| is not scaled, or if it |
// is scaled at an equal or larger scale and equal or larger quality to |
// the provided |draw_image|. |
-bool GpuImageDecodeController::IsCompatible(const ImageData* image_data, |
- const DrawImage& draw_image) const { |
+bool GpuImageDecodeCache::IsCompatible(const ImageData* image_data, |
+ const DrawImage& draw_image) const { |
bool is_scaled = image_data->upload_params.fPreScaleMipLevel != 0; |
bool scale_is_compatible = CalculateUploadScaleMipLevel(draw_image) >= |
image_data->upload_params.fPreScaleMipLevel; |
@@ -1196,14 +1189,13 @@ bool GpuImageDecodeController::IsCompatible(const ImageData* image_data, |
return !is_scaled || (scale_is_compatible && quality_is_compatible); |
} |
-size_t GpuImageDecodeController::GetDrawImageSizeForTesting( |
- const DrawImage& image) { |
+size_t GpuImageDecodeCache::GetDrawImageSizeForTesting(const DrawImage& image) { |
base::AutoLock lock(lock_); |
scoped_refptr<ImageData> data = CreateImageData(image); |
return data->size; |
} |
-void GpuImageDecodeController::SetImageDecodingFailedForTesting( |
+void GpuImageDecodeCache::SetImageDecodingFailedForTesting( |
const DrawImage& image) { |
base::AutoLock lock(lock_); |
auto found = persistent_cache_.Peek(image.image()->uniqueID()); |
@@ -1212,7 +1204,7 @@ void GpuImageDecodeController::SetImageDecodingFailedForTesting( |
image_data->decode.decode_failure = true; |
} |
-bool GpuImageDecodeController::DiscardableIsLockedForTesting( |
+bool GpuImageDecodeCache::DiscardableIsLockedForTesting( |
const DrawImage& image) { |
base::AutoLock lock(lock_); |
auto found = persistent_cache_.Peek(image.image()->uniqueID()); |
@@ -1221,7 +1213,7 @@ bool GpuImageDecodeController::DiscardableIsLockedForTesting( |
return image_data->decode.is_locked(); |
} |
-void GpuImageDecodeController::OnMemoryStateChange(base::MemoryState state) { |
+void GpuImageDecodeCache::OnMemoryStateChange(base::MemoryState state) { |
switch (state) { |
case base::MemoryState::NORMAL: |
memory_state_ = state; |