|
1 | 1 | Change Log
|
2 | 2 | ==========
|
3 |
| -MDL SDK 2023.0.6 (367100.5773): 03 Nov 2023 |
| 3 | +MDL SDK 2023.1.0 (373000.1077): 14 Dec 2023 |
4 | 4 | -----------------------------------------------
|
5 | 5 |
|
6 | 6 |
|
| 7 | +ABI compatible with the MDL SDK 2023.1.0 (373000.1077) binary release |
| 8 | +(see [https://developer.nvidia.com/mdl-sdk](https://developer.nvidia.com/mdl-sdk)) |
| 9 | + |
| 10 | +**Known Issues and Restrictions** |
| 11 | + |
| 12 | +- MDLE export can fail in this release with broken .mlde files that contain malformed MDL code. |
| 13 | + |
| 14 | +**Added and Changed Features** |
| 15 | + |
| 16 | +- General |
| 17 | + - Added `rotate_around_x/y/z` functions to `::nvidia::support_definitions`. |
| 18 | + - The MDL SDK comes now with unit tests. Building of the unit tests is |
| 19 | + controlled via the `cmake` option `MDL_ENABLE_UNIT_TESTS`. Unit |
| 20 | + tests can be executed from the command line via CTest, `make test`, |
| 21 | + or the Visual Studio solution. Some unit tests require the `idiff` |
| 22 | + tool from `OpenImageIO`. |
| 23 | + - The baker uses now multiple threads. |
| 24 | + - The deprecated `FreeImage` plugin as been removed. |
| 25 | + - The recommended `vcpkg` version has been updated. It is now also |
| 26 | + recommended to install `GLEW` and `GLFW` via `vcpkg`. The |
| 27 | + feature flag `tools` for `OpenImageIO` is now required by some |
| 28 | + unit tests. |
| 29 | + - The database used by the MDL SDK supports now multiple parallel |
| 30 | + transactions. See the documentation of `ITransaction` for visibility |
| 31 | + and conflict resolution. This change includes adding support for |
| 32 | + `ITransaction::abort()`. As a consequence, if an `ITransaction` is |
| 33 | + released without committing or aborting, it is now automatically aborted |
| 34 | + with a warning instead of being committed with an error message. |
| 35 | + - The new API component `ILogging_configuration` has been added to the |
| 36 | + MDL SDK. The API methods `IMdl_configuration::set_logger()` and |
| 37 | + `get_logger()` have been deprecated. Use |
| 38 | + `ILogging_configuration::set_receiving_logger()` and |
| 39 | + `ILogging_configuration::get_receiving/forwarding_logger()` instead. The |
| 40 | + old methods are still available if `MI_NEURAYLIB_DEPRECATED_14_1` is |
| 41 | + defined. Use `ILogging_configuration::set_log_prefix(0)` to prevent |
| 42 | + the forwarding logger from automatically adding the severity to the log |
| 43 | + message. |
| 44 | + - Additional performance improvements, in particular with a focus on |
| 45 | + creation of compiled materials. |
| 46 | + - The new methods `IType_factory::get_mdl_type_name()` and |
| 47 | + `create_from_mdl_type_name()` allow to serialize and deserialize types via |
| 48 | + their type names. |
| 49 | + - The new method `IType_factory::get_mdl_module_name()` returns the |
| 50 | + name of the MDL module that defines a given type. This is primarily |
| 51 | + useful for enum and struct types. |
| 52 | + - The method `IType_array::get_deferred_size()` returns now the |
| 53 | + "simple" symbol name, e.g., "N" instead of the fully qualified one. |
| 54 | + - The method `IExpression_factory::create_direct_call()` allows now to |
| 55 | + create calls to unexported functions. Note that such calls can only be |
| 56 | + used in the same module as the called function. |
| 57 | + - When loading textures via an MDL module, failures do no longer cause a |
| 58 | + dummy instance of `ITexture` to be created and |
| 59 | + `IValue_texture::get_value()` returns now a NULL pointer. |
| 60 | + - Python Bindings: |
| 61 | + - Added more missing interface functions to the bindings. |
| 62 | + - Removed all generated `"declare_interface"`-types. |
| 63 | + - Added post build step to strip unused types and functions and |
| 64 | + marked constructors invalid. |
| 65 | + - Fixed `"error"`-out-parameters by providing a ReturnCode type that can be passed |
| 66 | + by reference. |
| 67 | + - Added `UUID` comparison for interface types. |
| 68 | + - Updated the binding of enums which are now Python enums in the appropriate scope. |
| 69 | + - Extended unit tests written in Python. |
| 70 | + - Added a coverage report option for the unit tests written in Python. |
| 71 | + - Added missing and fixed existing `get/set_value` functions for various `IData` class bindings. |
| 72 | + - Mapping now `mi::Size` to `Sint64` to handle `-1` returns correctly. |
| 73 | + - Removed the `IAttribute_set` function from scene elements. |
| 74 | + |
| 75 | +- MDL Compiler and Backends |
| 76 | + - Removed unused `exception_state` parameter from generated functions for non-native backends |
| 77 | + to improve performance. Needs update in renderers calling these functions. |
| 78 | + - Let generated functions for material expressions of base types and vector types return |
| 79 | + their values directly instead via a result buffer by setting the new backend option |
| 80 | + `"lambda_return_mode"` to `"value"`. Only supported by the PTX and the LLVM-IR backend. |
| 81 | + - Generated auxiliary functions now separate albedo into diffuse and glossy, similar to the evaluate functions. |
| 82 | + - Generated auxiliary functions now also report roughness. |
| 83 | + |
| 84 | +- MDL Distiller and Baker |
| 85 | + - Debugging features for mdltlc: `debug_name` and `debug_print` statements |
| 86 | + in MDLTL rules files. |
| 87 | + - Added mdltl unit tests. |
| 88 | + |
| 89 | +- MDL SDK examples |
| 90 | + - Replaced compiler define `NO_DIRECT_CALL` by command line parameter |
| 91 | + `--use-direct-call` to make it easier to try both variants. |
| 92 | + - Adapted MDL SDK df_cuda and OptiX 7 examples to use the new value return mode. |
| 93 | + The MDL Core df_cuda example still uses the old default mode (`"sret"`). |
| 94 | + - AxF Example: |
| 95 | + - Updated to Pantora 1.9.0. |
| 96 | + - Added search path command line options. |
| 97 | + - Example DXR: |
| 98 | + - Changed hardware sampler mode to clamp and implemented repeat by software |
| 99 | + to fix edge cases when cropping. |
| 100 | + - Added a MaterialX to MDL version number parameter in preparation for |
| 101 | + upcoming MaterialX releases. |
| 102 | + - Added options to render multiple auxiliary outputs to file in one run. |
| 103 | + |
| 104 | +**Fixed Bugs** |
| 105 | + |
| 106 | +- General |
| 107 | + - base.mdl: |
| 108 | + - Improved tangent space handling for bump maps. Noise-based bump mapping is now |
| 109 | + oriented correctly for object and world space coordinate sources. |
| 110 | + - Additionally, coordinate transforms change the orientation consistently now. |
| 111 | + This adds one field to `base::texture_coordinate_info`. |
| 112 | + - Added a work-around to handle user defined constants inside the code that is added using |
| 113 | + `add_function()` to an existing MDL module in the `MDL_module_builder` interface. |
| 114 | + This can only handle cases where the user defined type is either defined locally |
| 115 | + or imported using an absolute path. |
| 116 | + - Python Binding: Fixed proxy parameter handling of `"IMdl_distiller_api::create_baker"` |
| 117 | + and `"ILight_profile::reset_*"` functions. |
| 118 | + |
| 119 | +- MDL Compiler and Backends |
| 120 | + - Fixed auto-import of enum conversion operators. |
| 121 | + - Fixed a case where the `auto-importer` was not able to import conversion operators |
| 122 | + (`enum-to-int`), which caused wrong prefixed constructors when exporting MDL, |
| 123 | + e.g. `base::int(value)`. |
| 124 | + - Adapted data layout for PTX to match data layout used by CUDA compiler |
| 125 | + to avoid problems with misaligned data types. |
| 126 | + - Fixed wrong function indices set for init functions in single-init mode, |
| 127 | + when `ILink_unit::add_material()` is called more than once. |
| 128 | + - Fixed invalid CUDA prototypes returned by |
| 129 | + `mi::neuraylib::ITarget_code::get_callable_function_prototype()`. |
| 130 | + - Fixed `texremapu` in `base.mdl` for GLSL resulting in undefined behaviour |
| 131 | + for negative texture coordinates. |
| 132 | + - Improved handling of invalid MDL code in the MDL compiler. |
| 133 | + |
| 134 | +- MDL Distiller and Baker |
| 135 | + - Fixed printing of `NaN`, `+inf` and `-inf` constants in the `mdl_distiller_cli` |
| 136 | + command line utility. They are now printed as `(0.0/0.0)`, `(1.0/0.0)` and `(-1.0/0.0)` |
| 137 | + respectively, same as in the MDL compiler and SL backends. |
| 138 | + - mdltlc: Fixed code generation for rules with node names. |
| 139 | + - mdltlc: Fixed code generation for creation of conditional expressions. |
| 140 | + |
| 141 | +- MDL SDK examples |
| 142 | + - Example DXR: Fixed resource creation warnings reported with the |
| 143 | + `"--gpu-debug"` option on Windows 11. |
| 144 | + |
| 145 | +MDL SDK 2023.0.6 (367100.5773): 03 Nov 2023 |
| 146 | +----------------------------------------------- |
| 147 | + |
7 | 148 | ABI compatible with the MDL SDK 2023.0.6 (367100.5773) binary release
|
8 | 149 | (see [https://developer.nvidia.com/mdl-sdk](https://developer.nvidia.com/mdl-sdk))
|
9 | 150 |
|
@@ -47,7 +188,6 @@ ABI compatible with the MDL SDK 2023.0.6 (367100.5773) binary release
|
47 | 188 | (fixes only some asserts in debug mode).
|
48 | 189 | - Fixed HLSL/GLSL code generation for access to single element compound types,
|
49 | 190 | like arrays of length `1` or structs with only one field.
|
50 |
| - |
51 | 191 |
|
52 | 192 | MDL SDK 2023.0.4 (367100.4957): 05 Oct 2023
|
53 | 193 | -----------------------------------------------
|
|
0 commit comments