-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Closed
flutter/engine
#39595Labels
P0Critical issues such as a build break or regressionCritical issues such as a build break or regressione: impellerImpeller rendering backend issues and features requestsImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.flutter/engine related. See also e: labels.
Milestone
Description
Steps to Reproduce
- Enable impeller
flutter run
Expected results:
App runs.
Actual results:
App crashed with SIGABRT coming from thread #10, name = 'io.flutter.1.raster'
Crash happens on iPhone 13, iPhone 14 Pro.
Crash did not happen on iPhone 11 Pro / iPhone 12 Pro.
Code sample
We were not able to create a minimum example, however, we have identified that removing the ClipPath widget from our widget tree prevents the crash from happening.
Clipper
Clipper:
class _MyClipper extends CustomClipper<Path> {
final Size clipSize;
const _MyClipper({
required this.clipSize,
});
@override
Path getClip(Size size) {
return Path.combine(
PathOperation.difference,
Path()..addRect(Rect.fromLTWH(0, 0, size.width, size.height)),
Path()
..addRect(
Rect.fromCenter(
center: Offset(size.width / 2, size.height / 2),
width: clipSize.width,
height: clipSize.height,
),
)
..close(),
);
}
@override
bool shouldReclip(CustomClipper<Path> oldClipper) => false;
}
Stack(
children: [
ClipPath(
clipper: _TargetOverlay(
clipSize: Size(
450 / 4 * 3 * 0.8,
450 * 0.8,
),
),
// Background image
child: Image.memory(Uint8List.fromList(
_image!))),
],
Logs
[ ] * thread #10, name = 'io.flutter.1.raster', stop reason = signal SIGABRT
[ ] * frame #0: 0x0000000215793674 libsystem_kernel.dylib`__pthread_kill + 8
[ ] frame #1: 0x0000000225ef71ac libsystem_pthread.dylib`pthread_kill + 268
[ ] frame #2: 0x00000001df2f4c8c libsystem_c.dylib`abort + 180
[ ] frame #3: 0x0000000106fff37c Flutter`std::_LIBCPP_ABI_NAMESPACE::__throw_bad_optional_access[abi:v15000]() + 12
[ ] frame #4: 0x0000000107493784 Flutter`impeller::ClipContents::GetStencilCoverage(impeller::Entity const&, std::_LIBCPP_ABI_NAMESPACE::optional<impeller::TRect<float> > const&) const + 364
[ ] frame #5: 0x00000001074e2fb0 Flutter`impeller::EntityPass::OnRender(impeller::ContentContext&, impeller::TSize<long long>, impeller::RenderTarget const&, impeller::TPoint<float>, impeller::TPoint<float>, unsigned int, unsigned long, std::_LIBCPP_ABI_NAMESPACE::shared_ptr<impeller::Contents>) const::$_0::operator()(impeller::Entity&) const + 188
[ ] frame #6: 0x00000001074e24d4 Flutter`impeller::EntityPass::OnRender(impeller::ContentContext&, impeller::TSize<long long>, impeller::RenderTarget const&, impeller::TPoint<float>, impeller::TPoint<float>, unsigned int, unsigned long, std::_LIBCPP_ABI_NAMESPACE::shared_ptr<impeller::Contents>) const + 2920
[ ] frame #7: 0x000000010748b72c Flutter`impeller::AiksContext::Render(impeller::Picture const&, impeller::RenderTarget&) + 476
[ ] frame #8: 0x00000001075233b8 Flutter`std::_LIBCPP_ABI_NAMESPACE::__function::__func<fml::internal::CopyableLambda<flutter::GPUSurfaceMetalImpeller::AcquireFrame(SkISize const&)::$_0>, std::_LIBCPP_ABI_NAMESPACE::allocator<fml::internal::CopyableLambda<flutter::GPUSurfaceMetalImpeller::AcquireFrame(SkISize const&)::$_0> >, bool (flutter::SurfaceFrame&, SkCanvas*)>::operator()(flutter::SurfaceFrame&, SkCanvas*&&) + 668
[ ] frame #9: 0x000000010741b814 Flutter`flutter::SurfaceFrame::Submit() + 84
[ ] frame #10: 0x000000010735469c Flutter`flutter::Rasterizer::DrawToSurfaceUnsafe(flutter::FrameTimingsRecorder&, flutter::LayerTree&) + 1276
[ ] frame #11: 0x0000000107355160 Flutter`std::_LIBCPP_ABI_NAMESPACE::__function::__func<flutter::Rasterizer::DrawToSurface(flutter::FrameTimingsRecorder&, flutter::LayerTree&)::$_6, std::_LIBCPP_ABI_NAMESPACE::allocator<flutter::Rasterizer::DrawToSurface(flutter::FrameTimingsRecorder&, flutter::LayerTree&)::$_6>, void ()>::operator()() + 28
[ ] frame #12: 0x00000001072626ec Flutter`fml::SyncSwitch::Execute(fml::SyncSwitch::Handlers const&) const + 72
[ ] frame #13: 0x0000000107354040 Flutter`flutter::Rasterizer::DrawToSurface(flutter::FrameTimingsRecorder&, flutter::LayerTree&) + 272
[ ] frame #14: 0x00000001073560e4 Flutter`std::_LIBCPP_ABI_NAMESPACE::__function::__func<flutter::Rasterizer::Draw(std::_LIBCPP_ABI_NAMESPACE::shared_ptr<flutter::Pipeline<flutter::LayerTreeItem> > const&, std::_LIBCPP_ABI_NAMESPACE::function<bool (flutter::LayerTree&)>)::$_2, std::_LIBCPP_ABI_NAMESPACE::allocator<flutter::Rasterizer::Draw(std::_LIBCPP_ABI_NAMESPACE::shared_ptr<flutter::Pipeline<flutter::LayerTreeItem> > const&, std::_LIBCPP_ABI_NAMESPACE::function<bool (flutter::LayerTree&)>)::$_2>, void (std::_LIBCPP_ABI_NAMESPACE::unique_ptr<flutter::LayerTreeItem, std::_LIBCPP_ABI_NAMESPACE::default_delete<flutter::LayerTreeItem> >)>::operator()(std::_LIBCPP_ABI_NAMESPACE::unique_ptr<flutter::LayerTreeItem, std::_LIBCPP_ABI_NAMESPACE::default_delete<flutter::LayerTreeItem> >&&) + 312
[ ] frame #15: 0x00000001073553ac Flutter`flutter::Rasterizer::Draw(std::_LIBCPP_ABI_NAMESPACE::shared_ptr<flutter::Pipeline<flutter::LayerTreeItem> > const&, std::_LIBCPP_ABI_NAMESPACE::function<bool (flutter::LayerTree&)>) + 460
[ ] frame #16: 0x000000010736aed4 Flutter`std::_LIBCPP_ABI_NAMESPACE::__function::__func<fml::internal::CopyableLambda<flutter::Shell::OnAnimatorDraw(std::_LIBCPP_ABI_NAMESPACE::shared_ptr<flutter::Pipeline<flutter::LayerTreeItem> >)::$_12>, std::_LIBCPP_ABI_NAMESPACE::allocator<fml::internal::CopyableLambda<flutter::Shell::OnAnimatorDraw(std::_LIBCPP_ABI_NAMESPACE::shared_ptr<flutter::Pipeline<flutter::LayerTreeItem> >)::$_12> >, void ()>::operator()() + 368
[ ] frame #17: 0x0000000107260ea8 Flutter`fml::MessageLoopImpl::FlushTasks(fml::FlushType) + 568
[ ] frame #18: 0x0000000107264a48 Flutter`fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*) + 32
[ ] frame #19: 0x00000001d7d3d32c CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 32
[ ] frame #20: 0x00000001d7cf99a8 CoreFoundation`__CFRunLoopDoTimer + 940
[ ] frame #21: 0x00000001d7c9d548 CoreFoundation`__CFRunLoopDoTimers + 288
[ ] frame #22: 0x00000001d7ceafa0 CoreFoundation`__CFRunLoopRun + 1896
[ ] frame #23: 0x00000001d7cefeb0 CoreFoundation`CFRunLoopRunSpecific + 612
[ ] frame #24: 0x0000000107264b34 Flutter`fml::MessageLoopDarwin::Run() + 88
[ ] frame #25: 0x0000000107263c28 Flutter`void* std::_LIBCPP_ABI_NAMESPACE::__thread_proxy[abi:v15000]<std::_LIBCPP_ABI_NAMESPACE::tuple<std::_LIBCPP_ABI_NAMESPACE::unique_ptr<std::_LIBCPP_ABI_NAMESPACE::__thread_struct, std::_LIBCPP_ABI_NAMESPACE::default_delete<std::_LIBCPP_ABI_NAMESPACE::__thread_struct> >, fml::Thread::Thread(std::_LIBCPP_ABI_NAMESPACE::function<void (fml::Thread::ThreadConfig const&)> const&, fml::Thread::ThreadConfig const&)::$_0> >(void*) + 208
[ ] frame #26: 0x0000000225ef16cc libsystem_pthread.dylib`_pthread_start + 148
$ flutter doctor -v [13:07:17]
[✓] Flutter (Channel stable, 3.7.1, on macOS 13.2 22D49 darwin-arm64, locale en-CA)
• Flutter version 3.7.1 on channel stable at /Users/archerzhang/src/github.com/flutter
• Upstream repository [email protected]:flutter/flutter.git
• Framework revision 7048ed95a5 (6 days ago), 2023-02-01 09:07:31 -0800
• Engine revision 800594f1f4
• Dart version 2.19.1
• DevTools version 2.20.1
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
• Android SDK at /Users/archerzhang/Library/Android/sdk
• Platform android-33, build-tools 33.0.0
• Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 14C18
• CocoaPods version 1.11.3
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2021.3)
• 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 11.0.13+0-b1751.21-8125866)
[✓] VS Code (version 1.71.2)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.50.0
[✓] Connected device (3 available)
• exotic eridanus (mobile) • 00008110-001038A20269801E • ios • iOS 16.3 20D47
• macOS (desktop) • macos • darwin-arm64 • macOS 13.2 22D49
darwin-arm64
• Chrome (web) • chrome • web-javascript • Google Chrome 109.0.5414.119
[✓] HTTP Host Availability
• All required HTTP hosts are available
• No issues found!
RobertBrunhage
Metadata
Metadata
Assignees
Labels
P0Critical issues such as a build break or regressionCritical issues such as a build break or regressione: impellerImpeller rendering backend issues and features requestsImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.flutter/engine related. See also e: labels.