Skip to content

Commit

Permalink
Revert "Improve caching limits for Skia (#9503)" (#9740)
Browse files Browse the repository at this point in the history
This reverts commit 63c2c33.
  • Loading branch information
dnfield authored Jul 10, 2019
1 parent b453d3c commit 564f53f
Show file tree
Hide file tree
Showing 4 changed files with 4 additions and 44 deletions.
21 changes: 1 addition & 20 deletions shell/common/rasterizer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ Rasterizer::Rasterizer(
: delegate_(delegate),
task_runners_(std::move(task_runners)),
compositor_context_(std::move(compositor_context)),
user_override_resource_cache_bytes_(false),
weak_factory_(this) {
FML_DCHECK(compositor_context_);
}
Expand Down Expand Up @@ -412,15 +411,7 @@ void Rasterizer::FireNextFrameCallbackIfPresent() {
callback();
}

void Rasterizer::SetResourceCacheMaxBytes(size_t max_bytes, bool from_user) {
user_override_resource_cache_bytes_ |= from_user;

if (!from_user && user_override_resource_cache_bytes_) {
// We should not update the setting here if a user has explicitly set a
// value for this over the flutter/skia channel.
return;
}

void Rasterizer::SetResourceCacheMaxBytes(int max_bytes) {
GrContext* context = surface_->GetContext();
if (context) {
int max_resources;
Expand All @@ -429,16 +420,6 @@ void Rasterizer::SetResourceCacheMaxBytes(size_t max_bytes, bool from_user) {
}
}

size_t Rasterizer::GetResourceCacheMaxBytes() const {
GrContext* context = surface_->GetContext();
if (context) {
size_t max_bytes;
context->getResourceCacheLimits(nullptr, &max_bytes);
return max_bytes;
}
return 0;
}

Rasterizer::Screenshot::Screenshot() {}

Rasterizer::Screenshot::Screenshot(sk_sp<SkData> p_data, SkISize p_size)
Expand Down
9 changes: 1 addition & 8 deletions shell/common/rasterizer.h
Original file line number Diff line number Diff line change
Expand Up @@ -92,13 +92,7 @@ class Rasterizer final : public SnapshotDelegate {
return compositor_context_.get();
}

// Sets the max size in bytes of the Skia resource cache. If this call is
// originating from the user, e.g. over the flutter/skia system channel,
// set from_user to true and the value will take precedence over system
// generated values, e.g. from a display resolution change.
void SetResourceCacheMaxBytes(size_t max_bytes, bool from_user);

size_t GetResourceCacheMaxBytes() const;
void SetResourceCacheMaxBytes(int max_bytes);

private:
Delegate& delegate_;
Expand All @@ -107,7 +101,6 @@ class Rasterizer final : public SnapshotDelegate {
std::unique_ptr<flutter::CompositorContext> compositor_context_;
std::unique_ptr<flutter::LayerTree> last_layer_tree_;
fml::closure next_frame_callback_;
bool user_override_resource_cache_bytes_;
fml::WeakPtrFactory<Rasterizer> weak_factory_;

// |SnapshotDelegate|
Expand Down
13 changes: 1 addition & 12 deletions shell/common/shell.cc
Original file line number Diff line number Diff line change
Expand Up @@ -610,16 +610,6 @@ void Shell::OnPlatformViewSetViewportMetrics(const ViewportMetrics& metrics) {
FML_DCHECK(is_setup_);
FML_DCHECK(task_runners_.GetPlatformTaskRunner()->RunsTasksOnCurrentThread());

// This is the formula Android uses.
// https://android.googlesource.com/platform/frameworks/base/+/master/libs/hwui/renderthread/CacheManager.cpp#41
int max_bytes = metrics.physical_width * metrics.physical_height * 12 * 4;
task_runners_.GetGPUTaskRunner()->PostTask(
[rasterizer = rasterizer_->GetWeakPtr(), max_bytes] {
if (rasterizer) {
rasterizer->SetResourceCacheMaxBytes(max_bytes, false);
}
});

task_runners_.GetUITaskRunner()->PostTask(
[engine = engine_->GetWeakPtr(), metrics]() {
if (engine) {
Expand Down Expand Up @@ -873,8 +863,7 @@ void Shell::HandleEngineSkiaMessage(fml::RefPtr<PlatformMessage> message) {
[rasterizer = rasterizer_->GetWeakPtr(),
max_bytes = args->value.GetInt()] {
if (rasterizer) {
rasterizer->SetResourceCacheMaxBytes(static_cast<size_t>(max_bytes),
true);
rasterizer->SetResourceCacheMaxBytes(max_bytes);
}
});
}
Expand Down
5 changes: 1 addition & 4 deletions shell/gpu/gpu_surface_gl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,7 @@ static const int kGrCacheMaxCount = 8192;

// Default maximum number of bytes of GPU memory of budgeted resources in the
// cache.
// The shell will dynamically increase or decrease this cache based on the
// viewport size, unless a user has specifically requested a size on the Skia
// system channel.
static const size_t kGrCacheMaxByteSize = 24 * (1 << 20);
static const size_t kGrCacheMaxByteSize = 512 * (1 << 20);

GPUSurfaceGL::GPUSurfaceGL(GPUSurfaceGLDelegate* delegate)
: delegate_(delegate), weak_factory_(this) {
Expand Down

0 comments on commit 564f53f

Please sign in to comment.