Per checking your provided log, the “unresolved external symbol” error suggest a possible mismatch with the SDK installed in your system. Please make sure you are working the DXCORE_ADAPTER_ATTRIBUTE_D3D12_GENERIC_ML
Current requirements for 5.6 go as follows:
Visual Studio 2022 v17.14 or newer
Windows SDK 10.0.22621.0 or newer
LLVM clang
Minimum: 18.1.3
Preferred: 18.1.8
.NET 8.0
More details can be found in the guide below:
Additionally, I would suggest disabling the experimental plugins AnimNext and NNERuntimeRDG (unless they are required for your build). As well, please perform a cache clear, via deleting folders Intermediate, Binaries, and DerivedDataCache, then regenerating project files.
For .NET, I have a bunch installed, but not 8. I have 2, 5, 6 and 9 SDKs. I’ll install .NET 8 and see what that does.
The only clang executables on my machines are in the source for UE. It is version 20.0.0.
In this folder:
P:\Projects\UE5.5_NoDQS\UnrealEngine\Engine\Plugins\Experimental\NNERuntimeIREE\Binaries\ThirdParty\IREE\Windows\clang++.exe
I have clang.exe in much older folders of UE. But I don’t have clang itself installed on my machine.
Anyways, I’ll try .NET 8 to start.
I do have a Windows 10 SDK still on my machine. I wonder if that’s not what clang is picking up since that seems to be the module that has the clang exe in it. I could remove it I suppose.
edit: In the Visual Studio install, I already had .NET 6,7,8 and 9 installed, so that wasn’t it.
I noticed in GenerateProjectFiles.bat, it wants a newer tool chain. I must have missed that warning the first time around. Trying to install that now.
edit2: I already had the newest toolchain, but it was using an old one for some reason. I removed the old one and I no longer get the warning in GenerateProjectFiles.bat. Gonna rebuild and see what happens.
No change. Exact same errors. Everything is up to date for requirements.
1>Using Visual Studio 2022 14.44.35209 toolchain (C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207) and Windows 10.0.26100.0 SDK
I’ve had a VERY long session with grok to try and resolve this. Finally found that this is missing at the top of NNERuntimeORTUtils.cpp in the NNERuntimeORT module just before the dxcore_interface.h include.
#include <initguid.h> // this is missing
#include <dxcore_interface.h>
That fixed the linker error. I’m now trying to resolve the overflow errors. It’s clear at this point that the 5.6 branch is broken.
The rest of the errors are just bad code. They’re using INFINITY define with a float which will overflow by definition. It even says it in the comments that it must overflow.
Did nobody even try to compile this?
I replaced all the uses of INFINITY with
std::numeric_limits<float>::infinity()
Not sure if it’ll still work, but I doubt I’ll be using that plugin.