Nanite - Build Data - Crashes MacBook M2

Hello,

UE Version 5.4.4
System: MacBook Pro M2 Max,

I’m taking an UE course at the moment and have run into an issue where my entire machine crashes when I click “Build Data” under Nanite in the Details Panel for a Landscape.

  1. I check the “Enable Nanite” checkbox
  2. Click “Build Data”

It shows the build progress bar but then crashes my computer after a while.

Just for completeness, I did the following before:

  1. in Project Settings, I enabled "Mac Metal Desktop Renderer Beta…)
  2. Per the course I’m taking, I also added the following to my /Config/DefaultEngine.ini, under [/Script/Engine.RendererSettings]
  • r.Nanite.AllowTessellation=1
  • r.Nanite.Tessellation=1

This was done, I think, to show the “Displacement” option in Result node of the material I’m trying to displace.

Anyone else run into this issue, or have any ideas what might be wrong?

Update:
I did end up with this error log when I tried again:

Fatal error: [File:./Runtime/Apple/MetalRHI/Private/MetalCommandList.cpp] [Line: 99] Command Buffer ScatterUpload[0] (Resource: SceneCulling.CellBlockData, Offset: 0, GroupSize: 1) Failed with Internal Error! Error Domain: MTLCommandBufferErrorDomain Code: 1 Description Internal Error (0000000e:Internal Error) Unknown Unknown

ReportMetalCommandBufferFailure(MTL::CommandBuffer*, char16_t const*, bool) Address = 0x30f507040 (filename not found) [in UnrealEditor-MetalRHI.dylib]
MetalCommandBufferFailureInternal(MTL::CommandBuffer*) Address = 0x30f5315fc (filename not found) [in UnrealEditor-MetalRHI.dylib]
std::__1::__function::__func<FMetalCommandList::Commit(FMetalCommandBuffer*, TArray<TDelegate<void (MTL::CommandBuffer*), FDefaultDelegateUserPolicy>, TSizedDefaultAllocator<32>>, bool, bool)::$_4, std::__1::allocator<FMetalCommandList::Commit(FMetalCommandBuffer*, TArray<TDelegate<void (MTL::CommandBuffer*), FDefaultDelegateUserPolicy>, TSizedDefaultAllocator<32>>, bool, bool)::$_4>, void (MTL::CommandBuffer*)>::operator()(MTL::CommandBuffer*&&) Address = 0x30f5485e4 (filename not found) [in UnrealEditor-MetalRHI.dylib]
invocation function for block in MTL::CommandBuffer::addCompletedHandler(std::__1::function<void (MTL::CommandBuffer*)> const&) Address = 0x30f52e814 (filename not found) [in UnrealEditor-MetalRHI.dylib]
Unknown() Address = 0x19f1c7058 (filename not found) [in Metal]
Unknown() Address = 0x19f1c74ac (filename not found) [in Metal]
Unknown() Address = 0x1b4d10684 (filename not found) [in IOGPU]
Unknown() Address = 0x19f1c70f0 (filename not found) [in Metal]
Unknown() Address = 0x1b4d11ca8 (filename not found) [in IOGPU]
Unknown() Address = 0x1b4d1d72c (filename not found) [in IOGPU]
Unknown() Address = 0x1b4d1d83c (filename not found) [in IOGPU]
Unknown() Address = 0x194278718 (filename not found) [in libdispatch.dylib]
Unknown() Address = 0x194294c00 (filename not found) [in libdispatch.dylib]
Unknown() Address = 0x19427fae8 (filename not found) [in libdispatch.dylib]
Unknown() Address = 0x194295954 (filename not found) [in libdispatch.dylib]
Unknown() Address = 0x19427fae8 (filename not found) [in libdispatch.dylib]
Unknown() Address = 0x19428079c (filename not found) [in libdispatch.dylib]
Unknown() Address = 0x19427fae8 (filename not found) [in libdispatch.dylib]
Unknown() Address = 0x194280768 (filename not found) [in libdispatch.dylib]
Unknown() Address = 0x19428b7e8 (filename not found) [in libdispatch.dylib]
Unknown() Address = 0x19428b034 (filename not found) [in libdispatch.dylib]
Unknown() Address = 0x1944273d8 (filename not found) [in libsystem_pthread.dylib]
Unknown() Address = 0x1944260f0 (filename not found) [in libsystem_pthread.dylib]

Thanks

Greetings @hiracode

Welcome back to the Unreal Engine Community Forum! With this issue are you using DX11 or 12?

Hey Thanks,

I’m on a Mac, which doesn’t use DirectX. I think Nanite is in Beta still so it may just be a bug with UE that will hopefully be resolved in the near future.

Oh, I see! I’ll take a look into some additional info and get back with you later today to see if I can reproduce the error.