From b09b35cc0648ca577642a7a44d79b0f794ccbbad Mon Sep 17 00:00:00 2001 From: Chinmay Garde Date: Mon, 7 Nov 2016 15:29:03 -0800 Subject: [PATCH] Tell the raster cache when checkerboarding preferences have been updated. (flutter/engine#3205) --- engine/src/flutter/flow/layers/layer_tree.cc | 4 +++- engine/src/flutter/flow/layers/layer_tree.h | 4 ---- engine/src/flutter/flow/raster_cache.cc | 6 +----- 3 files changed, 4 insertions(+), 10 deletions(-) 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