- 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
andoidnUnmapBuffer
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
andmanagedMemorySupported
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
deprecatedoidn(Get|Set)(Device|Filter)(1b|1i|1f)
functions - Added
oidnUnsetFilter(Image|Data)
functions and deprecated
oidnRemoveFilter(Image|Data)
functions - Renamed
alignment
andoverlap
filter parameters totileAlignment
andtileOverlap
but the old names remain supported
- Added
- Removed
OIDN_STATIC_LIB
andOIDN_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