In Unity 5.5 and 5.6 we've been getting consistent runtime crashes when we upgraded to the Spine 3.5 runtime. No particular animation seems to cause the problem, but after a few minutes the game will crash. The iOS and Android call stacks are shown below. The game in question is Tap Cats: Idle Warfare, all of the cats and dogs are animated with spine.
We dodged the problem by reverting our project back to using the Spine 2.1 runtime. Which is a painful solution as we have to convert our 3.5 exports to 2.1, which means we have to use json instead of binary.
In a different project with the same crash, we managed to dodge the problem in a different way. We continued using the Spine 3.5 runtime but switched our usages of SkeletonAnimation with the SkeletonGraphic script.
Has anyone else been getting crashes like this with the Spine 3.5 Unity runtime using the SkeletonAnimation script?
iOS crash call stack
#0 0x00000001020f0714 in ::RenderMultipleMeshes() at /Users/builduser/buildslave/unity/build/Runtime/GfxDevice/BatchRendering.cpp:581
#1 0x0000000101fcb210 in ::RenderBatch() at /Users/builduser/buildslave/unity/build/Runtime/Camera/RenderLoops/BatchRenderer.cpp:363
#2 0x0000000101fcb0d4 in ::Flush() at /Users/builduser/buildslave/unity/build/Runtime/Camera/RenderLoops/BatchRenderer.cpp:306
#3 0x0000000101fd31cc in EndLoopFlush [inlined] at /Users/builduser/buildslave/unity/build/Runtime/Camera/RenderLoops/BatchRenderer.cpp:314
#4 0x0000000101fd31bc in ::ForwardRenderLoopJob() at /Users/builduser/buildslave/unity/build/Runtime/Camera/RenderLoops/ForwardShaderRenderLoop.cpp:807
#5 0x00000001020fa6c8 in ::ExecuteAsync() at /Users/builduser/buildslave/unity/build/Runtime/GfxDevice/GfxDevice.cpp:1248
#6 0x0000000101fd22f4 in ::StartRenderJobs() at /Users/builduser/buildslave/unity/build/Runtime/Camera/RenderLoops/ForwardShaderRenderLoop.cpp:1054
#7 0x0000000101fd3694 in :😛erformRendering() at /Users/builduser/buildslave/unity/build/Runtime/Camera/RenderLoops/ForwardShaderRenderLoop.cpp:1104
#8 0x0000000101fd4400 in :😃oForwardShaderRenderLoop() at /Users/builduser/buildslave/unity/build/Runtime/Camera/RenderLoops/ForwardShaderRenderLoop.cpp:1614
#9 0x0000000101fe1114 in :😃oRenderLoop() at /Users/builduser/buildslave/unity/build/Runtime/Camera/RenderLoops/RenderLoopPrivate.cpp:500
#10 0x0000000101f6a3dc in MultiCustomRender [inlined] at /Users/builduser/buildslave/unity/build/Runtime/Camera/Camera.cpp:1432
#11 0x0000000101f6a3c0 in :😃oRender() at /Users/builduser/buildslave/unity/build/Runtime/Camera/Camera.cpp:1488
#12 0x0000000101f6af4c in ::CustomRender() at /Users/builduser/buildslave/unity/build/Runtime/Camera/Camera.cpp:2348
#13 0x0000000101fa8004 in DoRenderScreenCamera [inlined] at /Users/builduser/buildslave/unity/build/Runtime/Camera/RenderManager.cpp:115
#14 0x0000000101fa7f58 in ::RenderCameras() at /Users/builduser/buildslave/unity/build/Runtime/Camera/RenderManager.cpp:256
#15 0x00000001025cbf58 in :😛layerRender() at /Users/builduser/buildslave/unity/build/Runtime/Misc/Player.cpp:869
#16 0x000000010227bdb4 in :😛layerLoop() at /Users/builduser/buildslave/unity/build/Runtime/Misc/PlayerLoop.cpp:219
#17 0x0000000102678f7c in ::UnityPlayerLoopImpl() at /Users/builduser/buildslave/unity/build/PlatformDependent/iPhonePlayer/LibEntryPoint.mm:221
#18 0x000000010001df28 in ::UnityRepaint() at /Users/brandondahn/Desktop/Drone iOS/Classes/UnityAppController+Rendering.mm:268
#19 0x000000010001dedc in ::-UnityAppController(Rendering) repaint at /Users/brandondahn/Desktop/Drone iOS/Classes/UnityAppController+Rendering.mm:93
#20 0x000000010001de24 in ::-UnityAppController(Rendering) repaintDisplayLink at /Users/brandondahn/Desktop/Drone iOS/Classes/UnityAppController+Rendering.mm:77
#21 0x0000000109cdbae4 in -[DYDisplayLinkInterposer forwardDisplayLinkCallback:] ()
#22 0x0000000186b6ff24 in CA:😃isplay:😃isplayLinkItem::dispatch(unsigned long long) ()
#23 0x0000000186b6fdd0 in CA:😃isplay:😃isplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) ()
#24 0x0000000183b8e094 in IODispatchCalloutFromCFMessage ()
#25 0x00000001838b6e50 in __CFMachPortPerform ()
#26 0x00000001838cf218 in CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION ()
#27 0x00000001838ce9cc in __CFRunLoopDoSource1 ()
#28 0x00000001838cc4b0 in __CFRunLoopRun ()
#29 0x00000001837fa2b8 in CFRunLoopRunSpecific ()
#30 0x00000001852ae198 in GSEventRunModal ()
#31 0x000000018983a7fc in -[UIApplication _run] ()
#32 0x0000000189835534 in UIApplicationMain ()
#33 0x0000000100011914 in main at /Users/brandondahn/Desktop/Drone iOS/Classes/main.mm:35
#34 0x00000001827dd5b8 in start ()
Android crash call stack
========== OUTPUTING STACK TRACE ==================
0x0000000140C66157 (Unity) MeshRenderingData::ExtractMeshBuffersAndDrawRange
0x0000000140B925B2 (Unity) DrawUtil:😃rawMeshRawFromNodeQueue
0x00000001409F9147 (Unity) InitLightMeshes
0x0000000140ADDA13 (Unity) GfxDevice::ExecuteAsync
0x00000001409FA4E9 (Unity) ForwardShaderRenderLoop::StartRenderJobs
0x00000001409FA89C (Unity) ForwardShaderRenderLoop:😛erformRendering
0x0000000140A0124D (Unity) DoForwardShaderRenderLoop
0x0000000140A070FC (Unity) DoRenderLoop
0x000000014093590B (Unity) Camera:😃efaultPerformRenderFunction::operator()
0x0000000140939A24 (Unity) Camera::MultiCustomRender
0x0000000140961057 (Unity) Camera:😃oRender
0x000000014097430E (Unity) Camera::CustomRender
0x0000000140975512 (Unity) Camera::Render
0x0000000140975761 (Unity) Camera::Render
0x00000001409AD3A0 (Unity) FindReflectionProbeFromAnchor
0x00000001409C91D6 (Unity) RenderManager::RenderCameras
0x00000001400F4E64 (Unity) RepaintController::RenderGameViewCameras
0x000000014130E471 (Unity) EditorGUIUtility_CUSTOM_INTERNAL_CALL_RenderGameViewCamerasInternal