Repository navigation
Native 0.2.0 adds a GPU C API for host-owned Metal, Vulkan and DX12 buffers, C++17 wrappers, and an optional Windows CUDA/DX12 adapter.
Breaking changes
- C ABI 3.0.0 replaces 1.0.0. Rebuild C/C++ consumers against the new headers. Remove
oidnw_filter_desc.size, initialize descriptors with their default functions, and keepnextextension pointers NULL. CPU input scales must be positive and finite; unknown filter flag bits are rejected. - Rust execution parameters, information structs and several enums are now non-exhaustive. Replace parameter literals with
DenoiseParams::default().with_input_scale(scale)and add wildcard match arms where required. Rust hosts must continue to use wgpu=30.0.1.
Highlights
- GPU C submissions wait on and signal host timeline objects, with bounded pending work and explicit completion handling.
- C++17 wrappers provide move-only owners and platform import helpers. Vulkan helpers merge device requirements before device creation.
- The optional Windows CUDA adapter accepts ordinary CUDA device pointers or adapter-allocated shared images, orders work on CUDA streams, and supports workspace resizing.
- Rust and GPU C APIs can warm up pipelines before image allocation. CPU filters can update input exposure without rebuilding their workspace.
- Experimental kernel and quality options expose explicit execution paths; FAST quality opts into lower-precision accumulation.
- Packages and the Rust crate include GPU integration example sources and the integration walkthrough.
Get the library
Download the C/C++ package matching your platform: Windows x86_64 MSVC, Linux x86_64 GNU, macOS x86_64 or macOS ARM64. SHA256SUMS covers the release assets.
For Rust:
[dependencies]
oidn-webgpu = { package = "oidn-webgpu-native", version = "0.2.0" }The crate bundles all four platform cores; consumers need Rust and a platform linker, without Node, Zig or build-time GitHub downloads. Model weights are separate.
See the native guide for usage, defaults and hardware limitations, and the full changelog and migration notes.