mapbox / mapbox-maps-ios

Interactive, thoroughly customizable maps for iOS powered by vector tiles and Metal
https://www.mapbox.com/mapbox-mobile-sdk
Other
454 stars 148 forks source link

Crash during MetalView.draw method call #2195

Open Bogdan-Belogurov opened 1 month ago

Bogdan-Belogurov commented 1 month ago

Thanks for all your hard work!

Environment

Observed behavior and steps to reproduce

Just staying on the map, and sometimes this crash happens. I have updateGeoJSONSource and updateLayer called frequently to update the position and appearance of the layer. Maybe you know what is wrong and can help me understand the cause.

Stack traces:

1

```bash Crashed: com.apple.main-thread 0 MapboxCoreMaps 0x2b0ee0 mbgl::RenderSymbolLayer::render(mbgl::PaintParameters&) + 2500 1 MapboxCoreMaps 0x2e9cd8 mbgl::(anonymous namespace)::LayerRenderItemImpl::render(mbgl::PaintParameters&) const + 92 2 MapboxCoreMaps 0x303cd0 mbgl::Renderer::Impl::render(mbgl::RenderTree const&) + 28280 3 MapboxCoreMaps 0x2f86f0 mbgl::Renderer::render(std::__1::shared_ptr const&) + 604 4 MapboxCoreMaps 0x79130 mapbox::maps::MapImpl::Impl::render() + 400 5 MapboxCoreMaps 0x74270 -[MBMMetalViewDelegate drawInMTKView:] + 536 6 MetalKit 0x3224 -[MTKView draw] + 160 7 App 0xd3282c MapView.updateFromDisplayLink(displayLink:) + 631 (MapView.swift:631) 8 App 0xd33354 closure #1 in MapView.didMoveToWindow() + 667 (MapView.swift:667) 9 App 0xd1d93c ForwardingDisplayLinkTarget.update(with:) + 12 (ForwardingDispalyLinkTarget.swift:12) 10 App 0xd1d988 @objc ForwardingDisplayLinkTarget.update(with:) + 4347599240 (:4347599240) 11 QuartzCore 0x2fd50 CA::Display::DisplayLinkItem::dispatch_(CA::SignPost::Interval<(CA::SignPost::CAEventCode)835322056>&) + 48 12 QuartzCore 0x32f30 CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 868 13 QuartzCore 0xb1654 CA::Display::DisplayLink::dispatch_deferred_display_links(unsigned int) + 352 14 UIKitCore 0xaad78 _UIUpdateSequenceRun + 84 15 UIKitCore 0xaa468 schedulerStepScheduledMainSection + 144 16 UIKitCore 0xaa524 runloopSourceCallback + 92 17 CoreFoundation 0x3762c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28 18 CoreFoundation 0x368a8 __CFRunLoopDoSource0 + 176 19 CoreFoundation 0x35058 __CFRunLoopDoSources0 + 244 20 CoreFoundation 0x33d88 __CFRunLoopRun + 828 21 CoreFoundation 0x33968 CFRunLoopRunSpecific + 608 22 GraphicsServices 0x34e0 GSEventRunModal + 164 23 UIKitCore 0x22aedc -[UIApplication _run] + 888 24 UIKitCore 0x22a518 UIApplicationMain + 340 25 App 0x806c main + 24 (main.swift:24) ```

2

```bash Crashed: com.apple.main-thread 0 MapboxCoreMaps 0x1adea0 mbgl::UpdateParameters::~UpdateParameters() + 236 1 MapboxCoreMaps 0x4eb32c mbgl::Placement::reset(std::__1::shared_ptr, mbgl::Placement const*) + 96 2 MapboxCoreMaps 0x4f8c70 mbgl::PlacementController::updatePlacement(std::__1::shared_ptr) + 120 3 MapboxCoreMaps 0x2e0b20 mbgl::RenderOrchestrator::createRenderTree(std::__1::shared_ptr const&) + 58852 4 MapboxCoreMaps 0x2f855c mbgl::Renderer::render(std::__1::shared_ptr const&) + 200 5 MapboxCoreMaps 0x79130 mapbox::maps::MapImpl::Impl::render() + 400 6 MapboxCoreMaps 0x74270 -[MBMMetalViewDelegate drawInMTKView:] + 536 7 MetalKit 0x3224 -[MTKView draw] + 160 8 App 0xd3282c MapView.updateFromDisplayLink(displayLink:) + 631 (MapView.swift:631) 9 App 0xd33354 closure #1 in MapView.didMoveToWindow() + 667 (MapView.swift:667) 10 App 0xd1d93c ForwardingDisplayLinkTarget.update(with:) + 12 (ForwardingDispalyLinkTarget.swift:12) 11 App 0xd1d988 @objc ForwardingDisplayLinkTarget.update(with:) + 4324645256 (:4324645256) 12 QuartzCore 0x2fd50 CA::Display::DisplayLinkItem::dispatch_(CA::SignPost::Interval<(CA::SignPost::CAEventCode)835322056>&) + 48 13 QuartzCore 0x32f30 CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 868 14 QuartzCore 0xb1654 CA::Display::DisplayLink::dispatch_deferred_display_links(unsigned int) + 352 15 UIKitCore 0xaad78 _UIUpdateSequenceRun + 84 16 UIKitCore 0xaa468 schedulerStepScheduledMainSection + 144 17 UIKitCore 0xaa524 runloopSourceCallback + 92 18 CoreFoundation 0x3762c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28 19 CoreFoundation 0x368a8 __CFRunLoopDoSource0 + 176 20 CoreFoundation 0x35058 __CFRunLoopDoSources0 + 244 21 CoreFoundation 0x33d88 __CFRunLoopRun + 828 22 CoreFoundation 0x33968 CFRunLoopRunSpecific + 608 23 GraphicsServices 0x34e0 GSEventRunModal + 164 24 UIKitCore 0x22aedc -[UIApplication _run] + 888 25 UIKitCore 0x22a518 UIApplicationMain + 340 26 App 0x806c main + 24 (main.swift:24) ```

3

```bash Crashed: com.apple.main-thread 0 MapboxCoreMaps 0x3e2bd8 std::__1::__tree, std::__1::__map_value_compare, std::__1::less, true>, std::__1::allocator>>::destroy(std::__1::__tree_node, void*>*) + 24 1 MapboxCoreMaps 0x3e2be0 std::__1::__tree, std::__1::__map_value_compare, std::__1::less, true>, std::__1::allocator>>::destroy(std::__1::__tree_node, void*>*) + 32 2 MapboxCoreMaps 0x3e2be0 std::__1::__tree, std::__1::__map_value_compare, std::__1::less, true>, std::__1::allocator>>::destroy(std::__1::__tree_node, void*>*) + 32 3 MapboxCoreMaps 0x3e2be0 std::__1::__tree, std::__1::__map_value_compare, std::__1::less, true>, std::__1::allocator>>::destroy(std::__1::__tree_node, void*>*) + 32 4 MapboxCoreMaps 0x3e2bec std::__1::__tree, std::__1::__map_value_compare, std::__1::less, true>, std::__1::allocator>>::destroy(std::__1::__tree_node, void*>*) + 44 5 MapboxCoreMaps 0x4b43a8 std::__1::__shared_ptr_pointer::__shared_ptr_default_delete, std::__1::allocator>::__on_zero_shared() + 124 6 MapboxCoreMaps 0x4abd10 std::__1::__shared_ptr_emplace>::__on_zero_shared() + 124 7 MapboxCoreMaps 0x2d21c8 std::__1::__shared_ptr_emplace, std::__1::allocator>>, std::__1::allocator, std::__1::allocator>>>>::__on_zero_shared() + 108 8 MapboxCoreMaps 0x1ade90 mbgl::UpdateParameters::~UpdateParameters() + 220 9 MapboxCoreMaps 0x4eb32c mbgl::Placement::reset(std::__1::shared_ptr, mbgl::Placement const*) + 96 10 MapboxCoreMaps 0x4f8c70 mbgl::PlacementController::updatePlacement(std::__1::shared_ptr) + 120 11 MapboxCoreMaps 0x2e0b20 mbgl::RenderOrchestrator::createRenderTree(std::__1::shared_ptr const&) + 58852 12 MapboxCoreMaps 0x2f855c mbgl::Renderer::render(std::__1::shared_ptr const&) + 200 13 MapboxCoreMaps 0x79130 mapbox::maps::MapImpl::Impl::render() + 400 14 MapboxCoreMaps 0x74270 -[MBMMetalViewDelegate drawInMTKView:] + 536 15 MetalKit 0x74b4 -[MTKView draw] + 160 16 App 0xd3282c MapView.updateFromDisplayLink(displayLink:) + 631 (MapView.swift:631) 17 App 0xd33354 closure #1 in MapView.didMoveToWindow() + 667 (MapView.swift:667) 18 App 0xd1d93c ForwardingDisplayLinkTarget.update(with:) + 12 (ForwardingDispalyLinkTarget.swift:12) 19 App 0xd1d988 @objc ForwardingDisplayLinkTarget.update(with:) + 4316404104 (:4316404104) 20 QuartzCore 0xd0ecc CA::Display::DisplayLinkItem::dispatch_(CA::SignPost::Interval<(CA::SignPost::CAEventCode)835322056>&) + 48 21 QuartzCore 0xcf230 CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 876 22 QuartzCore 0xcedd0 CA::Display::DisplayLink::dispatch_deferred_display_links(unsigned int) + 352 23 UIKitCore 0xb776c _UIUpdateSequenceRun + 84 24 UIKitCore 0xb73b0 schedulerStepScheduledMainSection + 172 25 UIKitCore 0xb8254 runloopSourceCallback + 92 26 CoreFoundation 0x56834 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28 27 CoreFoundation 0x567c8 __CFRunLoopDoSource0 + 176 28 CoreFoundation 0x54298 __CFRunLoopDoSources0 + 244 29 CoreFoundation 0x53484 __CFRunLoopRun + 828 30 CoreFoundation 0x52cd8 CFRunLoopRunSpecific + 608 31 GraphicsServices 0x11a8 GSEventRunModal + 164 32 UIKitCore 0x40a90c -[UIApplication _run] + 888 33 UIKitCore 0x4be9d0 UIApplicationMain + 340 34 App 0x806c main + 24 (main.swift:24) ```

Expected behavior

No crash

evil159 commented 1 month ago

@Bogdan-Belogurov Hard to say from the stack traces alone, could you put together a sample project exhibiting the crash? It would help a great deal if we could reproduce it on our end.

Bogdan-Belogurov commented 1 month ago

@evil159 Thanks for the reply 🙏🏿 It's hard to reproduce because I can't figure out the steps but I'll try 🤔

MichaelDanielTom commented 1 month ago

I've also been getting crashes coming from various places in MetalView.draw. Our project also updates geojson source frequently (in order to animate some symbol and model layers). Sometimes the app crashes, sometimes the app freezes without crashing. It's been hard to reproduce reliably for me, as it seems like whatever's causing these crashes is triggered somewhere upstream, but will try to isolate as well. One thing to note in our case, is that the crashes occur usually when we are animating the camera with a camera animator.

Here are a few of the stack traces from when the app was terminated when it became unresponsive.

Trace 1 in mbgl::metal::UploadPass::updateTextureRegion App Hang: The app was terminated while unresponsive 0 libsystem_kernel.dylib +0x1804 _mach_msg2_trap 1 libsystem_kernel.dylib +0x5004 _mach_msg2_internal 2 IOKit +0x5438 _io_connect_method 3 IOKit +0x112a0 _IOConnectCallMethod 4 IOGPU +0x82bc _IOGPUResourceCreate 5 IOGPU +0x756c -[IOGPUMetalResource initWithDevice:options:args:argsSize:] 6 IOGPU +0x5afc -[IOGPUMetalBuffer initWithPrimaryBuffer:heapIndex:bufferIndex:bufferOffset:length:args:argsSize:] 7 AGXMetalG16P_B0 +0x9ca9c -[AGXBuffer(Internal) initWithDevice:length:alignment:options:isSuballocDisabled:resourceInArgs:pinnedGPULocation:] 8 AGXMetalG16P_B0 +0x9c89c -[AGXBuffer initWithDevice:length:alignment:options:isSuballocDisabled:pinnedGPULocation:] 9 MapboxCoreMaps +0xf0088 mbgl::metal::DrawScopeResource::getBuffer(mbgl::metal::Context&, unsigned long long) 10 MapboxCoreMaps +0x117c38 _ZN4mbgl5metal7ProgramINS_12ModelProgramEE6doDrawERNS0_7ContextERNS0_10RenderPassENS_3gfx10RenderModeERKNS8_8DrawModeERKNS8_9DepthModeERKNS8_11StencilModeERKNS8_9ColorModeERKNS8_12CullFaceModeERKNS8_13UniformValuesINS_8TypeListIJNS_8uniforms6matrixENSR_15lighting_matrixENSR_13normal_matrixENSR_7opacityENSR_9color_mixENSR_15baseColorFactorENSR_14metallicFactorENSR_15roughnessFactorENSR_14emissiveFactorENSR_10lightcolorENSR_8lightposENSR_14lightintensityENSR_10camera_posENSR_18baseTextureIsAlphaENSR_14inv_depth_sizeENSR_9alphaMaskENSR_11alphaCutoffENSR_11aoIntensityENSR_24indicator_cutout_centersENSR_23indicator_cutout_paramsENSR_13cutoff_paramsENSR_17emissive_strengthENSR_25occlusionTextureTransformEEEEEERNS0_17DrawScopeResourceERKNS8_17AttributeBindingsINSQ_IJNS_10attributes6pos_3fENS1M_9normal_3fENS1M_8color_3fENS1M_8color_4fENS1M_5uv_2fENS1M_3pbrENS1M_27heightBasedEmissiveStrengthENS1M_14normal_matrix0ENS1M_14normal_matrix1ENS1M_14normal_matrix2ENS1M_14normal_matrix3EEEEEERKNS8_15TextureBindingsINSQ_IJNS_8textures16baseColorTextureENS23_24metallicRoughnessTextureENS23_13normalTextureENS23_15emissionTextureENS23_16occlusionTextureENS23_12depthTextureEEEEEERKNS8_11IndexBufferEmmj 11 MapboxCoreMaps +0x1166f0 _ZN4mbgl5metal7ProgramINS_12ModelProgramEE4drawERNS_3gfx7ContextERNS4_10RenderPassENS4_10RenderModeERKNS4_8DrawModeERKNS4_9DepthModeERKNS4_11StencilModeERKNS4_9ColorModeERKNS4_12CullFaceModeERKNS4_13UniformValuesINS_8TypeListIJNS_8uniforms6matrixENSR_15lighting_matrixENSR_13normal_matrixENSR_7opacityENSR_9color_mixENSR_15baseColorFactorENSR_14metallicFactorENSR_15roughnessFactorENSR_14emissiveFactorENSR_10lightcolorENSR_8lightposENSR_14lightintensityENSR_10camera_posENSR_18baseTextureIsAlphaENSR_14inv_depth_sizeENSR_9alphaMaskENSR_11alphaCutoffENSR_11aoIntensityENSR_24indicator_cutout_centersENSR_23indicator_cutout_paramsENSR_13cutoff_paramsENSR_17emissive_strengthENSR_25occlusionTextureTransformEEEEEERNS4_9DrawScopeERKNS4_17AttributeBindingsINSQ_IJNS_10attributes6pos_3fENS1M_9normal_3fENS1M_8color_3fENS1M_8color_4fENS1M_5uv_2fENS1M_3pbrENS1M_27heightBasedEmissiveStrengthENS1M_14normal_matrix0ENS1M_14normal_matrix1ENS1M_14normal_matrix2ENS1M_14normal_matrix3EEEEEERKNS4_15TextureBindingsINSQ_IJNS_8textures16baseColorTextureENS23_24metallicRoughnessTextureENS23_13normalTextureENS23_15emissionTextureENS23_16occlusionTextureENS23_12depthTextureEEEEEERKNS4_11IndexBufferEmmjb 12 MapboxCoreMaps +0x2f5a30 (anonymous namespace)::renderInstanced(mbgl::models::Node const&, mbgl::ModelBucket::NodeAttributes&, (anonymous namespace)::LayerParameters const&, mbgl::PaintParameters&, mbgl::gfx::StencilMode const&, glm::mat<4, 4, double, (glm::qualifier)0> const&, mbgl::UnwrappedTileID const&, glm::vec<3, float, (glm::qualifier)0> const&, std::__1::basic_string, std::__1::allocator > const&, bool) 13 MapboxCoreMaps +0x2e295c mbgl::RenderModelLayer::render(mbgl::PaintParameters&) 14 MapboxCoreMaps +0x34a81c mbgl::(anonymous namespace)::LayerRenderItemImpl::render(mbgl::PaintParameters&) const 15 MapboxCoreMaps +0x368e24 mbgl::Renderer::Impl::render(mbgl::RenderTree const&) 16 MapboxCoreMaps +0x35ae98 mbgl::Renderer::render(std::__1::shared_ptr const&) 17 MapboxCoreMaps +0xa3240 mapbox::maps::MapImpl::Impl::render() 18 MapboxCoreMaps +0x9e2b4 ___ZN6mapbox5metal15RendererBackend10createViewENSt3__110shared_ptrINS_4maps9MapClientEEENS_4base7WeakPtrINS4_19MapRendererDelegateEEE_block_invoke 19 MapboxMaps +0x1b4918 @objc MetalView.DelegateImpl.draw(in:) 20 MetalKit +0x74b0 -[MTKView draw] 21 MapboxMaps +0x1a5ed0 MapView.updateFromDisplayLink(displayLink:) 22 MapboxMaps +0x1a66a0 closure #1 in MapView.didMoveToWindow() 23 MapboxMaps +0xeec98 @objc ForwardingDisplayLinkTarget.update(with:) (ForwardingDispalyLinkTarget.swift:11:9) 24 QuartzCore +0xd0ec8 CA::Display::DisplayLinkItem::dispatch_(CA::SignPost::Interval<(CA::SignPost::CAEventCode)835322056>&) 25 QuartzCore +0xcf22c CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) 26 QuartzCore +0xcedcc CA::Display::DisplayLink::dispatch_deferred_display_links(unsigned int) 27 UIKitCore +0xb7768 28 UIKitCore +0xb73ac 29 UIKitCore +0xb8250 30 CoreFoundation +0x56830 ___CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ 31 CoreFoundation +0x567c4 ___CFRunLoopDoSource0 32 CoreFoundation +0x542f4 ___CFRunLoopDoSources0 33 CoreFoundation +0x53480 ___CFRunLoopRun 34 CoreFoundation +0x52cd4 _CFRunLoopRunSpecific 35 GraphicsServices +0x11a4 _GSEventRunModal 36 UIKitCore +0x40a908 37 UIKitCore +0x4be9cc UIApplicationMain 38 Radiate +0x103c8 main (main.m:16:16) 39 dyld +0x3ce48 start
Trace 2 in mbgl::metal::DrawScopeResource::getBuffer 0 libsystem_kernel.dylib +0x1804 _mach_msg2_trap 1 libsystem_kernel.dylib +0x5004 _mach_msg2_internal 2 IOKit +0x5438 _io_connect_method 3 IOKit +0x112a0 _IOConnectCallMethod 4 IOGPU +0x82bc _IOGPUResourceCreate 5 IOGPU +0x756c -[IOGPUMetalResource initWithDevice:options:args:argsSize:] 6 IOGPU +0x5afc -[IOGPUMetalBuffer initWithPrimaryBuffer:heapIndex:bufferIndex:bufferOffset:length:args:argsSize:] 7 AGXMetalG16P_B0 +0x9ca9c -[AGXBuffer(Internal) initWithDevice:length:alignment:options:isSuballocDisabled:resourceInArgs:pinnedGPULocation:] 8 AGXMetalG16P_B0 +0x9c89c -[AGXBuffer initWithDevice:length:alignment:options:isSuballocDisabled:pinnedGPULocation:] 9 MapboxCoreMaps +0xf0088 mbgl::metal::DrawScopeResource::getBuffer(mbgl::metal::Context&, unsigned long long) 10 MapboxCoreMaps +0x117c38 _ZN4mbgl5metal7ProgramINS_12ModelProgramEE6doDrawERNS0_7ContextERNS0_10RenderPassENS_3gfx10RenderModeERKNS8_8DrawModeERKNS8_9DepthModeERKNS8_11StencilModeERKNS8_9ColorModeERKNS8_12CullFaceModeERKNS8_13UniformValuesINS_8TypeListIJNS_8uniforms6matrixENSR_15lighting_matrixENSR_13normal_matrixENSR_7opacityENSR_9color_mixENSR_15baseColorFactorENSR_14metallicFactorENSR_15roughnessFactorENSR_14emissiveFactorENSR_10lightcolorENSR_8lightposENSR_14lightintensityENSR_10camera_posENSR_18baseTextureIsAlphaENSR_14inv_depth_sizeENSR_9alphaMaskENSR_11alphaCutoffENSR_11aoIntensityENSR_24indicator_cutout_centersENSR_23indicator_cutout_paramsENSR_13cutoff_paramsENSR_17emissive_strengthENSR_25occlusionTextureTransformEEEEEERNS0_17DrawScopeResourceERKNS8_17AttributeBindingsINSQ_IJNS_10attributes6pos_3fENS1M_9normal_3fENS1M_8color_3fENS1M_8color_4fENS1M_5uv_2fENS1M_3pbrENS1M_27heightBasedEmissiveStrengthENS1M_14normal_matrix0ENS1M_14normal_matrix1ENS1M_14normal_matrix2ENS1M_14normal_matrix3EEEEEERKNS8_15TextureBindingsINSQ_IJNS_8textures16baseColorTextureENS23_24metallicRoughnessTextureENS23_13normalTextureENS23_15emissionTextureENS23_16occlusionTextureENS23_12depthTextureEEEEEERKNS8_11IndexBufferEmmj 11 MapboxCoreMaps +0x1166f0 _ZN4mbgl5metal7ProgramINS_12ModelProgramEE4drawERNS_3gfx7ContextERNS4_10RenderPassENS4_10RenderModeERKNS4_8DrawModeERKNS4_9DepthModeERKNS4_11StencilModeERKNS4_9ColorModeERKNS4_12CullFaceModeERKNS4_13UniformValuesINS_8TypeListIJNS_8uniforms6matrixENSR_15lighting_matrixENSR_13normal_matrixENSR_7opacityENSR_9color_mixENSR_15baseColorFactorENSR_14metallicFactorENSR_15roughnessFactorENSR_14emissiveFactorENSR_10lightcolorENSR_8lightposENSR_14lightintensityENSR_10camera_posENSR_18baseTextureIsAlphaENSR_14inv_depth_sizeENSR_9alphaMaskENSR_11alphaCutoffENSR_11aoIntensityENSR_24indicator_cutout_centersENSR_23indicator_cutout_paramsENSR_13cutoff_paramsENSR_17emissive_strengthENSR_25occlusionTextureTransformEEEEEERNS4_9DrawScopeERKNS4_17AttributeBindingsINSQ_IJNS_10attributes6pos_3fENS1M_9normal_3fENS1M_8color_3fENS1M_8color_4fENS1M_5uv_2fENS1M_3pbrENS1M_27heightBasedEmissiveStrengthENS1M_14normal_matrix0ENS1M_14normal_matrix1ENS1M_14normal_matrix2ENS1M_14normal_matrix3EEEEEERKNS4_15TextureBindingsINSQ_IJNS_8textures16baseColorTextureENS23_24metallicRoughnessTextureENS23_13normalTextureENS23_15emissionTextureENS23_16occlusionTextureENS23_12depthTextureEEEEEERKNS4_11IndexBufferEmmjb 12 MapboxCoreMaps +0x2f5a30 (anonymous namespace)::renderInstanced(mbgl::models::Node const&, mbgl::ModelBucket::NodeAttributes&, (anonymous namespace)::LayerParameters const&, mbgl::PaintParameters&, mbgl::gfx::StencilMode const&, glm::mat<4, 4, double, (glm::qualifier)0> const&, mbgl::UnwrappedTileID const&, glm::vec<3, float, (glm::qualifier)0> const&, std::__1::basic_string, std::__1::allocator > const&, bool) 13 MapboxCoreMaps +0x2e295c mbgl::RenderModelLayer::render(mbgl::PaintParameters&) 14 MapboxCoreMaps +0x34a81c mbgl::(anonymous namespace)::LayerRenderItemImpl::render(mbgl::PaintParameters&) const 15 MapboxCoreMaps +0x368e24 mbgl::Renderer::Impl::render(mbgl::RenderTree const&) 16 MapboxCoreMaps +0x35ae98 mbgl::Renderer::render(std::__1::shared_ptr const&) 17 MapboxCoreMaps +0xa3240 mapbox::maps::MapImpl::Impl::render() 18 MapboxCoreMaps +0x9e2b4 ___ZN6mapbox5metal15RendererBackend10createViewENSt3__110shared_ptrINS_4maps9MapClientEEENS_4base7WeakPtrINS4_19MapRendererDelegateEEE_block_invoke 19 MapboxMaps +0x1b4918 @objc MetalView.DelegateImpl.draw(in:) 20 MetalKit +0x74b0 -[MTKView draw] 21 MapboxMaps +0x1a5ed0 MapView.updateFromDisplayLink(displayLink:) 22 MapboxMaps +0x1a66a0 closure #1 in MapView.didMoveToWindow() 23 MapboxMaps +0xeec98 @objc ForwardingDisplayLinkTarget.update(with:) (ForwardingDispalyLinkTarget.swift:11:9) 24 QuartzCore +0xd0ec8 CA::Display::DisplayLinkItem::dispatch_(CA::SignPost::Interval<(CA::SignPost::CAEventCode)835322056>&) 25 QuartzCore +0xcf22c CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) 26 QuartzCore +0xcedcc CA::Display::DisplayLink::dispatch_deferred_display_links(unsigned int) 27 UIKitCore +0xb7768 28 UIKitCore +0xb73ac 29 UIKitCore +0xb8250 30 CoreFoundation +0x56830 ___CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ 31 CoreFoundation +0x567c4 ___CFRunLoopDoSource0 32 CoreFoundation +0x542f4 ___CFRunLoopDoSources0 33 CoreFoundation +0x53480 ___CFRunLoopRun 34 CoreFoundation +0x52cd4 _CFRunLoopRunSpecific 35 GraphicsServices +0x11a4 _GSEventRunModal 36 UIKitCore +0x40a908 37 UIKitCore +0x4be9cc UIApplicationMain 38 Radiate +0x103c8 main (main.m:16:16) 39 dyld +0x3ce48 start
Trace 3 in mbgl::metal::StreamBufferResource::update 0 libsystem_kernel.dylib +0x1804 _mach_msg2_trap 1 libsystem_kernel.dylib +0x5004 _mach_msg2_internal 2 IOKit +0x5438 _io_connect_method 3 IOKit +0x112a0 _IOConnectCallMethod 4 IOGPU +0x82bc _IOGPUResourceCreate 5 IOGPU +0x756c -[IOGPUMetalResource initWithDevice:options:args:argsSize:] 6 IOGPU +0x6d94 -[IOGPUMetalBuffer initWithDevice:pointer:length:alignment:options:sysMemSize:gpuAddress:args:argsSize:deallocator:] 7 AGXMetalG16P_B0 +0x9c9c0 -[AGXBuffer(Internal) initWithDevice:length:alignment:options:isSuballocDisabled:resourceInArgs:pinnedGPULocation:] 8 AGXMetalG16P_B0 +0x9c870 -[AGXBuffer(Internal) initWithDevice:length:options:isSuballocDisabled:resourceInArgs:pinnedGPULocation:] 9 AGXMetalG16P_B0 +0x9c804 -[AGXBuffer initWithDevice:length:options:isSuballocDisabled:pinnedGPULocation:] 10 AGXMetalG16P_B0 +0x9c764 -[AGXG16PFamilyDevice newBufferWithBytes:length:options:] 11 MapboxCoreMaps +0xed2a8 mbgl::metal::StreamBufferResource::update(mbgl::metal::UploadPass&, objc_object objcproto9MTLBuffer*, void const*, unsigned long) 12 MapboxCoreMaps +0xf4740 mbgl::metal::UploadPass::createVertexBufferResource(void const*, unsigned long, mbgl::gfx::BufferUsageType) 13 MapboxCoreMaps +0x27f64c mbgl::SymbolBucket::upload(mbgl::gfx::UploadPass&) 14 MapboxCoreMaps +0x5eb1ec std::__1::__function::__func, unsigned long long)::$_2, std::__1::allocator, unsigned long long)::$_2>, bool (mbgl::gfx::UploadPass&)>::operator()(mbgl::gfx::UploadPass&) 15 MapboxCoreMaps +0x365654 mbgl::Renderer::Impl::render(mbgl::RenderTree const&) 16 MapboxCoreMaps +0x35ae98 mbgl::Renderer::render(std::__1::shared_ptr const&) 17 MapboxCoreMaps +0xa3240 mapbox::maps::MapImpl::Impl::render() 18 MapboxCoreMaps +0x9e2b4 ___ZN6mapbox5metal15RendererBackend10createViewENSt3__110shared_ptrINS_4maps9MapClientEEENS_4base7WeakPtrINS4_19MapRendererDelegateEEE_block_invoke 19 MapboxMaps +0x1b4918 @objc MetalView.DelegateImpl.draw(in:) 20 MetalKit +0x74b0 -[MTKView draw] 21 MapboxMaps +0x1a5ed0 MapView.updateFromDisplayLink(displayLink:) 22 MapboxMaps +0x1a66a0 closure #1 in MapView.didMoveToWindow() 23 MapboxMaps +0xeec98 @objc ForwardingDisplayLinkTarget.update(with:) (ForwardingDispalyLinkTarget.swift:11:9) 24 QuartzCore +0xd0ec8 CA::Display::DisplayLinkItem::dispatch_(CA::SignPost::Interval<(CA::SignPost::CAEventCode)835322056>&) 25 QuartzCore +0xcf22c CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) 26 QuartzCore +0xcedcc CA::Display::DisplayLink::dispatch_deferred_display_links(unsigned int) 27 UIKitCore +0xb7768 28 UIKitCore +0xb73ac 29 UIKitCore +0xb8250 30 CoreFoundation +0x56830 ___CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ 31 CoreFoundation +0x567c4 ___CFRunLoopDoSource0 32 CoreFoundation +0x54294 ___CFRunLoopDoSources0 33 CoreFoundation +0x53480 ___CFRunLoopRun 34 CoreFoundation +0x52cd4 _CFRunLoopRunSpecific 35 GraphicsServices +0x11a4 _GSEventRunModal 36 UIKitCore +0x40a908 37 UIKitCore +0x4be9cc UIApplicationMain 38 Radiate +0x103c8 main (main.m:16:16) 39 dyld +0x3ce48 start
thomas-hensel commented 4 weeks ago

Same here. Sentry reports MXCPUException, crashes in onRender (iOS Version:17.5.1, iPhone XS)

class MetalView: MTKView, CoreMetalView { private class DelegateImpl: NSObject, MTKViewDelegate { var onRender: (() -> Void)? func mtkView(_ view: MTKView, drawableSizeWillChange size: CGSize) {} func draw(in view: MTKView) { onRender?() } }