@@ -88,6 +88,7 @@ void Rasterizer::DrawLastLayerTree() {
88
88
return ;
89
89
}
90
90
DrawToSurface (*last_layer_tree_);
91
+ surface_->ClearContext ();
91
92
}
92
93
93
94
void Rasterizer::Draw (fml::RefPtr<Pipeline<LayerTree>> pipeline) {
@@ -232,6 +233,8 @@ RasterStatus Rasterizer::DoDraw(std::unique_ptr<LayerTree> layer_tree) {
232
233
persistent_cache->ResetStoredNewShaders ();
233
234
234
235
RasterStatus raster_status = DrawToSurface (*layer_tree);
236
+ surface_->ClearContext ();
237
+
235
238
if (raster_status == RasterStatus::kSuccess ) {
236
239
last_layer_tree_ = std::move (layer_tree);
237
240
} else if (raster_status == RasterStatus::kResubmit ) {
@@ -325,7 +328,6 @@ RasterStatus Rasterizer::DrawToSurface(LayerTree& layer_tree) {
325
328
if (compositor_frame) {
326
329
RasterStatus raster_status = compositor_frame->Raster (layer_tree, false );
327
330
if (raster_status == RasterStatus::kFailed ) {
328
- surface_->ClearContext ();
329
331
return raster_status;
330
332
}
331
333
if (external_view_embedder != nullptr ) {
@@ -347,11 +349,9 @@ RasterStatus Rasterizer::DrawToSurface(LayerTree& layer_tree) {
347
349
TRACE_EVENT0 (" uiwidgets" , " PerformDeferredSkiaCleanup" );
348
350
surface_->GetContext ()->performDeferredCleanup (kSkiaCleanupExpiration );
349
351
}
350
- surface_->ClearContext ();
351
352
return raster_status;
352
353
}
353
354
354
- surface_->ClearContext ();
355
355
return RasterStatus::kFailed ;
356
356
}
357
357
0 commit comments