Skip to content

MDL SDK 2019 (314800.830): 20 Feb 2019

Compare
Choose a tag to compare
@lkettnerNV lkettnerNV released this 26 Feb 15:22
· 41 commits to master since this release

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 option bool "experimental" has to be set in the mi::neuraylib::IMdl_execution_context in order to enable support for MDL 1.5, which is needed for MDLE files.
    • The functions
      • mi::neuraylib::IMaterial_instance::is_default() and
      • mi::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 type mi::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.

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. Now NaN is computed for both.