Repository navigation
Releases: mscf/OrdinaryLight
Release list
OrdinaryLight v0.7.9
OrdinaryLight v0.7.7
Part of Ordinary v0.1.10.
Validated commit: 2519614977e249af0c4e5ceee79b197cc2426fa0.
OrdinaryLight v0.7.6
Part of Ordinary v0.1.9.
Validated commit: 65026ded1fae1a4dbf5db10bad1f7d85a6201f4f.
OrdinaryLight v0.7.5
Part of Ordinary v0.1.8.
Validated commit: 079b9ff507f5d53fc0f7854b77de97892620129a.
OrdinaryLight v0.7.4
Part of Ordinary v0.1.7.
Validated commit: 1418dc6674188e8b85d0dea4e0d64d69bcc84fc7.
OrdinaryLight v0.7.3
Part of Ordinary v0.1.6.
Validated commit: 5f83765b6b776efeb4be94c77ce1475546055df8.
OrdinaryLight v0.7.2
Part of Ordinary v0.1.5.
Validated commit: f15eb63dc40d8b0525da5fabf4726abcd4950932.
OrdinaryLight v0.7.1
Part of Ordinary v0.1.4.
Validated commit: fee7e431d171a85eeab5a643b9480b2257b4766f.
OrdinaryLight v0.7.0
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
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.VulkanTlasandVulkanBlasInstance: 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.