Skip to content

[Impeller] Impeller causes segfaults on older devices #175562

Open

Description

@stx

Steps to reproduce

We enabled Impeller on our commercial app (Flutter 3.35.3) and users on these devices are now receiving segfaults caused by Impeller:

  • SM-N975U1, Android 12
  • SM-A805F, Android 11
  • SM-G973U, Android 12
  • SM-G973U, Android 11
  • SM-N975U1, Android 12
  • SM-N970U, Android 12
  • SM-G973U1, Android 12
  • MI 9, Android 10

Possible triggered by certain Lottie animations, but cannot be certain.

Example stacktraces:

OS Version: Android 12 (SP1A.210812.016.N975U1UEU8HXE1)
Report Version: 104

Exception Type: Unknown (SIGSEGV)

Application Specific Information:
Segfault

Thread 0 Crashed:
0   split_config.arm64_v8a.apk      0x7b9e870944        [inlined] impeller::RenderPass::GetRenderTargetSize (render_pass.cc:48)
1   split_config.arm64_v8a.apk      0x7b9e870944        impeller::Entity::Render (entity.cc:152)
2   split_config.arm64_v8a.apk      0x7b9e84291c        impeller::Canvas::Restore (canvas.cc:1575)
3   split_config.arm64_v8a.apk      0x7b9e5adf78        flutter::DisplayList::Dispatch (display_list.cc:205)
4   split_config.arm64_v8a.apk      0x7b9e84935c        impeller::DlDispatcherBase::drawDisplayList (dl_dispatcher.cc:838)
5   split_config.arm64_v8a.apk      0x7b9e5ad6ac        [inlined] flutter::DrawDisplayListOp::dispatch (dl_op_records.h:989)
6   split_config.arm64_v8a.apk      0x7b9e5ad6ac        flutter::DisplayList::DispatchOneOp (display_list.cc:219)
7   split_config.arm64_v8a.apk      0x7b9e5ad408        flutter::DisplayList::Dispatch (display_list.cc:185)
8   split_config.arm64_v8a.apk      0x7b9e84c268        impeller::RenderToTarget (dl_dispatcher.cc:1320)
9   split_config.arm64_v8a.apk      0x7b9e934f34        [inlined] flutter::GPUSurfaceVulkanImpeller::AcquireFrame::lambda::operator() (gpu_surface_vulkan_impeller.cc:118)
10  split_config.arm64_v8a.apk      0x7b9e934f34        [inlined] std::_fl::__invoke[abi:nn210000]<T> (invoke.h:179)
11  split_config.arm64_v8a.apk      0x7b9e934f34        [inlined] std::_fl::__invoke_void_return_wrapper<T>::__call[abi:nn210000]<T> (invoke.h:243)
12  split_config.arm64_v8a.apk      0x7b9e934f34        [inlined] std::_fl::__invoke_r[abi:nn210000]<T> (invoke.h:273)
13  split_config.arm64_v8a.apk      0x7b9e934f34        [inlined] std::_fl::__function::__alloc_func<T>::operator()[abi:nn210000] (function.h:167)
14  split_config.arm64_v8a.apk      0x7b9e934f34        std::_fl::__function::__func<T>::operator() (function.h:319)
15  split_config.arm64_v8a.apk      0x7b9e7dddc0        [inlined] std::_fl::__function::__value_func<T>::operator()[abi:nn210000] (function.h:436)
16  split_config.arm64_v8a.apk      0x7b9e7dddc0        [inlined] std::_fl::function<T>::operator() (function.h:995)
17  split_config.arm64_v8a.apk      0x7b9e7dddc0        [inlined] flutter::SurfaceFrame::PerformEncode (surface_frame.cc:96)
18  split_config.arm64_v8a.apk      0x7b9e7dddc0        [inlined] flutter::SurfaceFrame::Encode (surface_frame.cc:59)
19  split_config.arm64_v8a.apk      0x7b9e7dddc0        flutter::SurfaceFrame::Submit (surface_frame.cc:66)
20  split_config.arm64_v8a.apk      0x7b9e8b7dc4        [inlined] flutter::Rasterizer::DrawToSurfaceUnsafe (rasterizer.cc:798)
21  split_config.arm64_v8a.apk      0x7b9e8b7dc4        flutter::Rasterizer::DrawToSurfacesUnsafe (rasterizer.cc:661)
22  split_config.arm64_v8a.apk      0x7b9e8b775c        flutter::Rasterizer::DrawToSurfaces (rasterizer.cc:590)
23  split_config.arm64_v8a.apk      0x7b9e8b8ad8        [inlined] flutter::Rasterizer::DoDraw (rasterizer.cc:494)
24  split_config.arm64_v8a.apk      0x7b9e8b8ad8        [inlined] flutter::Rasterizer::Draw::lambda::operator() (rasterizer.cc:260)
25  split_config.arm64_v8a.apk      0x7b9e8b8ad8        [inlined] std::_fl::__invoke[abi:nn210000]<T> (invoke.h:179)
26  split_config.arm64_v8a.apk      0x7b9e8b8ad8        [inlined] std::_fl::__invoke_void_return_wrapper<T>::__call[abi:nn210000]<T> (invoke.h:251)
27  split_config.arm64_v8a.apk      0x7b9e8b8ad8        [inlined] std::_fl::__invoke_r[abi:nn210000]<T> (invoke.h:273)
28  split_config.arm64_v8a.apk      0x7b9e8b8ad8        [inlined] std::_fl::__function::__alloc_func<T>::operator()[abi:nn210000] (function.h:167)
29  split_config.arm64_v8a.apk      0x7b9e8b8ad8        std::_fl::__function::__func<T>::operator() (function.h:319)
30  split_config.arm64_v8a.apk      0x7b9e8b85f8        [inlined] std::_fl::__function::__value_func<T>::operator()[abi:nn210000] (function.h:436)
31  split_config.arm64_v8a.apk      0x7b9e8b85f8        [inlined] std::_fl::function<T>::operator() (function.h:995)
32  split_config.arm64_v8a.apk      0x7b9e8b85f8        [inlined] flutter::Pipeline<T>::Consume (pipeline.h:203)
33  split_config.arm64_v8a.apk      0x7b9e8b85f8        flutter::Rasterizer::Draw (rasterizer.cc:264)
34  split_config.arm64_v8a.apk      0x7b9e8c5480        [inlined] flutter::Shell::OnAnimatorDraw::lambda::operator() (shell.cc:1349)
35  split_config.arm64_v8a.apk      0x7b9e8c5480        [inlined] fml::internal::CopyableLambda<T>::operator()<T> (make_copyable.h:24)
36  split_config.arm64_v8a.apk      0x7b9e8c5480        [inlined] std::_fl::__invoke[abi:nn210000]<T> (invoke.h:179)
37  split_config.arm64_v8a.apk      0x7b9e8c5480        [inlined] std::_fl::__invoke_void_return_wrapper<T>::__call[abi:nn210000]<T> (invoke.h:251)
38  split_config.arm64_v8a.apk      0x7b9e8c5480        [inlined] std::_fl::__invoke_r[abi:nn210000]<T> (invoke.h:273)
39  split_config.arm64_v8a.apk      0x7b9e8c5480        [inlined] std::_fl::__function::__alloc_func<T>::operator()[abi:nn210000] (function.h:167)
40  split_config.arm64_v8a.apk      0x7b9e8c5480        std::_fl::__function::__func<T>::operator() (function.h:319)
41  split_config.arm64_v8a.apk      0x7b9e55df54        [inlined] std::_fl::function<T>::operator() (function.h:995)
42  split_config.arm64_v8a.apk      0x7b9e55df54        [inlined] fml::MessageLoopImpl::FlushTasks (message_loop_impl.cc:126)
43  split_config.arm64_v8a.apk      0x7b9e55df54        fml::MessageLoopImpl::RunExpiredTasksNow (message_loop_impl.cc:139)
44  split_config.arm64_v8a.apk      0x7b9e561c10        [inlined] fml::MessageLoopAndroid::OnEventFired (message_loop_android.cc:91)
45  split_config.arm64_v8a.apk      0x7b9e561c10        [inlined] fml::MessageLoopAndroid::MessageLoopAndroid::lambda::operator() (message_loop_android.cc:41)
46  split_config.arm64_v8a.apk      0x7b9e561c10        fml::MessageLoopAndroid::MessageLoopAndroid::lambda::__invoke (message_loop_android.cc:39)
47  libutils.so                     0x7f4d8f5184        android::Looper::pollInner
48  libutils.so                     0x7f4d8f4d84        android::Looper::pollOnce
49  libandroid.so                   0x7c39c18510        ALooper_pollOnce
50  split_config.arm64_v8a.apk      0x7b9e561d20        fml::MessageLoopAndroid::Run (message_loop_android.cc:67)
51  split_config.arm64_v8a.apk      0x7b9e55ff44        [inlined] fml::MessageLoopImpl::DoRun (message_loop_impl.cc:94)
52  split_config.arm64_v8a.apk      0x7b9e55ff44        [inlined] fml::MessageLoop::Run (message_loop.cc:49)
53  split_config.arm64_v8a.apk      0x7b9e55ff44        [inlined] fml::Thread::Thread::lambda::operator() (thread.cc:154)
54  split_config.arm64_v8a.apk      0x7b9e55ff44        [inlined] std::_fl::__invoke[abi:nn210000]<T> (invoke.h:179)
55  split_config.arm64_v8a.apk      0x7b9e55ff44        [inlined] std::_fl::__invoke_void_return_wrapper<T>::__call[abi:nn210000]<T> (invoke.h:251)
56  split_config.arm64_v8a.apk      0x7b9e55ff44        [inlined] std::_fl::__invoke_r[abi:nn210000]<T> (invoke.h:273)
57  split_config.arm64_v8a.apk      0x7b9e55ff44        [inlined] std::_fl::__function::__alloc_func<T>::operator()[abi:nn210000] (function.h:167)
58  split_config.arm64_v8a.apk      0x7b9e55ff44        std::_fl::__function::__func<T>::operator() (function.h:319)
59  split_config.arm64_v8a.apk      0x7b9e55fd80        [inlined] std::_fl::function<T>::operator() (function.h:995)
60  split_config.arm64_v8a.apk      0x7b9e55fd80        [inlined] fml::ThreadHandle::ThreadHandle::lambda::operator() (thread.cc:76)
61  split_config.arm64_v8a.apk      0x7b9e55fd80        fml::ThreadHandle::ThreadHandle::lambda::__invoke (thread.cc:73)
62  libc.so                         0x7f4184de44        __pthread_start
63  libc.so                         0x7f417ea454        __start_thread
OS Version: Android 12 (SP1A.210812.016.N975U1UEU8HXE1)
Report Version: 104

