Skip to content

Releases: RenderKit/oidn

Open Image Denoise v2.3.0

17 Jun 11:54
Compare
Choose a tag to compare
  • Significantly improved image quality of the RT filter in high quality
    mode for HDR denoising with prefiltering, i.e., the following combinations
    of input features and parameters:
    - HDR color + albedo + normal + cleanAux
    - albedo
    - normal
    In these cases a much more complex filter is used, which results in lower
    performance than before (about 2x). To revert to the previous performance
    behavior, please switch to the balanced quality mode.
  • Added fast quality mode (OIDN_QUALITY_FAST) for even higher performance
    (about 1.5-2x) interactive/real-time previews and lower default memory usage
    at the cost of somewhat lower image quality. Currently this is implemented
    for the RT filter except prefiltering (albedo, normal). In other cases
    denoising implicitly falls back to balanced mode.
  • Added Intel Arrow Lake, Lunar Lake, and Battlemage GPU support
  • Execute Async functions asynchronously on CPU devices as well
  • Load/initialize device modules lazily (improves stability)
  • Added oidnIsCPUDeviceSupported, oidnIsSYCLDeviceSupported,
    oidnIsCUDADeviceSupported, oidnIsHIPDeviceSupported,
    and oidnIsMetalDeviceSupported API functions for checking whether a
    physical device of a particular type is supported
  • Release the CUDA primary context when destroying the device object if using
    the CUDA driver API
  • Added OIDN_LIBRARY_NAME CMake option for setting the base name of the Open
    Image Denoise library files
  • Fixed device creation error with oidnNewDevice when the default device of
    the specified type (e.g. CUDA) is not supported but there are other
    supported non-default devices of that type in the system
  • Fixed CMake error when building with Metal support using non-Apple Clang
  • Fixed iOS build errors
  • Added support for building with ROCm 6.x
  • oidnNewCUDADevice and oidnNewHIPDevice no longer accept negative device
    IDs. If the goal is to use the current device, its actual ID needs to be
    passed.
  • Upgraded to oneTBB 2021.12.0 in the official binaries
  • Training:
    • Improved training performance on CUDA and MPS devices, added --compile
      option
    • Added --quality option (high, balanced, fast) for selecting the
      size of the model to train, changed the default from balanced to high
    • Added new models to the --model option (unet_small, unet_large,
      unet_xl)
    • Added support for training with prefiltered auxiliary features by
      passing --aux_results to preprocess.py and train.py
    • Added experimental support for depth (z)

Open Image Denoise v2.3.0-beta

02 May 16:25
Compare
Choose a tag to compare
Pre-release
  • Significantly improved image quality of the RT filter in high quality
    mode for HDR denoising with prefiltering, i.e., the following combinations
    of input features and parameters:
    - HDR color + albedo + normal + cleanAux
    - albedo
    - normal
    In these cases a much more complex filter is used, which results in lower
    performance than before (about 2x). To revert to the previous performance
    behavior, please switch to the balanced quality mode.
  • Added fast quality mode (OIDN_QUALITY_FAST) for even higher performance
    (about 1.5-2x) interactive/real-time previews and lower default memory usage
    at the cost of somewhat lower image quality. Currently this is implemented
    for the RT filter except prefiltering (albedo, normal). In other cases
    denoising implicitly falls back to balanced mode.
  • Execute Async functions asynchronously on CPU devices as well
  • Load/initialize device modules lazily (improves stability)
  • Added oidnIsCPUDeviceSupported, oidnIsSYCLDeviceSupported,
    oidnIsCUDADeviceSupported, oidnIsHIPDeviceSupported,
    and oidnIsMetalDeviceSupported API functions for checking whether a
    physical device of a particular type is supported
  • Release the CUDA primary context when destroying the device object if using
    the CUDA driver API
  • Fixed device creation error with oidnNewDevice when the default device of
    the specified type (e.g. CUDA) is not supported but there are other
    supported non-default devices of that type in the system
  • Added support for building with ROCm 6.x
  • oidnNewCUDADevice and oidnNewHIPDevice no longer accept negative device
    IDs. If the goal is to use the current device, its actual ID needs to be
    passed.
  • Upgraded to oneTBB 2021.12.0 in the official binaries

Open Image Denoise v2.2.2

15 Mar 19:30
Compare
Choose a tag to compare
  • Fully fixed GPU memory leak when releasing SYCL, CUDA and HIP device objects
  • Fixed CUDA context error in some cases when using the CUDA driver API
  • Fixed crash on systems with an unsupported AMD Vega integrated GPU and old
    driver

Open Image Denoise v2.2.1

28 Feb 21:17
Compare
Choose a tag to compare
  • Fixed memory leak when releasing SYCL, CUDA and HIP device objects
  • Fixed memory leak when initializing Metal filters

Open Image Denoise v2.2.0

16 Feb 17:10
Compare
Choose a tag to compare
  • Improved denoising quality (better fine detail reconstruction)
  • Added Intel Meteor Lake GPU support (in Intel® Core™ Ultra Processors)
  • Added Metal device for Apple silicon GPUs (requires macOS Ventura or newer)
  • Added ARM64 (AArch64) CPU support on Windows and Linux (in addition to macOS)
  • Improved CPU performance
  • Significantly reduced overhead of committing filter changes
  • Switched to the CUDA driver API by default, added the OIDN_DEVICE_CUDA_API
    CMake option for manually selecting between the driver and runtime APIs
  • Fixed crash when releasing a buffer after releasing the device

