NVIDIA Nsight PerfSDK integration for the Flax Editor GPU Profiler. Click a GPU profiler timeline bar or table row to open live chip counter metrics.
- Windows x64
- Flax 1.13+
- NVIDIA GPU + Nsight Perf SDK installed
- Environment variable
NVPERF_SDK_PATHpointing at your Perf SDK root (e.g.C:\Downloads\PerfSDK_2025_5)
- Set
NVPERF_SDK_PATHin your user/system environment. - Clone plugin via Editor Plugin Window tool, ensure game project references it:
...
"References": [
{
"Name": "$(EnginePath)/Flax.flaxproj"
},
{
"Name": "$(ProjectPath)/Plugins/PerfSDK/PerfSDK.flaxproj"
}
]
- Open the project and Build & Run (or compile scripts) so the PerfSDK plugin native module links against NVPerf.
- Play the scene, open Profiler → GPU, enable live recording, then left-click a region.
Platforms:
- Windows x64
Graphics APIs:
- DirectX 11
- DirectX 12
- Vulkan
In order to access PErfSDK API in C++/C# scripting import it in your code module (modify Game.Build.cs file):
public override void Setup(BuildOptions options)
{
base.Setup(options);
// Adds PerfSDF module to PrivateDependencies if supported on current platform (eg. Windows x64)
PerfSDF.ConditionalImport(options, options.PrivateDependencies);
}| Layer | Location |
|---|---|
| Native NVPerf + HUD | Plugins/PerfSDK/Source/PerfSDK/*.cpp (plugin DLL) |
| Metrics editor window | Plugins/PerfSDK/Source/PerfSDK/PerfSdkMetricsWindow.cs |
| Editor plugin wiring | Plugins/PerfSDK/Source/PerfSDK/PerfSDK.cs, GpuProfilerBridge.cs |
| GPU frame sampling hooks | PerfSDK.cpp via RenderTask delegates (no game C++) |
| Profiler click plumbing | Engine GpuProfilerRegionCallbacks + Timeline / GPU.cs |
gearsDLSS game code has zero PerfSDK C++. All native code lives in the plugin.
The engine does not define COMPILE_WITH_RENDER_PERF or link NVPerf. Only the plugin does when NVPERF_SDK_PATH is set at build time.
PerfSDK needs extra Vulkan device extensions (VK_EXT_buffer_device_address, VK_KHR_device_group, plus NVPerf profiler extensions). The engine enables these at device creation when NVPERF_SDK_PATH is set before starting the editor.
- Set
NVPERF_SDK_PATH(andVULKAN_SDKfor plugin builds). - Fully close and reopen Flax Editor so Vulkan device creation picks up the extensions.
- Rebuild the engine (after engine changes) and Recompile Scripts.
