Skip to content

[Impeller] App Crashes on Android Emulator when navigating to a route using a BackdropFilter with ImageFilter.blur() #163421

@jakgrab

Description

@jakgrab

Steps to reproduce

Hi everyone!

I've added a BackdropFilter with a ImageFilter.blur() to a widget in a route.

Upon navigating to the screen with the BackdropFilter, the app crashes with the following output:

[console]
E/flutter (14897): [ERROR:flutter/impeller/renderer/backend/gles/sampler_gles.cc(74)] Break on 'ImpellerValidationBreak' to inspect point of failure: Texture mip count is > 1, but the mipmap has not been generated. Texture can not be sampled safely.
F/flutter (14897): [FATAL:flutter/impeller/renderer/backend/gles/render_pass_gles.cc(626)] Check failed: result. Must be able to encode GL commands without error.

This happened after I've updated to the latest stable release.

To reproduce, run the code sample.

Expected results

The new destination should appear with the blur effect applied to the widget.

Actual results

App crashes when trying to navigate to a destination containing the BackdropFilter with ImageFilter.blur().

Code sample

Code sample
import 'dart:ui';
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(home: const MyHomePage());
  }
}

class MyHomePage extends StatelessWidget {
  const MyHomePage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            GestureDetector(
              onTap: () {
                Navigator.push(
                  context,
                  MaterialPageRoute(builder: (context) => const DetailScreen()),
                );
              },
              child: Container(
                height: 100,
                width: 100,
                color: Colors.blue,
                child: const Icon(
                  Icons.flutter_dash,
                  size: 50,
                  color: Colors.white,
                ),
              ),
            ),
          ],
        ),
      ),
    );
  }
}

class DetailScreen extends StatelessWidget {
  const DetailScreen({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: [
          GestureDetector(
            onTap: () {
              Navigator.pop(context);
            },
            child: Center(
              child: BackdropFilter(
                filter: ImageFilter.blur(sigmaX: 10, sigmaY: 10),
                child: Container(
                  height: 300,
                  width: 300,
                  color: Colors.blue,
                  child: const Icon(
                    Icons.flutter_dash,
                    size: 150,
                    color: Colors.white,
                  ),
                ),
              ),
            ),
          ),
        ],
      ),
    );
  }
}

Screenshots or Video

The app crashes when the navigation is triggered by clicking on the Container

[Upload media here]

Image

Logs

Logs
D/HostConnection(14897): HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_vulkan ANDROID_EMU_deferred_vulkan_commands ANDROID_EMU_vulkan_null_optional_strings ANDROID_EMU_vulkan_create_resources_with_requirements ANDROID_EMU_YUV_Cache ANDROID_EMU_vulkan_ignored_handles ANDROID_EMU_has_shared_slots_host_memory_allocator ANDROID_EMU_vulkan_free_memory_sync ANDROID_EMU_vulkan_shader_float16_int8 ANDROID_EMU_vulkan_async_queue_submit ANDROID_EMU_vulkan_queue_submit_with_commands ANDROID_EMU_sync_buffer_data ANDROID_EMU_vulkan_async_qsri ANDROID_EMU_read_color_buffer_dma GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object ANDROID_EMU_host_side_tracing ANDROID_EMU_gles_max_version_3_0 
D/EGL_emulation(14897): eglMakeCurrent: 0xb400007a08a2ca10: ver 3 0 (tinfo 0x7c2ce7a200) (first time)
E/libEGL  (14897): called unimplemented OpenGL ES API
The Flutter DevTools debugger and profiler on sdk gphone64 arm64 is available at: http://127.0.0.1:9102?uri=http://127.0.0.1:63417/HiaYT9-gUMk=/
E/libEGL  (14897): called unimplemented OpenGL ES API
W/OnBackInvokedCallback(14897): OnBackInvokedCallback is not enabled for the application.
W/OnBackInvokedCallback(14897): Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.
D/EGL_emulation(14897): app_time_stats: avg=2386.90ms min=3.06ms max=4770.74ms count=2
E/flutter (14897): [ERROR:flutter/impeller/renderer/backend/gles/sampler_gles.cc(74)] Break on 'ImpellerValidationBreak' to inspect point of failure: Texture mip count is > 1, but the mipmap has not been generated. Texture can not be sampled safely.
F/flutter (14897): [FATAL:flutter/impeller/renderer/backend/gles/render_pass_gles.cc(626)] Check failed: result. Must be able to encode GL commands without error.
F/libc    (14897): Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 14921 (1.raster), pid 14897 (xample.test_app)
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'google/sdk_gphone64_arm64/emu64a:13/TE1A.240213.009/12342917:user/release-keys'
Revision: '0'
ABI: 'arm64'
Timestamp: 2025-02-15 23:35:53.590525039+0100
Process uptime: 7s
Cmdline: com.example.test_app
pid: 14897, tid: 14921, name: 1.raster  >>> com.example.test_app <<<
uid: 10178
tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
pac_enabled_keys: 000000000000000f (PR_PAC_APIAKEY, PR_PAC_APIBKEY, PR_PAC_APDAKEY, PR_PAC_APDBKEY)
signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
Abort message: '[FATAL:flutter/impeller/renderer/backend/gles/render_pass_gles.cc(626)] Check failed: result. Must be able to encode GL commands without error.'
    x0  0000000000000000  x1  0000000000003a49  x2  0000000000000006  x3  00000078f933d720
    x4  71647164636d6471  x5  71647164636d6471  x6  71647164636d6471  x7  7f7f7f7f7f7f7f7f
    x8  00000000000000f0  x9  0000007c17ac8a00  x10 0000000000000001  x11 0000007c17b06de4
    x12 0000000000001dc5  x13 0000000000000091  x14 00000078f933c5f0  x15 000000c304ffc7fe
    x16 0000007c17b6bd58  x17 0000007c17b48c70  x18 00000078e57e4000  x19 0000000000003a31
    x20 0000000000003a49  x21 00000000ffffffff  x22 00000078f94d261e  x23 b4000079a8a8cbc0
    x24 0000000000000000  x25 0000000000000003  x26 0000000000000000  x27 b400007a28a13368
    x28 0000000000000001  x29 00000078f933d7a0
    lr  0000007c17af8968  sp  00000078f933d700  pc  0000007c17af8994  pst 0000000000001000
backtrace:
      #00 pc 0000000000051994  /apex/com.android.runtime/lib64/bionic/libc.so (abort+164) (BuildId: 4e07915368c859b1910c68c84a8de75f)
      #01 pc 0000000001cdb2d0  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #02 pc 0000000001d06be0  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #03 pc 0000000002104b8c  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #04 pc 000000000210255c  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #05 pc 0000000002102230  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #06 pc 0000000002101e0c  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #07 pc 00000000020b6af0  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #08 pc 00000000020bbdc8  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #09 pc 00000000021bddc4  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #10 pc 000000000203730c  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #11 pc 00000000020371ec  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #12 pc 0000000002037274  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #13 pc 000000000214a0e8  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #14 pc 0000000002149b9c  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #15 pc 0000000002148a38  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #16 pc 000000000214940c  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #17 pc 000000000214afd4  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #18 pc 0000000002148ea8  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #19 pc 0000000002148c40  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #20 pc 0000000002157370  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #21 pc 0000000001d077dc  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #22 pc 0000000001d0d364  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #23 pc 0000000000011074  /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+808) (BuildId: 5a0d720732600c94ad8354a1188e9f52)
      #24 pc 000000000001813c  /system/lib64/libandroid.so (ALooper_pollOnce+100) (BuildId: 6b403861198e825c59209d13687b872a)
      #25 pc 0000000001d0d2ec  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #26 pc 0000000001d07728  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #27 pc 0000000001d0b5d0  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #28 pc 0000000001d0b468  /data/app/~~gT_WcqLK83Fn0XAxgvzqKA==/com.example.test_app-ikT6WNu_Vc1iJixq3iM9fA==/lib/arm64/libflutter.so (BuildId: 816a1a1c92b262314abb1fe2e9ff814ce75bf278)
      #29 pc 00000000000b63b0  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+208) (BuildId: 4e07915368c859b1910c68c84a8de75f)
      #30 pc 00000000000530b8  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: 4e07915368c859b1910c68c84a8de75f)
Lost connection to device.

Flutter Doctor output

Doctor output
[✓] Flutter (Channel stable, 3.29.0, on macOS 14.6 23G80 darwin-arm64, locale en-PL) [438ms]
    • Flutter version 3.29.0 on channel stable at /Users/jakgrab/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 35c388afb5 (5 days ago), 2025-02-10 12:48:41 -0800
    • Engine revision f73bfc4522
    • Dart version 3.7.0
    • DevTools version 2.42.2

[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.1) [1,520ms]
    • Android SDK at /Users/jakgrab/Library/Android/sdk
    • Platform android-35, build-tools 35.0.1
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
      This is the JDK bundled with the latest Android Studio installation on this machine.
      To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
    • Java version OpenJDK Runtime Environment (build 21.0.5+-12932927-b750.29)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 16.2) [905ms]
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 16C5032a
    • CocoaPods version 1.16.2

[✓] Chrome - develop for the web [8ms]
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2024.2) [7ms]
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 21.0.5+-12932927-b750.29)

[✓] VS Code (version 1.97.2) [7ms]
    • VS Code at /Users/jakgrab/Downloads/Visual Studio Code.app/Contents
    • Flutter extension version 3.104.0

[✓] Connected device (4 available) [6.0s]
    • sdk gphone64 arm64 (mobile)     • emulator-5554         • android-arm64  • Android 13 (API 33) (emulator)
    • macOS (desktop)                 • macos                 • darwin-arm64   • macOS 14.6 23G80 darwin-arm64
    • Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin         • macOS 14.6 23G80 darwin-arm64
    • Chrome (web)                    • chrome                • web-javascript • Google Chrome 133.0.6943.99

[✓] Network resources [376ms]
    • All expected network resources are available.

• No issues found!

Metadata

Metadata

Assignees

Labels

P1High-priority issues at the top of the work listc: crashStack traces logged to the consolec: fatal crashCrashes that terminate the processc: regressionIt was better in the past than it is nowe: impellerImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.found in release: 3.29Found to occur in 3.29found in release: 3.30Found to occur in 3.30has reproducible stepsThe issue has been confirmed reproducible and is ready to work onplatform-androidAndroid applications specificallyr: fixedIssue is closed as already fixed in a newer versionteam-engineOwned by Engine teamtriaged-engineTriaged by Engine team

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions