skip to content
[readonly]

pathtrace, a deterministic path tracer as a mesh GPU job program (bit-identical images on every GPU and CPU), as PTX from C

sh
$ 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
==> README.md <==
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.