Changelog#
This document records all notable changes to the omni.rtx.spg extension.
The format is based on Keep a Changelog. The project adheres to Semantic Versioning.
[0.4.1] - 2026-10-08#
Changed#
Array, token, and asset value-inputs passed to
cuda.arrayorslang.arrayreach the GPU without their elements being converted in Lua; reading.valuestill returns the elementsConsecutive CUDA nodes of a graph launch their kernels in node order in one CUDA interop section, so a chain of CUDA nodes costs about as much per frame as a single CUDA node; set
/rtx/spg/cuda/mergeConsecutiveNodestofalseto run each CUDA node in its own section
Fixed#
CUDA nodes ignored the block, grid, and shared memory size set in the launch configuration, and Slang nodes ignored the dispatch grid
A USD array input such as
uint[]orfloat[]reached the kernel as 4 bytes instead of its full contentscuda.staticandslang.staticran a function written inline in the launch script again on every frame and filled the Lua memory over timeA
halfvalue given in a launch script reached the kernel as 0, ahalfvalue-input read in a launch script had a wrong value, andchar,uchar,short, andushortvalues given in a launch script made the node failA string value-input read in a launch script could contain bytes from past the end of the string
[0.4.0] - 2026-05-26#
Changed#
Scoped SPG node IDs with the
spg:authoring prefix to avoid MaterialX and UsdPreview shader ID clashes
[0.3.0] - 2026-03-09#
Added#
Support for
info:idattribute as the SPG node ID specification, enabling USD-native node type identificationNoOp passthrough node that copies its first input texture to its first output, useful for SPG node ID path testing
Support for USD token attributes in SPG shader parameters
Support for loading SPG assets from remote URIs (
omniverse://) and local file URIs (file://)Support for loading assets from compressed USD containers (
.usdz)Input constraints. Allow user to express input constrains.
Standard library of pre-built GPU processing nodes (
rtx.spg.stdlib.plugin): Add, Multiply, Scale, Swizzle
Fixed#
Crash when instanceable non-SPG shaders were present in the scene (OMPE-85733)
Changed#
BREAKING: Unified inputs API — everything is input, no more ‘parameters’. Keep Lua interface backward compatible.
SPG and material shaders are now mutually exclusive during population