diff --git a/shell/platform/android/image_external_texture_gl.cc b/shell/platform/android/image_external_texture_gl.cc index 92743654d0289..88792d73d812e 100644 --- a/shell/platform/android/image_external_texture_gl.cc +++ b/shell/platform/android/image_external_texture_gl.cc @@ -87,7 +87,11 @@ impeller::UniqueEGLImageKHR ImageExternalTextureGL::CreateEGLImage( } EGLDisplay display = eglGetCurrentDisplay(); - FML_CHECK(display != EGL_NO_DISPLAY); + if (display == EGL_NO_DISPLAY) { + // This could happen when running in a deferred task that executes after + // the thread has lost its EGL state. + return impeller::UniqueEGLImageKHR(); + } EGLClientBuffer client_buffer = impeller::android::GetProcTable().eglGetNativeClientBufferANDROID(