Operating System:
Windows
Linux
Kit Version:
110 (Kit App Template)
109 (Kit App Template)
108 (Kit App Template)
107 (Kit App Template)
106 (Kit App Template)
105 (Launcher)
Kit Template:
USD Composer
USD Explorer
USD Viewer
Custom
GPU Hardware:
A series (Blackwell)
A series (ADA)
A series
50 series
40 series
30 series
GPU Driver:
Latest
Recommended (573.xx)
Other
Work Flow: developing a level editor
Main Issue: some extensions for retargeting, scene optimizer and navmesh consume too much cpu cycles even when not used at all.
Known Issues
1. CPU-Bound Performance Drops in Editor (USD Notice & Preview Observers)
- Status: Workaround Active (Default Disabled)
- Symptom: Editor frame rate drops from ~78 FPS down to ~50 FPS, even in static or idle scenes.
- Profiler Analysis (F8):
- CPU loop (
App Update/ CarboniteDispatch Event: update) spikes to ~17ms (CPU-bound). - GPU render frame time remains extremely low at ~0.6ms (GPU is idle).
- The bottleneck is inside the event dispatcher (
Notify observers).
- CPU loop (
Root Causes
- Notice Loop Cascade: Background UI systems (like Scene Optimizer and Asset Validator) register USD stage listeners. Whenever the timeline updates or any value changes, a cascade of notice-callback evaluations traverses the stage, creating heavy CPU overhead.
- Background Rendering Viewports: The retargeting preview extension (
omni.anim.retarget.preview) spawns background virtual Hydra viewport contexts that run render loops on every frame, consuming ~1.5ms of CPU time even when its tab/window is closed. - Shutdown Reference Leaks: Disabling these extensions at runtime via the Extension Manager does not recover performance. NVIDIA’s scripts for these extensions contain Python reference leaks in their
on_shutdown()cycle (cyclic references, unreleased frame stacks). The Python garbage collector cannot reclaim their objects, leaving their background threads and update listeners active in memory.
Long-Term Resolution Plan
- Investigate the exact reference leaks in
omni.anim.retarget.previewandomni.scene.optimizer.coreusing memory profiling tools.
Reproduction Steps: enable these extensions in the app’s .kit file or via UI
Error Code: