MDL SDK 2019 (314800.830): 20 Feb 2019
ABI compatible with the MDL SDK 2019 (314800.830) binary release
(see https://developer.nvidia.com/mdl-sdk)
Added and Changed Features
-
General
- This release contains a preview version of the new MDL encapsulated (MDLE) file format. Please note that MDLE files generated with this SDK version will be invalidated with the next update.
- A new API component
mi::neuraylib::IMdle_api
has been added, which can be used to create MDLE files. - The function
mi::neuraylib::IMdl_compiler::load_module()
can now load MDLE files. Please note that the optionbool "experimental"
has to be set in themi::neuraylib::IMdl_execution_context
in order to enable support forMDL 1.5
, which is needed for MDLE files. - The functions
mi::neuraylib::IMaterial_instance::is_default()
andmi::neuraylib::IFunction_call::is_default()
have been added.
- The standalone tool
mdlm
has been extended with MDLE specific commands. - The class
mi::neuraylib::IBaker
has been extended to support baking of constants of typemi::IBoolean
.
-
MDL SDK examples
- A new example
example_mdle
has been added to illustrate the use of MDLE files. - The example
example_df_cuda
has been adapted to allow loading and rendering of MDLE files. - A new example
example_generate_mdl_identifier
that illustrates how to generate a valid mdl identifier, e.g., a module name, has been added. - The example
mdl_browser
has been extended to display MDL keywords in the info tooltip as well as above the description in list view mode.
- A new example
Fixed Bugs
-
General
- A bug when translating light profile and bsdf measurement constructors from the MDL SDK API representation to the MDL Core representation has been fixed.
-
MDL Compiler and Backends
- The hash calculation for struct field access DAG calls for the PTX code cache has been fixed.
- The handling of array parameters in class compilation has been fixed.
- A crash when trying to fold an invalid array constructor has been fixed.
- Missing parentheses when printing operators with the same precedence as MDL has been fixed (
"a/(b*c)"
was printed as"a/b*c"
). - A potential crash when generating code for distribution functions has been fixed.
- Wrong error messages
"varying call from uniform function"
have been fixed, which were generated by the MDL compiler under rare circumstances for struct declarations. - Wrong error messages
"function preset's return type must be 'uniform T' not 'T'"
have been fixed, which were generated by the MDL compiler for function variants if the original function always returns a uniform result but its return type was not declared as uniform T. - A discrepancy between code execution on CPU and GPU for constant folding of
sqrt(c) (c < 0)
has been fixed. NowNaN
is computed for both.