Skip to content

OrdinaryLight v0.4.1

Choose a tag to compare

@mscf mscf released this 10 Sep 22:59
· 28 commits to main since this release

OrdinaryLight 0.4.1

This release improves interactive GI responsiveness and fixes slow fullscreen transitions after switching from raster rendering.

  • Experimental GI now offers one path sample with four total bounces, including reflections.
  • Camera motion no longer repeatedly rebuilds shared-primary GI commands. ReSTIR history validity and limits are uploaded per frame, preserving the original history decisions. In the animated viewer reproduction, median record time fell from 5.22 ms to 0.078 ms and the maximum from 39.5 ms to 0.89 ms; command-cache hits increased from 30% to 100%.
  • Primary shading reuses BRDF preparation and removes unused volume, transmission, and optional estimator paths when safe. Repeated Rough-scene measurements reduced primary time from 4.02 to 3.58 ms in experimental GI and from 7.11 to 6.66 ms in normal GI. Results depend on the scene and hardware.
  • Raster-to-GI renderer handoff renews the Vulkan instance, fixing the reproduced 22-second fullscreen pauses. Raster presentation recovers from out-of-date swapchains, and GI acquisition retries return promptly to the viewer.
  • Shared-primary startup skips unused pipeline compilation; closing hides the window promptly while resources drain.
  • New diagnostics measure actual viewer recording stalls, fullscreen transitions, primary-stage costs, and scene-compiled shader statistics.

All shader algorithms remain authored in typed OrdinaryShade. Generated shader artifacts are included. Existing third-party FSR integrations remain temporarily supported. OrdinaryShade 0.1.0a5 or newer is required.

Validation includes rebuilt shader artifacts, automated tests, live viewer timing comparisons, and exact HDR parity between recorded and uploaded ReSTIR policy under deterministic camera jumps. No sampling-budget reductions are used to obtain these recording improvements.

Install the attached wheel with the qt extra to use the viewer, or the vulkan extra for Vulkan rendering.