Lumen Works (Software Tracing). Nanite NOT Working
So I did some testing and I didn’t investigate too much, BUT… I forced Nanite to be supported on MacOS by adding:
[ShaderPlatform METAL_SM5]
bSupportsNanite=true
to:
Engine/Config/Mac/DataDrivenPlatformInfo.ini
and this resulted in a bunch of shaders recompiling on engine launch. Nanite still didn’t appear to work even though i forced it on. Turns out the engine was checking for support for Atomics for the UInt64 type which the Metal RHI reports that it does not suppport. I forced support with:
GRHISupportsAtomicUInt64 = true;
This causes the engine to crash due to threads not being created because
GRHIPersistentThreadGroupCount < =0;
So i forced it with:
GRHIPersistentThreadGroupCount = 1;
this causes the engine to crash because it cant find a particular compute shader. So it appears that nanite is not supported due to the hardware not being physically supported (GRHISupportsAtomicUInt64). This could be because the M1 is using Rosetta x86 emulation or the M1 could actually not support it period. i have no clue, it’s not something i’ve studdied at length. So, It appears as though the M1 does not contain the proper hardware required to run nanite in it’s current state. I’m sure that the nanite algorithm could be modified slightly to allow support. This is all a shot in the dark from only 20 minutes of investigation.
That is excellent info and i was very excited to hear that i could package my game in native m1 mode. However, i’ve tried every which way and it doesn’t actually work. This could be project specific so it may work for others. If i use -architecture=arm64 like it says , it just complains that arm64(M1) is not supported and it’s going to build in x86(Intel) mode anyways. however, if i use -specifiedarchitecture=arm64 it will complain that MyGameEditor arm64(M1) is not supported but it will compile MyGame (No Editor) in arm64(M1) mode. Everything compiles appropriately but it still fails to package because it can’t find all of the .dSYM files (debug info files) for my project and the engine. Even in shipping builds it still tries to find them and it fails due to not being able to find them. If i change my Target.cs files to manually override the including of debug info, it won’t complain about not finding debug info but it will actually say the infamous “Launch was not setup to be included in binary build. please mark it as PrecompileForTargets.Any” and it fails to package. So, unless i’m not doing something correct (I’m litterally following that documentation page to the letter) M1 is not supported in any build of your game. If someone can get it to package for arm64(M1) please do let me know, i’m interested in testing the performance between the two builds of my game. Thank you all.
EDIT: It appears that it might work for source builds of the engine.
EDIT 2: I can confirm that it also does not work for source builds (6 hours to build the engine for nothing lol). Well, i guess just hope for proper M1 support soon
EDIT 3: Ok…So, Using visual studio code, i am able to compile UnrealGame to apple silicon (M1). Doing the same for my project, also works. So yes, with the Source version of the engine, you can indeed compile the engine and your game to native apple silicon, just not the Editor.
I just made a tutorial on how to compile your game for apple silicon. you can find it here: Compiling Your Game For Apple Silicon
Hello
Please excuse my ignorance I am a complete novice looking to learn more about UE. I just received My Mac Studio with the M1 Ultra Chip and having serious problems using Unreal in any terms ( never mind lumen etc) - Is anyone else in the same boat? Should I just hold tight for an update?
um… thank you. We Mac users need to pool our knowledge better because its obvious there’s a lack of resources coming from Epic.
Can you be more specific on what you mean by “having serious problems using Unreal in any terms”?
Just updated on UE 5.0.2. I am working on mac os. And it was a great realeae for me. Lumen maide i big step forward! It will chance me daily work! Thank you very much epic Team!
Yes sorry. I managed to get it working without any issues this morning then it started crashing again. Now I cannot get past the open project screen as it crashes before I can even select anything.
Can you post your most recent log from
~/Library/Logs/Unreal Engine/{YourProjectName}Editor/
Hey Im not allowed to share files as a new user but I can copy and paste the text? It will obviously be a lot so maybe there is a better way to share?
probably google drive
bumping this since WWDC was yesterday and nothing so far has been announced. has anyone done a twitter crawl lately to see if we’re getting that native m1/lumen/nanite support?
I am new to UE but doing some research I came across this in Reddit. Curious if anyone can confirm this.
[https://www.reddit.com/r/unrealengine/comments/v0xpa6/run_nanite_on_your_mac/]
They claim you can now Run Nanite on Mac
Thanks, I’ve tried getting an M1 build working and never managed to either… I might look at your tutorial at some point when I try again… it really feels like this should be easier.
I’ll try it out later, it seems really promising, the problem is that the guy only provides the binaries, no source code, so from an actual development standpoint it’s kind of useless and no one can build on what he started. If it works it does prove my theory though (that Nanite should be working on Mac from a hardware standpoint and it’s basically Epic that hasn’t implemented it).
Seems legit, my experiments seem to confirm this
Can you specify what iMac?