pathtrace, a deterministic path tracer as a mesh GPU job program (bit-identical images on every GPU and CPU), as PTX from C
$ sexc add @ajax/mesh-prog-pathtrace- total 3
- drwxr-xr-x-../
- drwxr-xr-x-Oct 27 03:26v/# 1 version
- drwxr-xr-x-Oct 27 03:26files/# the files of 0.1.0
- latest
- 0.1.0, published Oct 27 03:26 by ajax
- owners
- ajax
- license
- MIT
- dependencies
- @ajax/mesh-rt ^0.1.0, @ajax/pathtrace-tile ^0.1.0, @ajax/pathtrace-default-scene ^0.1.0, @ajax/pathtrace-digest ^0.1.0, @ajax/pathtrace-scene ^0.1.0, @ajax/pathtrace-view ^0.1.0
- dependents
- none yet
- keywords
- mesh alphaos gpu ptx program pathtracer deterministic
- homepage
- https://github.com/thomasdavis/alpha-c-mesh/tree/main/programs/pathtrace
- repository
- https://github.com/thomasdavis/alpha-c-mesh
1# @ajax/mesh-prog-pathtrace 2 3A deterministic path tracer as a job program: one work item (a 32 x 24 tile, one pass) a task; the 4node renders the pass's pixels into shared memory (every thread), warp 0 folds them into the tile's 5accumulators in pass order and tone maps them. The image is bit for bit the same on every backend 6because every float op is correctly rounded, unfused and FTZ, and the random numbers are a hash. The 7renderer is the pathtrace-* packages, instantiated here for the device with plain f32 operations. 8`variants/` (pathtrace-live, pathtrace-cpu) run the same images. 9 10- **Ported from:** alpha-rust-mesh `programs/pathtrace/src/lib.rs`. 11- **Tests:** in @ajax/mesh-prog-pathtrace-check (the reference is host-only): kcheck's PT checks on the 12 simulator against @ajax/mesh-ref-pathtrace, bitwise.