maplibre / maplibre-native

MapLibre Native - Interactive vector tile maps for iOS, Android and other platforms.
https://maplibre.org
BSD 2-Clause "Simplified" License
1.08k stars 318 forks source link

Metal Vertex Buffer Crash During Navigation with High Pitch #3029

Open engali94 opened 2 hours ago

engali94 commented 2 hours ago

Describe the bug The app crashes during navigation when using MapLibre Native iOS with specific conditions:

The crash occurs in the Metal rendering pipeline during MTKView draw:

-[MTLDebugRenderCommandEncoder setVertexBufferOffset:attributeStride:atIndex:]:1874: failed assertion `Set Vertex Buffer Offset Validation
index(1) must have an existing buffer.

......

frame #7: 0x000000022c2b20c0 MetalTools`-[MTLDebugRenderCommandEncoder setVertexBufferOffset:attributeStride:atIndex:] + 276
frame #8: 0x0000000103bf3cc8 GPUToolsCapture`-[CaptureMTLRenderCommandEncoder setVertexBufferOffset:atIndex:] + 84
frame #9: 0x00000001048f65c8 MapLibre`___lldb_unnamed_symbol17940 + 44

To Reproduce Steps to Reproduce

  1. Enable follow user course mode
  2. Constantly feed updated location to simulate navigation scenarios
  3. Pinch to adjust the pitch level to around 50 degrees
  4. Observe CPU spike to ~400%
  5. App crashes with Metal vertex buffer error

Expected behavior The map should handle high pitch ranges during navigation without performance degradation or crashes.

Screenshots If applicable, add screenshots to help explain your problem.

Platform information (please complete the following information):

Additional context

The error suggests a vertex buffer at index 1 is being accessed but doesn't exist, indicating a potential issue with buffer management in the Metal rendering pipeline.

Stacktrace

-[MTLDebugRenderCommandEncoder setVertexBufferOffset:attributeStride:atIndex:]:1874: failed assertion `Set Vertex Buffer Offset Validation
index(1) must have an existing buffer.
'
(lldb) bt all
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
    frame #0: 0x00000001db9f02ec libsystem_kernel.dylib`__pthread_kill + 8
    frame #1: 0x00000001ef7e3c0c libsystem_pthread.dylib`pthread_kill + 268
    frame #2: 0x000000019acefba0 libsystem_c.dylib`abort + 180
    frame #3: 0x000000019aceeeac libsystem_c.dylib`__assert_rtn + 284
    frame #4: 0x0000000192a4eaa4 Metal`MTLReportFailure.cold.1 + 48
    frame #5: 0x00000001928f5d40 Metal`MTLReportFailure + 464
    frame #6: 0x00000001928f566c Metal`_MTLMessageContextEnd + 860
    frame #7: 0x000000022c2b20c0 MetalTools`-[MTLDebugRenderCommandEncoder setVertexBufferOffset:attributeStride:atIndex:] + 276
    frame #8: 0x0000000103bf3cc8 GPUToolsCapture`-[CaptureMTLRenderCommandEncoder setVertexBufferOffset:atIndex:] + 84
    frame #9: 0x00000001048f65c8 MapLibre`___lldb_unnamed_symbol17940 + 44
    frame #10: 0x0000000104920c04 MapLibre`___lldb_unnamed_symbol18471 + 252
    frame #11: 0x00000001048fa714 MapLibre`___lldb_unnamed_symbol18000 + 1996
    frame #12: 0x0000000104705170 MapLibre`___lldb_unnamed_symbol11473 + 1152
    frame #13: 0x0000000104921248 MapLibre`___lldb_unnamed_symbol18479 + 456
    frame #14: 0x000000010471deb4 MapLibre`___lldb_unnamed_symbol11874 + 2396
    frame #15: 0x000000010471c6d4 MapLibre`___lldb_unnamed_symbol11852 + 76
    frame #16: 0x00000001045953d8 MapLibre`___lldb_unnamed_symbol5813 + 96
    frame #17: 0x0000000104595344 MapLibre`___lldb_unnamed_symbol5812 + 144
    frame #18: 0x00000001045b648c MapLibre`___lldb_unnamed_symbol6430 + 28
    frame #19: 0x00000002088714b4 MetalKit`-[MTKView draw] + 160
    frame #20: 0x00000001943fdefc QuartzCore`CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 416
    frame #21: 0x0000000194458fd8 QuartzCore`CA::Context::commit_transaction(CA::Transaction*, double, double*) + 464
    frame #22: 0x00000001943cdee0 QuartzCore`CA::Transaction::commit() + 648
    frame #23: 0x0000000194417c34 QuartzCore`CA::Transaction::flush_as_runloop_observer(bool) + 88
    frame #24: 0x0000000195048ee8 UIKitCore`_UIApplicationFlushCATransaction + 52
    frame #25: 0x0000000195046660 UIKitCore`_UIUpdateSequenceRun + 84
    frame #26: 0x00000001950462a4 UIKitCore`schedulerStepScheduledMainSection + 172
    frame #27: 0x0000000195047148 UIKitCore`runloopSourceCallback + 92
    frame #28: 0x0000000192d63834 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28
    frame #29: 0x0000000192d637c8 CoreFoundation`__CFRunLoopDoSource0 + 176
    frame #30: 0x0000000192d612f8 CoreFoundation`__CFRunLoopDoSources0 + 340
    frame #31: 0x0000000192d60484 CoreFoundation`__CFRunLoopRun + 828
    frame #32: 0x0000000192d5fcd8 CoreFoundation`CFRunLoopRunSpecific + 608
    frame #33: 0x00000001d77ad1a8 GraphicsServices`GSEventRunModal + 164
    frame #34: 0x0000000195399ae8 UIKitCore`-[UIApplication _run] + 888
    frame #35: 0x000000019544dd98 UIKitCore`UIApplicationMain + 340
    frame #36: 0x0000000196f54294 SwiftUI`___lldb_unnamed_symbol74310 + 168
    frame #37: 0x0000000196f00860 SwiftUI`___lldb_unnamed_symbol71240 + 152
    frame #38: 0x0000000196f0c61c SwiftUI`___lldb_unnamed_symbol71678 + 132
  * frame #39: 0x00000001084eb874 HudHud.debug.dylib`static MainEntryPoint.main() at MainEntryPoint.swift:22:19
    frame #40: 0x00000001084ebac0 HudHud.debug.dylib`static MainEntryPoint.$main() at <compiler-generated>:0
    frame #41: 0x00000001084ec560 HudHud.debug.dylib`main at MainEntryPoint.swift:14:8
    frame #42: 0x00000001b6537154 dyld`start + 2356
  thread #6
    frame #0: 0x00000001ef7dd0c4 libsystem_pthread.dylib`start_wqthread
  thread #7, name = 'com.apple.uikit.eventfetch-thread'
    frame #0: 0x00000001db9e56c8 libsystem_kernel.dylib`mach_msg2_trap + 8
    frame #1: 0x00000001db9e8ec8 libsystem_kernel.dylib`mach_msg2_internal + 80
    frame #2: 0x00000001db9e8de0 libsystem_kernel.dylib`mach_msg_overwrite + 436
    frame #3: 0x00000001db9e8c20 libsystem_kernel.dylib`mach_msg + 24
    frame #4: 0x0000000192d60f5c CoreFoundation`__CFRunLoopServiceMachPort + 160
    frame #5: 0x0000000192d60600 CoreFoundation`__CFRunLoopRun + 1208
    frame #6: 0x0000000192d5fcd8 CoreFoundation`CFRunLoopRunSpecific + 608
    frame #7: 0x0000000191c80b5c Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 212
    frame #8: 0x0000000191c809ac Foundation`-[NSRunLoop(NSRunLoop) runUntilDate:] + 64
    frame #9: 0x00000001953ad81c UIKitCore`-[UIEventFetcher threadMain] + 420
    frame #10: 0x0000000191c97428 Foundation`__NSThread__start__ + 732
    frame #11: 0x00000001ef7e206c libsystem_pthread.dylib`_pthread_start + 136
  thread #10
    frame #0: 0x00000001ef7dd0c4 libsystem_pthread.dylib`start_wqthread
  thread #13, name = 'org.maplibre.mbgl.Worker 1'
    frame #0: 0x00000001db9eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001ef7df6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001a314d504 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
    frame #3: 0x0000000104899cd0 MapLibre`___lldb_unnamed_symbol16436 + 440
    frame #4: 0x00000001ef7e206c libsystem_pthread.dylib`_pthread_start + 136
  thread #14, name = 'org.maplibre.mbgl.Worker 1'
    frame #0: 0x00000001db9eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001ef7df6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001a314d504 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
    frame #3: 0x0000000104899cd0 MapLibre`___lldb_unnamed_symbol16436 + 440
    frame #4: 0x00000001ef7e206c libsystem_pthread.dylib`_pthread_start + 136
  thread #15, name = 'org.maplibre.mbgl.Worker 2'
    frame #0: 0x00000001db9eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001ef7df6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001a314d504 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
    frame #3: 0x0000000104899cd0 MapLibre`___lldb_unnamed_symbol16436 + 440
    frame #4: 0x00000001ef7e206c libsystem_pthread.dylib`_pthread_start + 136
  thread #16, name = 'org.maplibre.mbgl.Worker 3'
    frame #0: 0x00000001db9eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001ef7df6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001a314d504 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
    frame #3: 0x0000000104899cd0 MapLibre`___lldb_unnamed_symbol16436 + 440
    frame #4: 0x00000001ef7e206c libsystem_pthread.dylib`_pthread_start + 136
  thread #17, name = 'org.maplibre.mbgl.Worker 4'
    frame #0: 0x00000001db9eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001ef7df6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001a314d504 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
    frame #3: 0x0000000104899cd0 MapLibre`___lldb_unnamed_symbol16436 + 440
    frame #4: 0x00000001ef7e206c libsystem_pthread.dylib`_pthread_start + 136
  thread #18, name = 'org.maplibre.mbgl.AssetFileSource'
    frame #0: 0x00000001db9e56c8 libsystem_kernel.dylib`mach_msg2_trap + 8
    frame #1: 0x00000001db9e8ec8 libsystem_kernel.dylib`mach_msg2_internal + 80
    frame #2: 0x00000001db9e8de0 libsystem_kernel.dylib`mach_msg_overwrite + 436
    frame #3: 0x00000001db9e8c20 libsystem_kernel.dylib`mach_msg + 24
    frame #4: 0x0000000192d60f5c CoreFoundation`__CFRunLoopServiceMachPort + 160
    frame #5: 0x0000000192d60600 CoreFoundation`__CFRunLoopRun + 1208
    frame #6: 0x0000000192d5fcd8 CoreFoundation`CFRunLoopRunSpecific + 608
    frame #7: 0x0000000192dcdf04 CoreFoundation`CFRunLoopRun + 64
    frame #8: 0x00000001045ca96c MapLibre`___lldb_unnamed_symbol7015 + 192
    frame #9: 0x00000001045ca748 MapLibre`___lldb_unnamed_symbol7013 + 52
    frame #10: 0x00000001ef7e206c libsystem_pthread.dylib`_pthread_start + 136
  thread #19, name = 'org.maplibre.mbgl.OnlineFileSource'
    frame #0: 0x00000001db9e56c8 libsystem_kernel.dylib`mach_msg2_trap + 8
    frame #1: 0x00000001db9e8ec8 libsystem_kernel.dylib`mach_msg2_internal + 80
    frame #2: 0x00000001db9e8de0 libsystem_kernel.dylib`mach_msg_overwrite + 436
    frame #3: 0x00000001db9e8c20 libsystem_kernel.dylib`mach_msg + 24
    frame #4: 0x0000000192d60f5c CoreFoundation`__CFRunLoopServiceMachPort + 160
    frame #5: 0x0000000192d60600 CoreFoundation`__CFRunLoopRun + 1208
    frame #6: 0x0000000192d5fcd8 CoreFoundation`CFRunLoopRunSpecific + 608
    frame #7: 0x0000000192dcdf04 CoreFoundation`CFRunLoopRun + 64
    frame #8: 0x00000001046050e4 MapLibre`___lldb_unnamed_symbol8064 + 144
    frame #9: 0x0000000104604ef0 MapLibre`___lldb_unnamed_symbol8062 + 52
    frame #10: 0x00000001ef7e206c libsystem_pthread.dylib`_pthread_start + 136
  thread #20, name = 'org.maplibre.mbgl.DatabaseFileSource'
    frame #0: 0x00000001db9eb6f0 libsystem_kernel.dylib`guarded_pwrite_np + 8
    frame #1: 0x00000001bcd9a148 libsqlite3.dylib`___lldb_unnamed_symbol1071 + 456
    frame #2: 0x00000001bcd538f4 libsqlite3.dylib`___lldb_unnamed_symbol751 + 180
    frame #3: 0x00000001bcd5c4ac libsqlite3.dylib`___lldb_unnamed_symbol786 + 344
    frame #4: 0x00000001bcd4f498 libsqlite3.dylib`___lldb_unnamed_symbol741 + 704
    frame #5: 0x00000001bcd4eea8 libsqlite3.dylib`___lldb_unnamed_symbol739 + 756
    frame #6: 0x00000001bcd38bc4 libsqlite3.dylib`___lldb_unnamed_symbol674 + 22172
    frame #7: 0x00000001bcd32c6c libsqlite3.dylib`sqlite3_step + 964
    frame #8: 0x0000000104606940 MapLibre`___lldb_unnamed_symbol8124 + 36
    frame #9: 0x00000001045f179c MapLibre`___lldb_unnamed_symbol7742 + 184
    frame #10: 0x00000001045f155c MapLibre`___lldb_unnamed_symbol7741 + 68
    frame #11: 0x00000001045cbff4 MapLibre`___lldb_unnamed_symbol7065 + 176
    frame #12: 0x000000010460ceb8 MapLibre`___lldb_unnamed_symbol8301 + 300
    frame #13: 0x000000010460db08 MapLibre`___lldb_unnamed_symbol8314 + 48
    frame #14: 0x000000010460bdac MapLibre`___lldb_unnamed_symbol8259 + 60
    frame #15: 0x000000010460b150 MapLibre`___lldb_unnamed_symbol8226 + 184
    frame #16: 0x0000000192d63834 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28
    frame #17: 0x0000000192d637c8 CoreFoundation`__CFRunLoopDoSource0 + 176
    frame #18: 0x0000000192d61298 CoreFoundation`__CFRunLoopDoSources0 + 244
    frame #19: 0x0000000192d60484 CoreFoundation`__CFRunLoopRun + 828
    frame #20: 0x0000000192d5fcd8 CoreFoundation`CFRunLoopRunSpecific + 608
    frame #21: 0x0000000192dcdf04 CoreFoundation`CFRunLoopRun + 64
    frame #22: 0x00000001045d0f20 MapLibre`___lldb_unnamed_symbol7170 + 128
    frame #23: 0x00000001045d0d14 MapLibre`___lldb_unnamed_symbol7167 + 52
    frame #24: 0x00000001ef7e206c libsystem_pthread.dylib`_pthread_start + 136
  thread #21, name = 'org.maplibre.mbgl.LocalFileSource'
    frame #0: 0x00000001db9e56c8 libsystem_kernel.dylib`mach_msg2_trap + 8
    frame #1: 0x00000001db9e8ec8 libsystem_kernel.dylib`mach_msg2_internal + 80
    frame #2: 0x00000001db9e8de0 libsystem_kernel.dylib`mach_msg_overwrite + 436
    frame #3: 0x00000001db9e8c20 libsystem_kernel.dylib`mach_msg + 24
    frame #4: 0x0000000192d60f5c CoreFoundation`__CFRunLoopServiceMachPort + 160
    frame #5: 0x0000000192d60600 CoreFoundation`__CFRunLoopRun + 1208
    frame #6: 0x0000000192d5fcd8 CoreFoundation`CFRunLoopRunSpecific + 608
    frame #7: 0x0000000192dcdf04 CoreFoundation`CFRunLoopRun + 64
    frame #8: 0x00000001045d8a7c MapLibre`___lldb_unnamed_symbol7388 + 144
    frame #9: 0x00000001045d8888 MapLibre`___lldb_unnamed_symbol7386 + 52
    frame #10: 0x00000001ef7e206c libsystem_pthread.dylib`_pthread_start + 136
  thread #22, name = 'org.maplibre.mbgl.MBTilesFileSource'
    frame #0: 0x00000001db9e56c8 libsystem_kernel.dylib`mach_msg2_trap + 8
    frame #1: 0x00000001db9e8ec8 libsystem_kernel.dylib`mach_msg2_internal + 80
    frame #2: 0x00000001db9e8de0 libsystem_kernel.dylib`mach_msg_overwrite + 436
    frame #3: 0x00000001db9e8c20 libsystem_kernel.dylib`mach_msg + 24
    frame #4: 0x0000000192d60f5c CoreFoundation`__CFRunLoopServiceMachPort + 160
    frame #5: 0x0000000192d60600 CoreFoundation`__CFRunLoopRun + 1208
    frame #6: 0x0000000192d5fcd8 CoreFoundation`CFRunLoopRunSpecific + 608
    frame #7: 0x0000000192dcdf04 CoreFoundation`CFRunLoopRun + 64
    frame #8: 0x00000001045ea000 MapLibre`___lldb_unnamed_symbol7656 + 192
    frame #9: 0x00000001045e9ddc MapLibre`___lldb_unnamed_symbol7654 + 52
    frame #10: 0x00000001ef7e206c libsystem_pthread.dylib`_pthread_start + 136
  thread #23, name = 'org.maplibre.mbgl.ResourceLoaderThread'
    frame #0: 0x00000001db9e56c8 libsystem_kernel.dylib`mach_msg2_trap + 8
    frame #1: 0x00000001db9e8ec8 libsystem_kernel.dylib`mach_msg2_internal + 80
    frame #2: 0x00000001db9e8de0 libsystem_kernel.dylib`mach_msg_overwrite + 436
    frame #3: 0x00000001db9e8c20 libsystem_kernel.dylib`mach_msg + 24
    frame #4: 0x0000000192d60f5c CoreFoundation`__CFRunLoopServiceMachPort + 160
    frame #5: 0x0000000192d60600 CoreFoundation`__CFRunLoopRun + 1208
    frame #6: 0x0000000192d5fcd8 CoreFoundation`CFRunLoopRunSpecific + 608
    frame #7: 0x0000000192dcdf04 CoreFoundation`CFRunLoopRun + 64
    frame #8: 0x00000001045de4a8 MapLibre`___lldb_unnamed_symbol7521 + 192
    frame #9: 0x00000001045de260 MapLibre`___lldb_unnamed_symbol7519 + 52
    frame #10: 0x00000001ef7e206c libsystem_pthread.dylib`_pthread_start + 136
  thread #26, name = 'org.maplibre.mbgl.Worker 1'
    frame #0: 0x00000001db9eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001ef7df6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001a314d504 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
    frame #3: 0x0000000104899cd0 MapLibre`___lldb_unnamed_symbol16436 + 440
    frame #4: 0x00000001ef7e206c libsystem_pthread.dylib`_pthread_start + 136
  thread #46, name = 'AXSpeech'
    frame #0: 0x00000001db9e56c8 libsystem_kernel.dylib`mach_msg2_trap + 8
    frame #1: 0x00000001db9e8ec8 libsystem_kernel.dylib`mach_msg2_internal + 80
    frame #2: 0x00000001db9e8de0 libsystem_kernel.dylib`mach_msg_overwrite + 436
    frame #3: 0x00000001db9e8c20 libsystem_kernel.dylib`mach_msg + 24
    frame #4: 0x0000000192d60f5c CoreFoundation`__CFRunLoopServiceMachPort + 160
    frame #5: 0x0000000192d60600 CoreFoundation`__CFRunLoopRun + 1208
    frame #6: 0x0000000192d5fcd8 CoreFoundation`CFRunLoopRunSpecific + 608
    frame #7: 0x0000000191c80b5c Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 212
    frame #8: 0x00000001b42585fc TextToSpeech`___lldb_unnamed_symbol1922 + 308
    frame #9: 0x0000000191c97428 Foundation`__NSThread__start__ + 732
    frame #10: 0x00000001ef7e206c libsystem_pthread.dylib`_pthread_start + 136
  thread #48
    frame #0: 0x00000001ef7dd0c4 libsystem_pthread.dylib`start_wqthread
  thread #49
    frame #0: 0x00000001ef7dd0c4 libsystem_pthread.dylib`start_wqthread
  thread #52, name = 'caulk.messenger.shared:high'
    frame #0: 0x00000001db9e5644 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x0000000204b7f724 caulk`caulk::semaphore::timed_wait(double) + 212
    frame #2: 0x0000000204b7f5e4 caulk`caulk::concurrent::details::worker_thread::run() + 36
    frame #3: 0x0000000204b7f52c caulk`void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*>>>(void*) + 96
    frame #4: 0x00000001ef7e206c libsystem_pthread.dylib`_pthread_start + 136
  thread #61
    frame #0: 0x00000001ef7dd0c4 libsystem_pthread.dylib`start_wqthread
  thread #66
    frame #0: 0x00000001ef7dd0c4 libsystem_pthread.dylib`start_wqthread
  thread #69, name = 'caulk::deferred_logger'
    frame #0: 0x00000001db9e5644 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x0000000204b7f724 caulk`caulk::semaphore::timed_wait(double) + 212
    frame #2: 0x0000000204b7f5e4 caulk`caulk::concurrent::details::worker_thread::run() + 36
    frame #3: 0x0000000204b7f52c caulk`void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*>>>(void*) + 96
    frame #4: 0x00000001ef7e206c libsystem_pthread.dylib`_pthread_start + 136
  thread #70, name = 'com.apple.audio.toolbox.AUScheduledParameterRefresher'
    frame #0: 0x00000001db9e5644 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x0000000204b7f724 caulk`caulk::semaphore::timed_wait(double) + 212
    frame #2: 0x0000000204b7f5e4 caulk`caulk::concurrent::details::worker_thread::run() + 36
    frame #3: 0x0000000204b7f52c caulk`void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*>>>(void*) + 96
    frame #4: 0x00000001ef7e206c libsystem_pthread.dylib`_pthread_start + 136
  thread #71, name = 'org.maplibre.mbgl.Worker 1'
    frame #0: 0x00000001db9eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001ef7df6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001a314d504 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
    frame #3: 0x0000000104899cd0 MapLibre`___lldb_unnamed_symbol16436 + 440
    frame #4: 0x00000001ef7e206c libsystem_pthread.dylib`_pthread_start + 136
  thread #72, name = 'org.maplibre.mbgl.Worker 1'
    frame #0: 0x00000001db9eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001ef7df6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001a314d504 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
    frame #3: 0x0000000104899cd0 MapLibre`___lldb_unnamed_symbol16436 + 440
    frame #4: 0x00000001ef7e206c libsystem_pthread.dylib`_pthread_start + 136
  thread #73, name = 'org.maplibre.mbgl.Worker 1'
    frame #0: 0x00000001db9eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001ef7df6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001a314d504 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
    frame #3: 0x0000000104899cd0 MapLibre`___lldb_unnamed_symbol16436 + 440
    frame #4: 0x00000001ef7e206c libsystem_pthread.dylib`_pthread_start + 136
  thread #74, name = 'org.maplibre.mbgl.Worker 1'
    frame #0: 0x00000001db9eb08c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001ef7df6e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
    frame #2: 0x00000001a314d504 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
    frame #3: 0x0000000104899cd0 MapLibre`___lldb_unnamed_symbol16436 + 440
    frame #4: 0x00000001ef7e206c libsystem_pthread.dylib`_pthread_start + 136
louwers commented 2 hours ago

I suppose you are using MapLibre Navigation iOS?

Can you reproduce this issue with just MapLibre iOS?

louwers commented 2 hours ago

We're not using MTKView...

engali94 commented 1 hour ago

sorry it was a mistake at my side I meant MetalTools the app is using MapLibre SwiftUI DSL](https://github.com/maplibre/swiftui-dsl) and Ferrostar navigation