@forgeax/engine-render 0.1.23 → 0.1.24
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/README.md +131 -9
- package/dist/assembly/bundler-contract.d.ts +9 -0
- package/dist/assembly/bundler-contract.d.ts.map +1 -0
- package/dist/assembly/device-feature-admission.d.ts +8 -0
- package/dist/assembly/device-feature-admission.d.ts.map +1 -1
- package/dist/assembly/extended-lighting-fallback.d.ts +13 -0
- package/dist/assembly/extended-lighting-fallback.d.ts.map +1 -0
- package/dist/assembly/factory.d.ts +7 -243
- package/dist/assembly/factory.d.ts.map +1 -1
- package/dist/assembly/material/assembly.d.ts +3 -2
- package/dist/assembly/material/assembly.d.ts.map +1 -1
- package/dist/assembly/material/standard-layer-projection.d.ts +10 -0
- package/dist/assembly/material/standard-layer-projection.d.ts.map +1 -0
- package/dist/assembly/material-shader-policy.d.ts +168 -0
- package/dist/assembly/material-shader-policy.d.ts.map +1 -0
- package/dist/assembly/material-shader-prewarm.d.ts +21 -0
- package/dist/assembly/material-shader-prewarm.d.ts.map +1 -0
- package/dist/assembly/mesh-ssbo-grow.d.ts +88 -0
- package/dist/assembly/mesh-ssbo-grow.d.ts.map +1 -0
- package/dist/assembly/recovery/device-loss-fanout.d.ts +14 -0
- package/dist/assembly/recovery/device-loss-fanout.d.ts.map +1 -0
- package/dist/assembly/recovery/generation.d.ts +46 -0
- package/dist/assembly/recovery/generation.d.ts.map +1 -0
- package/dist/assembly/recovery/recovery-attempt.d.ts +63 -0
- package/dist/assembly/recovery/recovery-attempt.d.ts.map +1 -0
- package/dist/assembly/recovery/renderer-recover.d.ts +115 -0
- package/dist/assembly/recovery/renderer-recover.d.ts.map +1 -0
- package/dist/assembly/renderer-facade.d.ts +10 -0
- package/dist/assembly/renderer-facade.d.ts.map +1 -0
- package/dist/assembly/renderer-frame-transaction.d.ts +17 -0
- package/dist/assembly/renderer-frame-transaction.d.ts.map +1 -1
- package/dist/assembly/renderer-helpers.d.ts +19 -0
- package/dist/assembly/renderer-helpers.d.ts.map +1 -0
- package/dist/assembly/renderer-lifecycle.d.ts +34 -0
- package/dist/assembly/renderer-lifecycle.d.ts.map +1 -1
- package/dist/assembly/shader-prewarm-policy.d.ts +15 -0
- package/dist/assembly/shader-prewarm-policy.d.ts.map +1 -0
- package/dist/assembly/webgpu-ready-contract.d.ts +9 -0
- package/dist/assembly/webgpu-ready-contract.d.ts.map +1 -0
- package/dist/assembly/webgpu-ready.d.ts +55 -0
- package/dist/assembly/webgpu-ready.d.ts.map +1 -0
- package/dist/assembly/webgpu-renderer.d.ts +152 -0
- package/dist/assembly/webgpu-renderer.d.ts.map +1 -0
- package/dist/authoring.mjs +1 -1
- package/dist/{chunk-4L3P6DT5.mjs → chunk-GE3SDD72.mjs} +37 -5
- package/dist/chunk-GE3SDD72.mjs.map +1 -0
- package/dist/{chunk-HZUPSYW7.mjs → chunk-KZFTK6DO.mjs} +102 -15
- package/dist/chunk-KZFTK6DO.mjs.map +1 -0
- package/dist/{chunk-FF7K3FSO.mjs → chunk-Q752SHI5.mjs} +89 -89
- package/dist/{chunk-FF7K3FSO.mjs.map → chunk-Q752SHI5.mjs.map} +1 -1
- package/dist/{chunk-QODA5UKU.mjs → chunk-RR5L4SRS.mjs} +2 -2
- package/dist/chunk-RR5L4SRS.mjs.map +1 -0
- package/dist/{chunk-YALPS44A.mjs → chunk-TFH5I7JJ.mjs} +47 -47
- package/dist/chunk-TFH5I7JJ.mjs.map +1 -0
- package/dist/{chunk-FBC4R44J.mjs → chunk-UQYS7FRM.mjs} +57 -57
- package/dist/chunk-UQYS7FRM.mjs.map +1 -0
- package/dist/{chunk-4NPUASZR.mjs → chunk-YKB5DQV7.mjs} +161 -19
- package/dist/chunk-YKB5DQV7.mjs.map +1 -0
- package/dist/{chunk-ZUWKAZ2I.mjs → chunk-YRUYGA4A.mjs} +615 -237
- package/dist/chunk-YRUYGA4A.mjs.map +1 -0
- package/dist/{chunk-DIYW3M5D.mjs → chunk-Z3YYH2MB.mjs} +2210 -2213
- package/dist/chunk-Z3YYH2MB.mjs.map +1 -0
- package/dist/construct-renderer.mjs +19841 -16190
- package/dist/construct-renderer.mjs.map +1 -1
- package/dist/device/device-scope.d.ts +2 -0
- package/dist/device/device-scope.d.ts.map +1 -1
- package/dist/device/gpu-residency.d.ts +24 -4
- package/dist/device/gpu-residency.d.ts.map +1 -1
- package/dist/environment/frame.d.ts +5 -0
- package/dist/environment/frame.d.ts.map +1 -1
- package/dist/environment/inspection.d.ts +7 -0
- package/dist/environment/inspection.d.ts.map +1 -1
- package/dist/environment/lifecycle.d.ts +20 -2
- package/dist/environment/lifecycle.d.ts.map +1 -1
- package/dist/errors/recover.d.ts +58 -2
- package/dist/errors/recover.d.ts.map +1 -1
- package/dist/errors/render.d.ts +13 -0
- package/dist/errors/render.d.ts.map +1 -1
- package/dist/extract/contracts.d.ts +899 -0
- package/dist/extract/contracts.d.ts.map +1 -0
- package/dist/features/host.d.ts +2 -0
- package/dist/features/host.d.ts.map +1 -1
- package/dist/features/prepared-gpu-work.d.ts +3 -0
- package/dist/features/prepared-gpu-work.d.ts.map +1 -1
- package/dist/features/prepared-graphics-store.d.ts +2 -0
- package/dist/features/prepared-graphics-store.d.ts.map +1 -1
- package/dist/gpu-driven/production-raster.d.ts +28 -0
- package/dist/gpu-driven/production-raster.d.ts.map +1 -1
- package/dist/gpu-scene.d.ts +1 -0
- package/dist/gpu-scene.d.ts.map +1 -1
- package/dist/ibl/IblPipelineCache.d.ts +7 -6
- package/dist/ibl/IblPipelineCache.d.ts.map +1 -1
- package/dist/ibl/skylight-bind-group.d.ts +7 -1
- package/dist/ibl/skylight-bind-group.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +6 -6
- package/dist/internal.mjs +6 -6
- package/dist/light-buffer-layout.d.ts +3 -0
- package/dist/light-buffer-layout.d.ts.map +1 -1
- package/dist/materials.d.ts +34 -10
- package/dist/materials.d.ts.map +1 -1
- package/dist/mesh-material-bindings.d.ts +56 -0
- package/dist/mesh-material-bindings.d.ts.map +1 -1
- package/dist/occlusion-proxy.d.ts +4 -0
- package/dist/occlusion-proxy.d.ts.map +1 -0
- package/dist/pbr-pipeline.d.ts +32 -9
- package/dist/pbr-pipeline.d.ts.map +1 -1
- package/dist/points-lines/prepare.d.ts +3 -0
- package/dist/points-lines/prepare.d.ts.map +1 -1
- package/dist/points-lines/standard-owner.d.ts +33 -0
- package/dist/points-lines/standard-owner.d.ts.map +1 -0
- package/dist/record/frame-snapshot.d.ts +5 -0
- package/dist/record/frame-snapshot.d.ts.map +1 -1
- package/dist/record/frame-targets.d.ts.map +1 -1
- package/dist/record/frame.d.ts +14 -2
- package/dist/record/frame.d.ts.map +1 -1
- package/dist/record/main-pass-geometry.d.ts +14 -1
- package/dist/record/main-pass-geometry.d.ts.map +1 -1
- package/dist/record/main-pass-material.d.ts +7 -17
- package/dist/record/main-pass-material.d.ts.map +1 -1
- package/dist/record/main-pass.d.ts.map +1 -1
- package/dist/record/mesh-ssbo.d.ts +11 -3
- package/dist/record/mesh-ssbo.d.ts.map +1 -1
- package/dist/record/recovery-pipeline.d.ts +30 -0
- package/dist/record/recovery-pipeline.d.ts.map +1 -0
- package/dist/record/render-context.d.ts +26 -4
- package/dist/record/render-context.d.ts.map +1 -1
- package/dist/record/typed-frame-graph.d.ts +1 -1
- package/dist/record/typed-frame-graph.d.ts.map +1 -1
- package/dist/recovery/render-system-candidate.d.ts +65 -0
- package/dist/recovery/render-system-candidate.d.ts.map +1 -0
- package/dist/render-contract.d.ts +64 -7
- package/dist/render-contract.d.ts.map +1 -1
- package/dist/render-system-extract-tail.d.ts +12 -0
- package/dist/render-system-extract-tail.d.ts.map +1 -0
- package/dist/render-system-extract.d.ts +156 -22
- package/dist/render-system-extract.d.ts.map +1 -1
- package/dist/render-system.d.ts +128 -4
- package/dist/render-system.d.ts.map +1 -1
- package/dist/scene/render-scene.d.ts +19 -0
- package/dist/scene/render-scene.d.ts.map +1 -1
- package/dist/temporal/frame-coordinator.d.ts.map +1 -1
- package/dist/temporal/index.mjs +6 -6
- package/dist/temporal/taa-history-store.d.ts +15 -1
- package/dist/temporal/taa-history-store.d.ts.map +1 -1
- package/dist/temporal/transaction.d.ts +5 -0
- package/dist/temporal/transaction.d.ts.map +1 -1
- package/package.json +20 -20
- package/src/__tests__/device-feature-admission.unit.test.ts +6 -0
- package/src/__tests__/device-loss-fanout.unit.test.ts +107 -0
- package/src/__tests__/device-scope-lifecycle.unit.test.ts +21 -0
- package/src/__tests__/environment-generation.integration.test.ts +23 -0
- package/src/__tests__/expose-renderer-errors.unit.test.ts +34 -0
- package/src/__tests__/factory-contract.integration.test.ts +122 -7
- package/src/__tests__/fallback-row-stride-surface.unit.test.ts +4 -1
- package/src/__tests__/ibl/face-uniforms.unit.test.ts +2 -0
- package/src/__tests__/ibl-residency-publication.unit.test.ts +113 -0
- package/src/__tests__/material-contract-inventory.unit.test.ts +24 -9
- package/src/__tests__/material-cooked-projection.unit.test.ts +19 -1
- package/src/__tests__/material-static-dynamic-route.unit.test.ts +29 -0
- package/src/__tests__/material-stride-surface.unit.test.ts +7 -3
- package/src/__tests__/materials-standard-contract.unit.test.ts +104 -0
- package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +1 -1
- package/src/__tests__/physical-clearcoat.integration.test.ts +89 -0
- package/src/__tests__/prepared-gpu-driven-pbr.integration.test.ts +1 -1
- package/src/__tests__/prepared-graphics-pipeline-warmup.unit.test.ts +1 -1
- package/src/__tests__/recover-error-policy-owner.unit.test.ts +6 -3
- package/src/__tests__/recovery-candidate-prepare.contract.test.ts +140 -0
- package/src/__tests__/renderer-factory-material-contract.unit.test.ts +85 -18
- package/src/__tests__/renderer-frame-generation-fence.integration.test.ts +47 -0
- package/src/__tests__/renderer-generation-assembly.unit.test.ts +77 -0
- package/src/__tests__/renderer-generation-failure.unit.test.ts +108 -0
- package/src/__tests__/renderer-producer-root-matrix.integration.test.ts +33 -0
- package/src/__tests__/renderer-recovery-capability-matrix.unit.test.ts +59 -0
- package/src/__tests__/renderer-recovery-contract.unit.test.ts +73 -0
- package/src/__tests__/renderer-recovery-lifecycle.unit.test.ts +216 -0
- package/src/__tests__/renderer-target-history-recovery.integration.test.ts +80 -0
- package/src/__tests__/shader-manifest-fixture.ts +13 -16
- package/src/__tests__/shader-stage-surface.unit.test.ts +1 -1
- package/src/__tests__/standard-layer-projection.unit.test.ts +23 -0
- package/src/__tests__/transmission-prewarm.unit.test.ts +95 -85
- package/src/__tests__/volumetric-fog-topology.unit.test.ts +3 -1
- package/src/assembly/bundler-contract.ts +9 -0
- package/src/assembly/device-feature-admission.ts +15 -5
- package/src/assembly/extended-lighting-fallback.ts +216 -0
- package/src/assembly/factory.ts +81 -10088
- package/src/assembly/material/assembly.ts +18 -2
- package/src/assembly/material/standard-layer-projection.ts +16 -0
- package/src/assembly/material-shader-policy.ts +854 -0
- package/src/assembly/material-shader-prewarm.ts +88 -0
- package/src/assembly/mesh-ssbo-grow.ts +270 -0
- package/src/assembly/recovery/device-loss-fanout.ts +89 -0
- package/src/assembly/recovery/generation.ts +141 -0
- package/src/assembly/recovery/recovery-attempt.ts +800 -0
- package/src/assembly/recovery/renderer-recover.ts +906 -0
- package/src/assembly/renderer-facade.ts +342 -0
- package/src/assembly/renderer-frame-transaction.ts +45 -0
- package/src/assembly/renderer-helpers.ts +99 -0
- package/src/assembly/renderer-lifecycle.ts +159 -0
- package/src/assembly/shader-prewarm-policy.ts +157 -0
- package/src/assembly/webgpu-ready-contract.ts +14 -0
- package/src/assembly/webgpu-ready.ts +4079 -0
- package/src/assembly/webgpu-renderer.ts +4095 -0
- package/src/components/camera.ts +1 -1
- package/src/debug-draw-glue.ts +1 -1
- package/src/device/device-scope.ts +35 -6
- package/src/device/gpu-residency.ts +194 -26
- package/src/environment/frame.ts +6 -0
- package/src/environment/inspection.ts +10 -0
- package/src/environment/lifecycle.ts +114 -8
- package/src/errors/recover.ts +76 -5
- package/src/errors/render.ts +17 -0
- package/src/extract/contracts.ts +974 -0
- package/src/features/host.ts +16 -0
- package/src/features/prepared-gpu-work.ts +20 -2
- package/src/features/prepared-graphics-store.ts +17 -0
- package/src/gpu-driven/production-raster.ts +97 -2
- package/src/gpu-scene.ts +3 -2
- package/src/ibl/IblPipelineCache.ts +134 -50
- package/src/ibl/skylight-bind-group.ts +26 -0
- package/src/index.ts +9 -1
- package/src/light-buffer-layout.ts +3 -0
- package/src/materials.ts +262 -45
- package/src/mesh-material-bindings.ts +59 -0
- package/src/occlusion-proxy.ts +64 -0
- package/src/pbr-pipeline.ts +139 -15
- package/src/points-lines/__tests__/cache-recovery.unit.test.ts +22 -0
- package/src/points-lines/prepare.ts +9 -0
- package/src/points-lines/standard-owner.ts +403 -0
- package/src/record/__tests__/frame-targets-recovery.unit.test.ts +60 -0
- package/src/record/__tests__/main-pass-geometry.unit.test.ts +26 -1
- package/src/record/__tests__/mesh-ssbo.unit.test.ts +38 -0
- package/src/record/__tests__/recovery-pipeline.unit.test.ts +124 -0
- package/src/record/__tests__/sprite-material-abi.unit.test.ts +28 -13
- package/src/record/__tests__/standard-pbr-ubo-layout.unit.test.ts +47 -4
- package/src/record/__tests__/temporal-payload.unit.test.ts +22 -43
- package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +1 -1
- package/src/record/frame-snapshot.ts +15 -0
- package/src/record/frame-targets.ts +11 -1
- package/src/record/frame.ts +6 -2
- package/src/record/helpers.ts +1 -1
- package/src/record/main-pass-geometry.ts +230 -5
- package/src/record/main-pass-material.ts +316 -209
- package/src/record/main-pass-sprite-draws.ts +6 -7
- package/src/record/main-pass.ts +94 -6
- package/src/record/mesh-ssbo.ts +32 -10
- package/src/record/recovery-pipeline.ts +695 -0
- package/src/record/render-context.ts +35 -4
- package/src/record/typed-frame-graph.ts +45 -1
- package/src/record/view-ubo.ts +3 -3
- package/src/recovery/render-system-candidate.ts +839 -0
- package/src/render-contract.ts +65 -7
- package/src/render-system-extract-tail.ts +2983 -0
- package/src/render-system-extract.ts +124 -2977
- package/src/render-system.ts +868 -659
- package/src/scene/render-scene.ts +124 -1
- package/src/temporal/frame-coordinator.ts +4 -1
- package/src/temporal/taa-history-store.ts +46 -2
- package/src/temporal/temporal-view.ts +1 -1
- package/src/temporal/transaction.ts +9 -0
- package/src/tilemap-chunk-extract-system.ts +1 -1
- package/src/transmission/__tests__/standard-transmission.dawn.test.ts +19 -12
- package/dist/chunk-4L3P6DT5.mjs.map +0 -1
- package/dist/chunk-4NPUASZR.mjs.map +0 -1
- package/dist/chunk-DIYW3M5D.mjs.map +0 -1
- package/dist/chunk-FBC4R44J.mjs.map +0 -1
- package/dist/chunk-HZUPSYW7.mjs.map +0 -1
- package/dist/chunk-QODA5UKU.mjs.map +0 -1
- package/dist/chunk-YALPS44A.mjs.map +0 -1
- package/dist/chunk-ZUWKAZ2I.mjs.map +0 -1
package/src/render-contract.ts
CHANGED
|
@@ -26,6 +26,7 @@ import type { ImageError } from '@forgeax/engine-types';
|
|
|
26
26
|
import type { RhiBackendInstrumentation } from './assembly/backend-contract';
|
|
27
27
|
import type { Antialias, BloomEnabled, Tonemap } from './components/camera';
|
|
28
28
|
import type { EnvironmentInspection } from './environment/inspection';
|
|
29
|
+
import type { RecoveryOutcome, RecoveryPhase } from './errors/recover';
|
|
29
30
|
import type { RenderError } from './errors/render';
|
|
30
31
|
import type { RenderFeature, RenderFeatureDiagnostics } from './features/types';
|
|
31
32
|
import type { PostProcessShaderEntry } from './fullscreen-post-process-pass';
|
|
@@ -56,7 +57,10 @@ import type { TemporalInspection } from './temporal/inspection';
|
|
|
56
57
|
export type { TransmissionInspection } from './inspection-types';
|
|
57
58
|
export type { PointsLinesInspection } from './points-lines/inspection';
|
|
58
59
|
|
|
59
|
-
import type {
|
|
60
|
+
import type {
|
|
61
|
+
IblBindingInspection,
|
|
62
|
+
MeshMaterialBindingObservation,
|
|
63
|
+
} from './mesh-material-bindings';
|
|
60
64
|
import type { StandardLightingInspection } from './pipeline/standard-lighting/inspection';
|
|
61
65
|
import type { StandardProfile } from './pipeline/standard-profile';
|
|
62
66
|
import type { PointShadowInspection } from './point-shadow-inspection';
|
|
@@ -284,8 +288,10 @@ export interface SpotLightProjectorFrameContext {
|
|
|
284
288
|
}
|
|
285
289
|
|
|
286
290
|
/**
|
|
287
|
-
* The sole public renderer contract.
|
|
288
|
-
*
|
|
291
|
+
* The sole public renderer contract. Consume it in this order:
|
|
292
|
+
* `state()` -> `inspect()` -> `recover()` when degraded -> `draw()` and its
|
|
293
|
+
* `FrameReceipt`. Concrete assembly stays behind the host; callers retain only
|
|
294
|
+
* leases, receipts, inspection PODs, and recovery Result values.
|
|
289
295
|
*/
|
|
290
296
|
export interface Renderer {
|
|
291
297
|
attach(world: World): RenderResult<RenderWorldLease, RenderError>;
|
|
@@ -319,7 +325,12 @@ export interface Renderer {
|
|
|
319
325
|
dispose(): Promise<RenderResult<void, RenderError>>;
|
|
320
326
|
}
|
|
321
327
|
|
|
322
|
-
/**
|
|
328
|
+
/**
|
|
329
|
+
* The single public renderer lifecycle authority. This closed union is the
|
|
330
|
+
* frame gate: only `alive` admits World update and draw; `device-lost` and
|
|
331
|
+
* `recovering` are explicit recovery states; `faulted` requires recreation;
|
|
332
|
+
* `disposed` is terminal.
|
|
333
|
+
*/
|
|
323
334
|
export type RendererState = 'alive' | 'device-lost' | 'recovering' | 'faulted' | 'disposed';
|
|
324
335
|
|
|
325
336
|
/** Immutable, inspectable quality and budget policy for the Standard pipeline. */
|
|
@@ -374,8 +385,9 @@ export interface FrameObservationRequest {
|
|
|
374
385
|
|
|
375
386
|
/**
|
|
376
387
|
* Immutable synchronous proof that the sole host-owned submit reached the
|
|
377
|
-
* queue. It is the only successful synchronous draw signal
|
|
378
|
-
* every observation request
|
|
388
|
+
* queue. It is the only successful synchronous draw signal. Its
|
|
389
|
+
* `deviceGeneration` fences stale work, and every observation request must use
|
|
390
|
+
* this exact receipt; a recovery retry must obtain a new one.
|
|
379
391
|
*/
|
|
380
392
|
export interface FrameReceipt {
|
|
381
393
|
readonly frameId: number;
|
|
@@ -463,10 +475,26 @@ export interface RenderObservationInspection {
|
|
|
463
475
|
* Detached renderer facts for host diagnostics and capability selection.
|
|
464
476
|
*
|
|
465
477
|
* The snapshot contains only POD values. It never exposes a device, queue,
|
|
466
|
-
* registry, encoder, or live renderer-owned collection.
|
|
478
|
+
* registry, encoder, or live renderer-owned collection. Read `state` and the
|
|
479
|
+
* bounded `recovery` detail before choosing to wait, retry, repair an owner,
|
|
480
|
+
* or recreate the Renderer; this projection is not a proof of Browser/Dawn
|
|
481
|
+
* execution.
|
|
467
482
|
*/
|
|
468
483
|
export interface RenderInspection {
|
|
469
484
|
readonly state: RendererState;
|
|
485
|
+
/** Bounded detached facts for the current or last recovery attempt. */
|
|
486
|
+
readonly recovery: {
|
|
487
|
+
readonly phase: RecoveryPhase | null;
|
|
488
|
+
readonly fromGeneration: number;
|
|
489
|
+
readonly candidateGeneration: number;
|
|
490
|
+
readonly attempt: number;
|
|
491
|
+
readonly elapsedMs: number;
|
|
492
|
+
readonly lastOutcome: RecoveryOutcome;
|
|
493
|
+
readonly failedOwner?: string;
|
|
494
|
+
readonly failedResourceKind?: string;
|
|
495
|
+
readonly rehydratedRoots: number;
|
|
496
|
+
readonly staleLossEvents: number;
|
|
497
|
+
};
|
|
470
498
|
readonly surface: 'available' | 'released';
|
|
471
499
|
readonly profile: RenderProfile;
|
|
472
500
|
readonly capabilities: Readonly<RhiCaps>;
|
|
@@ -492,11 +520,41 @@ export interface RenderInspection {
|
|
|
492
520
|
/** Renderer-owned point-shadow atlas budget facts from the last frame. */
|
|
493
521
|
readonly pointShadow?: PointShadowInspection;
|
|
494
522
|
readonly meshMaterialBindings: readonly MeshMaterialBindingObservation[];
|
|
523
|
+
/** Final-submit Standard IBL binding-chain receipt, when diagnostics ran. */
|
|
524
|
+
readonly iblBinding?: IblBindingInspection;
|
|
495
525
|
readonly perFramePassNames: readonly string[];
|
|
496
526
|
readonly bindGroupCounts: {
|
|
497
527
|
readonly createBindGroup: number;
|
|
498
528
|
readonly keys: readonly string[];
|
|
499
529
|
};
|
|
530
|
+
/**
|
|
531
|
+
* Recovery evidence projected from production owners. Graph, residency,
|
|
532
|
+
* submit, and receipt fields are observations, not recovery test fixtures.
|
|
533
|
+
*/
|
|
534
|
+
readonly recoveryEvidence: {
|
|
535
|
+
readonly producerRoots: readonly {
|
|
536
|
+
readonly kind: string;
|
|
537
|
+
readonly owner: string;
|
|
538
|
+
readonly candidateScope: 'device-scope';
|
|
539
|
+
readonly visibility: 'visible-workset' | 'non-visible-lazy';
|
|
540
|
+
readonly disabledWork: 'zero' | 'lazy';
|
|
541
|
+
}[];
|
|
542
|
+
readonly graph: {
|
|
543
|
+
readonly ready: boolean;
|
|
544
|
+
readonly generation: number;
|
|
545
|
+
readonly passCount: number;
|
|
546
|
+
readonly resourceCount: number;
|
|
547
|
+
};
|
|
548
|
+
readonly residency: { readonly meshResidencyEpoch: number };
|
|
549
|
+
readonly submissions: {
|
|
550
|
+
readonly count: number;
|
|
551
|
+
readonly lastGeneration: number | undefined;
|
|
552
|
+
};
|
|
553
|
+
readonly receipts: {
|
|
554
|
+
readonly count: number;
|
|
555
|
+
readonly lastGeneration: number | undefined;
|
|
556
|
+
};
|
|
557
|
+
};
|
|
500
558
|
/** Output transform facts; never includes fixture metrics or pixel bytes. */
|
|
501
559
|
readonly outputTransform?: typeof STANDARD_OUTPUT_TRANSFORM_FEATURE_ID;
|
|
502
560
|
readonly displayEncoded: boolean;
|