From 76d8335949d01e0083257fa5deccdccf3d862f51 Mon Sep 17 00:00:00 2001 From: Jason Simmons Date: Thu, 15 Nov 2018 14:24:36 -0800 Subject: [PATCH] Reland "Clean up stale cache entries in Skia's GrContext" (flutter/engine#6867) Check for software rendering modes that do not have a GrContext --- engine/src/flutter/shell/common/rasterizer.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/engine/src/flutter/shell/common/rasterizer.cc b/engine/src/flutter/shell/common/rasterizer.cc index 9f3317912e..e4d81df17a 100644 --- a/engine/src/flutter/shell/common/rasterizer.cc +++ b/engine/src/flutter/shell/common/rasterizer.cc @@ -16,6 +16,10 @@ namespace shell { +// The rasterizer will tell Skia to purge cached resources that have not been +// used within this interval. +static constexpr std::chrono::milliseconds kSkiaCleanupExpiration(15000); + Rasterizer::Rasterizer(blink::TaskRunners task_runners) : Rasterizer(std::move(task_runners), std::make_unique()) {} @@ -186,6 +190,10 @@ bool Rasterizer::DrawToSurface(flow::LayerTree& layer_tree) { external_view_embedder->SubmitFrame(surface_->GetContext()); } FireNextFrameCallbackIfPresent(); + + if (surface_->GetContext()) + surface_->GetContext()->performDeferredCleanup(kSkiaCleanupExpiration); + return true; }