Skip to content

Releases: mscf/OrdinaryLight

OrdinaryLight v0.7.9

Choose a tag to compare

@mscf mscf released this 24 Oct 12:52
v0.7.9
62d16ba

Part of Ordinary v0.1.11.

Validated commit: 62d16ba1d042137a8e16310268eb3685a9570e2a.

OrdinaryLight v0.7.7

Choose a tag to compare

@mscf mscf released this 23 Sep 15:01
v0.7.7
2519614

Part of Ordinary v0.1.10.

Validated commit: 2519614977e249af0c4e5ceee79b197cc2426fa0.

OrdinaryLight v0.7.6

Choose a tag to compare

@mscf mscf released this 23 Sep 10:53
v0.7.6
65026de

Part of Ordinary v0.1.9.

Validated commit: 65026ded1fae1a4dbf5db10bad1f7d85a6201f4f.

OrdinaryLight v0.7.5

Choose a tag to compare

@mscf mscf released this 23 Sep 03:57
v0.7.5
079b9ff

Part of Ordinary v0.1.8.

Validated commit: 079b9ff507f5d53fc0f7854b77de97892620129a.

OrdinaryLight v0.7.4

Choose a tag to compare

@mscf mscf released this 22 Sep 23:52
v0.7.4
1418dc6

Part of Ordinary v0.1.7.

Validated commit: 1418dc6674188e8b85d0dea4e0d64d69bcc84fc7.

OrdinaryLight v0.7.3

Choose a tag to compare

@mscf mscf released this 22 Sep 17:50
v0.7.3
5f83765

Part of Ordinary v0.1.6.

Validated commit: 5f83765b6b776efeb4be94c77ce1475546055df8.

OrdinaryLight v0.7.2

Choose a tag to compare

@mscf mscf released this 22 Sep 16:49
v0.7.2
f15eb63

Part of Ordinary v0.1.5.

Validated commit: f15eb63dc40d8b0525da5fabf4726abcd4950932.

OrdinaryLight v0.7.1

Choose a tag to compare

@mscf mscf released this 21 Sep 23:43
v0.7.1
fee7e43

Part of Ordinary v0.1.4.

Validated commit: fee7e431d171a85eeab5a643b9480b2257b4766f.

OrdinaryLight v0.7.0

Choose a tag to compare

@mscf mscf released this 15 Sep 14:44

OrdinaryLight 0.7.0

Expand public resident-geometry and GPU graph interfaces, and reduce native GI
preparation, transport, and denoising work.

  • Add public triangle BLAS resources and typed native triangle evaluation, alongside procedural AABB geometry. Primary, secondary, and visibility rays share the geometry and optical-boundary contracts.
  • Add an optional emitter-influence callback to reject sampled-light connections before visibility. This is an explicitly biased application policy; default behavior accepts all connections.
  • Expose typed full and identity-only primary-hit records, native geometry bindings for reusable primary operations, and public GI history invalidation.
  • Add bounded persistent upload rings with one-shot packets, explicit cancellation and completion tracking; cache graph scheduling without caching per-frame callbacks or resource leases.
  • Reduce resolve and secondary-path initialization traffic, reuse resolve scratch where lifetimes permit, and share denoiser geometry reads across diffuse/specular spatial filtering. Reset frames bypass ineligible temporal history.
  • Add opt-in primary diffuse-continuation sampling with reciprocal probability weighting. The default remains 1.0; smooth reflection, transmission and custom scattering retain their existing continuation policy.
  • Reject exactly black environment connections before secondary visibility, and correct shadow-work counters to count attempted queries.
  • Expose optional Vulkan buffer float32 atomic-add capability for application-authored OrdinaryShade kernels. Unsupported devices retain existing rendering paths.
  • Make standalone transport lighting include its generated analytic-light dependencies, and restore compiler/fault-injection regression coverage after shader generation and checkout-layout changes.

All authored shader behavior remains typed OrdinaryShade; generated text and
SPIR-V variants are included. Existing third-party FSR integration is retained.
Experimental scripts and performance reports document accepted and rejected
approaches; their diagnostic settings are not new renderer defaults.

Requires OrdinaryShade 0.1.0a8. Install the matching GitHub release wheels together.
Application-specific voxel averaging and the tuned atomic output policy remain
in vxl8r, outside this renderer release. Performance measurements in the
experiment reports are workload- and hardware-specific.

Quality baselines were explicitly accepted after comparison against v0.6.0:
all six denoiser noise scenarios and the small-emitter roulette case produced
identical quality metrics on the released and candidate implementations.
The denoiser baseline now records the current RTX 5090 Laptop measurements,
retaining existing quality/timing tolerances. The exact small-emitter matrix
configuration uses its measured roulette noise ratio with 15% relative headroom;
other configurations, error limits, and bias limits are unchanged. See
artifacts/release-regression-v0.7.0 for the original audit and release follow-up.

OrdinaryLight v0.6.0

Choose a tag to compare

@mscf mscf released this 12 Sep 18:56

OrdinaryLight 0.6.0

Add public persistent AABB acceleration resources for applications that need
independent static/dynamic or chunk updates before native GI.

  • VulkanAabbBlas: leased GPU bounds, reusable build/refit operations and aligned persistent scratch.
  • VulkanTlas and VulkanBlasInstance: independently owned BLAS instances, stable custom indices and explicit resource lifetime rules.
  • buffer_copy_operation: GPU-to-GPU updates over validated explicit byte ranges, composable before acceleration builds without readbacks or CPU waits.
  • Preserve build-range FFI storage through deferred recording and garbage collection.
  • Reject premature destruction while borrowers exist and retire pending GPU uses before destruction.

The APIs consume application-owned GPU buffers and export acceleration resources
for VulkanRuntime.import_scene; no dummy triangle scene or private descriptor
overrides are needed. Refits retain Vulkan's fixed-count/layout/active-state
constraints. A range copy does not make an entire BLAS refit partial; partition
geometry into independent BLASes to bound acceleration work. See
docs/public_acceleration.md for usage and synchronization.

Verified with direct GPU ray queries, static BLAS preservation, GPU range updates,
instance identities, deferred build recording, lifetime guards, and vxl8r's
512×512×13 domain. Moving the central object updated 36 of 832 slot chunks;
unchanged frames skipped acceleration updates. vxl8r also uses OrdinaryShade's
new compare-and-exchange intrinsic for exact visible-face averaging. This is
chunked dense resident storage, not yet a fully sparse voxel allocator.

Requires OrdinaryShade 0.1.0a7. Install the matching GitHub wheel assets together.