Open Image Denoise v2.2.0-rc2

06 Feb 14:16
Compare
Choose a tag to compare
Pre-release
  • Improved denoising quality (better fine detail reconstruction)
  • Added Intel Meteor Lake GPU support (in Intel® Core™ Ultra Processors)
  • Added Metal device for Apple silicon GPUs (requires macOS Ventura or newer)
  • Added ARM64 (AArch64) CPU support on Windows and Linux (in addition to macOS)
  • Improved CPU performance
  • Switched to the CUDA driver API by default, added the OIDN_DEVICE_CUDA_API
    CMake option for manually selecting between the driver and runtime APIs
  • Fixed crash when releasing a buffer after releasing the device

Open Image Denoise v2.2.0-rc

02 Feb 12:05
Compare
Choose a tag to compare
Pre-release
  • Improved denoising quality (better fine detail reconstruction)
  • Added Intel Meteor Lake GPU support (in Intel® Core™ Ultra Processors)
  • Added Metal device for Apple silicon GPUs (requires macOS Ventura or newer)
  • Added ARM64 (AArch64) CPU support on Windows and Linux (in addition to macOS)
  • Improved CPU performance
  • Switched to the CUDA driver API by default, added the OIDN_DEVICE_CUDA_API
    CMake option for manually selecting between the driver and runtime APIs
  • Fixed crash when releasing a buffer after releasing the device

Open Image Denoise v2.1.0

11 Oct 21:40
Compare
Choose a tag to compare
  • Added support for denoising 1-channel (e.g. alpha) and 2-channel images
  • Added support for arbitrary combinations of input image data types
    (e.g. OIDN_FORMAT_FLOAT3 for color but OIDN_FORMAT_HALF3 for albedo)
  • Improved performance for most dedicated GPU architectures
  • Re-added OIDN_STATIC_LIB CMake option which enables building as a static
    (CPU support only) or a hybrid static/shared (GPU support as well) library
  • Added release() method to C++ API objects (DeviceRef, BufferRef,
    FilterRef)
  • Fixed possible crash when releasing GPU devices, buffers or filters
  • Fixed possible crash at process exit for some SYCL runtime versions
  • Fixed image quality inconsistency on Intel integrated GPUs, but at the cost
    of some performance loss
  • Fixed future Windows driver compatibility for Intel integrated GPUs
  • Fixed rare output corruption on AMD RDNA2 GPUs
  • Fixed device detection on Windows when the path to the library has non-ANSI
    characters
  • Added support for Intel® oneAPI DPC++/C++ Compiler 2024.0 and compatible
    open source compiler versions
  • Upgraded to oneTBB 2021.10.0 in the official binaries
  • Improved detection of old oneTBB versions

Open Image Denoise v2.0.1

26 Jun 16:49
Compare
Choose a tag to compare
  • Fixed performance issue for Intel integrated GPUs using recent Linux drivers
  • Fixed crash on systems with both dedicated and integrated AMD GPUs
  • Fixed importing D3D12_RESOURCE, D3D11_RESOURCE, D3D11_RESOURCE_KMT,
    D3D11_TEXTURE and D3D11_TEXTURE_KMT external memory types on CUDA and
    HIP devices
  • Fixed the macOS deployment target of the official x86 binaries (lowered from
    11.0 to 10.11)
  • Minor improvements to verbose output

Open Image Denoise v2.0.0

24 May 21:29
Compare
Choose a tag to compare
  • Added SYCL device for Intel Xe architecture GPUs (Xe-LP, Xe-HPG and Xe-HPC)
  • Added CUDA device for NVIDIA Volta, Turing, Ampere, Ada Lovelace and Hopper
    architecture GPUs
  • Added HIP device for AMD RDNA2 (Navi 21 only) and RDNA3 (Navi 3x)
    architecture GPUs
  • Added new buffer API functions for specifying the storage type (host, device
    or managed), copying data to/from the host, and importing external buffers from
    graphics APIs (e.g. Vulkan, Direct3D 12)
  • Removed the oidnMapBuffer and oidnUnmapBuffer functions
  • Added support for asynchronous execution (e.g. oidnExecuteFilterAsync,
    oidnSyncDevice functions)
  • Added physical device API for querying the supported devices in the system
  • Added functions for creating a device from a physical device ID, UUID, LUID
    or PCI address (e.g. oidnNewDeviceByID)
  • Added SYCL, CUDA and HIP interoperability API functions (e.g. oidnNewSYCLDevice,
    oidnExecuteSYCLFilterAsync)
  • Added type device parameter for querying the device type
  • Added systemMemorySupported and managedMemorySupported device parameters
    for querying memory allocations supported by the device
  • Added externalMemoryTypes device parameter for querying the supported
    external memory handle types
  • Added quality filter parameter for setting the filtering quality mode (high
    or balanced quality)
  • Minor API changes with backward compatibility:
    • Added oidn(Get|Set)(Device|Filter)(Bool|Int|Float) functions and
      deprecated oidn(Get|Set)(Device|Filter)(1b|1i|1f) functions
    • Added oidnUnsetFilter(Image|Data) functions and deprecated
      oidnRemoveFilter(Image|Data) functions
    • Renamed alignment and overlap filter parameters to tileAlignment
      and tileOverlap but the old names remain supported
  • Removed OIDN_STATIC_LIB and OIDN_STATIC_RUNTIME CMake options due to
    technical limitations
  • Fixed over-conservative buffer bounds checking for images with custom strides
  • Upgraded to oneTBB 2021.9.0 in the official binaries