After modify Unreal engine 5 source code and configs, UE5 can run nanite on mac successfully ! There are a lot of unsolved problems. Who is interested in working together to solve them? Whether UE officially allows code changes to be made public ?
nanite on mac
I also runs Nanite successfully on iOS, but there are more issues.
nanite on iOS
Problems include but are not limited to:
1、Only one thread group (64 threads) to run PersistentClusterCull, more thread group can cause gpu time out。
Maybe because of the following reasons, I’m not sure
(If threadgroup_barrier (or simdgroup_barrier ) is inside a conditional statement and if any
thread enters the conditional statement and executes the barrier function, then all threads in
the threadgroup (or SIMD-group) must enter the conditional and execute the barrier function – from Metal Shading Language Specification)
Is this still an issue? I’ve been trying to learn UE5 on Mac for the past few weeks and all the meshes I bring into UE5 look great until I turn on nanite. The only nanite that works are directly from Megascans, which I suspect aren’t actually nanite in my case, just high mesh count. If nanite isn’t supported on mac, it’s incredible the program doesn’t warn you, it just let me sit there for weeks pulling my hair out trying to understand why while everyone can just press the nanite button I apparently cannot. I’m still not sure it’s mac and not just me…
The Windows version is just as bad about informing users if Nanite is working properly working, or what is wrong if it isn’t, unfortunately there aren’t any easy warnings like your hardware doesn’t support it, you need to enable this rhi and shading model, or you need to update your OS/drivers.
I know. It sucks. However there is hope. I’m no expert on these matters but I believe that Metal 3 now fills in the gaps that prevented Nanite from working on Macs. Now it’s up to Epic, Apple, or some intrepid 3rd party to make an update.
They are doing some pretty good tests to get Nanite and Lumen work on macOS ‘intel’/silicon machines.
I hope you all gonna make Unreal Engine work with all its amazing features such as Nanite, Lumen, ray tracing… on Mac hardware. Intel or Silicon.
I just don’t want to have to buy a PC when I know that softwares like Houdini, Maya, Nuke, FinalCutPro, Blender, DaVinci Resolve, ‘unity’, etc… take advantages of the very efficient and powerful Apple silicon hardware.
Thank you guys for working hard on making that happen !
Metal (for iOS and MacOS platforms) does not support atomic operations on Textures
Unity’s documentation is incorrect, but that should be no surprise since that’s been an issue with Unity since the very beginning— vague, inaccurate, and sometimes just flat-out incorrect docs.
The full truth is that if you head over to Apple’s Metal Shader Language Feature Set Tables, you find that Texture Atomics are supported by devices in classes Metal3, Apple6, and Mac2, and the first page tells us Apple6 is the A13 GPU— so Texture Atomics are supported by the iPhone 11 (2019), iPhone SE 2nd Gen (2020), iPad 9th Gen (2021), iPad Air 4th Gen (2020), and iPad Pros with M1 (2021), or newer (thanks to CPU lookup on EveryI.com). The Metal3/Mac2 class is (AFAIK) every Mac that runs the latest macOS— all M1/M2/M3 Macs, as well as Intel Macs with GPUs: AMD Vega, AMD 5000-series, 6000-series, Intel UHD Graphics 630, Intel Iris Plus Graphics.
So Unity’s page is really saying “we wrote these docs a good while ago, probably around 2020, and all deployable iOS/macOS platforms didn’t support atomic textures at the time, so we didn’t both implementing it in Unity and haven’t updated the docs— we (Unity) don’t support Metal’s atomic textures, but we like to pass blame off on others and lie to make ourselves look better.”