16 votes Vote

Thread failed: System.DllNotFoundException on Apple Silicon

Hi Wraith!

So I wanted to switch from the Unity LTS Version 2020.3.25f1, which is built for Intel to a Unity Version which supports Apple Silicon. I now tried using 2021.2.5f1, 2021.2.8f1 and the newly released 2021.2.9f1 and when generating a simple MapMagic Tile with or without Multithreding I get the following error in the console:

Thread failed: System.DllNotFoundException: NativePlugins assembly: type: member:(null)
at (wrapper managed-to-native) Den.Tools.Matrices.Matrix.Clamp01(Den.Tools.Matrices.Matrix)
at Den.Tools.Matrices.Matrix.Clamp01 () [0x00000] in /Users/erik/Documents/UnityProjectsBackup/AppleSilicon/SettlementV2/Assets/MapMagic/Tools/Matrix/Matrix.cs:1565
at MapMagic.Nodes.MatrixGenerators.SimpleForm200.Generate (MapMagic.Products.TileData data, MapMagic.Products.StopToken stop) [0x00070] in /Users/erik/Documents/UnityProjectsBackup/AppleSilicon/SettlementV2/Assets/MapMagic/Generators/Matrix/Runtime/MatrixInitial.cs:202
at MapMagic.Nodes.Graph.GenerateRecursive (MapMagic.Nodes.Generator gen, MapMagic.Products.TileData data, MapMagic.Expose.Override ovd, MapMagic.Products.StopToken stop) [0x001ed] in /Users/erik/Documents/UnityProjectsBackup/AppleSilicon/SettlementV2/Assets/MapMagic/Nodes/Graph.cs:917
at MapMagic.Nodes.Graph.GenerateRecursive (MapMagic.Nodes.Generator gen, MapMagic.Products.TileData data, MapMagic.Expose.Override ovd, MapMagic.Products.StopToken stop) [0x00037] in /Users/erik/Documents/UnityProjectsBackup/AppleSilicon/SettlementV2/Assets/MapMagic/Nodes/Graph.cs:870
at MapMagic.Nodes.Graph.GenerateRecursive (MapMagic.Nodes.Generator gen, MapMagic.Products.TileData data, MapMagic.Expose.Override ovd, MapMagic.Products.StopToken stop) [0x0007b] in /Users/erik/Documents/UnityProjectsBackup/AppleSilicon/SettlementV2/Assets/MapMagic/Nodes/Graph.cs:877
at MapMagic.Nodes.Graph.GenerateRecursive (MapMagic.Nodes.Generator gen, MapMagic.Products.TileData data, MapMagic.Expose.Override ovd, MapMagic.Products.StopToken stop) [0x0007b] in /Users/erik/Documents/UnityProjectsBackup/AppleSilicon/SettlementV2/Assets/MapMagic/Nodes/Graph.cs:877
at MapMagic.Nodes.Graph.GenerateRecursive (MapMagic.Nodes.Generator gen, MapMagic.Products.TileData data, MapMagic.Expose.Override ovd, MapMagic.Products.StopToken stop) [0x00037] in /Users/erik/Documents/UnityProjectsBackup/AppleSilicon/SettlementV2/Assets/MapMagic/Nodes/Graph.cs:870
at MapMagic.Nodes.Graph.GenerateRecursive (MapMagic.Nodes.Thread failed: Syst

erik301, 28.01.2022, 15:19
Idea status: under consideration

Comments

erik301, 28.01.2022, 15:20
Here's the full StackTrace including the Den.Tools classes:
Thread failed: System.DllNotFoundException: NativePlugins assembly: type: member:(null)
at (wrapper managed-to-native) Den.Tools.Matrices.Matrix.Clamp01(Den.Tools.Matrices.Matrix)
at Den.Tools.Matrices.Matrix.Clamp01 () [0x00000] in /Users/erik/Documents/UnityProjectsBackup/AppleSilicon/SettlementV2/Assets/MapMagic/Tools/Matrix/Matrix.cs:1565
at MapMagic.Nodes.MatrixGenerators.SimpleForm200.Generate (MapMagic.Products.TileData data, MapMagic.Products.StopToken stop) [0x00070] in /Users/erik/Documents/UnityProjectsBackup/AppleSilicon/SettlementV2/Assets/MapMagic/Generators/Matrix/Runtime/MatrixInitial.cs:202
at MapMagic.Nodes.Graph.GenerateRecursive (MapMagic.Nodes.Generator gen, MapMagic.Products.TileData data, MapMagic.Expose.Override ovd, MapMagic.Products.StopToken stop) [0x001ed] in /Users/erik/Documents/UnityProjectsBackup/AppleSilicon/SettlementV2/Assets/MapMagic/Nodes/Graph.cs:917
at MapMagic.Nodes.Graph.GenerateRecursive (MapMagic.Nodes.Generator gen, MapMagic.Products.TileData data, MapMagic.Expose.Override ovd, MapMagic.Products.StopToken stop) [0x00037] in /Users/erik/Documents/UnityProjectsBackup/AppleSilicon/SettlementV2/Assets/MapMagic/Nodes/Graph.cs:870
at MapMagic.Nodes.Graph.GenerateRecursive (MapMagic.Nodes.Generator gen, MapMagic.Products.TileData data, MapMagic.Expose.Override ovd, MapMagic.Products.StopToken stop) [0x0007b] in /Users/erik/Documents/UnityProjectsBackup/AppleSilicon/SettlementV2/Assets/MapMagic/Nodes/Graph.cs:877
at MapMagic.Nodes.Graph.GenerateRecursive (MapMagic.Nodes.Generator gen, MapMagic.Products.TileData data, MapMagic.Expose.Override ovd, MapMagic.Products.StopToken stop) [0x0007b] in /Users/erik/Documents/UnityProjectsBackup/AppleSilicon/SettlementV2/Assets/MapMagic/Nodes/Graph.cs:877
at MapMagic.Nodes.Graph.GenerateRecursive (MapMagic.Nodes.Generator gen, MapMagic.Products.TileData data, MapMagic.Expose.Override ovd, MapMagic.Products.StopToken stop) [0x00037] in /Users/erik/Documents/UnityProjectsBackup/AppleSilicon/SettlementV2/Assets/MapMagic/Nodes/Graph.cs:870
at MapMagic.Nodes.Graph.GenerateRecursive (MapMagic.Nodes.Generator gen, MapMagic.Products.TileData data, MapMagic.Expose.Override ovd, MapMagic.Products.StopToken stop) [0x00037] in /Users/erik/Documents/UnityProjectsBackup/AppleSilicon/SettlementV2/Assets/MapMagic/Nodes/Graph.cs:870
at MapMagic.Nodes.Graph.GenerateRecursive (MapMagic.Nodes.Generator gen, MapMagic.Products.TileData data, MapMagic.Expose.Override ovd, MapMagic.Products.StopToken stop) [0x00037] in /Users/erik/Documents/UnityProjectsBackup/AppleSilicon/SettlementV2/Assets/MapMagic/Nodes/Graph.cs:870
at MapMagic.Nodes.Graph.Generate (MapMagic.Products.TileData data, MapMagic.Products.StopToken stop, MapMagic.Expose.Override ovd) [0x00039] in /Users/erik/Documents/UnityProjectsBackup/AppleSilicon/SettlementV2/Assets/MapMagic/Nodes/Graph.cs:856
at MapMagic.Terrains.TerrainTile.Generate (MapMagic.Nodes.Graph graph, MapMagic.Terrains.TerrainTile tile, MapMagic.Terrains.TerrainTile+DetailLevel det, MapMagic.Products.StopToken stop) [0x0004b] in /Users/erik/Documents/UnityProjectsBackup/AppleSilicon/SettlementV2/Assets/MapMagic/Terrains/TerrainTile.cs:716
at MapMagic.Terrains.TerrainTile+c__DisplayClass48_0.b__0 () [0x00000] in /Users/erik/Documents/UnityProjectsBackup/AppleSilicon/SettlementV2/Assets/MapMagic/Terrains/TerrainTile.cs:624
at Den.Tools.Tasks.ThreadManager.TaskThreadAction (Den.Tools.Tasks.ThreadManager+Task task) [0x00000] in /Users/erik/Documents/UnityProjectsBackup/AppleSilicon/SettlementV2/Assets/MapMagic/Tools/ThreadManager/ThreadManager.cs:138
UnityEngine.Debug:LogError (object)
Den.Tools.Tasks.ThreadManager:TaskThreadAction (Den.Tools.Tasks.ThreadManager/Task) (at Assets/MapMagic/Tools/ThreadManager/ThreadManager.cs:144)
Den.Tools.Tasks.ThreadManager:LaunchThreads () (at Assets/MapMagic/Tools/ThreadManager/ThreadManager.cs:130)
Den.Tools.Tasks.ThreadManager:Enqueue (Den.Tools.Tasks.ThreadManager/Task) (at Assets/MapMagic/Tools/ThreadManager/ThreadManager.cs:80)
MapMagic.Terrains.TerrainTile:EnqueueTask (MapMagic.Terrains.TerrainTile/DetailLevel,MapMagic.Nodes.Graph,int,string) (at Assets/MapMagic/Terrains/TerrainTile.cs:637)
MapMagic.Terrains.TerrainTile:StartGenerate (MapMagic.Nodes.Graph,bool,bool) (at Assets/MapMagic/Terrains/TerrainTile.cs:593)
MapMagic.Core.MapMagicObject:StartGenerate (bool,bool) (at Assets/MapMagic/Core/MapMagicObject.cs:291)
MapMagic.Core.GUI.MapMagicInspector:DrawGUI () (at Assets/MapMagic/Core/Editor/MapMagicInspector.cs:197)
Den.Tools.GUI.UI:Draw (System.Action,bool,UnityEngine.Rect) (at Assets/MapMagic/Tools/GUI/Editor/UI.cs:259)
MapMagic.Core.GUI.MapMagicInspector:OnInspectorGUI () (at Assets/MapMagic/Core/Editor/MapMagicInspector.cs:95)
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) (at /Users/bokken/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:189)
kks, 23.03.2022, 17:37
I get the same errors on the newest Version of map magic Bundle 2.1.9 running on Silicon but with intel versions of editor. I've tried LTS versions 2020.3.30f1 and 2020.3.27f1 and both have the same issue (Silicon versions are unstable for me). I have some 2.1.8 projects which work fine bur 2.1.9 is a no go.

