@plasius/gpu-renderer 0.2.42 → 0.2.44
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 +60 -1
- package/README.md +51 -3
- package/dist/index.cjs +381 -42
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +381 -42
- package/dist/index.js.map +1 -1
- package/package.json +7 -6
- package/src/feedback-diagnostics.js +190 -0
- package/src/index.d.ts +99 -13
- package/src/index.js +6 -0
- package/src/wavefront-compute.js +31 -46
- package/src/wavefront-config.js +161 -23
- package/src/wavefront-gpu-resources.js +8 -1
- package/src/wavefront-runtime-support.js +73 -3
package/CHANGELOG.md
CHANGED
|
@@ -18,11 +18,52 @@ All notable changes to this project will be documented in this file.
|
|
|
18
18
|
- (placeholder)
|
|
19
19
|
|
|
20
20
|
- **Fixed**
|
|
21
|
+
- Preserved hosted pull-request isolation, bounded validation runtime, and
|
|
22
|
+
disabled package-manager cache finalization on self-hosted main validation.
|
|
21
23
|
- (placeholder)
|
|
22
24
|
|
|
23
25
|
- **Security**
|
|
24
26
|
- (placeholder)
|
|
25
27
|
|
|
28
|
+
## [0.2.44] - 2026-08-31
|
|
29
|
+
|
|
30
|
+
- **Added**
|
|
31
|
+
- Added an explicit consent-, flag-, and capability-gated helper that converts
|
|
32
|
+
coarse renderer health observations into the closed shared feedback
|
|
33
|
+
diagnostics packet for approved generator and GPU demo surfaces.
|
|
34
|
+
|
|
35
|
+
- **Changed**
|
|
36
|
+
- Updated `@plasius/gpu-shared` to the protected-CD-published 1.1.1 release
|
|
37
|
+
that exposes the focused feedback-diagnostics contract, and revalidated
|
|
38
|
+
the renderer against the registry artifact.
|
|
39
|
+
|
|
40
|
+
- **Fixed**
|
|
41
|
+
- (placeholder)
|
|
42
|
+
|
|
43
|
+
- **Security**
|
|
44
|
+
- (placeholder)
|
|
45
|
+
|
|
46
|
+
## [0.2.43] - 2026-08-31
|
|
47
|
+
|
|
48
|
+
- **Added**
|
|
49
|
+
- (placeholder)
|
|
50
|
+
|
|
51
|
+
- **Changed**
|
|
52
|
+
- (placeholder)
|
|
53
|
+
|
|
54
|
+
- **Fixed**
|
|
55
|
+
- Negotiated scene-derived `maxStorageBufferBindingSize` and, when required,
|
|
56
|
+
`maxBufferSize` before WebGPU device creation so large mesh/BVH scenes fail
|
|
57
|
+
early on unsupported adapters and render on adapters that expose sufficient
|
|
58
|
+
non-default limits.
|
|
59
|
+
- Corrected wavefront memory telemetry to match every persistent GPU buffer
|
|
60
|
+
descriptor exactly once, including placeholder records, combined BVH and
|
|
61
|
+
emissive metadata, mesh sources, and aligned frame/build config buffers,
|
|
62
|
+
while removing the nonexistent material-table allocation.
|
|
63
|
+
|
|
64
|
+
- **Security**
|
|
65
|
+
- (placeholder)
|
|
66
|
+
|
|
26
67
|
## [0.2.42] - 2026-08-31
|
|
27
68
|
|
|
28
69
|
- **Added**
|
|
@@ -69,11 +110,21 @@ All notable changes to this project will be documented in this file.
|
|
|
69
110
|
|
|
70
111
|
- **Changed**
|
|
71
112
|
- Updated internal GPU dependencies to their surviving clean lines and refreshed the esbuild resolution.
|
|
113
|
+
- Bound diagnostics to the focused shared-package subpath and canonical
|
|
114
|
+
contract-version export, and enabled complete declaration checking with the
|
|
115
|
+
published WebXR type definitions.
|
|
72
116
|
|
|
73
117
|
- **Fixed**
|
|
74
|
-
-
|
|
118
|
+
- Removed a duplicate public mesh `extensions` declaration and replaced
|
|
119
|
+
unresolved ambient XR session references with the `@plasius/gpu-xr` state
|
|
120
|
+
contract.
|
|
75
121
|
|
|
76
122
|
- **Security**
|
|
123
|
+
- Updated the development-tool dependency graph to the patched
|
|
124
|
+
`brace-expansion` release after the feedback release audit.
|
|
125
|
+
- Kept feedback diagnostics separate from general renderer snapshots and
|
|
126
|
+
excluded user-captured pixels, DOM, player data, URLs, filenames, exact
|
|
127
|
+
measurements, adapter identity and raw warnings from the output contract.
|
|
77
128
|
- Added permanent fail-closed Zero-Three validation for manifests, source,
|
|
78
129
|
locks, installed dependency graphs, declarations, bundles, npm tarballs,
|
|
79
130
|
CycloneDX SBOMs, and active documentation, with digest-bound evidence
|
|
@@ -636,6 +687,9 @@ All notable changes to this project will be documented in this file.
|
|
|
636
687
|
contract used by the wavefront display-quality renderer.
|
|
637
688
|
|
|
638
689
|
- **Fixed**
|
|
690
|
+
- Clamped wavefront tile capacity against the depth-scaled path-vertex
|
|
691
|
+
storage binding so supported high-depth reference renders stay within
|
|
692
|
+
`maxStorageBufferBindingSize`.
|
|
639
693
|
- Raised the bounded wavefront `maxDepth` ceiling to 32 so offline/reference
|
|
640
694
|
renders can request 20-bounce paths without being clamped by renderer
|
|
641
695
|
configuration.
|
|
@@ -663,6 +717,9 @@ All notable changes to this project will be documented in this file.
|
|
|
663
717
|
corruption and stalled validation captures on higher-SPP frames.
|
|
664
718
|
|
|
665
719
|
- **Changed**
|
|
720
|
+
- Raised the bounded wavefront `maxDepth` ceiling to 32 so offline/reference
|
|
721
|
+
renders can request 20-bounce paths without being clamped by renderer
|
|
722
|
+
configuration.
|
|
666
723
|
- Changed internal wavefront frame batching and dispatch-diagnostics plumbing
|
|
667
724
|
to live in a dedicated runtime helper module so scheduling concerns stay
|
|
668
725
|
separated from shader and pipeline assembly.
|
|
@@ -1047,3 +1104,5 @@ All notable changes to this project will be documented in this file.
|
|
|
1047
1104
|
[0.2.40]: https://github.com/Plasius-LTD/gpu-renderer/releases/tag/v0.2.40
|
|
1048
1105
|
[0.2.41]: https://github.com/Plasius-LTD/gpu-renderer/releases/tag/v0.2.41
|
|
1049
1106
|
[0.2.42]: https://github.com/Plasius-LTD/gpu-renderer/releases/tag/v0.2.42
|
|
1107
|
+
[0.2.43]: https://github.com/Plasius-LTD/gpu-renderer/releases/tag/v0.2.43
|
|
1108
|
+
[0.2.44]: https://github.com/Plasius-LTD/gpu-renderer/releases/tag/v0.2.44
|
package/README.md
CHANGED
|
@@ -8,19 +8,56 @@
|
|
|
8
8
|
[](./SECURITY.md)
|
|
9
9
|
[](./CHANGELOG.md)
|
|
10
10
|
|
|
11
|
-
[](./LICENSE)
|
|
12
|
-
|
|
13
11
|
Framework-agnostic WebGPU renderer runtime for Plasius projects.
|
|
14
12
|
This package is intended to replace Three.js-dependent render orchestration with
|
|
15
13
|
an explicit WebGPU-first runtime that can be consumed from React, vanilla, or
|
|
16
14
|
worker-driven app surfaces.
|
|
17
15
|
|
|
18
16
|
The package targets Node.js 24, consumes the stable `@plasius/gpu-shared` 1.x
|
|
19
|
-
runtime line (`^1.
|
|
17
|
+
runtime line (`^1.1.1`), and validates its development tooling against the
|
|
20
18
|
current ESLint 10 and TypeScript 7 baselines.
|
|
21
19
|
|
|
22
20
|
Apache-2.0. ESM + CJS builds.
|
|
23
21
|
|
|
22
|
+
## Privacy-Safe Feedback Diagnostics
|
|
23
|
+
|
|
24
|
+
Approved in-game viewers can explicitly convert a small set of current renderer
|
|
25
|
+
health observations into the closed
|
|
26
|
+
`@plasius/gpu-shared/feedback-diagnostics` packet:
|
|
27
|
+
|
|
28
|
+
```js
|
|
29
|
+
import { createFeedbackGameDiagnosticSnapshot } from "@plasius/gpu-renderer";
|
|
30
|
+
|
|
31
|
+
const diagnostics = createFeedbackGameDiagnosticSnapshot({
|
|
32
|
+
featureEnabled,
|
|
33
|
+
capabilityGranted,
|
|
34
|
+
consentConfirmed: true,
|
|
35
|
+
surfaceId: "site.gpu-demo",
|
|
36
|
+
renderer: "webgpu",
|
|
37
|
+
backend: "worker",
|
|
38
|
+
viewportWidth: 1920,
|
|
39
|
+
viewportHeight: 1080,
|
|
40
|
+
frameRate: 59.9,
|
|
41
|
+
frameTimeMs: 16.7,
|
|
42
|
+
featureIds: ["renderer.frame-loop"],
|
|
43
|
+
counters: [{ code: "frame-drop", count: 2 }],
|
|
44
|
+
errorCodes: [],
|
|
45
|
+
});
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The helper returns `null` before reading renderer observations unless the
|
|
49
|
+
remotely evaluated `feedback.game-diagnostics.enabled` flag, the
|
|
50
|
+
`feedback.game-diagnostics.attach` capability, and explicit consent are all
|
|
51
|
+
present. It derives trusted provenance and returns only coarse buckets and
|
|
52
|
+
closed codes.
|
|
53
|
+
|
|
54
|
+
This API is deliberately separate from general renderer snapshots. It accepts
|
|
55
|
+
no canvas, user-captured pixels, DOM, player object, URL, filename,
|
|
56
|
+
adapter/device detail, coordinate or raw warning, performs no automatic
|
|
57
|
+
diagnostic capture or network/storage operation, and never registers
|
|
58
|
+
`/player-system`. Disabling the flag preserves ordinary structured-only bug
|
|
59
|
+
reporting.
|
|
60
|
+
|
|
24
61
|
## Install
|
|
25
62
|
|
|
26
63
|
```sh
|
|
@@ -429,6 +466,17 @@ without rebuilding scene buffers. `renderFrame(...)` also accepts an optional
|
|
|
429
466
|
guarantees at least the minimum full-screen pass, and frame stats report both
|
|
430
467
|
configured `samplesPerPixel` and actual `renderedSamplesPerPixel` so realtime
|
|
431
468
|
callers can budget motion frames without overstating delivered quality.
|
|
469
|
+
Before requesting a WebGPU device, the renderer derives the largest scene
|
|
470
|
+
storage binding from the normalized scene, mesh, and BVH records. It requests
|
|
471
|
+
the smallest sufficient `maxStorageBufferBindingSize` (and `maxBufferSize` only
|
|
472
|
+
when the WebGPU default is also exceeded), preserves stricter caller limits,
|
|
473
|
+
and rejects unsupported adapters before device creation. Default-sized scenes
|
|
474
|
+
do not elevate either size limit. `config.memory` and snapshot memory telemetry
|
|
475
|
+
describe the actual persistent GPU buffer descriptors: placeholder records,
|
|
476
|
+
combined BVH/emissive storage, mesh source buffers, aligned frame/build uniform
|
|
477
|
+
buffers, counters, and dispatch arguments are each counted exactly once;
|
|
478
|
+
`materialTableBytes` is zero because material data is packed into mesh and
|
|
479
|
+
triangle records rather than a standalone GPU buffer.
|
|
432
480
|
For consumers that want to hand wavefront SPP adaptation to
|
|
433
481
|
`@plasius/gpu-performance`, `createWavefrontAdaptiveSamplingLevels(...)` exposes
|
|
434
482
|
a bounded low-to-high ladder of per-frame `samplesPerPixel`,
|