Daz Studio 2025 (6.25.2025.x) - NVIDIA Iray 2024

rbtwhizrbtwhiz Posts: 2,380
edited May 12 in Daz Studio Discussion

When a new build of Daz Studio includes a new version of the NVIDIA Iray renderer, the new build of the renderer comes with its own set of bug fixes, new features, adjustments to existing features, etc. Since the release of Daz Studio that followed the initial introduction of NVIDIA Iray in Daz Studio (4.8 - initial introduction, 4.9 - following release), a list of its changes have typically been made available in the posts that immediately follow the announcement. In many cases, while the information contained within the posts was/is useful to those that want/need it, it seemed to go unread by many. This same information would also then be reposted when a Public Build was eventually promoted to General Release.

To address some of these issues and bring more visibility to the changes for those who want/need it, we now split these posts off into their own thread. A separate discussion thread will remain available (linked below), but the thread itself will be closed for comment so as to avoid the information being buried by the discussion and to provide notification through regular features of the forum software.


*Note: The entries below come directly from the NVIDIA Iray release notes. Some entries, such as the mention of Linux, Python, etc, currently have no bearing on Daz Studio itself but are included for completeness.

 


Public Build Threads:

 

  • 6.25.2025.13207 (May 12, 2025)
    • 6.25.2025.12207 (May 2, 2025)
    • 6.25.2025.11417 (April 25, 2025)
    • 6.25.2025.11206 (April 22, 2025)

 


General Release Thread:

 

  • Pending

 


Previous Thread:

 

Post edited by rbtwhiz on

Comments

  • rbtwhizrbtwhiz Posts: 2,380

    Iray 2024.0.0 beta, build 377400.955

    Known Issues and Restrictions

    • The improved scheduler implementation does not yet allow for network rendering to be employed. This will be available in the next release again.
    • In addition, the improved scheduler does not implement support for "unlimited" frame buffer sizes anymore, meaning all frame buffers (including all LPEs, AOVs, etc) must completely fit into GPU(s) memory.
    • We also hope that interactive scheduling and interactive/high-frame-rate use-cases in general will become even more efficient in the final release.
    • The improved displacement tessellation is so far limited to CUDA GPUs only. The matching CPU path will be available in the final though.
    • Currently the MDL compiler treats the material.ior field as varying for ALL MDL versions, but in practice (i.e. final 2024.0) it should be uniform in MDL 1.8 and lower.
    • The minimum NVIDIA driver branch version in order to support the new CUDA and OptiX features is R550 (Windows 551.61 and up).

    Added and Changed Features

    • General
      • New post-process adaptive sharpening pass.
      • New tonemapper parameter to allow for a more neutral behavior like wanted in e-commerce applications (it implements the "PBR Neutral Tone Mapper" model).
      • Updated general libraries:
        • OpenImageIO 2.5.12.0
        • FFmpeg-lgpl-7.0.1-378087
        • OpenSSL 3.1.6
        • Curl-8.8.0
        • SQLite 3.46.0
        • Boost 1.85.0
        • CUDA 12.4
    • Iray Photoreal & Iray Interactive
      • Improved displacement tessellation: In addition to the fixed subdivision schemes previously available, there is now a (configurable) "adaptive" parameter option, too. This will lead to overall less memory usage at similar quality, or much higher quality at similar memory usage. Both schemes will also employ available CUDA GPUs for acceleration. For details, please refer to the new section in the Iray Programmer’s Manual.
      • Added an additional pre-tessellation step to improve low-polygon geometry objects, but that feature meaningful shading/vertex normals, via the approx_geometry_from_ shading_normals attribute. This can be interpreted as an extended replacement of the shadow_terminator_offset_mode flag, which actually works on the geometry itself, instead of just approximating the nonexistent detailed geometry. This comes at the price of increased pre-processing time, and vastly more memory usage.
      Iray Photoreal
      • Improved work scheduling, leading to performance increases in both interactive and batch mode scheduling, especially when using guided sampling and the caustic sampler. Note that this also affects the amount of time it takes for IRender_context::cancel_render() to complete. Applications which use CANCEL_AND_CONTINUE during camera movement etc. will likely experience bad interactivity. While Iray Photoreal attempts to detect and handle such cases, this is not generally possible. Applications should make sure to pass the appropriate value to IRender_context::cancel_render().
    • Material Definition Language (MDL)
      • MDL1.9Language Specification
        • Updated version to 1.9.
          • Added declarative and struct_category as new reserved words.
          • Added the concept of declarative structure definitions with and without a structure category to the conventional structure definitions.
          • Added the definition for the assignment operator (=) for declarative structs with and without a structure category.
          • Restricted the type cast operator on structure types to conventional structure types.
          • Added declarative functions.
          • Restricted overload resolution on material definitions.
          • Extended overload resolution to define functions whose signature is a prefix of others as more specific.
          • Specified that function overload sets can contain both declarative and non-declarative functions.
          • Clarified that the auto return type for functions is allowed on function definitions and not on function declarations.
          • Defined material definitions as functions returning a declarative structure definition of the material_category structure category.
          • Defined the builtin material type as a declarative structure type with the material_category structure category.
          • Changed the ior field of the builtin material type to be of varying type and not uniform color anymore.
          • Defined the builtin distribution function types bsdf, edf, vdf, and hair_bsdf as a declarative structure type without structure category and without fields.
          • Redefined the compound types in the material type to declarative structure types without structure category.
          • Added rounding function round_away_from_zero() and clarified rounding behavior of round().
          • Removed the statement for microfacet BSDF models that they become black in transmission mode if the ior values indicate total interior reflection.
      • The alpha channel is now always treated as linear, independent of the gamma value specified for the remaining channels.
      • Added new AOV (Arbitrary Output Variables) support. It allows rendering applications to produce customized data in addition to the usual image output buffers:
        • The interface IStruct_category has been added to represent the new concept of struct categories. The new interface IStruct_category_list represents an ordered collection of struct categories identified by name or index.
          • The new methods IType_struct::get_struct_category() and IModule::get_struct_categories() allow to query the struct categories of a struct type and those defined in a module, respectively.
          • The new methods IType::is_declarative(), IFunction_definition::is_declarative(), and Definition_wrapper::is_declarative() indicate whether a type or function is declarative.
          • The interface IType_factory has been extended with methods to create, clone, compare, and dump struct categories and/or struct category lists.
          • A sixth template-like function, the so-called decl_cast operator, has been added. The new method IExpression_factory::create_decl_cast() provides a convenient way to create calls of this function definition.
          • The method IMaterial_instance::create_compiled_material() accepts the new option "target_type" on the execution context. This option behaves as if the entire material is wrapped into a decl_cast operator with the given target type.
          • The new method ICompiled_material::get_sub_expression_hash() allows to compute hash values of arbitrary sub-expressions and is not limited to predefined material slots as ICompiled_material::get_slot_hash().
          • The module builder has been extended to support struct categories: The new method IModule_builder::add_struct_category() allows to create them. The signature of the method IModule_builder::add_struct_type() has been extended with a
          • struct_category parameter. The signature of several methods on IModule_builder has been extended with a is_declarative parameter. The old signatures are still available if MI_NEURAYLIB_DEPRECATED_15_0 is defined.
        • The methods for texture export (IMdl_impexp_api::export_canvas(), IImage_api::create_buffer_from_canvas(), and IExport_api::export_canvas()) and the image plugin API have been changed to use a generic options map instead of two hard coded options. Supported options are documented at IImage_api. The old signatures are still available if MI_NEURAYLIB_DEPRECATED_15_0 is defined.
        • The new export option "exr:data_type" allows to control the data type of EXR channels.
        • The new export option "exr:create_multipart_for_alpha" allows to export the alpha channel in a separate EXR sub-image, allowing to keep it unassociated without violating the OpenEXR specification.
        • The signature of of the method IExpression_factory::create_cast() has been extended with a direct_call parameter. The old signature is still available if MI_NEURAYLIB_DEPRECATED_15_0 is defined.
        • The method IFunction_definition::get_mdl_mangled_name() has been renamed to get_mangled_name(). The method is still available under the old name if MI_NEURAYLIB_DEPRECATED_15_0 is defined.
        • Incorrect database requests for local removals, i.e., calling ITransaction::remove(..., true) when there is not another version of that database element in a more global scope, issue no longer a warning, but are rejected with an error message.
        • The new method IExpression_factory::create_temporary() allows to create temporary references.
        • The signature of IMdl_module_builder::add_function() has been extended to support temporaries. The old signature is still available if MI_NEURAYLIB_DEPRECATED_15_0 is defined.
        • The free functions set_value() and get_value() on IData support now arrays (similar to what existed already for IValue). Arrays can be specified as pointer/length pair, or as std::vector.
        • Exit codes in case of array size mismatches for the the free functions set_value() and get_value() on IValue have been changed from-3 (implementation) and-4 (documentation) to-5 for consistency with IData.
        • The methods IModule::get_function_overloads() have been updated to implement the modified overload resolution rules for MDL >= 1.9.
        • Additional performance improvements for the creation of compiled materials.
        • Increased default MDL version to 1.9.
        • Added support for MDL 1.9:
          • Implemented math::round_away_from_zero().
          • Implemented structure categories, declarative structures and declarative functions.
          • Adapted overload resolution to new rules.
        • Extend distiller node types to include 4-way mixers.

    Fixed Bugs

    • General
      • Added a separate alpha AI denoiser pass if alpha denoising is enabled. This fixes a previous inconsistency where the alpha denoising option did not affect stand-alone alpha targets but only the alpha channel of RGBA targets.
      • Improved selection of alpha LPE for toon and outlines buffers.
      • Render targets which exceed the maximum number of LPEs will no longer render with just a reduced set, but report a warning instead.
      • Switched the default CUDA stream behavior from legacy to per-thread.
      • Switched OptiX code input from PTX to OptiX-IR for modernization.
      • Fixed a potential VDB converter bug.
    • Iray Photoreal & Iray Interactive
      • Disabled clamping of the BSDF mixer weights to 1. Now, the normalization mode handles this case, in conformance with the MDL specification.
      • Fixed ortho-normalization of tangents for MDL state when using MDL-JIT-compiled bump functions that use state::texture_tangent_u/v() on left-handed geometry (MDL-1207).
    • Iray Photoreal
      • Fixed a crash in some guided sampling enabled scenes, potentially seen in practice in multi-device, caustic sampler enabled rendering.
      • Fixed spectral/dispersion code path with enabled rounded corners / selection auxiliary buffers.
      • Fixed some double contributions to auxiliary/AOV buffers, also making CPU and GPU variants consistent (nvbugs 4502460, 4567154, and 3964556).
      • Volumes are now consistently ignored in the ambient occlusion buffer as well (nvbugs 4151022).
      • Inhomogeneous volume sampling behavior is now more consistent over the various possible rendering device/scheduling configurations.
      • Fixed handling of GPU volume upload failures. This now properly/optionally falls back to CPUrendering instead of resulting in broken rendering (nvbugs 4678822).
      • Fixed issues with transparent two-sided materials that could lead to wrong rendering of non-physically-plausible materials (nvbugs 4574390).
      • Fixed invalid volume acceleration structure initialization on CPU, and potential issues with lost host volume data (e.g. when using motion blur with mixed CPU/GPU rendering).
      • Corrected a potential MIS inefficiency with the caustic sampler.
    • Material Definition Language (MDL)
      • Fixed support for search paths from "MDL_SYSTEM_PATH" and "MDL_USER_PATH" environment variables containing Unicode characters on Windows.
      • Fixed use of unsupported comdats for the native backend on MacOSX.
      • Fixed crash when translating color mixers with bsdf()/edf() components.
      • Fixed lost derivatives when assigning structs to each other.
      • Do not erroneously generate GLSL variable names that are GLSL keywords or restricted identifiers.
      • Fixed handling of resource sets that contain a frame number first followed by an UDIM (MDL-1298).
      • Fixed a potential crash due to wrong reference count management in handling of module imports (MDL-1341).
      • Fixed GLSL/HLSL code generators that sometimes generate variables in the wrong scope (MDL-1369).
      • Do not try to resolve empty resource urls (which are invalid in MDL), and do not rewrite them into pseudo-absolute.
      • "<package>/" form, they stay unchanged (and are still not valid). This is more a cosmetic improvement.
      • Do not create the same error message more then once in some conditions.
      • Fixed some crashes in the core compiler when heavily invalid code is compiled (MDL 1315).
      • Fixed a case where error messages were generated without file/line number.
      • Fixed compilation of constant functions that use the uniform state (IRAY-1795).
      • Improved error message ’xxx’ is not a package or module name; Now it shows the wrong part only instead of the whole package.
      • Fixed GLSL/HLSL backends to generate valid code for function returning void (in MDL: empty structs or arrays of size zero).
      • Warn, if a function returns a "void-like" value (and hence might be optimized away).
      • MDL Distilling:
        • Improved support for vMaterials2 composites in the transmissive_pbr target.
        • Improved support for color_custom_curve_layer as it is used in some vMaterials (all distilling targets).
        • Reduced overestimation of diffuse contribution in treansmissive_pbr/ue4 targets for some cases.
    • MI exporter
      • Converted VDB filepath URI to actual filepath before calling the VDB exporter, and catch exeption on failure to write exported VDB file.
  • rbtwhizrbtwhiz Posts: 2,380

    Iray 2024.0.0, build 377400.1437

    Known Issues and Restrictions

    • The improved scheduler implementation does not yet allow for network rendering to be employed. It may be available in the next release again though. Please let us know if your product or end users rely on this functionality.
    • The MDL compiler does not correctly handle the import of MDL 1.9 modules into MDL 1.8 with respect to the material.ior field. Constructions like the following are illegal but currently cannot be detected:
      mdl 1.8;
      import module19::M;
      export material N() =
      let { material o = module19::M; } in material(ior: o.ior);
    • Not really a restriction, but please revisit the respective Iray SDK integration code:
      "Background rendering" refers to Iray Photoreal performing work outside of the scope of the IRender_context::render() function. This was introduced in 2012 to improve overall rendering efficiency.

      Iray 2024.0.0 extends the situations in which background rendering is active somewhat, to further improve efficiency. Because internal jobs require an active transaction to execute, closing the rendering transaction on the application side will cancel background rendering. Most importantly, note that this is similar to calling IRender_context::cancel_render() with mode CANCEL_AND_CONTINUE. Applications which are experiencing slow/sluggish interaction should ensure that IRender_context::cancel_render is called with mode CANCEL_AND_RESTART when making changes, and before closing the rendering transaction.

      In general, applications cannot assume that Iray Photoreal rendering is idle unless the render function has returned with a non-zero value.

    Added and Changed Features

    • General
      • Updated general libraries:
        • OpenImageIO 2.5.12.0 (updated libtiff 4.6.0t and libxz 5.6)
    • Iray Photoreal
      • Added support for varying IOR (e.g. textured inputs).
      • Added matching CPUcounterpart for the improved/adaptive subdivision scheme.
      • Added new option attribute enable_tessellation_of_undisplaced_meshes. If enabled, tessellation approximations are applied to triangle- and poly-meshes also in the absence of a displacement function (nvbugs 4706813,4703623).
    • Material Definition Language (MDL)
      • Added backend option "libbsdf_flags_in_bsdf_data" to enable use of the new "flags" field in the BSDF data structures for libbsdf. The flags can be used to restrict generated sample, evaluate, pdf and auxiliary functions to only calculate reflections, transmissions or both.

    Fixed Bugs

    • Iray API
      • Fixed a problem where export operations failed to create multiple intermediate directories.
      • Avoid quadratic runtime behavior when looking up a leaf object during leaf object projector updates, along with other attribute update optimizations (nvbugs 4706018).
    • Iray Photoreal & Iray Interactive
      • Improved quality of the new triangle subdivision scheme further.
      • Avoid wobble-ish artifacts for bitmap based displacement.
      • Improved performance of the new triangle subdivision scheme by up to 40 percent.
      • Run subdivision surface displacement after tessellation so it can run GPU accelerated, too.
      • Added support for adaptive displacement tessellation for subdivision surfaces and freeform surfaces, too.
      • Added a check for the validity of the environment function orientation matrix. This fixes missing environments (nvbugs 4576372).
    • Iray Photoreal
      • Fixed reading invalid states, which could potentially lead to artifacts (nvbugs 4688893).
      • Fixed a numeric issue resulting in crashes, if there are only volumetric light sources in the scene.
      • Fixed issues in CPU enabled caustic sampler.
      • Fixed a sampling regression of the 2024.0 beta, when using the caustic sampler, some non caustic paths got completely lost.
      • Fixed a problem in the caustic sampler leading to way too bright volume/SSS materials, which better matched rendering without the caustic sampler, but incorrectly so (nvbugs 4712806).
      • Fixed ground fog blue-ish outlier pixels.
      • Fixed issues if there are only uniform emissive volumes and CPU rendering is active.
      • Fixed too dark rendering for volumetric light sources.
      • Fixed a sampling issue when there are both geometric and volumetric lights.
      • Fixed a sampling issue for direct light sampling in volumes.
      • Improved handling of device failures, especially during scene loading.
      • Don’t stop an active rendering while doing picking.
      • Fixed scheduler issues after closing transaction(s) or cancel.
      • Reduced memory usage during idle time, if guided sampling or caustic sampler are enabled.
      • Moved more scheduler-merging code to the GPU where possible, improving interactive performance.
    • Iray Interactive
      • Correctly render material ids into the respective AOV buffer, if the white mode is enabled (nvbugs 4534728).
    • Material Definition Language (MDL)
      • Fixed performance regression for materials using base::transform_coordinate() or base::lookup_volume_coefficients() in some cases.
      • Fixed assignments to wrong struct members for GLSL/HLSL in rare cases.
      • Fixed 3-argument df::tint() function using shading normal instead of geometry normal to differentiate between reflection and transmission.
      • Fixed derivatives not being calculated when they were "hidden" in a call in the arguments of a user-defined function which does not use derivatives.
      • Fixed a null pointer reference when parsing crafted LLVM bitcode metadata. (CVE-2023 46049).
      • Disabled MI_MDL_HLSL_LOAD_MODULE environment variable to avoid loading unwanted LLVMmodules.
      • Fixed a crash in IValue_resource::get_file_path() if no valid resource is set.
      • Fixed a logic error when creating filenames for resources during MDL export (unnecessary counter suffix and/or overwriting existing files).
  • rbtwhizrbtwhiz Posts: 2,380

    Iray 2024.0.1, build 377400.2109

    Known Issues and Restrictions

    • Note that in 2024.0.0 the windows .pdb files were accidentally renamed, this has now been fixed again.
    • This release still contains a known issue that can lead to undefined behavior (incl. potential crashes) when using picking/tracing within Iray Photoreal, but only in scenes that feature motion blur.

    Added and Changed Features

    • Iray Photoreal & Iray Interactive
      • Implemented cubic b-spline texture interpolation for bitmap based displacement.
      • Added adaptive tessellation and displacement support for meshes featuring multiple materials.
      • Replaced all old tessellation code paths with the new improved implementation.
      • Added support for animation time for displacement.
    • Material Definition Language (MDL)
      • The material.ior field is now varying for all versions of MDL (not only for MDL 1.9). This avoids to break the ABI to the renderer, since there is still only one material type. The newmethod IMdl_configuration::set_material_ior_frequency() allows to revert that change as a workaround for rare compatibility problems with MDL modules authored for MDLversions before 1.9. Please note that this will switch the field to uniform for all version (including MDL 1.9). Note further that this option cannot be set dynamically, it is only possible to set it at SDK start time.
    • MI exporter
      • Added support for saving adaptive approximations for Poly-, FFS and SDS meshes.

    Fixed Bugs

    • General
      • Fixed issues if the SSIM postprocessing pass is triggered but is not supported.
      • Ensured that resources are properly allocated if the number of color buffers changes (nvbugs 4731779).
      • Fixed coverage/multi-matte buffer generation (nvbugs 4739085).
      • Handle cases where a material instance turned into a function call or vice versa. Note that it is not recommended to change the type of a scene element though (nvbugs 4636223).
      • Further optimized scene graph/traversal leaf updates (nvbugs 4706018).
    • Iray Photoreal & Iray Interactive
      • Fixed potential crashes in new tessellation implementation (nvbugs 4713468).
      • Support adaptive tessellation with distance ratio for freeform surfaces.
      • Properly respect meters per scene unit for displacement.
      • Fixed a long standing issue (although extremely rare in general) with bitmap texture interpolation, leading to severe artifacts on displaced geometry.
      • Fixed some corner case handling when using high precision/bit-depth texture formats.
      • Avoid potentially undefinded behavior when specifying negative light emission values.
    • Iray Photoreal
      • Vastly improved performance for interactive usage (e.g. camera movement). Additional note: If a CUDA render target is provided, pixel downloads may be avoided, leading to maximum interactive performance at high frame rates. See the post_pipeline_device render context option for details. Note, however, that master_buffer_device may currently only be set to a device that is active for Iray Photoreal. Since that device defaults to the device used for postprocessing, setting post_pipeline_device when some devices are disabled may also require setting master_buffer_device.
      • Improved memory usage, saving up to 1GiB of GPU memory if the caustic sampler is enabled.
      • Fixed a crash when both environment baking and displacement were triggered.
      • Fixed a crash when multiple displacement functions were used (nvbugs 4705751).
      • Improved responsiveness to render cancel/pause calls.
      • Fixed an issue where some iterations took excessively long for no obvious reason.
      • Fixed scheduler updates after bailing out on errors (e.g. device not available, which could lead to problems when en/disabling devices during rendering).
      • Fixed some scheduler timing issues (nvbugs 4695599). This could sometimes manifest as the render function returning-4 (internal rendering error).
      • Fixed an issue where enabling the caustic sampler lead to an infinite render loop (nvbugs 4731815).
      • Fixed an energy loss for certain light transport paths for GPU rendering.
      • Fixed ghost light computation regressions.
      • Fixed issues with motion time, leading to invalid vector components for geometry with motion.
      • Fixed an unwanted update when resuming rendering after it finished before (e.g., when increasing the sample count).
      • Fixed issues, incl. a potential crash, with the automatic render quality/convergence estimate setting (nvbugs 4699262).
      • Fixed overlapping geometry picking/trace with changing options, potentially leading to a crash.
      • Improved device failure reporting again, removing asynchronous behavior.
      • Fixed various issues regarding GPUs which had not participated in rendering yet (nvbugs 4739160, 4739085).
      • Fixed an issue when continuing rendering after a GPU failure.
      • Improved performance if selection buffer rendering is enabled along with the color (or other) buffer(s).
    • Material Definition Language (MDL)
      • Fixed the "since" version of the decl_cast operator to return MDL 1.9.
      • Fixed get_option_count() and get_option_name() functions on IMdl_execution_context.
      • Fixed IImage::set_from_canvas() and IImage::reset_reader() to properly recognize uvtile sequences with a single tile.
      • The MDL core compiler did not compute correctly the uniform/varying property of single expression body functions, causing these to be always treated as uniform. This is fixed now. Additionally, Now the result of presets is always the same as for the underlying function.
      • Improved performance in HLSL/GLSL code generator. Reduced amount of generated code again after a workaround that was needed in release 2024.0.
      • Fixed ICompiled_material opacity methods always returning OPACITY_UNKNOWN for MDL 1.5- 1.8 materials.
      • Fixed invalid code generation for scene data function calls in environment functions. Default values are returned now.
      • Fixed failing argument block creation with MDL Core, when INVALID_REF values are provided (like texture_2d()).
      • Distiller Transmissive_pbr target: Prevent division by zero in case of both diffuse and glossy contributions are colored black.
  • rbtwhizrbtwhiz Posts: 2,380

    Iray 2024.0.2, build 377400.2626

    Known Issues and Restrictions

    • The next major release cycle will adapt the public headers to require compilers with C++ 11 feature compatibility.

    Added and Changed Features

    • General
      • Updated general libraries:
        • Curl 8.9.1
        • OpenImageIO 2.5.13.1 (incl. updated libjpeg-turbo 3.0.3)
        • FFmpeg-lgpl-7.0.1-379923 (with vaapi (libva) support disabled, due to library issues) (nvbugs 4784181)
    • Material Definition Language (MDL)
      • MDL Arnold: Added support for Arnold SDK version 7.3.2.1.

    Fixed Bugs

    • General
      • Further optimized scene graph/traversal updates (nvbugs 4706018 and more).
      • Fixed very old regression regarding iray_degrain_filtering_blur_difference so it’s now usable again (nvbugs 4763395).
      • Properly track materials that feature displacement (which lead to nvbugs 4539359, materialized for Iray Interactive so far only).
    • Iray Photoreal & Iray Interactive
      • Improved normal clamping if bump/normal mapping is triggered, for distorted normals almost being bend into the tangent plane (nvbugs 4674611).
    • Iray Photoreal
      • Fixed various issues regarding device management (en/disabling, or lost/out-of-memory devices).
      • Fixed issues with guided sampling and CPU-only setups (entangled with the upper fix).
      • Fixed an issue when using CPU-based picking/tracing in scenes featuring motion blur (nvbugs 4719456).
      • Improved GPU-rendering quality when interactively changing a scene (and maximum samples are greater one), leading to less (temporarily) black regions.
      • Improved inhomogeneous volume handling for MDL-JIT compiled materials (incl. potential crashes).
      • Slightly improved quality of guided sampling for certain scene setups.
      • Fixed visible darkening of up to 10 percent in roughly transmitting DBSDF cases.
      • Fixed missing contributions if during rendering a timeout using multiple devices happened.
      • Fixed a crash with reflective ground plane and emissive volumes and area lights.
      • Properly support LPE labels in SSS/volumes.
      • Slightly improved precision for very large environment maps, and speed up pre-processing/updates.
      • Fixed potential problems with the quality estimate or irradiance probes when changing buffer/canvas formats.
    • Iray Interactive
      • Fixed an issue with invalid/missing bounding boxes for on-demand meshes (nvbugs 4564605), note that bounding boxes for these in general need to be provided.
    • Material Definition Language (MDL)
      • Fixed missing leading "::" for qualified names reported by IMdl_discovery_api, if search paths had a trailing OS separator. (MDL-1490)
      • Improved error message that can be triggered when calling non-const methods on const objects.
      • Fixed crash in some cases when derivatives were calculated for a struct also containing non-floating point fields. (MDL-1491), (OMPE-15126)
      • Fixed wrong digit that can be added to tex::texture_isvalid() calls for HLSL and GLSL backends, if more than one texture type (for instance texture_2d and texture_3d) are used together in one module. (MDL-1498)
  • rbtwhizrbtwhiz Posts: 2,380

    Iray 2024.0.3 internal, build 377400.3383

    Added and Changed Features

    • General
      • Updated general libraries:
        • Curl 8.10.0
        • OpenVDB10.0.1 (with updated zlib 1.3.1)
        • OpenSSL 3.1.7 (e.g. CVE-2024-5535)
        • FFmpeg-lgpl-7.0.2-379923
    • Material Definition Language (MDL)
      • Updated to document version 1.9.2.
      • The default value for the backend option "enable_exceptions" is now "off", as this is the behavior described by the MDL specification.

    Fixed Bugs

    • General
      • Added missing displacement update when a MDL option changes that triggers material recompilation (e.g. meters_per_scene_unit) (nvbugs 4791615).
      • Fixed a regression with displacement (de)serialization.
      • Improved performance of displacement updates.
    • Iray Photoreal & Iray Interactive
      • Optimized CPU texture compression preprocessing.
    • Iray Photoreal
      • Fixed various issues with the improved scheduler (nvbugs 4765932 and a spurious deadlock in OV).
      • Fixed a potential crash with volume scenes and caustic sampler enabled.
      • Fixed some corner case math on Linux CPU rendering.
      • Fixed sampling issues with extreme anisotropic volume scattering values.
      • Fixed handling of empty fiber and particle objects on non-RTX (pre-Turing) GPUs (nvbugs 4852406).
      • Fixed artifacts on the CPU with zero-length Catmull-Rom and Bezier fibers (nvbugs 4852577).
      • Fixed handling of extreme input values for ground fog (nvbugs 4186133).
      Iray Interactive
      • Fixed artifacts with displacement (nvbugs 4705709).
    • Material Definition Language (MDL)
      • Fixed documented return codes for IExpression_factory::create_cast() and create_decl_cast() (error codes are negative as usual, not positive).
      • Fixed the documentation of the backend option "hlsl_use_resource_data" and "glsl_use_resource_data". These are recognized but not supported at the moment.
      • Fixed compilation of calls to non-inlined functions which receive material parameters as arguments for GLSL/HLSL. (OMPE-14333, MDL-1515)
      • Return identity matrix instead of zero for unimplemented tex::grid_to_object_space().
      • Fixed crash when compiling an expression as const which only becomes const after optimization (e.g. by getting rid of state access). (MDL-1367)
      • libbsdf: Fixed wrong shadow mask in microfacet BSDFs. (MDL-1517)
      • libbsdf: Avoid NaNs due to out-of-range roundings during random number updates. (MDL-1504)
      • MDLCore: Fixed resource indices for native code if a custom texture runtime is used. (MDL-1522)
      • Fixed crashes if a non-constant default constructor occurred during code generation in various backends. (MDL-1007)
  • rbtwhizrbtwhiz Posts: 2,380

    Iray 2024.0.4, build 377400.3959

    Added and Changed Features

    • General
      • Updated general libraries:
        • Curl 8.10.1
        • OpenImageIO 2.5.13.1 (featuring updated OpenJPEG 2.5.2, libtiff 4.7.0 and libjpeg turbo 3.0.4)
        • SQLite 3.46.1
        • IndeX Direct (now comes without NVRTC, which also implies without LLVM)
    • Iray Photoreal & Iray Interactive
      • Added missing support for displacement approximations on on-demand meshes.
    • Material Definition Language (MDL)
      • Implemented folding of ::tex function calls with invalid textures on the DAG. (MDL-1506)
      • Added "max_const_data" backend option to limit the size of global constants in the generated code when the “enable_ro_segment” option is enabled. Larger constants are put into read-only data segment. The default is “1024” bytes, which corresponds to the old behavior. (MDL-1531)

    Fixed Bugs

    • Iray Photoreal & Iray Interactive
      • Fixed handling of OpenGL canvases on non-CUDA devices.
      • Properly handle specular phase functions in LPEs.
      • Implemented additive color correction for thin-film modified custom curves (as multiplicative fails for normal-reflectivity = 0 (ior = 1)) (OMPE-20454).
      • Fixed issues with multiscatter-enabled glossy BSDFs, resulting in energy gain with high roughness and multiscatter enabled.
    • Iray Photoreal
      • Fixed a regression when rendering images with less than 4096 pixels.
      • Fixed a potential deadlock in the improved scheduler (windows platforms only).
      • Fixed potential issues/corruption when using CPU rendering with enabled caustic sampler (nvbugs 4890529).
      • Useless memory if rendering on a single device only.
      • Fixed an issue where memory allocation failed unnecessarily.
      • Fixed an issue if the master device is different from the actual rendering devices.
      • Fixed several problems if rendering devices are switched.
      • Fixed lost work after a recoverable device failure, potentially also causing a deadlock.
      • Improved guided sampling with spectral rendering enabled.
      • Improved consistency of sampling with the firefly filter option on or off.
      • Improved interactivity for scene (camera/geometry) changes.
      • General performance improvements of the improved scheduler.
      • Improved performance for smaller resolutions and/or camera changes (i.e. navigating a scene).
      • Improved multi-device balancing and performance.
      • Fixed invalid alpha values for some volumetric light source scene setups.
      • Fixed non-working toggling of the convergence estimate.
      • Fixed an issue in (the rare) case convergence estimates were decreasing, no more updates would happen.
      • Fixed multiple importance sampling regression introduced in 2024.0.3 (nvbugs 4865629).
    • Material Definition Language (MDL)
      • libbsdf: Fixed issues for df::thin_film over df::custom_curve_layer and df::directional_factor with normal reflectivity approaching zero. (OMPE-20454)
      • Allow material sub structs to be used inside a declarative struct and declarative functions. (MDL-1540)
      • Improved error message in case a select operator cannot be executed because of the left hand-side type was not imported. (MDL-1511)
      • Fixed wrong HLSL/GLSL read functions used for shadow copies of function parameters. (MDL-1529)
      • Fixed crash when compiling a function which receives a material parameter but doesn’t use the state (GLSL backend with rodata segment disabled). (MDL-1530)
      • Avoid undefined behavior with "%" operator for negative values for GLSL by implementing “a % b” as “a- (a / b) * b”. (MDL-1179)
      • Report when a standard library module is imported with a weak relative import names from a module in a search path root. This is needed because standard library modules are loaded from a high-priority search path and would shadow any relative import. This will trigger a warning for MDL versions between 1.6 and 1.9, and an error for MDL versions greater than 1.9.
  • rbtwhizrbtwhiz Posts: 2,380

    Iray 2024.1.0 beta, build 381500.1577

    Known Issues and Restrictions

    • In order to support the new range of Blackwell GPUs the CUDA Toolkit 12.8 has been used for compilation. Thus the minimum driver branch required to run Iray on NVIDIA GPUs is now R570. Note that drivers from R565 and above also feature vastly improved OptiX AI denoising. Drivers from R555 and above also feature a 25 percent reduction in memory consumption for instance acceleration structure builds on all GPUs Turing (sm7.5) and above.

    Added and Changed Features

    • General
      • Support for Blackwell GPUs.
      • Updated general libraries:
        • Curl 8.11.0
        • FFmpeg-lgpl-7.1-381376
        • libx264 (stable-20240409-31e19f92-382520 - rebuilt with MacOSX Target 10.15)
        • IndeX Direct (now comes without NVRTC, which also implies without LLVM)
        • CUDA Toolkit 12.8 beta
    • Iray Photoreal & Iray Interactive
      • Support added for up to four texture space coordinate projectors (previously limited to one).
      • Support added for up to four texture spaces for (approximate) displacement (IRAY-1814).
    • Iray Photoreal
      • Added new heuristic auto_caustic_sampling to automatically switch the caustic sampler on/off over time.
    • Material Definition Language (MDL)
      • MDL 1.10 Language Specification
      • Updated version to 1.10.
      • Changed of diffuse_reflection_bsdf to improved Oren-Nayar model by Fujii and added parameter multiscatter_tint.
      • Corrected description of multiscatter_tint parameter in sheen_bsdf.
      • Added parameter f82_factor to standard distribution function modifiers directional_factor and color_custom_curve_layer.
      • Added standard distribution function modifier microflake_sheen_bsdf.
      • Added standard distribution function modifier coat_absorption_factor.
      • Extended rules for the distribution function normal form with new BSDFs.
      • The public API requires now C++ 11. All code paths for C++ 03 have been removed.
      • The performance of the module builder has been improved.
      • When exporting textures, the gamma value is now exported as metadata (if supported by OpenImageIO and the underlying image file format).
      • With MDL 1.10, a new lookup table for the "Microflake Sheen BSDF" was introduced. If not yet supported, integrations need to handle these new 3D RGB textures.
      • Added support for MDL 1.10.
      • Added expression promotion for default arguments of imported entities: Before this release, an exported entity was bound to the language versions that are supported by the used types in its signature and the called entities in its default arguments; The last restriction is now partly lifted: The compiler can now promote expressions from MDL version N to MDL version M if N > M. This allows to import entities from older MDL versioned modules in to newer ones, even if they use expressions in its default arguments that are not available in the new version. The compiler rewrites those expressions with an equivalent expression for the current version (just as it is done in the internal representation).
      • Note that this works only for imports from older modules, imports from newer modules to older modules still might be filtered out if default expressions does not exists in the older version, because there is not always a downgrade path.
      • Note further that this is supported for all MDL versions, not only MDL 1.10 now, so exports can create code that is not accepted by older versions of the MDL SDK/compiler.
      • Both, CPU and GPU bakers, implement a new method IBaker::bake_texture_with_constant_detection(). This method is an improved version of bake_texture() that detects constant textures.

    Fixed Bugs

    • General
      • Fixed material updates for dynamic material arrays.
    • Iray API
      • Public headers now need to use C++11.
      • Cleanup and improved code generation for (D)VectorX usage.
    • Iray Photoreal & Iray Interactive
      • Fixed color shifted colors for some texture lookups on Hopper GPUs
      • Fixed direction computation for planar projectors (incl. decals) (nvbugs 4923995).
      • Reduced energy loss for Oren-Nayar diffuse BRDF by switching to the improved qualitative model (notable only for high roughness).
      • Fixed sporadic wrong rendering of integer based auxiliary buffers (e.g. material ID) (nvbugs 4874969).
    • Iray Photoreal
      • Fixed missing material textures update, e.g. when changing light flags, potentially leading to a crash (nvbugs 4985899).
      • Fixed regression with the ground fog decay rate (related to nvbugs 4186133).
      • Fixed a hang up in the scheduler if there were errors on kernel launches.
      • Fixed a scheduler corruption issue, visible e.g. when rendering auxiliary buffers for many iterations (nvbugs 4934526).
      • Implemented ambient occlusion auxiliary-buffer support for volumes (which is not fully comparable to AO on solid surfaces, but at least similar).
      • Fixed extreme corner case handling in light source sampling.
      • Fixed potential issues when handling integer based auxiliary buffers.
    • Iray Interactive
      • Fixed extreme corner case handling in light source sampling (related to nvbugs 3460122).
    • Material Definition Language (MDL)
      • base.mdl: Avoid undefined behavior by skipping tangent updates when this would cause a division by zero. (MDL-1450)
      • Fixed IExpression_factory::create_direct_call() to support temporary references as arguments.
      • When creating MDLEs of variants, the ::anno::origin annotation now points to the variant itself, not to its prototype.
      • Fixed wrong error message when a material and sub types are used as parameters for declarative functions.
      • Functions used inside default argument expressions of struct constructors are now auto-imported.
      • Fixed several conditions under which an auto-import of default arguments has failed.
      • Fixed missing state usage information for distribution functions and for all functions compiled in single-init mode. (MDL-1550)
      • Fixed handling of material parameters and read-only data constants requested as derivative values by functions. (MDL-1600)
      • Fixed distiller implementation to enable distilling with the MDL core library (libmdl_core).
  • rbtwhizrbtwhiz Posts: 2,380

    Iray 2024.1.0 , build 381500.2959

    Known Issues and Restrictions

    • All pre-Turing (sm7.5) GPU support has been declared deprecated and thus may vanish in one of the next major version releases.

    Added and Changed Features

    • General
      • Updated general libraries:
        • SQLite 3.47.2
        • CUDA Toolkit 12.8
    • Iray Photoreal
      • Re-add previously (2024.0.0 release) lost cluster/network rendering capability.
    • Material Definition Language (MDL)
      • Added IBaker::get_type_name() to obtain the type name for constants to be used for a given baker instance. Improved the baker documentation w.r.t. the relation between type of the baked expression, the pixel type for canvases, and the type name of constants.
      • The performance of editing database elements with many references has been improved.
      • Baker:
        • Added support for baking float2 and float4 expressions.
        • Increased the number of texture spaces supported to 16.
        • Added a NaN-check so resulting pixel values equal to NaN will be replaces by zero.

    Fixed Bugs

    • Iray Photoreal & Iray Interactive
      • Fixed a potential crash if the environment texture does not contain an image.
      • Fixed 2x upscaling for Bridge.
    • Iray Photoreal
      • Fixed a crash in scheduling (nvbugs 5001958).
      • Fixed invalid tracking of unfinished paths on pause (nvbugs 5009405).
      • Do not resume rendering if completion criteria are already met, this avoids an unnecessary startup/shutdown sequence.
      • Removed iray_allow_surface_volume_coefficients (always enabled now) (nvbugs 4971394).
    • Iray Interactive
      • Disallow expressions for the absorption and scattering coefficients of materials (nvbugs 4971394 and 4497827).
    • Material Definition Language (MDL)
      • Fixed export of MDL modules with animated and/or uvtile textures if the texture file exists already.
      • Fixed IModule::get_resource() to enumerate resources that appear in bodies and temporaries of functions.
      • Fixed resources appearing in expressions returned by IFunction_definition::get_body() and get_temporary().
      • Fixed some sources of duplicated log warnings.
      • Fixed missing filenames in ILight_profile::get_filename() and IBsdf_measurement::get_filename() if the resource resides in an MDL archive or MDLE file.
      • Skip transmission check for thin-walled materials in target material mode, because the analysis is only supported with the material constructor as a root of the compiled material.
      • Fixed inserting unnecessary decl_cast when the root of the compiled material already had the correct type. This broke the target material mode, always resulting in a material constructor.
      • Fixed the baking of varying boolean expressions.
  • rbtwhizrbtwhiz Posts: 2,380

    Iray 2024.1.1 , build 381500.4681

    Added and Changed Features

    • General
      •  Updated general libraries:
        • SQLite 3.49.0
        • OpenSSL 3.1.8
        • OpenImageIO 2.5.13.1 (with OpenJPEG 2.5.3, OpenEXR 3.2.4, libPNG 1.6.46, boost 1.87, libsharpyuv 0.1.1, libwebPdecoder 3.1.10 and libLZMA (libXZ) 5.6.3) (MDL-1637)
        • c-Blosc 1.21.1 (with zstd 1.5.7)
        • Curl 8.12.1
        • OpenVDB10.0.1 (with zstd 1.5.7 and Imath 3.1.x)
        • CUDAToolkit 12.8 Update 1
    • Iray Photoreal & Iray Interactive​
      • Removed obsolete disable-optix-prime option.
    • Material Definition Language (MDL)
      • The compiler now obeys the target_material_model annotation when used on material presets. This allows to make a target material from a preset, even if the original material is not. This implements user expectations.
    • AxF importer
      • Optionally read data via IReader instead of opening the file via the AxF SDK (if file is not found via the SDK) in order to support the bridge.

    Fixed Bugs

    • Iray Photoreal & Iray Interactive
      •  Properly handle material indices when converting an on-demand mesh to a triangle mesh during tessellation.
      • Improved error reporting and failure handling when allocating OptiX AI denoiser state, scratch memory and tensor size (nvbugs 5131117).
      • Clampcurve exponent of df::*custom_curve() to zero.
    • Iray Photoreal
      • Fixed guided sampling data loss if the guidance master device changes before all devices participated in rendering (nvbugs 5068610).
      • Fixed segmentation fault after disabling device(s) when using guided sampling (nvbugs 5090563).
      • Improved guidance synchronization on multi device setups (improves performance, stability and fixes a bug if devices are removed/readded) (nvbugs 5153593).
      • Fixed a loss of photons in caustic sampler scheduling if all photon paths in flight were extremly short.
      • Fixed cluster rendering support with auto_caustic_sampling enabled (nvbugs 5061539).
      • Fixed various other minor issues with auto_caustic_sampling enabled (nvbugs 5061539).
      • Improved robustness for section planes if the camera direction is (almost) parallel (nvbugs 4217436).
      • Fixed convergence estimate runs on reset (nvbugs 5002094).
      • Improved performance for inhomogeneous volume scenes.
      • Fixed a rare timing based bug in the scheduler (e.g. when picking on remote hosts).
      • Improved messaging if some devices are not used for rendering. Before, these were just silently ignored (nvbugs 5184859).
    • Material Definition Language (MDL)
      • MDL1.10Language Specification
        • Fixed minor typographic errors and improved wording.
      • Improved the handling of invalid re-use of names of DB elements eligible for garbage collection. As a consequence, some of these uses are considered safe now. See "Database Access" in the API reference documentation for details.
      • Fixed export of MDL modules with animated and/or uvtile textures if the texture file exists already. Now we generate a unique filename (as for plain textures and other resources) instead of unconditionally overwriting an existing file.
      • Fixed entity resolver returns only a file name (without the directory) when resolving UDIM sets on disk. (MDL-1647)
      • Fixed wrong error message "index of declarative types must be uniform" that was issued by the compiler if the index of an declarative array access was a constant. (MDL-1648)
      • Fixed wrong error messages issued that a (constant) array cannot be converted into a uniform array. (MDL-1648)
      • Fixed missing backend support for implicit conversion between declarative structs of the same category in default argument, causing a crash when target code is generated. (MDL-1640)
      • Fixed missing type import causing assertions in debug build.
      • Added missing support for the hidden argument of the decl_cast intrinsic function.
      • Fixed several problems with the auto import of entities in MDL, most of them now visible by the user, but causing assertions in debug builds. (MDL-1624)
      • Fixed core compiler not recognizing several declarative properties, causing missing errors when declarative types are used inside non-declarative functions, especially in combination with declarative structs defined in the ::df module (bsdf_compoments and alikes). (MDL-1622, MDL-1634)
      • Fixed pre-calculated arrays not being properly stored in texture results (HLSL/GLSL). (MDL-1623)
      • Fixed NaNs being generated by sqrt(+inf) for the native backend. (MDL-1639)
      • Fixed crash when compiling functions with derivative arrays as parameters. (MDL-1649, nvbugs 5137450)
  • rbtwhizrbtwhiz Posts: 2,380

    Daz Studio 6.25.2025.11206 - *Public Build*

     

    • REQUIRES:
      • NVIDIA Driver 57x.xx (R570) on Windows
      • See NVIDIA Driver Downloads
        • NVIDIA recommends installing Studio Drivers (SD)
      • ​SSSE3 enabled CPU is a minimum requirement on macOS/x86
This discussion has been closed.