@forgeax/engine-render 0.1.32 → 0.1.34
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 +1374 -142
- package/dist/assembly/analytic-fog-registration.d.ts +3 -0
- package/dist/assembly/analytic-fog-registration.d.ts.map +1 -0
- package/dist/assembly/backend-contract.d.ts +2 -0
- package/dist/assembly/backend-contract.d.ts.map +1 -1
- package/dist/assembly/barrel-distortion-inspection.d.ts +3 -0
- package/dist/assembly/barrel-distortion-inspection.d.ts.map +1 -0
- package/dist/assembly/canvas-draw-guard.d.ts +3 -0
- package/dist/assembly/canvas-draw-guard.d.ts.map +1 -0
- package/dist/assembly/cloud-shadow-entry.d.ts +4 -0
- package/dist/assembly/cloud-shadow-entry.d.ts.map +1 -0
- package/dist/assembly/dynamic-geometry-host.d.ts +4 -1
- package/dist/assembly/dynamic-geometry-host.d.ts.map +1 -1
- package/dist/assembly/dynamic-geometry-runtime.d.ts +1 -1
- package/dist/assembly/dynamic-geometry-runtime.d.ts.map +1 -1
- package/dist/assembly/factory.d.ts +1 -1
- package/dist/assembly/factory.d.ts.map +1 -1
- package/dist/assembly/fxaa-registration.d.ts +4 -0
- package/dist/assembly/fxaa-registration.d.ts.map +1 -0
- package/dist/assembly/host-contract.d.ts +3 -3
- package/dist/assembly/host-contract.d.ts.map +1 -1
- package/dist/assembly/lod-observation.d.ts +4 -0
- package/dist/assembly/lod-observation.d.ts.map +1 -0
- package/dist/assembly/material/assembly.d.ts.map +1 -1
- package/dist/assembly/material/pipeline-helpers.d.ts +5 -0
- package/dist/assembly/material/pipeline-helpers.d.ts.map +1 -1
- package/dist/assembly/material-shader-policy.d.ts +16 -2
- package/dist/assembly/material-shader-policy.d.ts.map +1 -1
- package/dist/assembly/material-shader-prewarm.d.ts.map +1 -1
- package/dist/assembly/motion-blur-registration.d.ts +3 -0
- package/dist/assembly/motion-blur-registration.d.ts.map +1 -0
- package/dist/assembly/recovery/device-loss-fanout.d.ts.map +1 -1
- package/dist/assembly/recovery/renderer-recover.d.ts +2 -0
- package/dist/assembly/recovery/renderer-recover.d.ts.map +1 -1
- package/dist/assembly/render-feature-post-processes.d.ts +6 -0
- package/dist/assembly/render-feature-post-processes.d.ts.map +1 -0
- package/dist/assembly/renderer-facade.d.ts.map +1 -1
- package/dist/assembly/renderer-feature-inspection.d.ts +1 -1
- package/dist/assembly/renderer-feature-inspection.d.ts.map +1 -1
- package/dist/assembly/renderer-frame-transaction.d.ts +12 -0
- package/dist/assembly/renderer-frame-transaction.d.ts.map +1 -1
- package/dist/assembly/renderer-inspection.d.ts +11 -0
- package/dist/assembly/renderer-inspection.d.ts.map +1 -1
- package/dist/assembly/temporal-post-process-prewarm.d.ts +13 -0
- package/dist/assembly/temporal-post-process-prewarm.d.ts.map +1 -0
- package/dist/assembly/webgpu-pbr-ready.d.ts +1 -0
- package/dist/assembly/webgpu-pbr-ready.d.ts.map +1 -1
- package/dist/assembly/webgpu-ready-contract.d.ts +4 -3
- package/dist/assembly/webgpu-ready-contract.d.ts.map +1 -1
- package/dist/assembly/webgpu-ready-per-pass.d.ts +39 -0
- package/dist/assembly/webgpu-ready-per-pass.d.ts.map +1 -0
- package/dist/assembly/webgpu-ready.d.ts +2 -2
- package/dist/assembly/webgpu-ready.d.ts.map +1 -1
- package/dist/assembly/webgpu-renderer-bootstrap.d.ts.map +1 -1
- package/dist/assembly/webgpu-renderer-observation-owner.d.ts +35 -0
- package/dist/assembly/webgpu-renderer-observation-owner.d.ts.map +1 -0
- package/dist/assembly/webgpu-renderer.d.ts +1 -1
- package/dist/assembly/webgpu-renderer.d.ts.map +1 -1
- package/dist/authoring.mjs +1 -1
- package/dist/barrel-distortion.d.ts +47 -0
- package/dist/barrel-distortion.d.ts.map +1 -0
- package/dist/bloom-admission.d.ts +13 -0
- package/dist/bloom-admission.d.ts.map +1 -0
- package/dist/{chunk-PA5DRJNI.mjs → chunk-ELJFJ2BU.mjs} +2 -2
- package/dist/chunk-ELJFJ2BU.mjs.map +1 -0
- package/dist/{chunk-JCIRYQ4V.mjs → chunk-HEB564WF.mjs} +10 -4
- package/dist/chunk-HEB564WF.mjs.map +1 -0
- package/dist/{chunk-JRIPCMYC.mjs → chunk-MKDIT2EM.mjs} +1584 -375
- package/dist/chunk-MKDIT2EM.mjs.map +1 -0
- package/dist/{chunk-S665NJNF.mjs → chunk-OCDLEI6I.mjs} +3 -3
- package/dist/{chunk-S665NJNF.mjs.map → chunk-OCDLEI6I.mjs.map} +1 -1
- package/dist/chunk-ODZWR6JQ.mjs +4927 -0
- package/dist/chunk-ODZWR6JQ.mjs.map +1 -0
- package/dist/{chunk-DRR7D3KX.mjs → chunk-SHFUFJ5N.mjs} +192 -18
- package/dist/chunk-SHFUFJ5N.mjs.map +1 -0
- package/dist/{chunk-4NNZQCL3.mjs → chunk-UI5SFODX.mjs} +223 -277
- package/dist/chunk-UI5SFODX.mjs.map +1 -0
- package/dist/{chunk-GWCEMDVR.mjs → chunk-UINHLCZA.mjs} +787 -80
- package/dist/chunk-UINHLCZA.mjs.map +1 -0
- package/dist/{chunk-6TFBXLRJ.mjs → chunk-WEX45HKH.mjs} +222 -337
- package/dist/chunk-WEX45HKH.mjs.map +1 -0
- package/dist/cloud/density.d.ts +55 -0
- package/dist/cloud/density.d.ts.map +1 -0
- package/dist/cloud/extract.d.ts +25 -0
- package/dist/cloud/extract.d.ts.map +1 -0
- package/dist/cloud/feature.d.ts +57 -0
- package/dist/cloud/feature.d.ts.map +1 -0
- package/dist/cloud/frame-context.d.ts +8 -0
- package/dist/cloud/frame-context.d.ts.map +1 -0
- package/dist/cloud/inspection.d.ts +59 -0
- package/dist/cloud/inspection.d.ts.map +1 -0
- package/dist/cloud/optics.d.ts +56 -0
- package/dist/cloud/optics.d.ts.map +1 -0
- package/dist/cloud/parameters.d.ts +73 -0
- package/dist/cloud/parameters.d.ts.map +1 -0
- package/dist/cloud/resources.d.ts +60 -0
- package/dist/cloud/resources.d.ts.map +1 -0
- package/dist/cloud/shadow.d.ts +42 -0
- package/dist/cloud/shadow.d.ts.map +1 -0
- package/dist/cloud/temporal.d.ts +74 -0
- package/dist/cloud/temporal.d.ts.map +1 -0
- package/dist/components/atmosphere.d.ts +2 -0
- package/dist/components/atmosphere.d.ts.map +1 -1
- package/dist/components/barrel-distortion.d.ts +13 -0
- package/dist/components/barrel-distortion.d.ts.map +1 -0
- package/dist/components/camera.d.ts +20 -4
- package/dist/components/camera.d.ts.map +1 -1
- package/dist/components/cloud-layer.d.ts +29 -0
- package/dist/components/cloud-layer.d.ts.map +1 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/instances.d.ts +20 -6
- package/dist/components/instances.d.ts.map +1 -1
- package/dist/components/mesh-filter.d.ts +6 -5
- package/dist/components/mesh-filter.d.ts.map +1 -1
- package/dist/components/motion-blur.d.ts +1 -0
- package/dist/components/motion-blur.d.ts.map +1 -1
- package/dist/construct-renderer.d.ts +1 -1
- package/dist/construct-renderer.d.ts.map +1 -1
- package/dist/construct-renderer.mjs +9751 -3528
- package/dist/construct-renderer.mjs.map +1 -1
- package/dist/device/gpu-residency.d.ts +6 -0
- package/dist/device/gpu-residency.d.ts.map +1 -1
- package/dist/dynamic-geometry.d.ts +5 -1
- package/dist/dynamic-geometry.d.ts.map +1 -1
- package/dist/environment/analytic-fog.d.ts +6 -0
- package/dist/environment/analytic-fog.d.ts.map +1 -0
- package/dist/errors/cloud.d.ts +59 -0
- package/dist/errors/cloud.d.ts.map +1 -0
- package/dist/errors/render.d.ts +23 -5
- package/dist/errors/render.d.ts.map +1 -1
- package/dist/examples/single-layer-medium-surface.d.ts +47 -0
- package/dist/examples/single-layer-medium-surface.d.ts.map +1 -0
- package/dist/extract/camera.d.ts.map +1 -1
- package/dist/extract/contracts.d.ts +12 -1
- package/dist/extract/contracts.d.ts.map +1 -1
- package/dist/extract/environment.d.ts +2 -0
- package/dist/extract/environment.d.ts.map +1 -1
- package/dist/features/barrel-distortion.d.ts +29 -0
- package/dist/features/barrel-distortion.d.ts.map +1 -0
- package/dist/features/error-reporting.d.ts +17 -0
- package/dist/features/error-reporting.d.ts.map +1 -0
- package/dist/features/host.d.ts +15 -0
- package/dist/features/host.d.ts.map +1 -1
- package/dist/features/motion-blur/motion-blur-feature.d.ts +20 -2
- package/dist/features/motion-blur/motion-blur-feature.d.ts.map +1 -1
- package/dist/features/motion-blur/motion-blur-params.d.ts +21 -0
- package/dist/features/motion-blur/motion-blur-params.d.ts.map +1 -1
- package/dist/features/motion-blur/motion-blur-runtime.d.ts +54 -0
- package/dist/features/motion-blur/motion-blur-runtime.d.ts.map +1 -0
- package/dist/features/plan.d.ts +15 -4
- package/dist/features/plan.d.ts.map +1 -1
- package/dist/features/prepared-gpu-work.d.ts +9 -5
- package/dist/features/prepared-gpu-work.d.ts.map +1 -1
- package/dist/features/render-graph-compute.d.ts.map +1 -1
- package/dist/features/render-graph-contribution.d.ts +5 -0
- package/dist/features/render-graph-contribution.d.ts.map +1 -1
- package/dist/features/render-graph-raster.d.ts +1 -0
- package/dist/features/render-graph-raster.d.ts.map +1 -1
- package/dist/features/targets.d.ts +2 -0
- package/dist/features/targets.d.ts.map +1 -1
- package/dist/features/types.d.ts +44 -0
- package/dist/features/types.d.ts.map +1 -1
- package/dist/fullscreen-post-process-pass.d.ts +15 -7
- package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
- package/dist/gpu-dirty-ranges.d.ts +11 -0
- package/dist/gpu-dirty-ranges.d.ts.map +1 -0
- package/dist/gpu-driven/batch-topology.d.ts +17 -0
- package/dist/gpu-driven/batch-topology.d.ts.map +1 -1
- package/dist/gpu-driven/material-artifacts.d.ts +6 -0
- package/dist/gpu-driven/material-artifacts.d.ts.map +1 -1
- package/dist/gpu-driven/prepared-draw.d.ts +7 -0
- package/dist/gpu-driven/prepared-draw.d.ts.map +1 -1
- package/dist/gpu-driven/production-raster-material.d.ts +178 -0
- package/dist/gpu-driven/production-raster-material.d.ts.map +1 -0
- package/dist/gpu-driven/production-raster.d.ts +50 -4
- package/dist/gpu-driven/production-raster.d.ts.map +1 -1
- package/dist/gpu-driven/resource-allocation.d.ts +31 -0
- package/dist/gpu-driven/resource-allocation.d.ts.map +1 -0
- package/dist/gpu-driven/shadow-ownership.d.ts +14 -0
- package/dist/gpu-driven/shadow-ownership.d.ts.map +1 -0
- package/dist/gpu-driven/view-gpu.d.ts +35 -2
- package/dist/gpu-driven/view-gpu.d.ts.map +1 -1
- package/dist/gpu-scene.d.ts +11 -1
- package/dist/gpu-scene.d.ts.map +1 -1
- package/dist/hdrp-buffers.d.ts +2 -2
- package/dist/hdrp-buffers.d.ts.map +1 -1
- package/dist/ibl/skylight-bind-group.d.ts +10 -1
- package/dist/ibl/skylight-bind-group.d.ts.map +1 -1
- package/dist/index.d.ts +31 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +258 -8
- package/dist/index.mjs.map +1 -1
- package/dist/inspection-types.d.ts +178 -3
- package/dist/inspection-types.d.ts.map +1 -1
- package/dist/instance-buffer-cache.d.ts +4 -4
- package/dist/instance-buffer-cache.d.ts.map +1 -1
- package/dist/instances.d.ts +49 -94
- package/dist/instances.d.ts.map +1 -1
- package/dist/internal.mjs +7 -7
- package/dist/pbr-pipeline.d.ts +19 -1
- package/dist/pbr-pipeline.d.ts.map +1 -1
- package/dist/pipeline/single-layer-medium-passes.d.ts +73 -0
- package/dist/pipeline/single-layer-medium-passes.d.ts.map +1 -0
- package/dist/pipeline/standard-forward-lane.d.ts.map +1 -1
- package/dist/pipeline/standard-output/graph.d.ts.map +1 -1
- package/dist/pipeline/standard-output/types.d.ts +4 -2
- package/dist/pipeline/standard-output/types.d.ts.map +1 -1
- package/dist/pipeline/standard-pipeline.d.ts.map +1 -1
- package/dist/pipeline/standard-post.d.ts +28 -19
- package/dist/pipeline/standard-post.d.ts.map +1 -1
- package/dist/pipeline-builder.d.ts +1 -1
- package/dist/pipeline-builder.d.ts.map +1 -1
- package/dist/pipeline-spec.d.ts +2 -2
- package/dist/plugin.d.ts.map +1 -1
- package/dist/prepare/prepared-graphics-resolver.d.ts +2 -0
- package/dist/prepare/prepared-graphics-resolver.d.ts.map +1 -1
- package/dist/record/barrel-distortion-frame.d.ts +15 -0
- package/dist/record/barrel-distortion-frame.d.ts.map +1 -0
- package/dist/record/dynamic-geometry-consumption.d.ts +10 -2
- package/dist/record/dynamic-geometry-consumption.d.ts.map +1 -1
- package/dist/record/fold-buckets.d.ts +95 -0
- package/dist/record/fold-buckets.d.ts.map +1 -0
- package/dist/record/fold-instance-buffer.d.ts +6 -0
- package/dist/record/fold-instance-buffer.d.ts.map +1 -0
- package/dist/record/frame-lighting.d.ts +1 -0
- package/dist/record/frame-lighting.d.ts.map +1 -1
- package/dist/record/frame-snapshot.d.ts +40 -3
- 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 -62
- package/dist/record/frame.d.ts.map +1 -1
- package/dist/record/gpu-draw-receipts.d.ts +11 -0
- package/dist/record/gpu-draw-receipts.d.ts.map +1 -0
- package/dist/record/gpu-timing.d.ts +8 -0
- package/dist/record/gpu-timing.d.ts.map +1 -1
- package/dist/record/main-pass-geometry.d.ts +21 -5
- package/dist/record/main-pass-geometry.d.ts.map +1 -1
- package/dist/record/main-pass-material.d.ts +7 -1
- package/dist/record/main-pass-material.d.ts.map +1 -1
- package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
- package/dist/record/main-pass.d.ts +13 -2
- package/dist/record/main-pass.d.ts.map +1 -1
- package/dist/record/mesh-ssbo.d.ts +6 -5
- package/dist/record/mesh-ssbo.d.ts.map +1 -1
- package/dist/record/motion-blur-receipt.d.ts +11 -0
- package/dist/record/motion-blur-receipt.d.ts.map +1 -0
- package/dist/record/probe-blend-buffer.d.ts +16 -0
- package/dist/record/probe-blend-buffer.d.ts.map +1 -0
- package/dist/record/recovery-pipeline.d.ts.map +1 -1
- package/dist/record/render-context.d.ts +34 -31
- package/dist/record/render-context.d.ts.map +1 -1
- package/dist/record/shadow-pass.d.ts +2 -0
- package/dist/record/shadow-pass.d.ts.map +1 -1
- package/dist/record/skybox-post-pass.d.ts +6 -4
- package/dist/record/skybox-post-pass.d.ts.map +1 -1
- package/dist/record/typed-frame-graph.d.ts +22 -2
- package/dist/record/typed-frame-graph.d.ts.map +1 -1
- package/dist/record/view-ubo.d.ts +11 -3
- package/dist/record/view-ubo.d.ts.map +1 -1
- package/dist/record/volume-params.d.ts +9 -0
- package/dist/record/volume-params.d.ts.map +1 -0
- package/dist/recovery/render-system-candidate.d.ts +10 -0
- package/dist/recovery/render-system-candidate.d.ts.map +1 -1
- package/dist/reflection/record-owner.d.ts.map +1 -1
- package/dist/render-contract.d.ts +66 -8
- package/dist/render-contract.d.ts.map +1 -1
- package/dist/render-graph-primitives.d.ts.map +1 -1
- package/dist/render-pipeline.d.ts +106 -3
- package/dist/render-pipeline.d.ts.map +1 -1
- package/dist/render-system-extract-tail.d.ts +3 -2
- package/dist/render-system-extract-tail.d.ts.map +1 -1
- package/dist/render-system-extract.d.ts +24 -10
- package/dist/render-system-extract.d.ts.map +1 -1
- package/dist/render-system-presentation.d.ts +23 -0
- package/dist/render-system-presentation.d.ts.map +1 -0
- package/dist/render-system-producer-roots.d.ts +10 -0
- package/dist/render-system-producer-roots.d.ts.map +1 -0
- package/dist/render-system-residency.d.ts +12 -0
- package/dist/render-system-residency.d.ts.map +1 -0
- package/dist/render-system.d.ts +26 -15
- package/dist/render-system.d.ts.map +1 -1
- package/dist/scene/probe-blend.d.ts +27 -0
- package/dist/scene/probe-blend.d.ts.map +1 -1
- package/dist/scene/render-scene.d.ts +14 -5
- package/dist/scene/render-scene.d.ts.map +1 -1
- package/dist/ssao-buffers.d.ts +9 -0
- package/dist/ssao-buffers.d.ts.map +1 -1
- package/dist/surface/dynamic-input.d.ts +133 -0
- package/dist/surface/dynamic-input.d.ts.map +1 -0
- package/dist/surface/gpu-driven.d.ts +41 -0
- package/dist/surface/gpu-driven.d.ts.map +1 -0
- package/dist/surface/submission-observation.d.ts +136 -0
- package/dist/surface/submission-observation.d.ts.map +1 -0
- package/dist/systems/skin-palette-allocator.d.ts.map +1 -1
- package/dist/temporal/frame-coordinator.d.ts.map +1 -1
- package/dist/temporal/frame.d.ts +7 -0
- package/dist/temporal/frame.d.ts.map +1 -1
- package/dist/temporal/gpu.d.ts +13 -1
- package/dist/temporal/gpu.d.ts.map +1 -1
- package/dist/temporal/index.mjs +5 -5
- package/dist/temporal/inspection.d.ts.map +1 -1
- package/dist/temporal/standard-scene-data.d.ts.map +1 -1
- package/dist/temporal/target-coverage-attachment.d.ts.map +1 -1
- package/dist/temporal/view.d.ts +6 -1
- package/dist/temporal/view.d.ts.map +1 -1
- package/dist/transmission/single-layer-medium.d.ts +89 -0
- package/dist/transmission/single-layer-medium.d.ts.map +1 -0
- package/dist/typed-render-graph-primitives.d.ts +24 -9
- package/dist/typed-render-graph-primitives.d.ts.map +1 -1
- package/dist/volume/component.d.ts +9 -5
- package/dist/volume/component.d.ts.map +1 -1
- package/dist/volume/extract.d.ts +1 -1
- package/dist/volume/extract.d.ts.map +1 -1
- package/dist/volume/inspection.d.ts +2 -0
- package/dist/volume/inspection.d.ts.map +1 -1
- package/dist/volume/passes.d.ts +4 -1
- package/dist/volume/passes.d.ts.map +1 -1
- package/dist/volume/resources.d.ts.map +1 -1
- package/dist/volume/temporal.d.ts +3 -1
- package/dist/volume/temporal.d.ts.map +1 -1
- package/package.json +22 -21
- package/src/__tests__/analytic-fog-graph.unit.test.ts +199 -0
- package/src/__tests__/analytic-fog-optics.unit.test.ts +38 -0
- package/src/__tests__/atmosphere-daylight.dawn.test.ts +72 -0
- package/src/__tests__/barrel-distortion-lkg.integration.test.ts +353 -0
- package/src/__tests__/barrel-distortion.dawn.test.ts +41 -0
- package/src/__tests__/barrel-distortion.unit.test.ts +364 -0
- package/src/__tests__/bloom-exact-zero.unit.test.ts +112 -18
- package/src/__tests__/bloom-lifecycle.integration.test.ts +17 -4
- package/src/__tests__/construct-renderer-identity.unit.test.ts +49 -0
- package/src/__tests__/detached-recovery-graph.unit.test.ts +277 -0
- package/src/__tests__/device-loss-fanout.unit.test.ts +36 -1
- package/src/__tests__/docs-gate-green.unit.test.ts +112 -1
- package/src/__tests__/dynamic-resolution-plugin.integration.test.ts +20 -0
- package/src/__tests__/environment-fog-lanes.integration.test.ts +14 -0
- package/src/__tests__/environment-selection.unit.test.ts +12 -0
- package/src/__tests__/factory-contract.integration.test.ts +626 -113
- package/src/__tests__/feature-depth-input.dawn.test.ts +129 -2
- package/src/__tests__/frame-camera-selection.unit.test.ts +39 -1
- package/src/__tests__/frame-plan-contract.unit.test.ts +2 -0
- package/src/__tests__/fullscreen-feature-plan.unit.test.ts +14 -3
- package/src/__tests__/gpu-dirty-ranges.unit.test.ts +22 -0
- package/src/__tests__/gpu-driven-baseline.characterization.test.ts +16 -3
- package/src/__tests__/gpu-driven-batch-topology-pbr.unit.test.ts +12 -0
- package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +2 -1
- package/src/__tests__/gpu-driven-material-artifacts.unit.test.ts +143 -0
- package/src/__tests__/gpu-driven-pbr.dawn.test.ts +2 -2
- package/src/__tests__/gpu-driven-production.integration.test.ts +482 -3
- package/src/__tests__/gpu-driven-shadow-views.dawn.test.ts +7 -6
- package/src/__tests__/gpu-driven-shadow-views.integration.test.ts +1 -1
- package/src/__tests__/gpu-driven-view-gpu-evidence.ts +103 -4
- package/src/__tests__/gpu-driven-view-graph.integration.test.ts +18 -2
- package/src/__tests__/gpu-driven-view.browser.test.ts +5 -8
- package/src/__tests__/gpu-driven-view.dawn.test.ts +6 -2
- package/src/__tests__/gpu-driven-view.unit.test.ts +1 -1
- package/src/__tests__/gpu-pass-timing-lifecycle.integration.test.ts +1 -0
- package/src/__tests__/gpu-pass-timing.browser.test.ts +6 -4
- package/src/__tests__/gpu-pass-timing.rhi-null.unit.test.ts +1 -0
- package/src/__tests__/gpu-resource-store-stride.unit.test.ts +12 -0
- package/src/__tests__/gpu-scene.unit.test.ts +210 -9
- package/src/__tests__/instance-allocation-failure.unit.test.ts +57 -0
- package/src/__tests__/instances-culling.integration.test.ts +10 -36
- package/src/__tests__/instances-store.unit.test.ts +105 -238
- package/src/__tests__/instances-world-ownership.integration.test.ts +62 -0
- package/src/__tests__/main-pass-material-medium-selection.unit.test.ts +146 -0
- package/src/__tests__/material-shader-prewarm.unit.test.ts +59 -0
- package/src/__tests__/material-snapshot-mutation.integration.test.ts +39 -1
- package/src/__tests__/mesh-submission-lifetime.unit.test.ts +31 -0
- package/src/__tests__/morph-culling-reentry.dawn.test.ts +5 -5
- package/src/__tests__/morph-visual-evidence.integration.test.ts +8 -7
- package/src/__tests__/motion-blur-compute.dawn.test.ts +589 -0
- package/src/__tests__/motion-blur.pixel.integration.test.ts +2 -2
- package/src/__tests__/nineslice-handle-surface.unit.test.ts +4 -4
- package/src/__tests__/pbr-view-layout.unit.test.ts +9 -0
- package/src/__tests__/physical-clearcoat.integration.test.ts +58 -0
- package/src/__tests__/prepared-gpu-driven-pbr.integration.test.ts +21 -0
- package/src/__tests__/prepared-graphics-capability.unit.test.ts +66 -2
- package/src/__tests__/prepared-graphics-lifecycle.unit.test.ts +86 -0
- package/src/__tests__/probe-bindings.unit.test.ts +582 -1
- package/src/__tests__/probe-scene-dirty.integration.test.ts +28 -1
- package/src/__tests__/public-surface.test-d.ts +8 -0
- package/src/__tests__/receipt-observation-retirement.unit.test.ts +65 -0
- package/src/__tests__/recovery-candidate-prepare.contract.test.ts +69 -0
- package/src/__tests__/render-error-code-owner.test-d.ts +9 -0
- package/src/__tests__/render-feature-diagnostics.unit.test.ts +15 -2
- package/src/__tests__/render-feature-error-reporting.unit.test.ts +44 -0
- package/src/__tests__/render-feature-prepared-diagnostics.unit.test.ts +10 -1
- package/src/__tests__/render-feature-retry.unit.test.ts +12 -1
- package/src/__tests__/render-feature-stage-fault-recovery.unit.test.ts +23 -0
- package/src/__tests__/render-scene-mixed-updates.integration.test.ts +145 -19
- package/src/__tests__/render-scene-projection.unit.test.ts +36 -11
- package/src/__tests__/render-scene-temporal-retry.unit.test.ts +37 -6
- package/src/__tests__/render-target-probe-soak.perf.test.ts +2 -2
- package/src/__tests__/render-temporal-environment-consumer.browser.test.ts +3 -3
- package/src/__tests__/render-temporal-environment-consumer.dawn.test.ts +5 -2
- package/src/__tests__/renderer-factory-material-contract.unit.test.ts +41 -7
- package/src/__tests__/renderer-frame-generation-fence.integration.test.ts +16 -0
- package/src/__tests__/renderer-frame-transaction.integration.test.ts +33 -11
- package/src/__tests__/resource-allocation.unit.test.ts +123 -0
- package/src/__tests__/shader-manifest-fixture.ts +4 -4
- package/src/__tests__/single-layer-medium-passes.unit.test.ts +275 -0
- package/src/__tests__/skin-motion-regression.unit.test.ts +70 -1
- package/src/__tests__/skin-palette-recycling.dawn.test.ts +97 -0
- package/src/__tests__/skinned-shadow-caster.test.ts +17 -0
- package/src/__tests__/ssr-carrier-public-contract.unit.test.ts +21 -0
- package/src/__tests__/ssr-gpu-dispatch.browser.test.ts +4 -4
- package/src/__tests__/ssr-gpu-dispatch.dawn.test.ts +2 -2
- package/src/__tests__/ssr-gpu-dispatch.ts +1 -1
- package/src/__tests__/ssr-receiver-coverage.dawn.test.ts +6 -2
- package/src/__tests__/standard-lighting-write.unit.test.ts +2 -1
- package/src/__tests__/standard-output-chain-contract.unit.test.ts +28 -0
- package/src/__tests__/standard-pbr-artifact-assembly.unit.test.ts +46 -1
- package/src/__tests__/standard-pipeline.dawn.test.ts +1 -1
- package/src/__tests__/standard-pipeline.integration.test.ts +200 -9
- package/src/__tests__/surface-dynamic-buffer-lifecycle.unit.test.ts +506 -0
- package/src/__tests__/surface-submission-observation.unit.test.ts +812 -0
- package/src/__tests__/temporal-history-lifecycle.unit.test.ts +32 -0
- package/src/__tests__/temporal-performance.integration.test.ts +3 -3
- package/src/__tests__/temporal-reset-matrix.unit.test.ts +10 -0
- package/src/__tests__/temporal-view.unit.test.ts +2 -1
- package/src/__tests__/typed-pipeline-topology.unit.test.ts +20 -4
- package/src/__tests__/visibility-instances.integration.test.ts +7 -19
- package/src/__tests__/visibility-producer-matrix.integration.test.ts +9 -20
- package/src/__tests__/volume-optics-oracle.unit.test.ts +7 -3
- package/src/__tests__/volumetric-fog-budget-recovery.integration.test.ts +189 -15
- package/src/__tests__/volumetric-fog-errors.unit.test.ts +4 -3
- package/src/__tests__/volumetric-fog-multiple.unit.test.ts +55 -0
- package/src/__tests__/volumetric-fog-spot-frame-optics.integration.test.ts +1 -1
- package/src/__tests__/volumetric-fog-stage-readback.dawn.test.ts +558 -68
- package/src/__tests__/volumetric-fog-temporal.unit.test.ts +27 -0
- package/src/__tests__/volumetric-fog-topology.unit.test.ts +23 -5
- package/src/assembly/analytic-fog-registration.ts +14 -0
- package/src/assembly/backend-contract.ts +30 -0
- package/src/assembly/barrel-distortion-inspection.ts +22 -0
- package/src/assembly/canvas-draw-guard.ts +11 -0
- package/src/assembly/cloud-shadow-entry.ts +22 -0
- package/src/assembly/dynamic-geometry-host.ts +65 -37
- package/src/assembly/dynamic-geometry-runtime.ts +7 -1
- package/src/assembly/factory.ts +2 -30
- package/src/assembly/fxaa-registration.ts +17 -0
- package/src/assembly/host-contract.ts +3 -3
- package/src/assembly/lod-observation.ts +12 -0
- package/src/assembly/material/assembly.ts +25 -13
- package/src/assembly/material/pipeline-helpers.ts +53 -12
- package/src/assembly/material-shader-policy.ts +55 -0
- package/src/assembly/material-shader-prewarm.ts +21 -10
- package/src/assembly/motion-blur-registration.ts +17 -0
- package/src/assembly/recovery/device-loss-fanout.ts +13 -0
- package/src/assembly/recovery/renderer-recover.ts +41 -18
- package/src/assembly/render-feature-post-processes.ts +54 -0
- package/src/assembly/renderer-facade.ts +6 -1
- package/src/assembly/renderer-feature-inspection.ts +8 -2
- package/src/assembly/renderer-frame-transaction.ts +23 -0
- package/src/assembly/renderer-inspection.ts +28 -0
- package/src/assembly/skin-palette-owner.ts +1 -1
- package/src/assembly/temporal-post-process-prewarm.ts +40 -0
- package/src/assembly/webgpu-pbr-ready.ts +9 -1
- package/src/assembly/webgpu-ready-contract.ts +8 -3
- package/src/assembly/webgpu-ready-per-pass.ts +104 -0
- package/src/assembly/webgpu-ready.ts +296 -306
- package/src/assembly/webgpu-renderer-bootstrap.ts +0 -12
- package/src/assembly/webgpu-renderer-observation-owner.ts +222 -0
- package/src/assembly/webgpu-renderer.ts +228 -281
- package/src/assembly/webgpu-vertex-layouts.ts +1 -1
- package/src/barrel-distortion.ts +247 -0
- package/src/bloom-admission.ts +21 -0
- package/src/cloud/__tests__/cloud-density-parity.dawn.test.ts +173 -0
- package/src/cloud/__tests__/cloud-layer-framebuffer-y.dawn.test.ts +265 -0
- package/src/cloud/__tests__/cloud-layer.browser.test.ts +432 -0
- package/src/cloud/__tests__/cloud-layer.unit.test.ts +634 -0
- package/src/cloud/density.ts +600 -0
- package/src/cloud/extract.ts +110 -0
- package/src/cloud/feature.ts +1810 -0
- package/src/cloud/frame-context.ts +42 -0
- package/src/cloud/inspection.ts +130 -0
- package/src/cloud/optics.ts +285 -0
- package/src/cloud/parameters.ts +255 -0
- package/src/cloud/resources.ts +122 -0
- package/src/cloud/shadow.ts +167 -0
- package/src/cloud/temporal.ts +226 -0
- package/src/components/__tests__/motion-blur.unit.test.ts +1 -0
- package/src/components/atmosphere.ts +4 -0
- package/src/components/barrel-distortion.ts +46 -0
- package/src/components/camera.ts +66 -10
- package/src/components/cloud-layer.ts +47 -0
- package/src/components/index.ts +2 -0
- package/src/components/instances.ts +18 -45
- package/src/components/mesh-filter.ts +11 -9
- package/src/components/motion-blur.ts +1 -0
- package/src/components/sprite-instances.ts +1 -1
- package/src/construct-renderer.ts +1 -1
- package/src/device/gpu-residency.ts +56 -12
- package/src/dynamic-geometry.ts +12 -1
- package/src/environment/analytic-fog.ts +44 -0
- package/src/environment/background.ts +2 -2
- package/src/errors/cloud.ts +103 -0
- package/src/errors/render.ts +58 -8
- package/src/examples/single-layer-medium-surface.ts +59 -0
- package/src/extract/camera.ts +35 -8
- package/src/extract/contracts.ts +12 -0
- package/src/extract/environment.ts +4 -0
- package/src/features/barrel-distortion.ts +172 -0
- package/src/features/error-reporting.ts +98 -0
- package/src/features/host.ts +138 -24
- package/src/features/motion-blur/__tests__/motion-blur-feature.unit.test.ts +111 -1
- package/src/features/motion-blur/__tests__/motion-blur-params.unit.test.ts +58 -3
- package/src/features/motion-blur/motion-blur-feature.ts +1519 -15
- package/src/features/motion-blur/motion-blur-params.ts +70 -2
- package/src/features/motion-blur/motion-blur-runtime.ts +176 -0
- package/src/features/plan.ts +33 -8
- package/src/features/prepared-gpu-work.ts +86 -35
- package/src/features/render-graph-compute.ts +13 -5
- package/src/features/render-graph-contribution.ts +11 -0
- package/src/features/render-graph-raster.ts +45 -3
- package/src/features/targets.ts +66 -0
- package/src/features/types.ts +47 -0
- package/src/fullscreen-post-process-pass.ts +41 -9
- package/src/gpu-dirty-ranges.ts +48 -0
- package/src/gpu-driven/batch-topology.ts +53 -0
- package/src/gpu-driven/material-artifacts.ts +35 -32
- package/src/gpu-driven/prepared-draw.ts +27 -14
- package/src/gpu-driven/production-raster-material.ts +1894 -0
- package/src/gpu-driven/production-raster.ts +904 -787
- package/src/gpu-driven/resource-allocation.ts +142 -0
- package/src/gpu-driven/shadow-ownership.ts +71 -0
- package/src/gpu-driven/view-gpu.ts +181 -10
- package/src/gpu-scene.ts +259 -101
- package/src/hdrp-buffers.ts +4 -3
- package/src/ibl/skylight-bind-group.ts +49 -7
- package/src/index.ts +228 -9
- package/src/inspection-types.ts +222 -2
- package/src/instance-buffer-cache.ts +4 -4
- package/src/instances.ts +151 -492
- package/src/pbr-pipeline.ts +219 -13
- package/src/pipeline/single-layer-medium-passes.ts +267 -0
- package/src/pipeline/standard-forward-lane.ts +313 -57
- package/src/pipeline/standard-output/graph.ts +8 -2
- package/src/pipeline/standard-output/types.ts +12 -1
- package/src/pipeline/standard-pipeline.ts +291 -18
- package/src/pipeline/standard-post.ts +397 -102
- package/src/pipeline-builder.ts +1 -1
- package/src/pipeline-spec.ts +5 -5
- package/src/plugin.ts +4 -0
- package/src/points-lines/__tests__/points-lines.bench.ts +17 -8
- package/src/points-lines/__tests__/view-ubo.unit.test.ts +2 -1
- package/src/prepare/prepared-graphics-resolver.ts +2 -0
- package/src/record/__tests__/main-pass-geometry.unit.test.ts +30 -0
- package/src/record/__tests__/sprite-material-abi.unit.test.ts +1 -1
- package/src/record/__tests__/temporal-payload.unit.test.ts +3 -2
- package/src/record/__tests__/transparent-group2-selection.unit.test.ts +11 -0
- package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +1 -0
- package/src/record/__tests__/view-ubo-layout.unit.test.ts +4 -3
- package/src/record/barrel-distortion-frame.ts +110 -0
- package/src/record/dynamic-geometry-consumption.ts +39 -9
- package/src/record/fold-buckets.ts +852 -0
- package/src/record/fold-instance-buffer.ts +51 -0
- package/src/record/frame-lighting.ts +36 -2
- package/src/record/frame-snapshot.ts +44 -4
- package/src/record/frame-targets.ts +10 -6
- package/src/record/frame.ts +373 -1099
- package/src/record/gpu-draw-receipts.ts +38 -0
- package/src/record/gpu-timing.ts +48 -5
- package/src/record/main-pass-geometry.ts +281 -83
- package/src/record/main-pass-material.ts +66 -4
- package/src/record/main-pass-sprite-draws.ts +13 -66
- package/src/record/main-pass.ts +156 -20
- package/src/record/mesh-ssbo.ts +43 -6
- package/src/record/motion-blur-receipt.ts +91 -0
- package/src/record/probe-blend-buffer.ts +180 -0
- package/src/record/recovery-pipeline.ts +35 -3
- package/src/record/render-context.ts +51 -31
- package/src/record/shadow-pass.ts +36 -2
- package/src/record/skybox-post-pass.ts +150 -200
- package/src/record/typed-frame-graph.ts +824 -44
- package/src/record/view-ubo.ts +26 -3
- package/src/record/volume-params.ts +225 -0
- package/src/recovery/render-system-candidate.ts +257 -52
- package/src/reflection/record-owner.ts +7 -3
- package/src/render-contract.ts +71 -8
- package/src/render-graph-primitives.ts +7 -1
- package/src/render-pipeline.ts +136 -1
- package/src/render-system-extract-tail.ts +72 -60
- package/src/render-system-extract.ts +117 -87
- package/src/render-system-presentation.ts +56 -0
- package/src/render-system-producer-roots.ts +96 -0
- package/src/render-system-residency.ts +159 -0
- package/src/render-system.ts +601 -482
- package/src/scene/probe-blend.ts +96 -4
- package/src/scene/render-scene.ts +431 -281
- package/src/ssao-buffers.ts +95 -2
- package/src/surface/__tests__/dynamic-input.unit.test.ts +374 -0
- package/src/surface/__tests__/gpu-driven.unit.test.ts +87 -0
- package/src/surface/dynamic-input.ts +658 -0
- package/src/surface/gpu-driven.ts +147 -0
- package/src/surface/submission-observation.ts +517 -0
- package/src/systems/skin-palette-allocator.ts +4 -1
- package/src/temporal/__tests__/temporal-frame-transaction.unit.test.ts +36 -0
- package/src/temporal/frame-coordinator.ts +8 -1
- package/src/temporal/frame.ts +20 -0
- package/src/temporal/gpu.ts +101 -17
- package/src/temporal/inspection.ts +7 -1
- package/src/temporal/standard-scene-data.ts +5 -0
- package/src/temporal/target-coverage-attachment.ts +4 -0
- package/src/temporal/view.ts +13 -2
- package/src/transmission/__tests__/single-layer-medium.unit.test.ts +149 -0
- package/src/transmission/__tests__/standard-transmission.dawn.test.ts +12 -11
- package/src/transmission/single-layer-medium.ts +322 -0
- package/src/typed-render-graph-primitives.ts +191 -50
- package/src/volume/component.ts +10 -10
- package/src/volume/extract.ts +11 -5
- package/src/volume/inspection.ts +3 -0
- package/src/volume/passes.ts +95 -8
- package/src/volume/resources.ts +2 -1
- package/src/volume/temporal.ts +11 -0
- package/dist/chunk-4NNZQCL3.mjs.map +0 -1
- package/dist/chunk-6TFBXLRJ.mjs.map +0 -1
- package/dist/chunk-DRR7D3KX.mjs.map +0 -1
- package/dist/chunk-GWCEMDVR.mjs.map +0 -1
- package/dist/chunk-JCIRYQ4V.mjs.map +0 -1
- package/dist/chunk-JRIPCMYC.mjs.map +0 -1
- package/dist/chunk-LULCA3OF.mjs +0 -1713
- package/dist/chunk-LULCA3OF.mjs.map +0 -1
- package/dist/chunk-PA5DRJNI.mjs.map +0 -1
package/src/inspection-types.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* extract/record dependency graph.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
import { type BarrelDistortionMapping, freezeBarrelDistortionMapping } from './barrel-distortion';
|
|
7
8
|
import type { DirectionalShadowFilterLabel } from './components/directional-shadow-filter';
|
|
8
9
|
import type {
|
|
9
10
|
GpuDrivenPreparationErrorCode,
|
|
@@ -13,6 +14,7 @@ import type { DepthOfFieldRequestFailure } from './features/depth-of-field/depth
|
|
|
13
14
|
import type { PointsLinesInspection } from './points-lines/inspection';
|
|
14
15
|
import type { LodOcclusionInspection } from './scene/visibility/inspection';
|
|
15
16
|
import type { SsrAdmissionIdentity } from './ssr/identity';
|
|
17
|
+
import type { SurfaceGpuIndirectParameters } from './surface/submission-observation';
|
|
16
18
|
|
|
17
19
|
export type {
|
|
18
20
|
LodOcclusionInspection,
|
|
@@ -92,6 +94,10 @@ export type BloomGraphStatus = 'empty' | 'valid' | 'invalid';
|
|
|
92
94
|
export interface BloomInspection {
|
|
93
95
|
readonly graphStatus: BloomGraphStatus;
|
|
94
96
|
readonly enabled: boolean;
|
|
97
|
+
readonly levelCount: number;
|
|
98
|
+
readonly levelDimensions: readonly { readonly width: number; readonly height: number }[];
|
|
99
|
+
readonly downsamplePassCount: number;
|
|
100
|
+
readonly upsamplePassCount: number;
|
|
95
101
|
readonly targetCount: number;
|
|
96
102
|
readonly targetBytes: number;
|
|
97
103
|
readonly resourceCount: number;
|
|
@@ -99,10 +105,30 @@ export interface BloomInspection {
|
|
|
99
105
|
readonly encodeCount: number;
|
|
100
106
|
readonly bindGroupCount: number;
|
|
101
107
|
readonly uploadCount: number;
|
|
108
|
+
/** Descriptor-derived bytes for the active Bloom target child in the compiled graph. */
|
|
102
109
|
readonly residentChildBytes: number;
|
|
103
110
|
readonly generation: number;
|
|
104
111
|
readonly state: 'off' | 'active' | 'retiring';
|
|
105
112
|
}
|
|
113
|
+
|
|
114
|
+
export const emptyBloomInspection = (): BloomInspection => ({
|
|
115
|
+
graphStatus: 'empty',
|
|
116
|
+
enabled: false,
|
|
117
|
+
levelCount: 0,
|
|
118
|
+
levelDimensions: [],
|
|
119
|
+
downsamplePassCount: 0,
|
|
120
|
+
upsamplePassCount: 0,
|
|
121
|
+
targetCount: 0,
|
|
122
|
+
targetBytes: 0,
|
|
123
|
+
resourceCount: 0,
|
|
124
|
+
passCount: 0,
|
|
125
|
+
encodeCount: 0,
|
|
126
|
+
bindGroupCount: 0,
|
|
127
|
+
uploadCount: 0,
|
|
128
|
+
residentChildBytes: 0,
|
|
129
|
+
generation: 0,
|
|
130
|
+
state: 'off',
|
|
131
|
+
});
|
|
106
132
|
export type { TransmissionInspection } from './transmission/inspection';
|
|
107
133
|
|
|
108
134
|
export interface BatchTopologyInspection {
|
|
@@ -120,6 +146,31 @@ export interface BatchTopologyInspection {
|
|
|
120
146
|
readonly membershipAllocations?: number;
|
|
121
147
|
readonly candidateAdds?: number;
|
|
122
148
|
readonly candidateRemoves?: number;
|
|
149
|
+
/** Distinct resource classes represented by this topology. */
|
|
150
|
+
readonly resourceClassCount?: number;
|
|
151
|
+
/** Resource-class groups; range/page changes do not create a new class. */
|
|
152
|
+
readonly resourceClassSplits?: readonly {
|
|
153
|
+
readonly resourceIdentity: string;
|
|
154
|
+
readonly batchIds: readonly number[];
|
|
155
|
+
readonly candidateCount: number;
|
|
156
|
+
}[];
|
|
157
|
+
/** Reasons emitted only when more than one resource class is present. */
|
|
158
|
+
readonly resourceClassSplitReasons?: readonly string[];
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/** Logical Engine allocation facts; physical VRAM residency is intentionally unknown. */
|
|
162
|
+
export interface GpuResourceAllocationInspection {
|
|
163
|
+
readonly unit: 'engine-allocation-bytes';
|
|
164
|
+
readonly physicalResidency: 'unknown';
|
|
165
|
+
readonly liveBytes: number;
|
|
166
|
+
readonly pendingRetirementBytes: number;
|
|
167
|
+
readonly peakBytes: number;
|
|
168
|
+
readonly successfulAllocationCount: number;
|
|
169
|
+
readonly successfulAllocationBytes: number;
|
|
170
|
+
readonly pendingRetirementCount: number;
|
|
171
|
+
readonly retiredBytes: number;
|
|
172
|
+
readonly failedAllocationRollbacks: number;
|
|
173
|
+
readonly failedAllocationRollbackBytes: number;
|
|
123
174
|
}
|
|
124
175
|
|
|
125
176
|
/**
|
|
@@ -179,6 +230,49 @@ export interface RenderFeatureGraphInspection {
|
|
|
179
230
|
};
|
|
180
231
|
}
|
|
181
232
|
|
|
233
|
+
/**
|
|
234
|
+
* Detached output-space barrel facts for the most recently accepted picture.
|
|
235
|
+
* The mapping, extent, and generation fields are one context; consumers must
|
|
236
|
+
* discard the whole projection when its device or frame is retired.
|
|
237
|
+
*/
|
|
238
|
+
export interface BarrelDistortionInspection {
|
|
239
|
+
readonly effectiveMapping: BarrelDistortionMapping | undefined;
|
|
240
|
+
readonly extent: { readonly width: number; readonly height: number } | undefined;
|
|
241
|
+
readonly frameId: number;
|
|
242
|
+
readonly deviceGeneration: number;
|
|
243
|
+
readonly graphGeneration: number;
|
|
244
|
+
readonly lastKnownGood: boolean;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
export interface BarrelDistortionInspectionInput {
|
|
248
|
+
readonly effectiveMapping: BarrelDistortionMapping | undefined;
|
|
249
|
+
readonly frameId: number;
|
|
250
|
+
readonly deviceGeneration: number;
|
|
251
|
+
readonly graphGeneration: number;
|
|
252
|
+
readonly lastKnownGood: boolean;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/** Project one immutable, public barrel frame context. */
|
|
256
|
+
export function projectBarrelDistortionInspection(
|
|
257
|
+
input: BarrelDistortionInspectionInput,
|
|
258
|
+
): BarrelDistortionInspection {
|
|
259
|
+
const effectiveMapping =
|
|
260
|
+
input.effectiveMapping === undefined
|
|
261
|
+
? undefined
|
|
262
|
+
: freezeBarrelDistortionMapping(input.effectiveMapping);
|
|
263
|
+
return Object.freeze({
|
|
264
|
+
effectiveMapping,
|
|
265
|
+
extent:
|
|
266
|
+
effectiveMapping === undefined
|
|
267
|
+
? undefined
|
|
268
|
+
: Object.freeze({ width: effectiveMapping.width, height: effectiveMapping.height }),
|
|
269
|
+
frameId: input.frameId,
|
|
270
|
+
deviceGeneration: input.deviceGeneration,
|
|
271
|
+
graphGeneration: input.graphGeneration,
|
|
272
|
+
lastKnownGood: input.lastKnownGood,
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
|
|
182
276
|
/** Detached material texture-source probe accounting for the last extract. */
|
|
183
277
|
export interface MaterialTextureSourceInspection {
|
|
184
278
|
readonly sourceFieldsVisited: number;
|
|
@@ -275,6 +369,7 @@ export type GpuDrivenLane = 'gpu' | 'cpu-semantic' | 'cpu-deformation' | 'blocke
|
|
|
275
369
|
/** Closed, machine-readable reasons for a lane decision or recovery state. */
|
|
276
370
|
export type GpuDrivenLaneReason =
|
|
277
371
|
| 'none'
|
|
372
|
+
| 'reflection-fallback-mrt'
|
|
278
373
|
| 'capability'
|
|
279
374
|
| 'unsupported'
|
|
280
375
|
| 'resource-not-ready'
|
|
@@ -330,6 +425,25 @@ export interface GpuDrivenStructureMetrics {
|
|
|
330
425
|
}
|
|
331
426
|
|
|
332
427
|
export interface GpuDrivenProductionInspection {
|
|
428
|
+
/** Exact producer-selected Surface artifact prepared for the last candidate. */
|
|
429
|
+
readonly surfaceArtifact?: {
|
|
430
|
+
readonly material: string;
|
|
431
|
+
readonly specializationKey: string | undefined;
|
|
432
|
+
readonly variantSet: string | undefined;
|
|
433
|
+
readonly layoutIdentity: string;
|
|
434
|
+
readonly receiptIdentity: string;
|
|
435
|
+
readonly receiptGeneration: number;
|
|
436
|
+
readonly directEntry: string;
|
|
437
|
+
readonly sceneIndexEntry: string;
|
|
438
|
+
};
|
|
439
|
+
/** Lifetime count of Surface member-to-frame projections rebuilt after a topology change. */
|
|
440
|
+
readonly surfaceFrameRangeBuilds: number;
|
|
441
|
+
/** Lifetime count of admitted Surface members visited while rebuilding that projection. */
|
|
442
|
+
readonly surfaceFrameMemberScans: number;
|
|
443
|
+
/** Lifetime count of 48-byte Surface frame rows materialized for an actual GPU write. */
|
|
444
|
+
readonly surfaceFrameRowAllocations: number;
|
|
445
|
+
/** Lifetime count of writes to the one renderer-owned shared Surface frame-time value. */
|
|
446
|
+
readonly surfaceFrameTimeWrites: number;
|
|
333
447
|
/** Lifetime count of successful producer-side residency validation scans. */
|
|
334
448
|
readonly residencyValidationScans: number;
|
|
335
449
|
/** Lifetime count of validation rows reused without a CPU residency walk. */
|
|
@@ -384,6 +498,22 @@ export interface GpuDrivenProductionInspection {
|
|
|
384
498
|
readonly retryCount: number;
|
|
385
499
|
/** Generation of the last fully submitted GPU candidate, if any. */
|
|
386
500
|
readonly lastKnownGoodGeneration: number | undefined;
|
|
501
|
+
/** Aggregate logical allocation facts from available GPU-driven owners. */
|
|
502
|
+
readonly resourceAllocation?: GpuResourceAllocationInspection;
|
|
503
|
+
/** Per-owner facts; absent owners remain unavailable rather than zero-filled. */
|
|
504
|
+
readonly resourceAllocationOwners?: {
|
|
505
|
+
readonly gpuDrivenView?: GpuResourceAllocationInspection;
|
|
506
|
+
readonly materialRaster?: GpuResourceAllocationInspection;
|
|
507
|
+
readonly skinRaster?: GpuResourceAllocationInspection;
|
|
508
|
+
};
|
|
509
|
+
/** Resource-class split facts derived from batch.key.resourceIdentity. */
|
|
510
|
+
readonly resourceClassCount?: number;
|
|
511
|
+
readonly resourceClassSplitReasons?: readonly string[];
|
|
512
|
+
readonly resourceClassSplits?: readonly {
|
|
513
|
+
readonly resourceIdentity: string;
|
|
514
|
+
readonly batchIds: readonly number[];
|
|
515
|
+
readonly candidateCount: number;
|
|
516
|
+
}[];
|
|
387
517
|
}
|
|
388
518
|
|
|
389
519
|
export type DirectionalShadowEffectiveProfile =
|
|
@@ -555,7 +685,29 @@ export interface TemporalTargetInspection {
|
|
|
555
685
|
}
|
|
556
686
|
|
|
557
687
|
/** Detached, bounded Motion Blur facts; no graph, device, target, or history handle. */
|
|
558
|
-
export type MotionBlurInspectionStatus = 'off' | 'active' | 'reset' | 'invalid';
|
|
688
|
+
export type MotionBlurInspectionStatus = 'off' | 'active' | 'reset' | 'limited' | 'invalid';
|
|
689
|
+
export type MotionBlurInspectionLane = 'compute' | 'raster-limited';
|
|
690
|
+
|
|
691
|
+
/**
|
|
692
|
+
* Submission receipt for the admitted compute lane. This is derived from the
|
|
693
|
+
* compiled graph and the resolved feature dispatches after a successful
|
|
694
|
+
* queue submit; capability intent alone never produces this receipt.
|
|
695
|
+
*/
|
|
696
|
+
export interface MotionBlurExecutionPass {
|
|
697
|
+
readonly name: 'motion-blur-tile-summary' | 'motion-blur';
|
|
698
|
+
readonly kind: 'compute';
|
|
699
|
+
readonly entryPoint: 'tile_summary' | 'reconstruct';
|
|
700
|
+
readonly workgroups: readonly [number, number, number];
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
export interface MotionBlurExecutionReceipt {
|
|
704
|
+
readonly frameId: number;
|
|
705
|
+
readonly deviceGeneration: number;
|
|
706
|
+
readonly graphGeneration: number;
|
|
707
|
+
readonly program: 'motion-blur-compute';
|
|
708
|
+
readonly outputFormat: 'rgba16float';
|
|
709
|
+
readonly passes: readonly [MotionBlurExecutionPass, MotionBlurExecutionPass];
|
|
710
|
+
}
|
|
559
711
|
|
|
560
712
|
/** Bounded renderer-owned Depth of Field facts; no graph or GPU handles. */
|
|
561
713
|
export type DepthOfFieldInspectionStatus = 'off' | 'active' | 'reset' | 'invalid' | 'unsupported';
|
|
@@ -597,13 +749,25 @@ export interface DepthOfFieldInspection {
|
|
|
597
749
|
export interface MotionBlurInspection {
|
|
598
750
|
readonly enabled: boolean;
|
|
599
751
|
readonly status: MotionBlurInspectionStatus;
|
|
752
|
+
/** Capability-selected implementation lane; raster is explicitly limited. */
|
|
753
|
+
readonly lane: MotionBlurInspectionLane;
|
|
600
754
|
readonly shutterAngle: number;
|
|
601
755
|
readonly maxRadiusPixels: number;
|
|
602
756
|
readonly sampleCount: number;
|
|
757
|
+
/** Target presentation rate used by the accepted exposure calculation. */
|
|
758
|
+
readonly targetFps: number;
|
|
759
|
+
/** Bounded tier selected from the authored sample budget. */
|
|
760
|
+
readonly effectiveSampleCount: 0 | 4 | 8 | 16;
|
|
603
761
|
readonly temporalDemand: 'none' | 'scene-data-temporal-v1';
|
|
604
762
|
readonly passName: 'motion-blur';
|
|
605
763
|
readonly historyWrites: 0;
|
|
606
|
-
|
|
764
|
+
/** Zero when demand is disabled; compute uses one summary plus one fused pass. */
|
|
765
|
+
readonly passCount: 0 | 1 | 2;
|
|
766
|
+
readonly tapBudget: 0 | 4 | 8 | 16;
|
|
767
|
+
/** Present only when the current accepted frame executed both compute passes. */
|
|
768
|
+
readonly execution?: MotionBlurExecutionReceipt;
|
|
769
|
+
readonly resetReason?: import('./temporal/view').TemporalResetReason;
|
|
770
|
+
readonly lastFailure?: 'invalid-params' | 'scene-data-unavailable' | 'submit-failure';
|
|
607
771
|
}
|
|
608
772
|
|
|
609
773
|
export type RenderSceneResyncReason =
|
|
@@ -640,6 +804,62 @@ export interface PersistentRenderSceneInspection {
|
|
|
640
804
|
| { readonly status: 'error' };
|
|
641
805
|
/** Bounded retained authoring observations; no graph or backend handles. */
|
|
642
806
|
readonly pointsLines: readonly PointsLinesInspection[];
|
|
807
|
+
/** Last actually encoded Surface work, fenced by the renderer submission owner. */
|
|
808
|
+
readonly submission?: {
|
|
809
|
+
readonly sequence: number;
|
|
810
|
+
readonly frameId: number;
|
|
811
|
+
readonly requestedLane: 'direct' | 'gpu-driven';
|
|
812
|
+
readonly actualLane: 'direct' | 'gpu-driven';
|
|
813
|
+
/** Current-frame topology fact when a normal GPU lane was intentionally bypassed. */
|
|
814
|
+
readonly actualLaneReason?: GpuDrivenLaneReason;
|
|
815
|
+
readonly deviceGeneration: number;
|
|
816
|
+
readonly graphGeneration: number;
|
|
817
|
+
readonly viewIdentity: 'main:0';
|
|
818
|
+
readonly resourceGeneration: number | undefined;
|
|
819
|
+
readonly status: 'submitted' | 'completed';
|
|
820
|
+
readonly passes: readonly {
|
|
821
|
+
readonly pass: 'nearest-layer' | 'color';
|
|
822
|
+
/** Total commands actually encoded, including rows beyond the bounded sample. */
|
|
823
|
+
readonly commandCount: number;
|
|
824
|
+
readonly totalCommandCount: number;
|
|
825
|
+
readonly savedCommandCount: number;
|
|
826
|
+
readonly droppedCommandCount: number;
|
|
827
|
+
readonly truncated: boolean;
|
|
828
|
+
readonly memberEvidence:
|
|
829
|
+
| 'direct-command-members'
|
|
830
|
+
| 'direct-command-members-truncated'
|
|
831
|
+
| 'indirect-readback-required'
|
|
832
|
+
| 'indirect-visible-readback'
|
|
833
|
+
| 'indirect-visible-readback-truncated';
|
|
834
|
+
readonly memberIds?: readonly string[];
|
|
835
|
+
/** Decoded GPU command words bound to this submission/readback fence. */
|
|
836
|
+
readonly indirectParameters?: readonly SurfaceGpuIndirectParameters[];
|
|
837
|
+
readonly commands: readonly (
|
|
838
|
+
| {
|
|
839
|
+
readonly kind: 'draw' | 'draw-indexed';
|
|
840
|
+
readonly count: number;
|
|
841
|
+
readonly first: number;
|
|
842
|
+
readonly instanceCount: number;
|
|
843
|
+
readonly firstInstance: number;
|
|
844
|
+
readonly surfaceFrameBase: number;
|
|
845
|
+
readonly memberIds: readonly string[];
|
|
846
|
+
readonly pipelineIdentity: number;
|
|
847
|
+
readonly programEvidence: 'producer-receipt' | 'missing';
|
|
848
|
+
readonly receiptIdentity?: string;
|
|
849
|
+
readonly receiptGeneration?: number;
|
|
850
|
+
}
|
|
851
|
+
| {
|
|
852
|
+
readonly kind: 'draw-indirect' | 'draw-indexed-indirect';
|
|
853
|
+
readonly indirectBufferIdentity: number;
|
|
854
|
+
readonly indirectOffset: number;
|
|
855
|
+
readonly pipelineIdentity: number;
|
|
856
|
+
readonly programEvidence: 'producer-receipt' | 'missing';
|
|
857
|
+
readonly receiptIdentity?: string;
|
|
858
|
+
readonly receiptGeneration?: number;
|
|
859
|
+
}
|
|
860
|
+
)[];
|
|
861
|
+
}[];
|
|
862
|
+
};
|
|
643
863
|
}
|
|
644
864
|
|
|
645
865
|
export type RenderSceneInspection = PersistentRenderSceneInspection & {
|
|
@@ -23,15 +23,15 @@ import type { GpuBuffer } from './gpu-resource';
|
|
|
23
23
|
* and routes dispose through the RHI shim's destroy bookkeeping SSOT. The
|
|
24
24
|
* two `uploaded*` fields are the cache invalidation fingerprint -- when the
|
|
25
25
|
* archetype version bumps or the byte length changes, the record stage
|
|
26
|
-
* allocates a fresh GpuBuffer and replaces the entry.
|
|
27
|
-
*
|
|
28
|
-
*
|
|
26
|
+
* allocates a fresh GpuBuffer and replaces the entry. World-authored Instances
|
|
27
|
+
* use renderer-private projection identity; sprite/fold snapshots use entity
|
|
28
|
+
* identity. Neither cache key is an authoring handle.
|
|
29
29
|
*/
|
|
30
30
|
export interface InstanceBufferCacheEntry {
|
|
31
31
|
readonly buffer: GpuBuffer;
|
|
32
32
|
readonly uploadedByteLength: number;
|
|
33
33
|
readonly uploadedArchVersion: number;
|
|
34
|
-
/**
|
|
34
|
+
/** Accepted instance-projection revision uploaded into this buffer. */
|
|
35
35
|
readonly uploadedRevision?: number;
|
|
36
36
|
}
|
|
37
37
|
|