Exception Type: Unknown (SIGSEGV)

Application Specific Information:
Segfault

Thread 0 Crashed:
0   split_config.arm64_v8a.apk      0x7769e04dac        OUTLINED_FUNCTION_228
1   split_config.arm64_v8a.apk      0x7769b94a50        [inlined] std::_fl::shared_ptr<T>::operator->[abi:nn210000] (shared_ptr.h:635)
2   split_config.arm64_v8a.apk      0x7769b94a50        impeller::Canvas::AddRenderEntityToCurrentPass (canvas.cc:1800)
3   split_config.arm64_v8a.apk      0x7769b94360        impeller::Canvas::AddRenderEntityWithFiltersToCurrentPass (canvas.cc:1711)
4   split_config.arm64_v8a.apk      0x7769b96cb8        impeller::Canvas::DrawRect
5   split_config.arm64_v8a.apk      0x77698fef78        flutter::DisplayList::Dispatch (display_list.cc:205)
6   split_config.arm64_v8a.apk      0x7769b9a35c        impeller::DlDispatcherBase::drawDisplayList (dl_dispatcher.cc:838)
7   split_config.arm64_v8a.apk      0x77698fe6ac        [inlined] flutter::DrawDisplayListOp::dispatch (dl_op_records.h:989)
8   split_config.arm64_v8a.apk      0x77698fe6ac        flutter::DisplayList::DispatchOneOp (display_list.cc:219)
9   split_config.arm64_v8a.apk      0x77698fe408        flutter::DisplayList::Dispatch (display_list.cc:185)
10  split_config.arm64_v8a.apk      0x7769b9d268        impeller::RenderToTarget (dl_dispatcher.cc:1320)
11  split_config.arm64_v8a.apk      0x7769c85f34        [inlined] flutter::GPUSurfaceVulkanImpeller::AcquireFrame::lambda::operator() (gpu_surface_vulkan_impeller.cc:118)
12  split_config.arm64_v8a.apk      0x7769c85f34        [inlined] std::_fl::__invoke[abi:nn210000]<T> (invoke.h:179)
13  split_config.arm64_v8a.apk      0x7769c85f34        [inlined] std::_fl::__invoke_void_return_wrapper<T>::__call[abi:nn210000]<T> (invoke.h:243)
14  split_config.arm64_v8a.apk      0x7769c85f34        [inlined] std::_fl::__invoke_r[abi:nn210000]<T> (invoke.h:273)
15  split_config.arm64_v8a.apk      0x7769c85f34        [inlined] std::_fl::__function::__alloc_func<T>::operator()[abi:nn210000] (function.h:167)
16  split_config.arm64_v8a.apk      0x7769c85f34        std::_fl::__function::__func<T>::operator() (function.h:319)
17  split_config.arm64_v8a.apk      0x7769b2edc0        [inlined] std::_fl::__function::__value_func<T>::operator()[abi:nn210000] (function.h:436)
18  split_config.arm64_v8a.apk      0x7769b2edc0        [inlined] std::_fl::function<T>::operator() (function.h:995)
19  split_config.arm64_v8a.apk      0x7769b2edc0        [inlined] flutter::SurfaceFrame::PerformEncode (surface_frame.cc:96)
20  split_config.arm64_v8a.apk      0x7769b2edc0        [inlined] flutter::SurfaceFrame::Encode (surface_frame.cc:59)
21  split_config.arm64_v8a.apk      0x7769b2edc0        flutter::SurfaceFrame::Submit (surface_frame.cc:66)
22  split_config.arm64_v8a.apk      0x7769c08dc4        [inlined] flutter::Rasterizer::DrawToSurfaceUnsafe (rasterizer.cc:798)
23  split_config.arm64_v8a.apk      0x7769c08dc4        flutter::Rasterizer::DrawToSurfacesUnsafe (rasterizer.cc:661)
24  split_config.arm64_v8a.apk      0x7769c0875c        flutter::Rasterizer::DrawToSurfaces (rasterizer.cc:590)
25  split_config.arm64_v8a.apk      0x7769c09ad8        [inlined] flutter::Rasterizer::DoDraw (rasterizer.cc:494)
26  split_config.arm64_v8a.apk      0x7769c09ad8        [inlined] flutter::Rasterizer::Draw::lambda::operator() (rasterizer.cc:260)
27  split_config.arm64_v8a.apk      0x7769c09ad8        [inlined] std::_fl::__invoke[abi:nn210000]<T> (invoke.h:179)
28  split_config.arm64_v8a.apk      0x7769c09ad8        [inlined] std::_fl::__invoke_void_return_wrapper<T>::__call[abi:nn210000]<T> (invoke.h:251)
29  split_config.arm64_v8a.apk      0x7769c09ad8        [inlined] std::_fl::__invoke_r[abi:nn210000]<T> (invoke.h:273)
30  split_config.arm64_v8a.apk      0x7769c09ad8        [inlined] std::_fl::__function::__alloc_func<T>::operator()[abi:nn210000] (function.h:167)
31  split_config.arm64_v8a.apk      0x7769c09ad8        std::_fl::__function::__func<T>::operator() (function.h:319)
32  split_config.arm64_v8a.apk      0x7769c095f8        [inlined] std::_fl::__function::__value_func<T>::operator()[abi:nn210000] (function.h:436)
33  split_config.arm64_v8a.apk      0x7769c095f8        [inlined] std::_fl::function<T>::operator() (function.h:995)
34  split_config.arm64_v8a.apk      0x7769c095f8        [inlined] flutter::Pipeline<T>::Consume (pipeline.h:203)
35  split_config.arm64_v8a.apk      0x7769c095f8        flutter::Rasterizer::Draw (rasterizer.cc:264)
36  split_config.arm64_v8a.apk      0x7769c16480        [inlined] flutter::Shell::OnAnimatorDraw::lambda::operator() (shell.cc:1349)
37  split_config.arm64_v8a.apk      0x7769c16480        [inlined] fml::internal::CopyableLambda<T>::operator()<T> (make_copyable.h:24)
38  split_config.arm64_v8a.apk      0x7769c16480        [inlined] std::_fl::__invoke[abi:nn210000]<T> (invoke.h:179)
39  split_config.arm64_v8a.apk      0x7769c16480        [inlined] std::_fl::__invoke_void_return_wrapper<T>::__call[abi:nn210000]<T> (invoke.h:251)
40  split_config.arm64_v8a.apk      0x7769c16480        [inlined] std::_fl::__invoke_r[abi:nn210000]<T> (invoke.h:273)
41  split_config.arm64_v8a.apk      0x7769c16480        [inlined] std::_fl::__function::__alloc_func<T>::operator()[abi:nn210000] (function.h:167)
42  split_config.arm64_v8a.apk      0x7769c16480        std::_fl::__function::__func<T>::operator() (function.h:319)
43  split_config.arm64_v8a.apk      0x77698aef54        [inlined] std::_fl::function<T>::operator() (function.h:995)
44  split_config.arm64_v8a.apk      0x77698aef54        [inlined] fml::MessageLoopImpl::FlushTasks (message_loop_impl.cc:126)
45  split_config.arm64_v8a.apk      0x77698aef54        fml::MessageLoopImpl::RunExpiredTasksNow (message_loop_impl.cc:139)
46  split_config.arm64_v8a.apk      0x77698b2c10        [inlined] fml::MessageLoopAndroid::OnEventFired (message_loop_android.cc:91)
47  split_config.arm64_v8a.apk      0x77698b2c10        [inlined] fml::MessageLoopAndroid::MessageLoopAndroid::lambda::operator() (message_loop_android.cc:41)
48  split_config.arm64_v8a.apk      0x77698b2c10        fml::MessageLoopAndroid::MessageLoopAndroid::lambda::__invoke (message_loop_android.cc:39)
49  libutils.so                     0x7b2b123184        android::Looper::pollInner
50  libutils.so                     0x7b2b122d84        android::Looper::pollOnce
51  libandroid.so                   0x77fd1e7510        ALooper_pollOnce
52  split_config.arm64_v8a.apk      0x77698b2d20        fml::MessageLoopAndroid::Run (message_loop_android.cc:67)
53  split_config.arm64_v8a.apk      0x77698b0f44        [inlined] fml::MessageLoopImpl::DoRun (message_loop_impl.cc:94)
54  split_config.arm64_v8a.apk      0x77698b0f44        [inlined] fml::MessageLoop::Run (message_loop.cc:49)
55  split_config.arm64_v8a.apk      0x77698b0f44        [inlined] fml::Thread::Thread::lambda::operator() (thread.cc:154)
56  split_config.arm64_v8a.apk      0x77698b0f44        [inlined] std::_fl::__invoke[abi:nn210000]<T> (invoke.h:179)
57  split_config.arm64_v8a.apk      0x77698b0f44        [inlined] std::_fl::__invoke_void_return_wrapper<T>::__call[abi:nn210000]<T> (invoke.h:251)
58  split_config.arm64_v8a.apk      0x77698b0f44        [inlined] std::_fl::__invoke_r[abi:nn210000]<T> (invoke.h:273)
59  split_config.arm64_v8a.apk      0x77698b0f44        [inlined] std::_fl::__function::__alloc_func<T>::operator()[abi:nn210000] (function.h:167)
60  split_config.arm64_v8a.apk      0x77698b0f44        std::_fl::__function::__func<T>::operator() (function.h:319)
61  split_config.arm64_v8a.apk      0x77698b0d80        [inlined] std::_fl::function<T>::operator() (function.h:995)
62  split_config.arm64_v8a.apk      0x77698b0d80        [inlined] fml::ThreadHandle::ThreadHandle::lambda::operator() (thread.cc:76)
63  split_config.arm64_v8a.apk      0x77698b0d80        fml::ThreadHandle::ThreadHandle::lambda::__invoke (thread.cc:73)
64  libc.so                         0x7b11fbbe44        __pthread_start
65  libc.so                         0x7b11f58454        __start_thread
OS Version: Android 11 (RP1A.200720.012.G973USQS6GUJ1)
Report Version: 104

Exception Type: Unknown (SIGSEGV)

Application Specific Information:
Segfault

Thread 0 Crashed:
0   split_config.arm64_v8a.apk      0x6dff947e6c        [inlined] impeller::RenderPass::GetRenderTargetSize (render_pass.cc:48)
1   split_config.arm64_v8a.apk      0x6dff947e6c        impeller::Entity::Render (entity.cc:153)
2   split_config.arm64_v8a.apk      0x6dff91f53c        impeller::Canvas::Restore (canvas.cc:1310)
3   split_config.arm64_v8a.apk      0x6dff695a4c        flutter::DisplayList::Dispatch (display_list.cc:204)
4   split_config.arm64_v8a.apk      0x6dff925ad0        [inlined] flutter::DisplayList::Dispatch (display_list.h:275)
5   split_config.arm64_v8a.apk      0x6dff925ad0        impeller::DlDispatcherBase::drawDisplayList (dl_dispatcher.cc:851)
6   split_config.arm64_v8a.apk      0x6dff6952d4        [inlined] flutter::DrawDisplayListOp::dispatch (dl_op_records.h:986)
7   split_config.arm64_v8a.apk      0x6dff6952d4        flutter::DisplayList::DispatchOneOp (display_list.cc:218)
8   split_config.arm64_v8a.apk      0x6dff694ef0        flutter::DisplayList::Dispatch (display_list.cc:184)
9   split_config.arm64_v8a.apk      0x6dff6956b4        flutter::DisplayList::Dispatch
10  split_config.arm64_v8a.apk      0x6dff9282b8        [inlined] flutter::DisplayList::Dispatch (display_list.h:278)
11  split_config.arm64_v8a.apk      0x6dff9282b8        impeller::RenderToTarget (dl_dispatcher.cc:1335)
12  split_config.arm64_v8a.apk      0x6dffa09cbc        [inlined] flutter::GPUSurfaceVulkanImpeller::AcquireFrame::lambda::operator()
13  split_config.arm64_v8a.apk      0x6dffa09cbc        [inlined] std::_fl::__invoke[abi:v15000]<T> (invoke.h:403)
14  split_config.arm64_v8a.apk      0x6dffa09cbc        [inlined] std::_fl::__invoke_void_return_wrapper<T>::__call<T> (invoke.h:479)
15  split_config.arm64_v8a.apk      0x6dffa09cbc        [inlined] std::_fl::__function::__alloc_func<T>::operator()[abi:v15000] (function.h:185)
16  split_config.arm64_v8a.apk      0x6dffa09cbc        std::_fl::__function::__func<T>::operator() (function.h:359)
17  split_config.arm64_v8a.apk      0x6dff8c0c8c        [inlined] std::_fl::__function::__value_func<T>::operator()[abi:v15000] (function.h:512)
18  split_config.arm64_v8a.apk      0x6dff8c0c8c        [inlined] std::_fl::function<T>::operator() (function.h:1187)
19  split_config.arm64_v8a.apk      0x6dff8c0c8c        [inlined] flutter::SurfaceFrame::PerformEncode (surface_frame.cc:95)
20  split_config.arm64_v8a.apk      0x6dff8c0c8c        [inlined] flutter::SurfaceFrame::Encode (surface_frame.cc:58)
21  split_config.arm64_v8a.apk      0x6dff8c0c8c        flutter::SurfaceFrame::Submit (surface_frame.cc:65)
22  split_config.arm64_v8a.apk      0x6dff98c3f8        [inlined] flutter::Rasterizer::DrawToSurfaceUnsafe (rasterizer.cc:795)
23  split_config.arm64_v8a.apk      0x6dff98c3f8        flutter::Rasterizer::DrawToSurfacesUnsafe (rasterizer.cc:658)
24  split_config.arm64_v8a.apk      0x6dff98bd8c        flutter::Rasterizer::DrawToSurfaces (rasterizer.cc:587)
25  split_config.arm64_v8a.apk      0x6dff98d154        [inlined] flutter::Rasterizer::DoDraw (rasterizer.cc:491)
26  split_config.arm64_v8a.apk      0x6dff98d154        [inlined] flutter::Rasterizer::Draw::lambda::operator() (rasterizer.cc:259)
27  split_config.arm64_v8a.apk      0x6dff98d154        [inlined] std::_fl::__invoke[abi:v15000]<T> (invoke.h:403)
28  split_config.arm64_v8a.apk      0x6dff98d154        [inlined] std::_fl::__invoke_void_return_wrapper<T>::__call<T> (invoke.h:488)
29  split_config.arm64_v8a.apk      0x6dff98d154        [inlined] std::_fl::__function::__alloc_func<T>::operator()[abi:v15000] (function.h:185)
30  split_config.arm64_v8a.apk      0x6dff98d154        std::_fl::__function::__func<T>::operator() (function.h:359)
31  split_config.arm64_v8a.apk      0x6dff98cc58        [inlined] std::_fl::__function::__value_func<T>::operator()[abi:v15000] (function.h:512)
32  split_config.arm64_v8a.apk      0x6dff98cc58        [inlined] std::_fl::function<T>::operator() (function.h:1187)
33  split_config.arm64_v8a.apk      0x6dff98cc58        [inlined] flutter::Pipeline<T>::Consume (pipeline.h:203)
34  split_config.arm64_v8a.apk      0x6dff98cc58        flutter::Rasterizer::Draw (rasterizer.cc:263)
35  split_config.arm64_v8a.apk      0x6dff9994fc        [inlined] flutter::Shell::OnAnimatorDraw::lambda::operator() (shell.cc:1284)
36  split_config.arm64_v8a.apk      0x6dff9994fc        [inlined] fml::internal::CopyableLambda<T>::operator()<T> (make_copyable.h:24)
37  split_config.arm64_v8a.apk      0x6dff9994fc        [inlined] std::_fl::__invoke[abi:v15000]<T> (invoke.h:403)
38  split_config.arm64_v8a.apk      0x6dff9994fc        [inlined] std::_fl::__invoke_void_return_wrapper<T>::__call<T> (invoke.h:488)
39  split_config.arm64_v8a.apk      0x6dff9994fc        [inlined] std::_fl::__function::__alloc_func<T>::operator()[abi:v15000] (function.h:185)
40  split_config.arm64_v8a.apk      0x6dff9994fc        std::_fl::__function::__func<T>::operator() (function.h:359)
41  split_config.arm64_v8a.apk      0x6dff6457d8        [inlined] std::_fl::function<T>::operator() (function.h:1187)
42  split_config.arm64_v8a.apk      0x6dff6457d8        [inlined] fml::MessageLoopImpl::FlushTasks (message_loop_impl.cc:126)
43  split_config.arm64_v8a.apk      0x6dff6457d8        fml::MessageLoopImpl::RunExpiredTasksNow (message_loop_impl.cc:139)
44  split_config.arm64_v8a.apk      0x6dff6493f8        [inlined] fml::MessageLoopAndroid::OnEventFired (message_loop_android.cc:91)
45  split_config.arm64_v8a.apk      0x6dff6493f8        [inlined] fml::MessageLoopAndroid::MessageLoopAndroid::lambda::operator() (message_loop_android.cc:41)
46  split_config.arm64_v8a.apk      0x6dff6493f8        fml::MessageLoopAndroid::MessageLoopAndroid::lambda::__invoke (message_loop_android.cc:39)
47  libutils.so                     0x7182d5c4c0        android::Looper::pollInner
48  libutils.so                     0x7182d5c0d8        android::Looper::pollOnce
49  libandroid.so                   0x6e860e8c80        ALooper_pollOnce
50  split_config.arm64_v8a.apk      0x6dff649504        fml::MessageLoopAndroid::Run (message_loop_android.cc:67)
51  split_config.arm64_v8a.apk      0x6dff64762c        [inlined] fml::MessageLoopImpl::DoRun (message_loop_impl.cc:94)
52  split_config.arm64_v8a.apk      0x6dff64762c        [inlined] fml::MessageLoop::Run (message_loop.cc:49)
53  split_config.arm64_v8a.apk      0x6dff64762c        [inlined] fml::Thread::Thread::lambda::operator() (thread.cc:154)
54  split_config.arm64_v8a.apk      0x6dff64762c        [inlined] std::_fl::__invoke[abi:v15000]<T> (invoke.h:403)
55  split_config.arm64_v8a.apk      0x6dff64762c        [inlined] std::_fl::__invoke_void_return_wrapper<T>::__call<T> (invoke.h:488)
56  split_config.arm64_v8a.apk      0x6dff64762c        [inlined] std::_fl::__function::__alloc_func<T>::operator()[abi:v15000] (function.h:185)
57  split_config.arm64_v8a.apk      0x6dff64762c        std::_fl::__function::__func<T>::operator() (function.h:359)
58  split_config.arm64_v8a.apk      0x6dff647460        [inlined] std::_fl::function<T>::operator() (function.h:1187)
59  split_config.arm64_v8a.apk      0x6dff647460        [inlined] fml::ThreadHandle::ThreadHandle::lambda::operator() (thread.cc:76)
60  split_config.arm64_v8a.apk      0x6dff647460        fml::ThreadHandle::ThreadHandle::lambda::__invoke (thread.cc:73)
61  libc.so                         0x7184d4b234        __pthread_start
62  libc.so                         0x7184ce5e64        __start_thread

