Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Metal Vertex Buffer Crash During Navigation with High Pitch #3029

Open
engali94 opened this issue Nov 19, 2024 · 4 comments
Open

Metal Vertex Buffer Crash During Navigation with High Pitch #3029

engali94 opened this issue Nov 19, 2024 · 4 comments
Labels
metal more info needed Further information is requested

Comments

@engali94
Copy link

engali94 commented Nov 19, 2024

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

  • User is in followUserCourse mode
  • Map is pinched to adjust pitch level around 50 degrees
  • CPU usage spikes to around 400% before crash
  • Crash occurs in Metal rendering pipeline with vertex buffer validation error

The crash occurs in:

-[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):

  • OS: [iOS]
  • Platform [iOS]
  • Version [18.1]

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
@engali94 engali94 added the bug Something isn't working label Nov 19, 2024
@louwers
Copy link
Collaborator

louwers commented Nov 19, 2024

I suppose you are using MapLibre Navigation iOS?

Can you reproduce this issue with just MapLibre iOS?

@louwers louwers added more info needed Further information is requested metal labels Nov 19, 2024
@louwers
Copy link
Collaborator

louwers commented Nov 19, 2024

We're not using MTKView...

Edit: Nevermind, we are.

@engali94
Copy link
Author

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

@engali94
Copy link
Author

To reproduce it:
you can use Ferrostar demo https://github.com/stadiamaps/ferrostar
start navigation and change the pitch value to its max. there is huge performance regression in this case.

@louwers louwers removed the bug Something isn't working label Nov 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
metal more info needed Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants