diff --git a/engine/src/flutter/flow/layers/layer_tree.cc b/engine/src/flutter/flow/layers/layer_tree.cc index 9ed4b07dfdc..a9aa44eb158 100644 --- a/engine/src/flutter/flow/layers/layer_tree.cc +++ b/engine/src/flutter/flow/layers/layer_tree.cc @@ -13,7 +13,7 @@ LayerTree::LayerTree() : frame_size_{}, scene_version_(0), rasterizer_tracing_threshold_(0), - checkerboard_raster_cache_images_(0) {} + checkerboard_raster_cache_images_(false) {} LayerTree::~LayerTree() {} @@ -21,6 +21,8 @@ void LayerTree::Raster(CompositorContext::ScopedFrame& frame, bool ignore_raster_cache) { { TRACE_EVENT0("flutter", "LayerTree::Preroll"); + frame.context().raster_cache().SetCheckboardCacheImages( + checkerboard_raster_cache_images_); Layer::PrerollContext context = { ignore_raster_cache ? nullptr : &frame.context().raster_cache(), frame.gr_context(), SkRect::MakeEmpty(), diff --git a/engine/src/flutter/flow/layers/layer_tree.h b/engine/src/flutter/flow/layers/layer_tree.h index d8afe4bcc3a..e3de6a96e16 100644 --- a/engine/src/flutter/flow/layers/layer_tree.h +++ b/engine/src/flutter/flow/layers/layer_tree.h @@ -70,10 +70,6 @@ class LayerTree { checkerboard_raster_cache_images_ = checkerboard; } - bool checkerboard_raster_cache_images() const { - return checkerboard_raster_cache_images_; - } - private: SkISize frame_size_; // Physical pixels. uint32_t scene_version_; diff --git a/engine/src/flutter/flow/raster_cache.cc b/engine/src/flutter/flow/raster_cache.cc index b010378301c..2ff8e7d02f5 100644 --- a/engine/src/flutter/flow/raster_cache.cc +++ b/engine/src/flutter/flow/raster_cache.cc @@ -156,11 +156,7 @@ void RasterCache::SetCheckboardCacheImages(bool checkerboard) { // Clear all existing entries so previously rasterized items (with or without // a checkerboard) will be refreshed in subsequent passes. - blink::Threads::Gpu()->PostTask([self = weak_factory_.GetWeakPtr()]() { - if (self) { - self->Clear(); - } - }); + Clear(); } } // namespace flow