From 0d8b348c3d045104f64de68421e8fef68159557d Mon Sep 17 00:00:00 2001 From: cyanglaz Date: Tue, 5 May 2020 11:56:59 -0700 Subject: [PATCH 1/2] return false in submitframe callback if the canvas is not available --- shell/gpu/gpu_surface_metal.mm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/shell/gpu/gpu_surface_metal.mm b/shell/gpu/gpu_surface_metal.mm index ec96de928c91e..13bc419133968 100644 --- a/shell/gpu/gpu_surface_metal.mm +++ b/shell/gpu/gpu_surface_metal.mm @@ -80,6 +80,10 @@ auto submit_callback = [this](const SurfaceFrame& surface_frame, SkCanvas* canvas) -> bool { TRACE_EVENT0("flutter", "GPUSurfaceMetal::Submit"); + if (canvas == nullptr) { + return false; + } + canvas->flush(); if (next_drawable_ == nullptr) { From 68aec35d4d6e7f0de9034806cd23198aaf1181ac Mon Sep 17 00:00:00 2001 From: cyanglaz Date: Tue, 5 May 2020 14:47:14 -0700 Subject: [PATCH 2/2] add dlogs --- shell/gpu/gpu_surface_metal.mm | 1 + 1 file changed, 1 insertion(+) diff --git a/shell/gpu/gpu_surface_metal.mm b/shell/gpu/gpu_surface_metal.mm index 13bc419133968..fa2efce0fc48e 100644 --- a/shell/gpu/gpu_surface_metal.mm +++ b/shell/gpu/gpu_surface_metal.mm @@ -81,6 +81,7 @@ auto submit_callback = [this](const SurfaceFrame& surface_frame, SkCanvas* canvas) -> bool { TRACE_EVENT0("flutter", "GPUSurfaceMetal::Submit"); if (canvas == nullptr) { + FML_DLOG(ERROR) << "Canvas not available."; return false; }