docs: wavefront RT in README + design-doc status; add RTStress to examples

This commit is contained in:
catbot 2026-05-31 20:29:12 +00:00
commit 358084185a
2 changed files with 39 additions and 10 deletions

View file

@ -50,9 +50,16 @@ compute pipeline composed from user-supplied WGSL stages).
bridge. Atlas (`r8unorm`, sub-region writes) is a separate path.
- **PipelineRTVulkan / PipelineRTWebGPU / ShaderBindingTableVulkan /
ShaderBindingTableWebGPU / RTPass** — ray-tracing pipelines. Vulkan
uses native RT pipelines + SBTs; WebGPU composes one compute
pipeline by stitching the traversal library, a generated hit-group
switch, and the user's raygen / closesthit / miss / anyhit WGSL.
uses native RT pipelines + SBTs; WebGPU compiles a **wavefront /
streaming** software tracer — five `@compute` kernels
(`GENERATE → PREP → TRACE → SHADE → RESOLVE`) sharing one module,
connected by GPU ray/hit/payload buffers and a GPU-driven indirect
bounce loop (`dispatchWorkgroupsIndirect`). TRACE carries zero user
code (traversal + intersection only); user raygen calls
`rtEmitPrimaryRay`, and closesthit / miss run in SHADE where they
`rtEmitRay` continuation/shadow rays and `rtAccumulate` radiance. An
optional Resolve shader tonemaps the linear accumulator. See
[WAVEFRONT-DESIGN.md](WAVEFRONT-DESIGN.md).
- **ComputeShader / WebGPUComputeShader** — Tier 1 wrapper used by the
UI system. Vulkan loads a `.spv` and dispatches with
`vkCmdPushDataEXT`; WebGPU loads a user-supplied `.wgsl` blob at
@ -145,6 +152,10 @@ See [examples/](examples/). Quick map:
- [VulkanTriangle](examples/VulkanTriangle/) — ray-traced triangle on
both Vulkan and WebGPU. The smallest test of the bindless + RT path
on each backend.
- [RTStress](examples/RTStress/) — wavefront RT benchmark: an N×N×N grid
of a cube mesh (instance-count knob `kGrid`, 512 → 8000) shaded with
primary + shadow rays. Prints a GPU timestamp-query per-pass breakdown
each second. WebGPU/DOM only.
- [Sponza](examples/Sponza/) — ray-traced Sponza atrium on both
backends. Exercises `.cmesh` / `.ctex` decompression (GPU
`VK_EXT_memory_decompression` on Vulkan, CPU on WebGPU) and a