NVIDIA/MDL-SDK 2025
NVIDIA/MDL-SDK
Captured source
source ↗MDL SDK 2025 (387700.1252): 04 Sep 2025
Repository: NVIDIA/MDL-SDK
Tag: 2025
Published: 2025-10-01T09:18:59Z
Prerelease: no
Release notes: ABI compatible with the MDL SDK 2025 (387700.1252) binary release (see https://developer.nvidia.com/mdl-sdk)
Added and Changed Features
- General
- Added template wrapper for
ICompiled_material::lookup_sub_expression().
- Releases on github include now archives with pre-built binaries. Note that not all features are
enabled in these builds. For now, MaterialX support, the Arnold plugin, the AxF example, and the material browser example are not available.
- A rare race condition related to names of DB elements marked for removal has been fixed. The
corresponding section with the heading "Re-use of names of DB elements eligible for GC" on IDatabase has been removed from the API reference documentation.
- The import libraries for MDL Core/SDK on Windows have been removed. Users should access the MDL
Core/SDK libraries using LoadLibrary()/GetProcAddress() or dlopen()/dlsym() instead (as it is done in all examples). For cmake, the recommended command is
target_link_libraries(main PRIVATE $ ${CMAKE_DL_LIBS})
(use ... mdl::mdl_core ... for MDL Core).
- The underlying C++ type has been added to all enums in the MDL SDK API. The now useless
FORCE_32_BIT enumerators have been deprecated. They are still available if MI_BASE_DEPRECATED_FORCE_32_BIT and/or MI_NEURAYLIB_DEPRECATED_FORCE_32_BIT is defined. The FORCE_32_BIT enumerators have been completely removed from the Python binding (no deprecation).
- Typos in two enumerators of
IMessage::Kindhave been fixed. The old name are still available
if MI_NEURAYLIB_DEPRECATED_16_0 is defined.
- The new context option "filename_hints" provides more flexibility when exporting nameless
resources. See documentation on IMdl_execution_context for details.
- The hash map implementation from
robin_hoodhas been replaced by its successor project
unordered_dense. The latter supports heterogeneous lookups used for performance improvements.
- Defining the preprocessor directive
MI_BASE_ATOM32_USE_ATOMICcan be used on linux-x86-64 to
select an implementation of mi::base::Atom32 that is understood by the thread sanitizer.
- The API reference documentation generated by doxygen uses now SVG for the inheritance diagrams.
- Improved performance on Linux by adding the compiler flags
-fno-semantic-interpositionand
-fvisibility=hidden.
- Improved performance when accessing DB elements by name.
- Refactored parts of the code base to remove unused code.
- MDL Compiler and Backends
- Added “
export_requested_functions” HLSL backend option allowing to export generated functions
in DXIL libraries.
- Improved HLSL code generation resulting in less PHI variables.
- Also expose names of let expressions in material instances and lambda functions via
mi::mdl::DAG_unit).
- Added support for MDL 1.10: the compiler accepts MDL 1.10, the internal representation is 1.10
now.
- Implemented version promotion for default arguments: As default arguments are hidden to the
user, they are now not only auto imported, but also version promoted. Especially entities that uses deprecated functions in its default arguments are not filtered out anymore, if they can be promoted.
- Improved generated debug information by the core compiler, especially fill in debug line
information in several corner cases which were not available before
- API change: built-in module have now there absolute module name stored as their file name. This
allows to have better debug information for code originated from the built-in modules, especially for code from the base module.
- MDL Distiller and Baker
- Introduced epsilon for the constant detection in the CPU baker.
- MDL SDK examples:
- AXF to MDL: Updated recommended AxF SDK version to 1.9.2.
Fixed Bugs
- MDL Compiler and Backends
- Fixed a crash in the compiler that occurred during the type construction if the error
message for "struct S { name name; }" declaration was constructed.
- Fixed a crash in that occurred because a partial structure update
did not generate all struct field access functions, although these are necessary in the DAG representation.
- Fixed several auto-import problems, for instance caused by default arguments of struct
elemental constructor. As a consequence, it is now always an "internal error" if the compiler was not able to do the auto-import, not only an assertion in debug builds.
- Fixed declarative property of struct constructors, the declarative property of struct
constructors must be inherited from the struct type definition.
Notability
notability 5.0/10NVIDIA SDK release, not a frontier model