Thread failed: System.DllNotFoundException: NativePlugins
at (wrapper managed-to-native) Den.Tools.Matrices.Matrix.Clamp01(Den.Tools.Matrices.Matrix)
at Den.Tools.Matrices.Matrix.Clamp01 () [0x00000] in /Users/kks/Unity/UnityProjects/My project (1)/Assets/MapMagic/Tools/Matrix/Matrix.cs:1565
at MapMagic.Nodes.MatrixGenerators.SimpleForm200.Generate (MapMagic.Products.TileData data, MapMagic.Products.StopToken stop) [0x00070] in /Users/kks/Unity/UnityProjects/My project (1)/Assets/MapMagic/Generators/Matrix/Runtime/MatrixInitial.cs:202
at MapMagic.Nodes.Graph.GenerateRecursive (MapMagic.Nodes.Generator gen, MapMagic.Products.TileData data, MapMagic.Expose.Override ovd, MapMagic.Products.StopToken stop) [0x001ed] in /Users/kks/Unity/UnityProjects/My project (1)/Assets/MapMagic/Nodes/Graph.cs:933
at MapMagic.Nodes.Graph.GenerateRecursive (MapMagic.Nodes.Generator gen, MapMagic.Products.TileData data, MapMagic.Expose.Override ovd, MapMagic.Products.StopToken stop) [0x00037] in /Users/kks/Unity/UnityProjects/My project (1)/Assets/MapMagic/Nodes/Graph.cs:886
at MapMagic.Nodes.Graph.GenerateRecursive (MapMagic.Nodes.Generator gen, MapMagic.Products.TileData data, MapMagic.Expose.Override ovd, MapMagic.Products.StopToken stop) [0x0007b] in /Users/kks/Unity/UnityProjects/My project (1)/Assets/MapMagic/Nodes/Graph.cs:893
at MapMagic.Nodes.Graph.GenerateRecursive (MapMagic.Nodes.Generator gen, MapMagic.Products.TileData data, MapMagic.Expose.Override ovd, MapMagic.Products.StopToken stop) [0x0007b] in /Users/kks/Unity/UnityProjects/My project (1)/Assets/MapMagic/Nodes/Graph.cs:893
at MapMagic.Nodes.Graph.GenerateRecursive (MapMagic.Nodes.Generator gen, MapMagic.Products.TileData data, MapMagic.Expose.Override ovd, MapMagic.Products.StopToken stop) [0x00037] in /Users/kks/Unity/UnityProjects/My project (1)/Assets/MapMagic/Nodes/Graph.cs:886
at MapMagic.Nodes.Graph.GenerateRecursive (MapMagic.Nodes.Generator gen, MapMagic.Products.TileData data, MapMagic.Expose.Override ovd, MapMagic.Products.StopToken stop) [0x00037] in /Users/kks/Unity/UnityProjects/My project (1)/Assets/MapMagic/Nodes/Graph.cs:886
at MapMagic.Nodes.Graph.GenerateRecursive (MapMagic.Nodes.Generator gen, MapMagic.Products.TileData data, MapMagic.Expose.Override ovd, MapMagic.Products.StopToken stop) [0x00037] in /Users/kks/Unity/UnityProjects/My project (1)/Assets/MapMagic/Nodes/Graph.cs:886
at MapMagic.Nodes.Graph.Generate (MapMagic.Products.TileData data, MapMagic.Products.StopToken stop, MapMagic.Expose.Override ovd) [0x00039] in /Users/kks/Unity/UnityProjects/My project (1)/Assets/MapMagic/Nodes/Graph.cs:872
at MapMagic.Terrains.TerrainTile.Generate (MapMagic.Nodes.Graph graph, MapMagic.Terrains.TerrainTile tile, MapMagic.Terrains.TerrainTile+DetailLevel det, MapMagic.Products.StopToken stop) [0x0004b] in /Users/kks/Unity/UnityProjects/My project (1)/Assets/MapMagic/Terrains/TerrainTile.cs:716
at MapMagic.Terrains.TerrainTile+c__DisplayClass49_0.b__0 () [0x00000] in /Users/kks/Unity/UnityProjects/My project (1)/Assets/MapMagic/Terrains/TerrainTile.cs:669
at Den.Tools.Tasks.ThreadManager.TaskThreadAction (Den.Tools.Tasks.ThreadManager+Task task) [0x00000] in /Users/kks/Unity/UnityProjects/My project (1)/Assets/MapMagic/Tools/ThreadManager/ThreadManager.cs:138
UnityEngine.Debug:LogError (object)
Den.Tools.Tasks.ThreadManager:TaskThreadAction (Den.Tools.Tasks.ThreadManager/Task) (at Assets/MapMagic/Tools/ThreadManager/ThreadManager.cs:144)
System.Threading.ThreadHelper:ThreadStart ()
kks, 24.03.2022, 17:02
Update... If I load 2.1.8 first then *update* with 2.1.9 it works fine but just loading everything from scratch with 2.1.9 only gives the above System.DllNotFoundException error. This will be a work around for me until there is a full fix in another release.
rthriller, 26.03.2022, 12:19
How can you load the previous version?
delany, 06.12.2022, 08:03
I also cannot get mm2 working on Apple Silicon. Is there any fix or workaround for this?
luca, 26.06.2023, 22:28
Is there any fix for this yet? Still not working on unity 2021.3.25f1
luca, 30.06.2023, 14:03
For anyone that has this error message heres the solution:

MapMagic 2 works on Apple Silicon. But you've got to disable Native Code in Window - MapMagic - Settings. This will switch MM to regular C# code instead of C++ and make it work on any platform Unity supports, but will greatly slow down performance.

Alternatively you can compile C++ source code from gitlab. (https://gitlab.com/denispahunov/tools/-/tree/master/.NativeSources/NativePlugins)

Another alternative - try user-compiled bundle for Apple Silicon (could be downloaded from dropbox(https://www.dropbox.com/s/09qk2cf8ug67p0t/NativePlugins.bundle.zip?dl=0)).

Leave a comment