Activity

  1. darshankawar commented on Sep 18, 2025

    @darshankawar
    Member

    @stx Could be related to #171719 which has been fixed recently but isn't in latest stable yet but is available in latest master and beta. Can you check if you have similar code implementation in your app that might be causing the crash?

  2. added
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    on Sep 18, 2025
  3. stx commented on Sep 19, 2025

    @stx
    Author

    @darshankawar Thanks for sharing that issue. We don’t have that code implementation, but we do use Lottie, which performs extensive custom painting. I assume it does similar things to that code implementation, so it could be related. However, we don’t have the exact devices required to verify the fix.

    I’m surprised that the fix you linked for a fatal crash regression doesn’t qualify for inclusion in the stable branch. Unfortunately, we lack the courage to update our commercial app to Flutter master, so we will continue to leave Impeller disabled indefinitely until stable catches up with the fixes.

    Thank you for your help!

  4. removed
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    on Sep 19, 2025
  5. darshankawar commented on Sep 19, 2025

    @darshankawar
    Member

    Thanks for update @stx. The issue I linked may or may not be the same but I referred it to see if it relates to your case or not.

    • SM-N975U1, Android 12
    • SM-A805F, Android 11
    • SM-G973U, Android 12
    • SM-G973U, Android 11
    • SM-N975U1, Android 12
    • SM-N970U, Android 12
    • SM-G973U1, Android 12
    • MI 9, Android 10

    Can you provide us GPU / processor details of these devices ?

  6. added
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    on Sep 19, 2025
  7. stx commented on Sep 19, 2025

    @stx
    Author

    Thanks for update @stx. The issue I linked may or may not be the same but I referred it to see if it relates to your case or not.

    • SM-N975U1, Android 12
    • SM-A805F, Android 11
    • SM-G973U, Android 12
    • SM-G973U, Android 11
    • SM-N975U1, Android 12
    • SM-N970U, Android 12
    • SM-G973U1, Android 12
    • MI 9, Android 10

    Can you provide us GPU / processor details of these devices ?

    I'm not familiar, sorry. Just have these Sentry reports.

  8. removed
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    on Sep 19, 2025
  9. darshankawar commented on Sep 19, 2025

    @darshankawar
    Member

    I'll keep the issue open and label based on stacktrace, for team's attention.

  10. added
    platform-androidAndroid applications specifically
    c: crashStack traces logged to the console
    a: productionIssues experienced in live production apps
    needs repro infoAutomated crash report whose cause isn't yet known
    e: impellerImpeller rendering backend issues and features requests
    on Sep 19, 2025
  11. 9 remaining items

  12. chinmaygarde commented on Oct 6, 2025

    @chinmaygarde
    Contributor

    @akshatAndMohit Thanks for the repro case. We are going to take a look into it. It looks like a problematic lottie file.

    @stx seemed to report that the crash was "Possible triggered by certain Lottie animations, but cannot be certain." so we are currently assuming the two reporters are reporting the same issue.

    @akshatAndMohit Can you also verify if the backtrace matches the original reporters issue? Thanks anyway for the helpful repro. case.

  13. added
    P2Important issues not at the top of the work list
    slimpellerEngine binary size reduction. go/slimpeller
    on Oct 6, 2025
  14. akshatAndMohit commented on Oct 6, 2025

    @akshatAndMohit

    @chinmaygarde actually this Lottie working fine with Skia and with android Native but only causing problem with Impeller in Flutter

  15. removed
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    needs repro infoAutomated crash report whose cause isn't yet known
    on Oct 7, 2025
  16. Youssef-Sholkamy commented on Nov 27, 2025

    @Youssef-Sholkamy

    Currently facing same issue on Samsung Galaxy S10 lite (SM-G770F) Android 13. After disabling Impeller and running the app on Skia, the issue went away. Some logs that might help with the debugging.

    W/Adreno-GSL(24302): <gsl_ldd_control:553>: ioctl fd 93 code 0xc0300945 (IOCTL_KGSL_GPUOBJ_ALLOC) failed: errno 12 Out of memory
    E/Adreno-GSL(24302): <gsl_memory_alloc_pure:2604>: GSL MEM ERROR: kgsl_sharedmem_alloc ioctl failed.
    E/flutter (24302): [ERROR:flutter/impeller/renderer/backend/vulkan/allocator_vk.cc(361)] Break on 'ImpellerValidationBreak' to inspect point of failure: Unable to allocate Vulkan Image: ErrorOutOfDeviceMemory Type: Texture2DMultisample Mode: DeviceTransient Usage: { RenderTarget } [VK]Flags: {} [VK]Format: R8G8B8A8Unorm [VK]Usage: { ColorAttachment | InputAttachment } [VK]Mem. Flags: { DeviceLocal }
    E/flutter (24302): [ERROR:flutter/impeller/renderer/render_target.cc(411)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not create multisample color texture.
    E/flutter (24302): [ERROR:flutter/impeller/renderer/render_target.cc(26)] Break on 'ImpellerValidationBreak' to inspect point of failure: Render target does not have color attachment at index 0.
    E/flutter (24302): [ERROR:flutter/impeller/renderer/render_target.cc(26)] Break on 'ImpellerValidationBreak' to inspect point of failure: Render target does not have color attachment at index 0.
    F/libc (24302): Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 24336 (1.raster), pid 24302 (le.ordering_app)


    Build fingerprint: 'samsung/r5qnaxx/r5q:13/TP1A.220624.014/G770FXXS9HXA2:user/release-keys'
    Revision: '9'
    ABI: 'arm64'
    Processor: '5'
    Timestamp: 2025-11-27 17:26:35.801907312+0200
    Process uptime: 202s
    Cmdline: com.example.ordering_app
    pid: 24302, tid: 24336, name: 1.raster >>> com.example.ordering_app <<<
    uid: 10257
    signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0000000000000000
    Cause: null pointer dereference
    x0 0000000000000000 x1 0000000000000000 x2 0000000000000001 x3 0000000000000006
    x4 0000000000000021 x5 0000000000000000 x6 00000076090c2000 x7 0000000004854616
    x8 ed5dfe4d1cdc4331 x9 ed5dfe4d1cdc4331 x10 00000075351a1dc0 x11 00000075351a0860
    x12 00000075351a0830 x13 000000000623b2f0 x14 000000000623b290 x15 00008c300fbf1a51
    x16 00000074d137c3e0 x17 00000075deec2f48 x18 00000074ce53e000 x19 00000074cf060808
    x20 00000074cf060b88 x21 0000000000000000 x22 00000074cf0605e0 x23 00000074cf0607e8
    x24 0000000000000000 x25 00000074cf062000 x26 0000000000000000 x27 0000000000000000
    x28 b40000753d54ae98 x29 00000074cf062000
    lr 00000074d0e2679c sp 00000074cf060490 pc 00000074d0a638bc pst 0000000060000000
    backtrace:
    #00 pc 00000000019fd8bc /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #1 pc 0000000001dc0798 /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #2 pc 0000000001dc0060 /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #3 pc 0000000001dc1d64 /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #4 pc 0000000001a60f28 /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #5 pc 0000000001dc8804 /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #6 pc 0000000001a61af4 /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #7 pc 0000000001a60f28 /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #8 pc 0000000001dc9b9c /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #9 pc 0000000001ee4c10 /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #10 pc 0000000001d2a07c /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #11 pc 0000000001d29f5c /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #12 pc 0000000001d29fe4 /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #13 pc 0000000001e6c708 /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #14 pc 0000000001e6c1c8 /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #15 pc 0000000001e6b02c /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #16 pc 0000000001e6ba2c /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #17 pc 0000000001e6d838 /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #18 pc 0000000001e6b49c /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #19 pc 0000000001e6b238 /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #20 pc 0000000001e7a670 /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #21 pc 00000000019fad48 /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #22 pc 0000000001a00e74 /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #23 pc 0000000000018028 /system/lib64/libutils.so (android::Looper::pollInner(int)+1064) (BuildId: 97f353c1a350efeb766e1e852854da85)
    #24 pc 0000000000017b9c /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+116) (BuildId: 97f353c1a350efeb766e1e852854da85)
    #25 pc 0000000000018598 /system/lib64/libandroid.so (ALooper_pollOnce+104) (BuildId: a5f6911a1c3c5eaaabc875c3a07fb701)
    #26 pc 0000000001a00e00 /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #27 pc 00000000019faca0 /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #28 pc 00000000019feca4 /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #29 pc 00000000019feb14 /data/app/~~oJvKjEBDGt87brtVa6AQ7A==/com.example.ordering_app-UhmnNjGra0ZdDZIuSaFPCg==/base.apk!libflutter.so (BuildId: b4d13a2f26651d3f0d0d347fc033c5514a003aaf)
    #30 pc 00000000000f5298 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+208) (BuildId: 55a7515345951d438fd16e74b171760b)
    #31 pc 000000000008ebdc /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+68) (BuildId: 55a7515345951d438fd16e74b171760b)

  17. dhc-liuhongtao commented on Apr 8, 2026

    @dhc-liuhongtao

    In version 3.35.6, my app also experienced a large number of crashes. The key information from Google Firebase Crashlytics is as follows:
    1.According to the event reporting information, the crash occurs either during app startup or during usage.
    2.RAM available capacity is very low
    3.Most of them are Qualcomm GPUs:
    F-52B: Adreno 619 GPU
    OPPO OPG02_jp_kdi: Adreno 619 GPU
    OPPO CPH2309: Adreno 619 GPU
    OPPO A55s 5G: Adreno 619 GPU

    null pointer dereference: SIGSEGV 0x0000000000000028
    #00 pc 0x981570 libflutter.so (BuildId: 131eeda3d8b650ac635d8e496936981e3f591338)
    #1 pc 0x982ed0 libflutter.so (BuildId: 131eeda3d8b650ac635d8e496936981e3f591338)
    #2 pc 0x7ffdc4 libflutter.so (BuildId: 131eeda3d8b650ac635d8e496936981e3f591338)

    Thread:
    #00 pc 0x98760 libc.so (BuildId: 61a049a7ad18156ebc52d8d483539df9)
    #1 pc 0x5ffd1c libart.so (BuildId: a1fcb66a9fb3fa9071e8a42dcf9cd5ea)
    #2 pc 0x5ff4e4 libart.so (BuildId: a1fcb66a9fb3fa9071e8a42dcf9cd5ea)
    #3 pc 0x717b5784
    #4 pc 0x7179c1a4
    #5 pc 0x65f47c libart.so (BuildId: a1fcb66a9fb3fa9071e8a42dcf9cd5ea)
    #6 pc 0x7179c770
    #7 pc 0x7179d568
    #8 pc 0x70493c2462
    #9 pc 0x669300 libart.so (BuildId: a1fcb66a9fb3fa9071e8a42dcf9cd5ea)
    #10 pc 0x66a79c libart.so (BuildId: a1fcb66a9fb3fa9071e8a42dcf9cd5ea)
    #11 pc 0x70493c2462
    #12 pc 0x70493d91c2
    #13 pc 0x65f47c libart.so (BuildId: a1fcb66a9fb3fa9071e8a42dcf9cd5ea)
    #14 pc 0x668384 libart.so (BuildId: a1fcb66a9fb3fa9071e8a42dcf9cd5ea)
    #15 pc 0x70493d91c2
    #16 pc 0x70493dfd3c
    #17 pc 0x65f47c libart.so (BuildId: a1fcb66a9fb3fa9071e8a42dcf9cd5ea)
    #18 pc 0x6692a4 libart.so (BuildId: a1fcb66a9fb3fa9071e8a42dcf9cd5ea)
    #19 pc 0x70493dfd3c
    #20 pc 0x70493dfcb8
    #21 pc 0x65f47c libart.so (BuildId: a1fcb66a9fb3fa9071e8a42dcf9cd5ea)
    #22 pc 0x6692a4 libart.so (BuildId: a1fcb66a9fb3fa9071e8a42dcf9cd5ea)
    #23 pc 0x662cc0 libart.so (BuildId: a1fcb66a9fb3fa9071e8a42dcf9cd5ea)
    #24 pc 0x70493dfcb8
    #25 pc 0x65f47c libart.so (BuildId: a1fcb66a9fb3fa9071e8a42dcf9cd5ea)
    #26 pc 0x6692a4 libart.so (BuildId: a1fcb66a9fb3fa9071e8a42dcf9cd5ea)
    #27 pc 0x66e1f0 libart.so (BuildId: a1fcb66a9fb3fa9071e8a42dcf9cd5ea)
    #28 pc 0x65f47c libart.so (BuildId: a1fcb66a9fb3fa9071e8a42dcf9cd5ea)
    #29 pc 0x6692a4 libart.so (BuildId: a1fcb66a9fb3fa9071e8a42dcf9cd5ea)
    #30 pc 0xc0d3bc libart.so (BuildId: a1fcb66a9fb3fa9071e8a42dcf9cd5ea)
    #31 pc 0x2aaf94 libart.so (BuildId: a1fcb66a9fb3fa9071e8a42dcf9cd5ea)
    #32 pc 0x2a8f14 libart.so (BuildId: a1fcb66a9fb3fa9071e8a42dcf9cd5ea)
    #33 pc 0x2ca26c libart.so (BuildId: a1fcb66a9fb3fa9071e8a42dcf9cd5ea)
    #34 pc 0x614938 libart.so (BuildId: a1fcb66a9fb3fa9071e8a42dcf9cd5ea)

  18. bibekpandainnopay commented on Jul 7, 2026

    @bibekpandainnopay

    Adding another data point for this issue class — same Adreno + Impeller/Vulkan HardwareBuffer allocation failure, but on a newer device (Adreno 720, Android 16) with a milder symptom: instead of a hard segfault, the engine recovers via a surface re-initialization, which shows up as a visible reload/flash on app launch before the app continues normally. Screen recording of the reload is attached below.

    Device

    Model Motorola Edge 50 Pro (XT2403)
    SoC / GPU Snapdragon 7 Gen 3 / Adreno 720
    GPU driver OpenGL ES 3.2 [email protected] (GIT@f8fe1c3431, I2d857631a6, 1764949614) (Date: 12/05/25)
    Android 16
    Flutter 3.41.9 (stable), engine 9161402dc0e134b3fb5adee5046b6e84b1a5e1c1

    Symptom

    On launch, the app briefly flashes/reloads (the Flutter surface is re-created), then continues normally. It does not crash — the engine appears to fall back after the failed allocation. On older Motorola devices the same app launches with no reload.

    Disabling Impeller completely resolves it. With this in AndroidManifest.xml:

    <meta-data android:name="io.flutter.embedding.android.EnableImpeller" android:value="false" />

    the launch reload is gone and the app renders normally (OpenGL/Skia backend). Re-enabling Impeller (the default) brings the reload back. This points at the Vulkan/Impeller allocation path rather than anything app-side.

    Screen recording

    impeller_vulkan_issue.mp4

    Logs

    The failure is gralloc4 / Adreno rejecting isSupported for format 59 (0x3b = RGBA_FP16 / R16G16B16A16_FLOAT), usage 0x300:

    qdgralloc               E  GetGpuPixelFormat: No map for format: 0x3b
    AdrenoUtils             E  <validate_memory_layout_input_parmas:2358>: Unknown Format 0
    AdrenoUtils             E  <adreno_init_memory_layout:4845>: Memory Layout input parameter validation failed!
    Gralloc4                E  isSupported(1, 1, 59, 1, ...) failed with 7
    GraphicBufferAllocator  E  Failed to allocate (4 x 4) layerCount 1 format 59 usage 300: 7
    AHardwareBuffer         E  GraphicBuffer(w=4, h=4, lc=1) failed (Unknown error -7), handle=0x0
    

    The 4 x 4 allocation suggests this happens during an engine warm-up / probe, not a large surface.

    Notes

    • Looks like the same root cause tracked here (Adreno driver rejecting the FP16 HardwareBuffer format Impeller requests), just on a newer Adreno where the engine survives the failure with a re-init rather than segfaulting. Sharing it as a "recovers instead of crashes" point on the failure gradient.
    • Closely related open report with the identical format 59 / isSupported(1, 1, 59, ...) signature (though webview-scoped): [webview_flutter] Flutter Web renders blank screen on specific Samsung devices (gralloc4 buffer allocation failures) #185026.
    • Note on workarounds: ImpellerBackend=opengles is debug/profile-only and does not help release builds; EnableImpeller=false is the only release-mode workaround.
  19. giovanninibarbosa commented on Aug 26, 2026

    @giovanninibarbosa

    Another data point, with an axis that I don't think is represented in this thread yet: Android 16 on MediaTek/Mali, not Adreno.

    Production app, Flutter 3.44.4, Impeller + Vulkan. 353 events / 117 users in the last 30 days on the top crash group alone.

    Why the Android 16 correlation looks like a gate, not exposure

    os events (30d)
    Android 16 350
    Android 13 3

    99.2% of the crashes are on Android 16. Normalized against our own base, Android 16 accounts for 41.5% of all Android error events in this project over the same window (6,015 of 14,511) and 41.8% of affected users. Uniform distribution would predict ~146 events; we observe 350 — about 2.4x, with near-total exclusivity.

    Devices

    device.family events users
    moto 243 75
    2409FPCC4G (POCO/Xiaomi) 48 17
    24094RAD4G (Redmi) 48 19

    Chipsets read from the events: MediaTek MT6855 / MT6855G (Mali-G57 class). One confirmed model: moto g56 5G, Android 16, kernel 6.12.38, 8 GB RAM.

    This is consistent with @chinmaygarde's earlier point that the crash is not GPU vendor specific — every other report here is Adreno/Qualcomm, and we see the same signature on Mali.

    Where it happens

    route events users
    onboarding 151 59
    (none — before the router registers a route, i.e. cold start) 117 39
    main 42 12
    login 20 19
    other 23 11

    ~76% at cold start or in the first user flow. Our onboarding flow renders a Lottie animation, which matches the Lottie trigger discussed above.

    Signature

    The crashed thread tail matches what's already reported:

    flutter::Rasterizer::DrawToSurfaceUnsafe        (rasterizer.cc:811)
    flutter::SurfaceFrame::Submit                   (surface_frame.cc:65)
    flutter::GPUSurfaceVulkanImpeller::AcquireFrame (gpu_surface_vulkan_impeller.cc:122)
    impeller::RenderToTarget                        (dl_dispatcher.cc:1325)
    impeller::Canvas::DrawRect                      (canvas.cc:855)
    impeller::Canvas::AddRenderEntityWithFiltersToCurrentPass (canvas.cc:2006)
    impeller::Entity::SetContents                   (entity.cc)
    impeller::Canvas::AddRenderEntityToCurrentPass  (canvas.cc:2095)
    std::__fl::shared_ptr<T>::operator->            (shared_ptr.h:635)   <- null deref
    

    Our crash reporter groups by top frame, so this one bug is split across 9 groups for us (~378 events / 30d). Two of the sibling groups have cleaner semantic tails and are worth noting, since both are on the depth/stencil side of the same path:

    impeller::(anonymous namespace)::SetClipScissor      <- SIGSEGV
    impeller::Canvas::GetLocalCoverageLimit (canvas.cc:1472)
      -> fml::LogMessage::~LogMessage -> fml::KillProcess -> abort
    

    The second one is a FML_CHECK in the engine rather than a segfault, which is consistent with the "depth attachment unexpectedly missing from the EntityPass render target" chain described in #176211.

    On register dumps

    I saw the request for register dumps upstream. Our reports come from a crash reporter that doesn't surface them in the API we have access to; if a raw crash payload from one of these Android 16 / MT6855 events would be useful, I can try to pull one — let me know what format helps most.

    Happy to provide additional breakdowns (specific OS builds, memory state at crash time, more device models) if any of it is useful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work lista: productionIssues experienced in live production appsc: crashStack traces logged to the consolee: impellerImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.platform-androidAndroid applications specificallyslimpellerEngine binary size reduction. go/slimpellerteam-engineOwned by Engine teamtriaged-engineTriaged by Engine team

    Type

    No type

    Projects

    • Status
      Needs Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions