-
Notifications
You must be signed in to change notification settings - Fork 93
Description
It appears to be very easy to cause the Unity Editor to crash when using this component, especially if you have sparse coverage.
For example, during my initial testings, I used an Ellipsoid 3D Tileset with a URL Template Raster Overlay component attached to it. This component was pointed to my office's local debug server, containing Texture Tiles for a section of Europe. Immediately, issues began to occur.
First, editor memory consumption shot up from 2 gig to around 5 gig. Despite knowing the tiling scheme (Standard Web Mercator that works with other mapping solutions, such as Online Maps v3), the tiles appeared in the incorrect place. Finally, after inspecting the scene for around a minute, the Unity Editor hard crashed.
Partial Crash Log
=================================================================
Managed Stacktrace:
=================================================================
at <unknown> <0xffffffff>
at CallbackFunctionNativeFunction:UnityEditor_CallbackFunction_InvokeCallback <0x000b8>
at CallbackFunctionNativeFunction:Invoke <0x00112>
at UnityEditor.EditorApplication:Internal_CallUpdateFunctions <0x00327>
at System.Object:runtime_invoke_void <0x00184>
=================================================================
Crash!!!
========== OUTPUTTING STACK TRACE ==================
0x00007FFD494A67DD (CesiumForUnityNative-Runtime) [C:\DEV\CesiumDevelopment\Packages\com.cesium.unity\native~\extern\cesium-native\CesiumRasterOverlays\src\RasterOverlayTile.cpp:54] CesiumRasterOverlays::RasterOverlayTile::~RasterOverlayTile
0x00007FFD492C57DA (CesiumForUnityNative-Runtime) [C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\vector:1805] std::vector<Cesium3DTilesSelection::RasterMappedTo3DTile,std::allocator<Cesium3DTilesSelection::RasterMappedTo3DTile> >::clear
0x00007FFD492CA174 (CesiumForUnityNative-Runtime) [C:\DEV\CesiumDevelopment\Packages\com.cesium.unity\native~\extern\cesium-native\Cesium3DTilesSelection\src\TilesetContentManager.cpp:1253] Cesium3DTilesSelection::TilesetContentManager::unloadTileContent
0x00007FFD492C9D61 (CesiumForUnityNative-Runtime) [C:\DEV\CesiumDevelopment\Packages\com.cesium.unity\native~\extern\cesium-native\Cesium3DTilesSelection\src\TilesetContentManager.cpp:1474] Cesium3DTilesSelection::TilesetContentManager::unloadCachedBytes
0x00007FFD4929A67F (CesiumForUnityNative-Runtime) [C:\DEV\CesiumDevelopment\Packages\com.cesium.unity\native~\extern\cesium-native\Cesium3DTilesSelection\src\Tileset.cpp:463] Cesium3DTilesSelection::Tileset::loadTiles
0x00007FFD484A017A (CesiumForUnityNative-Runtime) [C:\DEV\CesiumDevelopment\Packages\com.cesium.unity\native~\Runtime\src\Cesium3DTilesetImpl.cpp:142] CesiumForUnityNative::Cesium3DTilesetImpl::Update
0x000002A0A7DBFCF9 (Mono JIT Code) (wrapper managed-to-native) Reinterop.ReinteropInitializer/CallbackFunctionNativeFunction:UnityEditor_CallbackFunction_InvokeCallback (intptr)
0x000002A0A7DBFBA3 (Mono JIT Code) [C:\DEV\LogicClient\src\OverSight_Unity\Library\PackageCache\com.cesium.unity\Runtime\generated\Reinterop.RoslynSourceGenerator\ReinteropInitializer.cs:22487] Reinterop.ReinteropInitializer/CallbackFunctionNativeFunction:Invoke ()
0x0000029FB33C5CC8 (Mono JIT Code) UnityEditor.EditorApplication:Internal_CallUpdateFunctions ()
0x0000029EDA958FC5 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void (object,intptr,intptr,intptr)
0x00007FFD680969CE (mono-2.0-bdwgc) [C:\build\output\Unity-Technologies\mono\mono\mini\mini-runtime.c:3445] mono_jit_runtime_invoke
0x00007FFD67FD8474 (mono-2.0-bdwgc) [C:\build\output\Unity-Technologies\mono\mono\metadata\object.c:3068] do_runtime_invoke
0x00007FFD67FD8560 (mono-2.0-bdwgc) [C:\build\output\Unity-Technologies\mono\mono\metadata\object.c:3115] mono_runtime_invoke
0x00007FFCF404BA14 (Unity) scripting_method_invoke
0x00007FFCF40237A3 (Unity) ScriptingInvocation::Invoke
0x00007FFCF401EA65 (Unity) ScriptingInvocation::Invoke<void>
0x00007FFCF4192E0B (Unity) Scripting::UnityEditor::EditorApplicationProxy::Internal_CallUpdateFunctions
0x00007FFCF526A8C7 (Unity) SceneTracker::Update
0x00007FFCF4DB16FA (Unity) Application::TickTimer
0x00007FFCF53A63EA (Unity) MainMessageLoop
0x00007FFCF53AC0B4 (Unity) UnityMain
0x00007FF6B4352FBA (Unity) __scrt_common_main_seh
0x00007FFE33CEE8D7 (KERNEL32) BaseThreadInitThunk
0x00007FFE357F14FC (ntdll) RtlUserThreadStart
========== END OF STACKTRACE ===========
After this, I reloaded my test scene and attempted to disable the URL Template Raster Overlay component. The editor crashed once again.
Second Crash Log
=================================================================
Managed Stacktrace:
=================================================================
at <unknown> <0xffffffff>
at CesiumForUnity.Cesium3DTileset:DotNet_CesiumForUnity_Cesium3DTileset_OnDisable <0x00160>
at CesiumForUnity.Cesium3DTileset:OnDisable <0x001fa>
at System.Object:runtime_invoke_void__this__ <0x00187>
at <unknown> <0xffffffff>
at UnityEditor.SerializedObject:ApplyModifiedProperties_Injected <0x000c1>
at UnityEditor.SerializedObject:ApplyModifiedProperties <0x0010a>
at UnityEditor.EditorGUI:DoInspectorTitlebar <0x0171a>
at UnityEditor.EditorGUI:InspectorTitlebar <0x002fa>
at UnityEditor.EditorGUILayout:InspectorTitlebar <0x0012a>
at UnityEditor.UIElements.EditorElement:DrawEditorSmallHeader <0x00342>
at UnityEditor.UIElements.EditorElement:DrawEditorHeader <0x001b2>
at UnityEditor.UIElements.EditorElement:HeaderOnGUI <0x00fda>`
========== OUTPUTTING STACK TRACE ==================
0x00007FFD49244323 (CesiumForUnityNative-Runtime) [C:\DEV\CesiumDevelopment\Packages\com.cesium.unity\native~\Runtime\src\TilesetMaterialProperties.cpp:150] CesiumForUnityNative::TilesetMaterialProperties::getOverlayTextureID
0x00007FFD4927C564 (CesiumForUnityNative-Runtime) [C:\DEV\CesiumDevelopment\Packages\com.cesium.unity\native~\Runtime\src\UnityPrepareRendererResources.cpp:1936] CesiumForUnityNative::UnityPrepareRendererResources::detachRasterInMainThread
0x00007FFD492D68A6 (CesiumForUnityNative-Runtime) [C:\DEV\CesiumDevelopment\Packages\com.cesium.unity\native~\extern\cesium-native\Cesium3DTilesSelection\src\RasterMappedTo3DTile.cpp:239] Cesium3DTilesSelection::RasterMappedTo3DTile::detachFromTile
0x00007FFD492CA15F (CesiumForUnityNative-Runtime) [C:\DEV\CesiumDevelopment\Packages\com.cesium.unity\native~\extern\cesium-native\Cesium3DTilesSelection\src\TilesetContentManager.cpp:1251] Cesium3DTilesSelection::TilesetContentManager::unloadTileContent
0x00007FFD492CA33D (CesiumForUnityNative-Runtime) [C:\DEV\CesiumDevelopment\Packages\com.cesium.unity\native~\extern\cesium-native\Cesium3DTilesSelection\src\TilesetContentManager.cpp:135] Cesium3DTilesSelection::`anonymous namespace'::unloadTileRecursively
0x00007FFD492CA33D (CesiumForUnityNative-Runtime) [C:\DEV\CesiumDevelopment\Packages\com.cesium.unity\native~\extern\cesium-native\Cesium3DTilesSelection\src\TilesetContentManager.cpp:135] Cesium3DTilesSelection::`anonymous namespace'::unloadTileRecursively
0x00007FFD4929620F (CesiumForUnityNative-Runtime) [C:\DEV\CesiumDevelopment\Packages\com.cesium.unity\native~\extern\cesium-native\Cesium3DTilesSelection\src\Tileset.cpp:140] Cesium3DTilesSelection::Tileset::~Tileset
0x00007FFD4849DFD7 (CesiumForUnityNative-Runtime) [C:\DEV\CesiumDevelopment\Packages\com.cesium.unity\native~\Runtime\src\Cesium3DTilesetImpl.cpp:561] CesiumForUnityNative::Cesium3DTilesetImpl::DestroyTileset
0x00007FFD4842E75F (CesiumForUnityNative-Runtime) [C:\DEV\CesiumDevelopment\Packages\com.cesium.unity\native~\Runtime\generated-Editor\src\DotNet\CesiumForUnity\Cesium3DTileset.cpp:1082] DotNet_CesiumForUnity_Cesium3DTileset_OnDisable
0x000001D13FC0AE61 (Mono JIT Code) (wrapper managed-to-native) CesiumForUnity.Cesium3DTileset:DotNet_CesiumForUnity_Cesium3DTileset_OnDisable (intptr,CesiumForUnity.Cesium3DTileset/ImplementationHandle,intptr*)
0x000001D13FC0AB5B (Mono JIT Code) [C:\DEV\LogicClient\src\OverSight_Unity\Library\PackageCache\com.cesium.unity\Runtime\generated\Reinterop.RoslynSourceGenerator\Cesium3DTileset-generated.cs:158] CesiumForUnity.Cesium3DTileset:OnDisable ()
0x000001D0525B55B8 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
0x00007FFD680969CE (mono-2.0-bdwgc) [C:\build\output\Unity-Technologies\mono\mono\mini\mini-runtime.c:3445] mono_jit_runtime_invoke
This is unfortunate, as using the URL Texture overlay with an Ellipsoid 3D Tileset would be ideal for my use case. Please let me know if there is any other information I can provide that can help fix this issue.