Changelog#
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[10.3.1] - 2026-07-23#
Added#
Add periodic log line when using the ‘current frame is null, send last known good frame’ fallback. This might be useful to indicate that the renderer is in a broken state and not emitting frames properly, like when loading a scene that bypasses the host’s configured file descriptor max.
[10.3.0] - 2026-07-20#
Added#
OMPE-76724: Mouse cursor changes dispatched by the imgui renderer (as
omni.kit.renderer.imgui.cursorChangedevents) are now forwarded to the primary stream server viaIServer::setCursor, so connected clients can reflect Kit-side cursor changes (including custom cursors, identified by name). The last observed cursor name is also reported whenever the primary stream server starts, so clients that connect before the cursor next changes still receive the correct initial cursor via the config handshake response. Kit versions that predate the cursor change event never dispatch it, in which case cursor changes are simply not forwarded.
[10.2.1] - 2026-07-20#
Fixed#
OMPE-102246: Fixed a crash where
onPreUpdateread the primary stream server/input pointers on the main thread without holding the mutex, racing the render thread that destroys both objects whenever the server fails to start (e.g. repeated StreamSDK init failures, which retry every frame). Also moved the pre-shutdown handler’s observer drain outside the mutex to avoid a potential deadlock with in-flight render-thread callbacks, matching the contract already documented inonShutdown.
[10.2.0] - 2026-04-27#
Added#
New
authenticateBearersetting that requires all clients that connect/reconnect to the session to provide the exact same bearer token (defaults to false).
Changed#
Moved app/rendering specific settings from
omni.kit.livestream.coretoomni.kit.livestream.app.
[10.1.2] - 2026-04-29#
Fixed#
OMPE-90950: Replaced the post-present shutdown synchronization with a synchronous observer drain plus a direct GPU fence wait. The previous mechanism waited for the next
ePostPresentFrameBufferevent to fire before tearing downSharedFrameBufferresources, and leaked them if it didn’t fire within 1s. In headless modes (e.g. ETM on DGXC, where there is no swapchain to present) the post-present event never fires, so the leak path always ran and could race renderer/GpuFoundation teardown into a SIGSEGV during full (/app/fastShutdown=0) shutdown.
[10.1.1] - 2026-03-25#
Fixed#
Protect against servers not being stopped correctly if Kit restarts itself.
[10.1.0] - 2026-02-09#
Added#
Option to auto capture and stream all audio from the system driver.
[10.0.0] - 2026-01-22#
Changed#
Update to build with Kit 110.0
[9.0.1] - 2026-01-05#
Fixed#
OMPE-73734, OMPE-73735, OMPE-71856: Fixed memory corruption issues resulting from unloading the extension (often seen on full shutdown).
[9.0.0] - 2025-10-15#
Changed#
Update to build with Kit 109.0
[8.1.1] - 2025-09-25#
Added#
New IServer::isClientConnected() API to check if a client is connected.
[8.1.0] - 2025-09-01#
Changed#
Updated to the public Kit 108 release.
[8.0.4] - 2025-07-28#
Changed#
Changed default primary stream port back to 47998 (reverting the prior change).
[8.0.3] - 2025-07-28#
Changed#
Reverted default primary stream port from 47998 -> 1024 to match the legacy value.
[8.0.2] - 2025-06-17#
Added#
Audio streaming API.
[8.0.1] - 2025-06-16#
Added#
New
enableEventTracingsetting to control whether etl files are generated.
[8.0.0] - 2025-06-02#
Changed#
Most of this extension has been branched from
omni.kit.livestream.core