Skip to content

v0.5.1

Choose a tag to compare

@HarperZ9 HarperZ9 released this 04 Oct 02:11
13c1ba5

raw-native renders a test scene, computes ambient occlusion two ways, and writes a certificate saying whether the fast screen-space estimate held against a ray-traced reference. Version 0.5.1 brings the superstack.receipt/1 receipt to the WebAssembly build, so every build now writes the same receipt beside its certificate.

Download and run

File Platform
raw-native-0.5.1-windows-x64.zip Windows 10 or 11, x64. CPU only, static runtime, no installer, loads only KERNEL32.dll.
raw-native-0.5.1-windows-x64-d3d12.zip Windows 10 or 11, x64, with the D3D12 backend. --gpu needs a hardware GPU; software adapters are refused. Adds only d3d12.dll and dxgi.dll.
raw-native-0.5.1-linux-x64.tar.gz Linux x64 with glibc 2.38 or newer.
raw-native-0.5.1-wasm.zip Browser or Node: the CPU build and the WebGPU build. Also published loose.

Every archive carries LICENSE (FSL-1.1-MIT) and LICENSE-superstack.txt, the FSL-1.1-MIT notice for the vendored superstack header linked into the CLI.

sha256sum -c SHA256SUMS
raw_native_cli --out ./out
raw_native_cli verify ./out

What is new

  • The wasm build writes receipt.json. raw-native now vendors superstack 0.2.0, whose header compiles with libc++, the standard library Emscripten uses. In 0.5.0 the wasm build printed receipt: not written. Its receipt is now byte-identical to the receipts from the Windows and Linux builds, and raw_native_cli verify passes on it.
  • superstack 0.2.0, licensed FSL-1.1-MIT. superstack.hpp is copied byte for byte from the superstack v0.2.0 release (SHA-256 a0d223c0567c883b73ed74b19d93cb087e213dc14b950ab0f6f04206cb72c590). The vectors are unchanged. LICENSE-superstack.txt moves from MIT to FSL-1.1-MIT. The notices for mulberry32, xmur3, OKLab and libebur128 are kept word for word. superstack 0.1.0, which 0.5.0 shipped, stays MIT.
  • CMake 4.2.0 is pinned for the wasm build. CMake 4.2 adds -fPIC to Emscripten compiles, so a build configured with another CMake gives different wasm bytes. The released wasm files are built with CMake 4.2.0 and emsdk 6.0.11. cmake --preset wasm warns on any other CMake, and CI installs 4.2.0 and checks the wasm build used it.
  • A changelog. CHANGELOG.md covers 0.2.0 to 0.5.1.

Checked before release

  • The default render's certificate.json, receipt.json, channels.json, frame.ppm, frame_hdr.pfm, mask.pgm and all AO files are byte-identical from the packaged Windows, Windows D3D12, Linux and CPU wasm builds (certificate.json SHA-256 297f744d..., receipt.json a1e5ffbe...).
  • Against 0.5.0, frame.ppm, both AO float files, channels.json and every other image file hash the same. certificate.json differs only in its version string. receipt.json differs in its producer version, the certificate digest and the seal, all following from the version string.
  • raw_native_cli verify passes on every packaged build's output, wasm included, run with the Windows, Windows D3D12 and Linux binaries.
  • CI now requires the wasm receipt to match the Windows and Linux receipts, runs the superstack vectors under Emscripten in Node (383 of 383 checks), and checks the default render against the hashes 0.5.0 wrote.
  • 34 of 34 tests pass with MSVC 19.50 and GCC 13.3. The D3D12 build adds the hardware runtime test, which passed on an RTX 4090 and which CI reports as skipped because the runner has no GPU. A 1440 x 900 D3D12 render on the RTX 4090 gave a verified GPU certificate, and verify passed on it and on its CPU reference.

Limits

  • The D3D12, WebGPU and WARP matrices and the benchmark were not rerun for 0.5.1. Their evidence is 0.5.0's. The render code is unchanged. The binaries differ from 0.5.0's because of the new superstack header and the version string, and raw-native-gpu.wasm is no longer the build that produced the WebGPU evidence.
  • The WebGPU build's --gpu path was not run for this release. Its CPU render under Node writes the same files as the other builds.
  • arena_certificate.json still differs between platforms, because the standard libraries allocate different sizes. Each reads verified.
  • One built-in scene. Agreement with the CPU is not agreement with ground truth: the CPU reference is itself a 64-sample estimate.

Licensed FSL-1.1-MIT. Version 0.2.0 and earlier stay MIT.