After upgrading to unreal 5.5.4, our packaged builds can no longer detect directx 12. We get these errors:
```
[2025.06.25-14.38.09:042][ 0]LogRHI: Checking if RHI D3D12 with Feature Level SM6 is supported by your system.
[2025.06.25-14.38.09:042][ 0]LogD3D12RHI: D3D12CreateDevice failed with code 0x887E0003
[2025.06.25-14.38.09:042][ 0]LogD3D12RHI: D3D12CreateDevice failed with code 0x887E0003
[2025.06.25-14.38.09:042][ 0]LogD3D12RHI: DirectX Agility SDK runtime not found.
[2025.06.25-14.38.09:042][ 0]LogD3D12RHI: Error: Failed to choose a D3D12 Adapter.
[2025.06.25-14.38.09:042][ 0]LogD3D12RHI: Adapter was not found
[2025.06.25-14.38.09:042][ 0]LogRHI: RHI D3D12 with Feature Level SM6 is not supported on your system.
```
- It still works in editor (it is able to detect the adaptor, i.e. D3D12CreateDevice does not fail)
- The behavior is the same on all machines (all of which support dx12)
- The behavior started after upgrading from 5.4 to 5.5.4
Hi,
Another client encountered this error because of mismatching DirectX version between AgilitySDK and UE. AgilitySDK D3D12SDKVersion was defined as 608, whereas LaunchWindows.cpp defined it at 615. Can you check if you have matching version. They upgraded AgilitySDK to match UE version (615).
Regards,
Patrick
In UE 5.5, the version I was referring to is 614 (From //UE5/Release-5.5/Engine/Source/Runtime/Launch/Private/Windows/LaunchWindows.cpp)
// Opt in to new D3D12 redist and tell the loader where to search for D3D12Core.dll. // The D3D loader looks for these symbol exports in the .exe module. // We only support this on x64 Windows Desktop platforms. Other platforms or non-redist-aware // versions of Windows will transparently load default OS-provided D3D12 library. #define USE_D3D12_REDIST (PLATFORM_DESKTOP && PLATFORM_CPU_X86_FAMILY && PLATFORM_64BITS && 1) #if USE_D3D12_REDIST extern "C" { _declspec(dllexport) extern const UINT D3D12SDKVersion = 614; } // D3D12_SDK_VERSION extern "C" { _declspec(dllexport) extern const char* D3D12SDKPath = ".\\D3D12\\"; } #endif // USE_D3D12_REDIST
If you updated the AgilitySDK (https://devblogs.microsoft.com/directx/gettingstarted\-dx12agility/\#whatis) for some reasons, you can right-click on D3D12Core.dll that you ship with the game. For example, in the staged version of Lyra for Windows (D:\UE_5.5\Samples\Games\Lyra\Saved\StagedBuilds\Windows\Lyra\Binaries\Win64\D3D12\D3D12Core.dll) I have this version. This match the version in the LaunchWindows.cpp (1.614 -> 614).
[Image Removed]
How should I check the version of AgilitySDK and then upgrade it if needed? It seems that its packaged with the build by Unreal itself.