github KhronosGroup/ANARI-SDK v0.16.0

one day ago

ANARI-SDK v0.16.0 — Highlights

🆕 New helide_gpu device

The headline addition is a new GPU-backed reference device (helide_gpu) alongside the existing CPU helide. It shares the same reference-renderer semantics but exercises the GPU execution path, giving implementers and downstream apps a second built-in device to validate against. This came with substantial supporting work in the helium base layer:

  • Double-buffered deferred commits and a reworked TaskQueue (FIFO worker-side enqueue with growable storage) for more robust cross-thread commit handling.
  • Worker-thread gpu_enqueue_method now runs inline when already on the worker thread, and a macOS commit-buffer deadlock was fixed.
  • Object parameters are now snapshotted at anariCommitParameters() time, matching spec expectations for commit semantics.

🧪 CTS (Conformance Test Suite) overhaul

Major rework of the conformance test suite (#359):

  • Reports are now generated in C++ (text + HTML); the Python reporting layer was reduced to PDF-only.
  • Added ray/primitive intersection edge-case tests.
  • CTS can now pass custom, device-agnostic renderer parameters.
  • Test coverage and code generation were synced to the current spec.

📐 Spec & JSON / code-gen updates

  • New extension KHR_SAMPLER_IMAGExD_CLAMP_TO_BORDER added.
  • wrapMode1 renamed to wrapMode for image1D (per spec) — note: potential breaking change for consumers reading that parameter name.
  • Correct REPEAT-mode coordinate wrapping for Image1D/2D/3D samplers.
  • code_gen re-synced to the current spec (typo fixes, updated queries; JSON null now returns nullptr).
  • Removed primitive.id support from helide/helide_gpu.

🎨 helide rendering improvements

  • Implicit aspect ratio support in both helide and helide_gpu.
  • Fixed incorrect sRGB color-data handling on input.
  • Support for the visible parameter on volume and surface objects.
  • New debug render mode that skips ray intersection.
  • Geometry commit priority adjusted so isosurface is handled correctly after fields; implicit curve index fix.

🖥️ Platform & integration fixes

  • High-DPI (HiDPI) support on macOS, plus a configurable high-DPI flag and custom flags for SDL windows.
  • Fixed a crash on window resize (stale frame contents / format mismatc
  • Fixed Embree alignment error via alignas on the Ray struct.
  • ANARI library lifetime fixes — libraries are unloaded/deleted as Librd until after destruction, resolving lifetime issues in applications.

🔌 hdAnari (Hydra plugin)

  • Updated to OpenUSD 26.05 (and build fixes for 25.11).
  • Migrated the MDL plugin from the Ndr to the Sdr API.

📚 Docs & housekeeping

  • Added helium code documentation comments and agent-context files across several libraries.
  • Generic helium::Array improvements: 1D attribute helpers moved to thew access the data modified-timestamp.
  • README fixes (typos, broken links, python-bindings notes), copyright date updates.

Merged PRs

New Contributors

Full Changelog: v0.15.0...v0.16.0

Don't miss a new ANARI-SDK release

NewReleases is sending notifications on new releases.