Nanite on Mac and iOS

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 ?

r/unrealengine - Nanite on Mac and iOS

nanite on mac

I also runs Nanite successfully on iOS, but there are more issues.

r/unrealengine - Nanite on Mac and iOS

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)

2、 Metal (for iOS and MacOS platforms) does not support atomic operations on Textureshttps://docs.unity3d.com/2022.2/Documentation/Manual/class-ComputeShader.html。 So depth buffer is not quite right

my redit post:https://www.reddit.com/r/unrealengine/comments/uwgbmt/nanite_on_mac_and_ios/

2 Likes

Good work! Let us know your progress please. I wish Epic would update us about whether Nanite will ever come to Mac officially.

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.

they specifically said in the nanite announcements that its not compatible with mac :frowning:

UGH. Now I have to go buy a fancy boxx computer.

1 Like

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.

That’s great work ! Maybe you did not read this : Lumen & Nanite on MacOS

It might be good to get in touch with people like ::
Richmar1
https://forums.unrealengine.com/u/richmar1

Or
Philip Turner

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 !

2 Likes

Some great encouraging news for Nanite support on Apple Silicon !
https://portal.productboard.com/epicgames/1-unreal-engine-public-roadmap/c/1151-support-for-nanite-on-apple-m2-devices
It’s not mentioned if UE 5.3 universal build will bring Nanite to Intel CPU / AMD GPU hardware.
But that’s just great news.
Guys at Epic : you rock !

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.”