saji8k
Topic Author
Posts: 21
Joined: 07 Jul 2023, 08:35

Unreal 5.3 Plugin not working on macOS

16 Jan 2024, 13:25

After downloading a fresh copy of NoesisGUI (NoesisGUI-UE5.3-3.2.2-Indie) to my Mac (M3, macOS 14.2.1, Xcode 15.2), I am unable to open the samples.uproject file with Unreal Engine 5.3.2.

First, Unreal gives me a warning dialog stating "Missing Sample Modules. The following modules are missing or built with a different engine version: DatabindingModule...NoesisEditor. Would you like to rebuild them now?" after clicking Yes to that, Unreal says "Error. Samples could not be compiled. Try rebuilding from source manually." and then closes.

I tried using the "Generate Xcode Project" from the context menu but that did nothing which seems to be an Unreal issue not Noesis. I was able to generate the project files from the terminal. I then tried to build the Samples project directly from Xcode but that failed as well. With the following three errors:
In file included from /Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Intermediate/Build/Mac/arm64/UnrealGame/Development/NoesisRuntime/Module.NoesisRuntime.2.cpp:29:
In file included from /Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Source/NoesisRuntime/Private/NoesisRiveControl.cpp:18:
In file included from /Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Source/Noesis/NoesisSDK/Src/Packages/App/RiveBase/Src/Rive.cpp:35:
/Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Source/Noesis/NoesisSDK/Src/Packages/App/RiveBase/Src/rive/src/component.cpp:11:12: error: reference to 'Component' is ambiguous
StatusCode Component::onAddedDirty(CoreContext* context)
           ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers/Components.h:187:41: note: candidate found by name lookup is 'Component'
typedef ComponentRecord *               Component;
                                        ^
/Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Source/Noesis/NoesisSDK/Src/Packages/App/RiveBase/Src/rive/include/rive/shapes/paint/shape_paint_mutator.hpp:6:7: note: candidate found by name lookup is 'rive::Component'
class Component;
      ^
In file included from /Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Intermediate/Build/Mac/arm64/UnrealGame/Development/NoesisRuntime/Module.NoesisRuntime.2.cpp:29:
In file included from /Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Source/NoesisRuntime/Private/NoesisRiveControl.cpp:18:
In file included from /Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Source/Noesis/NoesisSDK/Src/Packages/App/RiveBase/Src/Rive.cpp:217:
/Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Source/Noesis/NoesisSDK/Src/Packages/App/RiveBase/Src/rive/src/math/hit_test.cpp:21:8: error: redefinition of 'Point'
struct Point
       ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/MacTypes.h:538:8: note: previous definition is here
struct Point {
       ^
In file included from /Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Intermediate/Build/Mac/arm64/UnrealGame/Development/NoesisRuntime/Module.NoesisRuntime.2.cpp:29:
In file included from /Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Source/NoesisRuntime/Private/NoesisRiveControl.cpp:18:
In file included from /Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Source/Noesis/NoesisSDK/Src/Packages/App/RiveBase/Src/Rive.cpp:238:
/Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Source/Noesis/NoesisSDK/Src/Packages/App/RiveBase/Src/rive/src/shapes/polygon.cpp:9:1: error: reference to 'Polygon' is ambiguous
Polygon::Polygon() {}
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/Headers/Quickdraw.h:267:41: note: candidate found by name lookup is 'Polygon'
typedef MacPolygon                      Polygon;
                                        ^
/Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Source/Noesis/NoesisSDK/Src/Packages/App/RiveBase/Src/rive/include/rive/shapes/polygon.hpp:9:7: note: candidate found by name lookup is 'rive::Polygon'
class Polygon : public PolygonBase
      ^
I am also able to run the Noesis Apple Native SDK Samples xcode project without these issues so I am not sure why they are coming up here. I guess Unreal brings in more Apple API headers than the Application framework.

To fix the above,
I changed Component to rive::Component in component.cpp.
I changed Point to RivePoint in hit_test.cpp
I changed Polygon to rive::Polygon in polygon.hpp

That finally fixed all the build errors. Unfortunately, Xcode failed to launch the Unreal Editor due to a missing dylib (Samples.app/Contents/MacOS/../../Contents/UE/Engine/Binaries/ThirdParty/Intel/TBB/Mac/libtbb.dylib' (no such file),) but that is an Unreal issue, not a Noesis issue.

From here I ran the samples.uproject again, and Unreal complained again about ""Missing Sample Modules". I click yes to rebuild and this time it worked and I was able to successfully open the Samples.uproject and run the editor.

Unfortunately when I hit the play button, UE crashed with the following error:
Fatal error: [File:./Runtime/Apple/MetalRHI/Private/MetalRenderPass.cpp] [Line: 173] Failed to restart render pass with descriptor: <MTLRenderPassDescriptorInternal: 0x6000007502d0> Color Attachment 0 texture = <AGXG15XFamilyTexture: 0x146762bb0> label = CAMetalLayer Display Drawable textureType = MTLTextureType2D pixelFormat = MTLPixelFormatBGRA8Unorm width = 3456 height = 2018 depth = 1 arrayLength = 1 mipmapLevelCount = 1 sampleCount = 1 cpuCacheMode = MTLCPUCacheModeDefaultCache storageMode = MTLStorageModeManaged hazardTrackingMode = MTLHazardTrackingModeTracked resourceOptions = MTLResourceCPUCacheModeDefaultCache MTLResourceStorageModeManaged MTLResourceHazardTrackingModeTracked usage = MTLTextureUsageShaderRead MTLTextureUsageShaderWrite MTLTextureUsageRenderTarget MTLTextureUsagePixelFormatView shareable = 0 framebufferOnly = 0 purgeableState = MTLPurgeableStateNonVolatile swizzle = [MTLTextureSwizzleRed, MTLTextureSwizzleGreen, MTLTextureSwizzleBlue, MTLTextureSwizzleAlpha] isCompressed = 0 parentTexture = <null> parentRelativeLevel = 0 parentRelativeSlice = 0 buffer = <null> bufferOffset = 0 bufferBytesPerRow = 0 iosurface = 0x600003a5cee0 iosurfacePlane = 0 allowGPUOptimizedContents = YES level = 0 slice = 0 depthPlane = 0 resolveTexture = <null> resolveLevel = 0 resolveSlice = 0 resolveDepthPlane = 0 loadAction = MTLLoadActionLoad storeAction = MTLStoreActionUnknown storeActionOptions = none clearColor = (0 0 0 0) yInvert = NO Color Attachment 1 texture = <null> level = 0 slice = 0 depthPlane = 0 resolveTexture = <null> resolveLevel = 0 resolveSlice = 0 resolveDepthPlane = 0 loadAction = MTLLoadActionDontCare storeAction = MTLStoreActionStore storeActionOptions = none clearColor = (0 0 0 0) yInvert = NO Color Attachment 2 texture = <null> level = 0 slice = 0 depthPlane = 0 resolveTexture = <null> resolveLevel = 0 resolveSlice = 0 resolveDepthPlane = 0 loadAction = MTLLoadActionLoad storeAction = MTLStoreActionStore storeActionOptions = none clearColor = (0 0 0 0) yInvert = NO Color Attachment 3 texture = <null> level = 0 slice = 0 depthPlane = 0 resolveTexture = <null> resolveLevel = 0 resolveSlice = 0 resolveDepthPlane = 0 loadAction = MTLLoadActionLoad storeAction = MTLStoreActionStore storeActionOptions = none clearColor = (0 0 0 0) yInvert = NO Color Attachment 4 texture = <null> level = 0 slice = 0 depthPlane = 0 resolveTexture = <null> resolveLevel = 0 resolveSlice = 0 resolveDepthPlane = 0 loadAction = MTLLoadActionLoad storeAction = MTLStoreActionStore storeActionOptions = none clearColor = (0 0 0 0) yInvert = NO Color Attachment 5 texture = <null> level = 0 slice = 0 depthPlane = 0 resolveTexture = <null> resolveLevel = 0 resolveSlice = 0 resolveDepthPlane = 0 loadAction = MTLLoadActionLoad storeAction = MTLStoreActionStore storeActionOptions = none clearColor = (0 0 0 0) yInvert = NO Color Attachment 6 texture = <null> level = 0 slice = 0 depthPlane = 0 resolveTexture = <null> resolveLevel = 0 resolveSlice = 0 resolveDepthPlane = 0 loadAction = MTLLoadActionDontCare storeAction = MTLStoreActionStore storeActionOptions = none clearColor = (0 0 0 1) yInvert = NO Color Attachment 7 texture = <null> level = 0 slice = 0 depthPlane = 0 resolveTexture = <null> resolveLevel = 0 resolveSlice = 0 resolveDepthPlane = 0 loadAction = MTLLoadActionDontCare storeAction = MTLStoreActionStore storeActionOptions = none clearColor = (0 0 0 1) yInvert = NO Depth Attachment: texture = <AGXG15XFamilyTexture: 0x14bb05bb0> label = Noesis.RenderTarget.Onscreen_DS textureType = MTLTextureType2D pixelFormat = MTLPixelFormatDepth32Float_Stencil8 width = 3456 height = 2018 depth = 1 arrayLength = 1 mipmapLevelCount = 1 sampleCount = 1 cpuCacheMode = MTLCPUCacheModeDefaultCache storageMode = MTLStorageModePrivate hazardTrackingMode = MTLHazardTrackingModeTracked resourceOptions = MTLResourceCPUCacheModeDefaultCache MTLResourceStorageModePrivate MTLResourceHazardTrackingModeTracked usage = MTLTextureUsageShaderRead MTLTextureUsageRenderTarget MTLTextureUsagePixelFormatView shareable = 0 framebufferOnly = 0 purgeableState = MTLPurgeableStateNonVolatile swizzle = [MTLTextureSwizzleRed, MTLTextureSwizzleGreen, MTLTextureSwizzleBlue, MTLTextureSwizzleAlpha] isCompressed = 1 parentTexture = <null> parentRelativeLevel = 0 parentRelativeSlice = 0 buffer = <null> bufferOffset = 0 bufferBytesPerRow = 0 iosurface = 0x0 iosurfacePlane = 0 allowGPUOptimizedContents = YES level = 0 slice = 0 depthPlane = 0 resolveTexture = <null> resolveLevel = 0 resolveSlice = 0 resolveDepthPlane = 0 resolveFilter = MTLMultisampleDepthResolveFilterSample0 loadAction = MTLLoadActionDontCare storeAction = MTLStoreActionStore storeActionOptions = none clearDepth = 0 yInvert = NO Stencil Attachment: texture = <AGXG15XFamilyTexture: 0x14bb05bb0> label = Noesis.RenderTarget.Onscreen_DS textureType = MTLTextureType2D pixelFormat = MTLPixelFormatDepth32Float_Stencil8 width = 3456 height = 2018 depth = 1 arrayLength = 1 mipmapLevelCount = 1 sampleCount = 1 cpuCacheMode = MTLCPUCacheModeDefaultCache storageMode = MTLStorageModePrivate hazardTrackingMode = MTLHazardTrackingModeTracked resourceOptions = MTLResourceCPUCacheModeDefaultCache MTLResourceStorageModePrivate MTLResourceHazardTrackingModeTracked usage = MTLTextureUsageShaderRead MTLTextureUsageRenderTarget MTLTextureUsagePixelFormatView shareable = 0 framebufferOnly = 0 purgeableState = MTLPurgeableStateNonVolatile swizzle = [MTLTextureSwizzleRed, MTLTextureSwizzleGreen, MTLTextureSwizzleBlue, MTLTextureSwizzleAlpha] isCompressed = 1 parentTexture = <null> parentRelativeLevel = 0 parentRelativeSlice = 0 buffer = <null> bufferOffset = 0 bufferBytesPerRow = 0 iosurface = 0x0 iosurfacePlane = 0 allowGPUOptimizedContents = YES level = 0 slice = 0 depthPlane = 0 resolveTexture = <null> resolveLevel = 0 resolveSlice = 0 resolveDepthPlane = 0 loadAction = MTLLoadActionClear storeAction = MTLStoreActionStore storeActionOptions = none clearStencil = 0 stencilResolveFilter = MTLMultisampleStencilResolveFilterSample0 yInvert = NO visibilityResultBuffer = <AGXG15XFamilyBuffer: 0x14e53a9d0> label = <none> length = 65536 cpuCacheMode = MTLCPUCacheModeDefaultCache storageMode = MTLStorageModeShared hazardTrackingMode = MTLHazardTrackingModeTracked resourceOptions = MTLResourceCPUCacheModeDefaultCache MTLResourceStorageModeShared MTLResourceHazardTrackingModeTracked purgeableState = MTLPurgeableStateNonVolatile renderTargetArrayLength = 1 renderTargetWidth = 0 renderTargetHeight = 0 rasterizationRateMap = <null> Custom Sample Positions: number of positions = 0

FMetalRenderPass::RestartRenderPass(mtlpp::RenderPassDescriptor) Address = 0x2f48a2acc (filename not found) [in UnrealEditor-MetalRHI.dylib]
FMetalRenderPass::ConditionalSwitchToRender() Address = 0x2f48a4aac (filename not found) [in UnrealEditor-MetalRHI.dylib]
FMetalRenderPass::DrawIndexedPrimitive(FMetalBuffer const&, unsigned int, unsigned int, int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) Address = 0x2f48a64e8 (filename not found) [in UnrealEditor-MetalRHI.dylib]
FMetalRHICommandContext::RHIDrawIndexedPrimitive(FRHIBuffer*, int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) Address = 0x2f4843720 (filename not found) [in UnrealEditor-MetalRHI.dylib]
FRHICommand<FRHICommandDrawIndexedPrimitive, FRHICommandDrawIndexedPrimitiveString1468>::ExecuteAndDestruct(FRHICommandListBase&, FRHICommandListDebugContext&) Address = 0x16b51b93c [/Users/Shared/Epic Games/UE_5.3/Engine/Source/Runtime/RHI/Public/RHICommandList.h, line 1247] [in UnrealEditor-NoesisRuntime.dylib]
FRHICommandListBase::Execute(TRHIPipelineArray<IRHIComputeContext*>&, FRHICommandListBase::FPersistentState::FGPUStats*) Address = 0x100f7575c (filename not found) [in UnrealEditor-RHI.dylib]
UE::Core::Private::Function::TFunctionRefCaller<FRHICommandListImmediate::ExecuteAndReset(bool)::$_69, void ()>::Call(void*) Address = 0x100ffacd4 (filename not found) [in UnrealEditor-RHI.dylib]
TGraphTask<TFunctionGraphTaskImpl<void (), (ESubsequentsMode::Type)0>>::ExecuteTask(TArray<FBaseGraphTask*, TSizedDefaultAllocator<32>>&, ENamedThreads::Type, bool) Address = 0x100fd7c54 (filename not found) [in UnrealEditor-RHI.dylib]
FNamedTaskThread::ProcessTasksNamedThread(int, bool) Address = 0x103cf7890 (filename not found) [in UnrealEditor-Core.dylib]
FNamedTaskThread::ProcessTasksUntilQuit(int) Address = 0x103cf5b74 (filename not found) [in UnrealEditor-Core.dylib]
FRHIThread::Run() Address = 0x1019c70e8 (filename not found) [in UnrealEditor-RenderCore.dylib]
FRunnableThreadPThread::Run() Address = 0x103ea8e4c (filename not found) [in UnrealEditor-Core.dylib]
FRunnableThreadPThread::_ThreadProc(void*) Address = 0x103e09e50 (filename not found) [in UnrealEditor-Core.dylib]
Unknown() Address = 0x18beda034 (filename not found) [in libsystem_pthread.dylib]
Unknown() Address = 0x18bed4e3c (filename not found) [in libsystem_pthread.dylib]
At this point I am stuck. Seems to be a Noesis->Unreal RHI issue.
Is the Unreal 5.3 SDK working for you guys? Can you issue a fix?
 
User avatar
jsantos
Site Admin
Posts: 3925
Joined: 20 Jan 2012, 17:18
Contact:

Re: Unreal 5.3 Plugin not working on macOS

16 Jan 2024, 18:26

Could you please create a ticket for this? We will fix the minor compiling issues that you mention and we are also investigating the RHI error.
 
saji8k
Topic Author
Posts: 21
Joined: 07 Jul 2023, 08:35

Re: Unreal 5.3 Plugin not working on macOS

17 Jan 2024, 02:03

Since these are separate issues, I have filed two separate bug reports:
Compilation Bugs: https://www.noesisengine.com/bugs/view.php?id=3016
Unreal RHI macOS Bug: https://www.noesisengine.com/bugs/view.php?id=3017
 
User avatar
jsantos
Site Admin
Posts: 3925
Joined: 20 Jan 2012, 17:18
Contact:

Re: Unreal 5.3 Plugin not working on macOS

22 Jan 2024, 22:51

Thanks for the tickets, we are working on this for 3.2.3

Who is online

Users browsing this forum: Ahrefs [Bot], Bing [Bot] and 3 guests