Omniverse Kit 110 Migration Guide#

This guide details the steps and considerations necessary for migrating extensions and applications to Omniverse Kit 110. It incorporates essential updates, dependency changes and known issues, ensuring a clear and structured approach to facilitate upgrading from previous releases.

The Omniverse Kit 110 release includes the following updated dependencies:

Component

Reference

OpenUSD 25.11

Changelog

MaterialX 1.39.3

Release Notes

OneTBB 2021.13

Release Notes

Table of Contents#

  1. Preparing for Migration

  2. OpenUSD Update

  3. Carbonite 210

  4. MaterialX 1.39

  5. Previous Release Migration Guides

Preparing for Migration#

Before starting any update process, please ensure that you have the following prerequisites in order to minimize disruptions during migration:

  • Ensure you have access to the latest Omniverse Kit SDK.

  • You are familiar with your application’s architecture, and existing dependencies.

  • You have a backup of your current project, to prevent any potential data loss during migration.

  • A process in place to confirm all functionalities of your application and extensions behave as expected after upgrading.

    • This process can vary depending on your organization, but typically includes elements such as automated builds, unit or integration tests, documentation about your feature’s behavior, reviewing log information, etc.

OpenUSD Update#

We updated from OpenUSD 25.02 to OpenUSD 25.11. This requires any C++ extension to be rebuilt. The feature set known as “Hydra 2.0” or “UsdImaging 2.0” is disabled by default and not supported in Kit.

For discussion and to report OpenUSD issues:

Breaking Changes and Migration Requirements#

  • UI Hint Deprecation The metadata accessors for displayName, displayGroup, and hidden on UsdObject, UsdPrim, and UsdProperty have been deprecated in favor of UsdUIObjectHints, UsdUIPrimHints, and UsdUIAttributeHints for compatability with the new uiHints dictionary.

  • Core File Formats Moved to Sdf

    • Core file format implementations (usda, usdc, and usdz) have moved from usd/usd to usd/sdf.

    • The sdf test file format has been removed. Usage should be replaced with usda.

    • See: Moving File Formats to Sdf.

  • Ndr Deprecation

Carbonite 210#

Kit 110 updates to Carbonite 210.0. The following breaking changes and suggested migrations apply.

Breaking Changes#

  • Conversion for optional<bool> and expected<bool, E>

    • carb::cpp::optional<T> and carb::cpp::expected<T, E> have an implicit conversion to bool that indicates whether the type has a value. For optional<bool> and expected<bool, E>, using if (b) is invalid because it tests presence, not the stored value.

    • Use has_value() and value() explicitly. Example: replace if (b) with if (b.has_value() && b.value() == true) when b is optional<bool> or expected<bool, E>.

  • carb/extras/StringUtils.h

    • The constants kUnicodeToUtf8Failure and kUnicodeToWideFailure have been removed. Unicode conversion functions now insert the Unicode replacement character U+FFFD on failure instead of returning these sentinel values.

  • g_carbClientName

    • Type changed from const char* to carb::cpp::zstring_view.

  • Defines.h breakup

    • The monolithic Defines.h header has been split into multiple headers. Update includes as needed: AlignSize.h, Architecture.h, Breakpoint.h, Compiler.h, Deprecation.h, DivideCeil.h, DocUtils.h, EmptyMemberPair.h, Hash.h, HashScalar.h, ImportExport.h, Interop.h, MinMax.h, Numeric.h, Pause.h, Platform.h, Prefetch.h, and Warning.h.

  • Removed deprecated headers

    • time/TscClock.h (use clock/TscClock.h instead), omni/core/ReplaceCarbAssert.h, omni/log/LogChannelFilterUtils.h, and omni/log/WildcardLogChannelFilter.h have been removed.

Suggested Migrations#

  • Tokens 2.0

    • A new ITokens interface (v2) has been added; 1.x remains in a v1 inline namespace and will be deprecated. Forward declaration of ITokens is no longer allowed—include the header instead. Input strings use carb::cpp::string_view. Use deleteValue() to delete values (replacing the previous use of nullptr with setValue). resolveString() now returns an omni::expected; a variant allows reusing an existing omni::string. To use ITokens 2.0, build with: carb_tokens_ITokens=CARB_HEXVERSION(2,0).

  • Filesystem 2.0

    • A new IFileSystem interface (v2) has been added; 1.x is in a v1 inline namespace. Include the header instead of forward declaring. The File type is now a class with member functions. String inputs use carb::cpp::string_view; outputs use carb::cpp::zstring_view or omni::string. Functions that can fail return omni::expected with an appropriate error type (e.g. carb::ErrorCode) instead of using the ErrorApi.

  • Dictionary 2.0

    • A new IDictionary interface (v2) has been added; 1.x is in a v1 inline namespace. Include the header instead of forward declaring. String inputs use carb::cpp::string_view; outputs use carb::cpp::zstring_view or omni::string, sometimes wrapped in carb::cpp::optional<>. Array setters take carb::cpp::span instead of raw arrays.

  • Settings 2.0

    • A new ISettings interface (v2) has been added; 1.x is in a v1 inline namespace. Include the header instead of forward declaring. String inputs use carb::cpp::string_view; outputs use carb::cpp::zstring_view or omni::string, sometimes wrapped in carb::cpp::optional<>. Array setters take carb::cpp::span instead of raw arrays.

MaterialX 1.39.3#

We updated from MaterialX 1.38.10.openpbr to MaterialX 1.39.3. This update brings several new features and changes.

In general we expect material graphs authored using 1.38.10.openpbr to render as expected. However it should be noted that:

  • Graphs with MaterialX nodes that have been deprecated, will render but issue a warning in the Console stating: “Cannot get Sdr.ShaderNode from prim at: …”.

    • Example of this is ND_swizzle_<type>_<type>

  • Nodes with parameter data type changes and/or name changes may fail with an error in the Console stating: “Cannot find SdrProperty: “<parameter>” for node: …”.

    • Examples of this are ND_atan2_float

For a full list of changes please see: MaterialX Release Notes

Previous Release Migration Guides#

For migration from earlier Kit versions: