Releases: RenderKit/oidn
Releases · RenderKit/oidn
Open Image Denoise v2.3.1
- Fixed corrupted output when in-place denoising high-resolution (> 1080p)
images where the input and output are stored in different shared buffer
objects (created withoidnNewSharedBuffer*
) that overlap in memory - Fixed issues with cancellation through progress monitor callbacks:
- Fixed cancellation requests not being fulfilled on CPU devices since
v2.3.0
- Fixed not calling the callback anymore after requesting cancellation,
while the operation is still being executed
- Fixed cancellation requests not being fulfilled on CPU devices since
- Added support for creating shared buffers on Metal devices
- Enabled accessing system allocated memory for CUDA devices which support this
feature (seesystemMemorySupported
device parameter) - Added LUID support for HIP devices. Importing DX12 and Vulkan buffers is
now functional when using recent AMD GPU drivers on Windows
Open Image Denoise v2.3.0
- 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 theRT
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
,
andoidnIsMetalDeviceSupported
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
andoidnNewHIPDevice
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 frombalanced
tohigh
- 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
topreprocess.py
andtrain.py
- Added experimental support for depth (
z
)
- Improved training performance on CUDA and MPS devices, added
Open Image Denoise v2.3.0-beta
- 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 theRT
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
,
andoidnIsMetalDeviceSupported
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
andoidnNewHIPDevice
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
- 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
- Fixed memory leak when releasing SYCL, CUDA and HIP device objects
- Fixed memory leak when initializing Metal filters
Open Image Denoise v2.2.0
- 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
- 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
- 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
- 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
forcolor
butOIDN_FORMAT_HALF3
foralbedo
) - 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
- 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
andD3D11_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