ONNX Runtime sample port for Unreal Engine 5.5 using NNE RDG - GPU-only inference

TL;DR: Fork of Microsoft’s sample updated for UE 5.5 and NNE. Supports NNERuntimeRDG and ORT DirectML. End-to-end GPU-only path, no CPU staging.
Repo: https://github.com/DeadMorose777/OnnxRuntime-UnrealEngine/tree/main
Upstream: https://github.com/microsoft/OnnxRuntime-UnrealEngine

What this is
A UE 5.5 port of the FPStyleTransfer sample that moves the inference pipeline to the Neural Network Engine (NNE) and the RDG runtime. It is a minimal, pragmatic reference for running ONNX[5] models entirely on the GPU in recent Unreal versions.

Why it matters
If you are looking for a working example of NNE-based, GPU-only inference in UE 5.5, this repo shows the full path: model import, runtime selection, RDG bindings, and per-frame execution without CPU readbacks. The original Microsoft sample suffered from very low FPS because tensors were shuttled through a CPU staging layer; this fork removes that path and keeps the entire pipeline on the GPU (NNE RDG / ORT DirectML), fixing the bottleneck and stabilizing frame times.

Key differences vs the original sample

  • UE 5.5 instead of 5.2.

  • Migrated from the legacy NNI plugin to NNE.

  • GPU-only execution path with RDG and ORT DirectML.

  • Reduced CPU-GPU copies and no CPU staging.

Quick start

  1. Clone the repo and open it with Unreal Engine 5.5.

  2. Enable the Neural Network Engine plugin.

  3. Build the project and open the FPStyleTransfer example map.

  4. In project or runtime settings, select either NNE RDG or ORT DirectML backend.

  5. Press Play and verify the effect. See the README for troubleshooting and notes.

Who should check it out

  • Rendering and tools engineers exploring NNE RDG bindings.

  • Teams validating ONNX inference on GPU in UE 5.5 with minimal plumbing.

Links

Keywords
unreal engine 5.5, NNE, RDG, ONNX runtime, DirectML, GPU inference, gpu only, nne runtime rdg, onnx in ue5, style transfer, microsoft sample fork

If you have feedback on the RDG bindings or model import settings for NNE, please share it in this thread.