@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 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
- - (placeholder)
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 Policy](https://img.shields.io/badge/security%20policy-yes-orange.svg)](./SECURITY.md)
9
9
  [![Changelog](https://img.shields.io/badge/changelog-md-blue.svg)](./CHANGELOG.md)
10
10
 
11
- [![license](https://img.shields.io/github/license/Plasius-LTD/gpu-renderer)](./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.0.12`), and validates its development tooling against the
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`,