@plasius/gpu-renderer 0.1.6 → 0.1.7

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
@@ -23,6 +23,36 @@ All notable changes to this project will be documented in this file.
23
23
  - **Security**
24
24
  - (placeholder)
25
25
 
26
+ ## [0.1.7] - 2026-03-14
27
+
28
+ - **Added**
29
+ - Added frame lifecycle hooks and frame-id generation support to
30
+ `createGpuRenderer(...)`.
31
+ - Added `createRendererDebugHooks(...)` for opt-in `@plasius/gpu-debug`
32
+ frame sampling tied to negotiated frame targets.
33
+ - Added ADR, TDR, and design docs for renderer frame hook integration.
34
+ - Added renderer worker profile and manifest exports for `realtime` and `xr`
35
+ DAG scheduling across `@plasius/gpu-worker` and
36
+ `@plasius/gpu-performance`.
37
+ - Added ADR, TDR, and design docs for renderer frame-stage DAG manifests.
38
+
39
+ - **Changed**
40
+ - Clarified renderer guidance for adaptive frame targets and debug
41
+ instrumentation.
42
+ - Clarified that frame hooks cover correlation while worker manifests cover
43
+ renderer stage scheduling.
44
+ - Raised the minimum `@plasius/gpu-xr` dependency to `^0.1.7` so npm
45
+ installs resolve the published adaptive XR session helpers by default.
46
+ - Updated GitHub Actions workflows to run JavaScript actions on Node 24,
47
+ refreshed core workflow action versions, and switched Codecov uploads to
48
+ the Codecov CLI.
49
+
50
+ - **Fixed**
51
+ - (placeholder)
52
+
53
+ - **Security**
54
+ - (placeholder)
55
+
26
56
  ## [0.1.6] - 2026-03-04
27
57
 
28
58
  - **Added**
@@ -81,3 +111,4 @@ All notable changes to this project will be documented in this file.
81
111
  [0.1.1]: https://github.com/Plasius-LTD/gpu-renderer/releases/tag/v0.1.1
82
112
  [0.1.2]: https://github.com/Plasius-LTD/gpu-renderer/releases/tag/v0.1.2
83
113
  [0.1.6]: https://github.com/Plasius-LTD/gpu-renderer/releases/tag/v0.1.6
114
+ [0.1.7]: https://github.com/Plasius-LTD/gpu-renderer/releases/tag/v0.1.7
package/README.md CHANGED
@@ -37,6 +37,50 @@ renderer.resize(window.innerWidth, window.innerHeight);
37
37
  renderer.start();
38
38
  ```
39
39
 
40
+ ## Adaptive Frame Hooks
41
+
42
+ `@plasius/gpu-renderer` now exposes frame lifecycle hooks so the app can pass
43
+ negotiated frame targets from `@plasius/gpu-performance` and opt into renderer
44
+ frame sampling for `@plasius/gpu-debug`.
45
+
46
+ ```js
47
+ import { createGpuRenderer, createRendererDebugHooks } from "@plasius/gpu-renderer";
48
+
49
+ const rendererDebugHooks = createRendererDebugHooks({
50
+ debugSession,
51
+ getTargetFrameTimeMs: () => governor.getSnapshot().targetFrameTimeMs,
52
+ });
53
+
54
+ const renderer = await createGpuRenderer({
55
+ canvas: "#scene",
56
+ frameIdFactory: ({ frame, xrActive }) => `scene.${xrActive ? "xr" : "flat"}.${frame}`,
57
+ ...rendererDebugHooks,
58
+ });
59
+ ```
60
+
61
+ ## Worker DAG Manifests
62
+
63
+ The renderer also publishes worker-facing frame-stage manifests so
64
+ `@plasius/gpu-performance` and `@plasius/gpu-worker` can reason about renderer
65
+ work as a multi-root DAG instead of a flat queue.
66
+
67
+ ```js
68
+ import { getRendererWorkerManifest } from "@plasius/gpu-renderer";
69
+
70
+ const realtimeManifest = getRendererWorkerManifest();
71
+ const xrManifest = getRendererWorkerManifest("xr");
72
+
73
+ console.log(realtimeManifest.jobs.map((job) => job.worker.jobType));
74
+ console.log(xrManifest.jobs.find((job) => job.key === "lateLatch"));
75
+ ```
76
+
77
+ - `realtime` publishes `acquire`, `visibility`, `mainEncode`, `postProcess`,
78
+ and `submit`.
79
+ - `xr` publishes `acquire`, `visibility`, `lateLatch`, `mainEncode`, and
80
+ `submit`.
81
+ - Jobs include queue class, priority, dependencies, adaptive budget levels, and
82
+ debug metadata such as allocation tags.
83
+
40
84
  ## XR integration
41
85
 
42
86
  ```js
@@ -56,8 +100,17 @@ renderer.bindXrManager(xr, {
56
100
 
57
101
  - `supportsWebGpu(options)`
58
102
  - `createGpuRenderer(options)`
103
+ - `createRendererDebugHooks(options)`
104
+ - `getRendererWorkerProfile(name?)`
105
+ - `getRendererWorkerManifest(name?)`
59
106
  - `bindRendererToXrManager(renderer, xrManager, options)`
60
107
  - `defaultRendererClearColor`
108
+ - `rendererDebugOwner`
109
+ - `rendererWorkerQueueClass`
110
+ - `defaultRendererWorkerProfile`
111
+ - `rendererWorkerProfiles`
112
+ - `rendererWorkerProfileNames`
113
+ - `rendererWorkerManifests`
61
114
 
62
115
  ## Demo
63
116
 
@@ -85,4 +138,6 @@ npm run pack:check
85
138
  - `src/index.js`: WebGPU renderer runtime and XR binding helper.
86
139
  - `src/index.d.ts`: public API typings.
87
140
  - `tests/package.test.js`: unit tests for renderer lifecycle behavior.
141
+ - `docs/design/worker-manifest-integration.md`: renderer frame-stage DAG model.
88
142
  - `docs/adrs/*`: architecture decisions for renderer runtime design.
143
+ - `docs/tdrs/*`: technical direction for frame hook integration.