@plasius/gpu-renderer 0.1.15 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -5
- package/README.md +25 -1
- package/dist/index.cjs +382 -16
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +374 -16
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
- package/src/index.d.ts +146 -26
- package/src/index.js +8 -0
- package/src/wavefront-compute.js +407 -16
package/CHANGELOG.md
CHANGED
|
@@ -23,16 +23,40 @@ All notable changes to this project will be documented in this file.
|
|
|
23
23
|
- **Security**
|
|
24
24
|
- (placeholder)
|
|
25
25
|
|
|
26
|
-
## [0.1
|
|
26
|
+
## [0.2.1] - 2026-06-06
|
|
27
27
|
|
|
28
28
|
- **Added**
|
|
29
|
-
-
|
|
29
|
+
- Added deterministic wavefront reference helpers for primary-ray creation,
|
|
30
|
+
triangle-hit evaluation, nearest-hit selection, and environment-miss
|
|
31
|
+
fallback alongside regression tests for task-level acceptance coverage.
|
|
32
|
+
- Added ADR coverage for mesh BVH wavefront path tracing as the display-quality
|
|
33
|
+
baseline.
|
|
30
34
|
|
|
31
35
|
- **Changed**
|
|
32
|
-
-
|
|
36
|
+
- Promoted the mesh BVH wavefront renderer source into the canonical
|
|
37
|
+
`src/wavefront-compute.js` module so source, typings, tests, and package
|
|
38
|
+
builds no longer drift behind generated artifacts.
|
|
39
|
+
- Changed wavefront mesh tracing to dispatch bounce intersection and
|
|
40
|
+
surface-resolution work from GPU-authored active-ray counts instead of the
|
|
41
|
+
fixed tile capacity after queue compaction.
|
|
42
|
+
- Changed the npm CD workflow to prepare package version and changelog
|
|
43
|
+
metadata locally, then publish the validated tag while persisting release
|
|
44
|
+
metadata through an automation PR branch instead of direct protected-main
|
|
45
|
+
pushes.
|
|
33
46
|
|
|
34
47
|
- **Fixed**
|
|
35
|
-
-
|
|
48
|
+
- Fixed wavefront source ownership so display-quality mesh BVH code is not
|
|
49
|
+
hidden behind a legacy module split.
|
|
50
|
+
- Preserved the wavefront mode/workgroup constants, shader-source helper,
|
|
51
|
+
one-shot frame helper, and `renderFrame(...)` compatibility wrapper while
|
|
52
|
+
promoting the mesh BVH renderer source.
|
|
53
|
+
- Fixed a production performance regression where compacted continuation
|
|
54
|
+
queues still scheduled full-capacity per-bounce workgroups.
|
|
55
|
+
- Fixed low-sample wavefront surface traces so terminal non-emissive surface
|
|
56
|
+
collisions use an environment-derived ambient floor instead of a flat or
|
|
57
|
+
missing fallback.
|
|
58
|
+
- Fixed release metadata versioning, demo dependencies, and one-shot
|
|
59
|
+
wavefront cleanup blockers found during PR validation.
|
|
36
60
|
|
|
37
61
|
- **Security**
|
|
38
62
|
- (placeholder)
|
|
@@ -287,4 +311,4 @@ All notable changes to this project will be documented in this file.
|
|
|
287
311
|
[0.1.11]: https://github.com/Plasius-LTD/gpu-renderer/releases/tag/v0.1.11
|
|
288
312
|
[0.1.12]: https://github.com/Plasius-LTD/gpu-renderer/releases/tag/v0.1.12
|
|
289
313
|
[0.1.14]: https://github.com/Plasius-LTD/gpu-renderer/releases/tag/v0.1.14
|
|
290
|
-
[0.1
|
|
314
|
+
[0.2.1]: https://github.com/Plasius-LTD/gpu-renderer/releases/tag/v0.2.1
|
package/README.md
CHANGED
|
@@ -141,6 +141,10 @@ const renderer = await createWavefrontPathTracingComputeRenderer({
|
|
|
141
141
|
renderer.renderOnce();
|
|
142
142
|
```
|
|
143
143
|
|
|
144
|
+
Existing consumers that still call `renderFrame(...)` or
|
|
145
|
+
`renderWavefrontPathTracingComputeFrame(...)` remain supported as compatibility
|
|
146
|
+
wrappers around the canonical mesh renderer.
|
|
147
|
+
|
|
144
148
|
Analytic scene objects remain available for debug fixtures:
|
|
145
149
|
|
|
146
150
|
```js
|
|
@@ -203,7 +207,12 @@ sampling, temporal accumulation, and better material PDFs are hardened.
|
|
|
203
207
|
For static mesh scenes, the GPU acceleration build is submitted once and then
|
|
204
208
|
reused by subsequent frames. Per-frame tracing writes one dynamic uniform slot
|
|
205
209
|
per tile/sample or post-process pass and batches tile tracing, tile output,
|
|
206
|
-
optional denoise, and presentation into a single command submission.
|
|
210
|
+
optional denoise, and presentation into a single command submission. After each
|
|
211
|
+
primary-ray or compaction pass, the GPU writes the active-ray workgroup count
|
|
212
|
+
into the counter buffer and the encoder copies it into an indirect-dispatch
|
|
213
|
+
argument buffer. Intersection and surface-resolution passes therefore scale
|
|
214
|
+
with active continuation rays instead of the maximum tile capacity, while still
|
|
215
|
+
avoiding CPU readback between bounces. WebGPU
|
|
207
216
|
still preserves ordering between dependent bounce passes, but the renderer no
|
|
208
217
|
longer forces one CPU queue submission per tile/sample.
|
|
209
218
|
Environment-light portals can additionally guide and gate sky/HDRI contribution
|
|
@@ -242,6 +251,11 @@ renderer.bindXrManager(xr, {
|
|
|
242
251
|
- `createRayTracingRenderPlan(options)`
|
|
243
252
|
- `createWavefrontPathTracingComputeRenderer(options)`
|
|
244
253
|
- `createWavefrontPathTracingComputeConfig(options)`
|
|
254
|
+
- `createWavefrontPathTracingComputeShaderSource(options?)`
|
|
255
|
+
- `renderWavefrontPathTracingComputeFrame(options)`
|
|
256
|
+
- `createWavefrontReferenceRay(config, options?)`
|
|
257
|
+
- `intersectWavefrontReferenceTriangle(ray, triangle, options?)`
|
|
258
|
+
- `traceWavefrontReferenceTriangles(config, ray, triangles, options?)`
|
|
245
259
|
- `normalizeWavefrontMesh(input)`
|
|
246
260
|
- `createWavefrontGpuMeshSource(meshes)`
|
|
247
261
|
- `createWavefrontBvhSortStages(itemCount)`
|
|
@@ -251,6 +265,9 @@ renderer.bindXrManager(xr, {
|
|
|
251
265
|
- `packWavefrontSceneObjects(sceneObjects, capacity?)`
|
|
252
266
|
- `packWavefrontTriangles(triangles, capacity?)`
|
|
253
267
|
- `packWavefrontBvhNodes(nodes, capacity?)`
|
|
268
|
+
- `rendererWavefrontComputeMode`
|
|
269
|
+
- `rendererWavefrontComputeWorkgroupSize`
|
|
270
|
+
- `rendererWavefrontComputeStatsStride`
|
|
254
271
|
- `bindRendererToXrManager(renderer, xrManager, options)`
|
|
255
272
|
- `defaultRendererClearColor`
|
|
256
273
|
- `rendererDebugOwner`
|
|
@@ -260,6 +277,11 @@ renderer.bindXrManager(xr, {
|
|
|
260
277
|
- `rendererWorkerProfileNames`
|
|
261
278
|
- `rendererWorkerManifests`
|
|
262
279
|
|
|
280
|
+
The reference helpers mirror the renderer WGSL camera and triangle-hit math in
|
|
281
|
+
deterministic JavaScript so tests and downstream tooling can validate primary
|
|
282
|
+
ray generation, barycentrics, nearest-hit selection, and environment misses
|
|
283
|
+
without standing up a WebGPU device.
|
|
284
|
+
|
|
263
285
|
## Demo
|
|
264
286
|
|
|
265
287
|
Run the demo server from the repo root:
|
|
@@ -290,6 +312,8 @@ npm run pack:check
|
|
|
290
312
|
## Files
|
|
291
313
|
|
|
292
314
|
- `src/index.js`: WebGPU renderer runtime and XR binding helper.
|
|
315
|
+
- `src/wavefront-compute.js`: Canonical WebGPU mesh BVH wavefront renderer,
|
|
316
|
+
debug scene-object fixtures, and deterministic reference helpers.
|
|
293
317
|
- `src/index.d.ts`: public API typings.
|
|
294
318
|
- `tests/package.test.js`: unit tests for renderer lifecycle behavior.
|
|
295
319
|
- `docs/design/worker-manifest-integration.md`: renderer frame-stage DAG model.
|