@forgeax/engine-render 0.1.28 → 0.1.29
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 +627 -124
- package/dist/assembly/atmosphere-shader-prewarm.d.ts +6 -0
- package/dist/assembly/atmosphere-shader-prewarm.d.ts.map +1 -0
- package/dist/assembly/dynamic-geometry-host.d.ts +21 -0
- package/dist/assembly/dynamic-geometry-host.d.ts.map +1 -1
- package/dist/assembly/dynamic-geometry-runtime.d.ts +20 -0
- package/dist/assembly/dynamic-geometry-runtime.d.ts.map +1 -0
- package/dist/assembly/factory.d.ts +3 -1
- package/dist/assembly/factory.d.ts.map +1 -1
- package/dist/assembly/gpu-driven-owner.d.ts +10 -0
- package/dist/assembly/gpu-driven-owner.d.ts.map +1 -0
- package/dist/assembly/host-contract.d.ts +8 -0
- package/dist/assembly/host-contract.d.ts.map +1 -1
- package/dist/assembly/material/assembly.d.ts +7 -0
- package/dist/assembly/material/assembly.d.ts.map +1 -1
- package/dist/assembly/material-shader-policy.d.ts +3 -1
- package/dist/assembly/material-shader-policy.d.ts.map +1 -1
- package/dist/assembly/recovery/failure-location.d.ts +12 -0
- package/dist/assembly/recovery/failure-location.d.ts.map +1 -0
- package/dist/assembly/recovery/renderer-recover.d.ts +6 -4
- package/dist/assembly/recovery/renderer-recover.d.ts.map +1 -1
- package/dist/assembly/renderer-facade.d.ts.map +1 -1
- package/dist/assembly/renderer-feature-inspection.d.ts +5 -0
- package/dist/assembly/renderer-feature-inspection.d.ts.map +1 -0
- package/dist/assembly/renderer-frame-transaction.d.ts +19 -0
- package/dist/assembly/renderer-frame-transaction.d.ts.map +1 -1
- package/dist/assembly/renderer-helpers.d.ts +3 -0
- package/dist/assembly/renderer-helpers.d.ts.map +1 -1
- package/dist/assembly/renderer-inspection.d.ts +4 -0
- package/dist/assembly/renderer-inspection.d.ts.map +1 -1
- package/dist/assembly/shader-prewarm-policy.d.ts +6 -0
- package/dist/assembly/shader-prewarm-policy.d.ts.map +1 -1
- package/dist/assembly/skin-palette-owner.d.ts +8 -0
- package/dist/assembly/skin-palette-owner.d.ts.map +1 -0
- package/dist/assembly/ssr-shader-prewarm.d.ts +6 -0
- package/dist/assembly/ssr-shader-prewarm.d.ts.map +1 -0
- package/dist/assembly/webgpu-device-loss.d.ts +15 -0
- package/dist/assembly/webgpu-device-loss.d.ts.map +1 -0
- package/dist/assembly/webgpu-pbr-ready.d.ts +38 -0
- package/dist/assembly/webgpu-pbr-ready.d.ts.map +1 -0
- package/dist/assembly/webgpu-ready-mipmap.d.ts +11 -0
- package/dist/assembly/webgpu-ready-mipmap.d.ts.map +1 -0
- package/dist/assembly/webgpu-ready.d.ts +7 -3
- package/dist/assembly/webgpu-ready.d.ts.map +1 -1
- package/dist/assembly/webgpu-renderer-bootstrap.d.ts +10 -0
- package/dist/assembly/webgpu-renderer-bootstrap.d.ts.map +1 -0
- package/dist/assembly/webgpu-renderer-contract.d.ts +62 -0
- package/dist/assembly/webgpu-renderer-contract.d.ts.map +1 -0
- package/dist/assembly/webgpu-renderer-guards.d.ts +9 -0
- package/dist/assembly/webgpu-renderer-guards.d.ts.map +1 -0
- package/dist/assembly/webgpu-renderer-observation.d.ts +6 -0
- package/dist/assembly/webgpu-renderer-observation.d.ts.map +1 -0
- package/dist/assembly/webgpu-renderer-recovery-failure.d.ts +12 -0
- package/dist/assembly/webgpu-renderer-recovery-failure.d.ts.map +1 -0
- package/dist/assembly/webgpu-renderer.d.ts +7 -141
- package/dist/assembly/webgpu-renderer.d.ts.map +1 -1
- package/dist/assembly/webgpu-vertex-layouts.d.ts +28 -84
- package/dist/assembly/webgpu-vertex-layouts.d.ts.map +1 -1
- package/dist/authoring.mjs +2 -2
- package/dist/{chunk-JAASCMXA.mjs → chunk-33XZFTQU.mjs} +245 -39
- package/dist/chunk-33XZFTQU.mjs.map +1 -0
- package/dist/{chunk-GF523LHF.mjs → chunk-BLXGONR2.mjs} +30 -12
- package/dist/chunk-BLXGONR2.mjs.map +1 -0
- package/dist/{chunk-J52NMQKR.mjs → chunk-BQVQOQJH.mjs} +1086 -838
- package/dist/chunk-BQVQOQJH.mjs.map +1 -0
- package/dist/{chunk-IQMKJLNU.mjs → chunk-BTWH7BP4.mjs} +386 -17
- package/dist/chunk-BTWH7BP4.mjs.map +1 -0
- package/dist/{chunk-MBU4ZVE7.mjs → chunk-FUODTTIA.mjs} +3921 -671
- package/dist/chunk-FUODTTIA.mjs.map +1 -0
- package/dist/{chunk-MYJ5RPJO.mjs → chunk-JQTSEI3Z.mjs} +3 -3
- package/dist/{chunk-MYJ5RPJO.mjs.map → chunk-JQTSEI3Z.mjs.map} +1 -1
- package/dist/{chunk-GE3SDD72.mjs → chunk-NICXSHAT.mjs} +16 -38
- package/dist/chunk-NICXSHAT.mjs.map +1 -0
- package/dist/{chunk-J6KACNOH.mjs → chunk-NRNXBLIJ.mjs} +577 -7
- package/dist/chunk-NRNXBLIJ.mjs.map +1 -0
- package/dist/{chunk-RBDBZ5R7.mjs → chunk-PA5DRJNI.mjs} +2 -2
- package/dist/chunk-PA5DRJNI.mjs.map +1 -0
- package/dist/{chunk-VSL23LZE.mjs → chunk-S4DNKQYQ.mjs} +1117 -445
- package/dist/chunk-S4DNKQYQ.mjs.map +1 -0
- package/dist/components/camera.d.ts +62 -2
- package/dist/components/camera.d.ts.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/instances.d.ts +6 -20
- package/dist/components/instances.d.ts.map +1 -1
- package/dist/components/scene-instance.d.ts +2 -1
- package/dist/components/scene-instance.d.ts.map +1 -1
- package/dist/components/screen-space-reflection.d.ts +14 -0
- package/dist/components/screen-space-reflection.d.ts.map +1 -0
- package/dist/construct-renderer.mjs +12888 -7025
- package/dist/construct-renderer.mjs.map +1 -1
- package/dist/device/gpu-residency.d.ts +1 -12
- package/dist/device/gpu-residency.d.ts.map +1 -1
- package/dist/environment/background.d.ts +6 -0
- package/dist/environment/background.d.ts.map +1 -0
- package/dist/errors/gpu-driven.d.ts +6 -3
- package/dist/errors/gpu-driven.d.ts.map +1 -1
- package/dist/errors/render.d.ts +7 -4
- package/dist/errors/render.d.ts.map +1 -1
- package/dist/extract/camera.d.ts.map +1 -1
- package/dist/extract/gpu-driven.d.ts +33 -3
- package/dist/extract/gpu-driven.d.ts.map +1 -1
- package/dist/features/host.d.ts +23 -1
- package/dist/features/host.d.ts.map +1 -1
- package/dist/features/noise-texture.d.ts +17 -0
- package/dist/features/noise-texture.d.ts.map +1 -0
- package/dist/features/plan.d.ts +83 -2
- package/dist/features/plan.d.ts.map +1 -1
- package/dist/features/prepared-gpu-work.d.ts +37 -4
- package/dist/features/prepared-gpu-work.d.ts.map +1 -1
- package/dist/features/prepared-graphics-store.d.ts.map +1 -1
- package/dist/features/prepared-graphics.d.ts +5 -0
- package/dist/features/prepared-graphics.d.ts.map +1 -1
- package/dist/features/render-graph-compute.d.ts +5 -3
- package/dist/features/render-graph-compute.d.ts.map +1 -1
- package/dist/features/render-graph-contribution.d.ts +11 -3
- package/dist/features/render-graph-contribution.d.ts.map +1 -1
- package/dist/features/render-graph-raster.d.ts +19 -3
- package/dist/features/render-graph-raster.d.ts.map +1 -1
- package/dist/features/types.d.ts +11 -0
- package/dist/features/types.d.ts.map +1 -1
- package/dist/fullscreen-post-process-pass.d.ts +2 -0
- package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
- package/dist/gpu-driven/batch-topology.d.ts +34 -1
- package/dist/gpu-driven/batch-topology.d.ts.map +1 -1
- package/dist/gpu-driven/pbr-program.d.ts +10 -0
- package/dist/gpu-driven/pbr-program.d.ts.map +1 -0
- package/dist/gpu-driven/prepared-draw.d.ts.map +1 -1
- package/dist/gpu-driven/production-raster.d.ts +144 -23
- package/dist/gpu-driven/production-raster.d.ts.map +1 -1
- package/dist/gpu-driven/shadow-views.d.ts +126 -0
- package/dist/gpu-driven/shadow-views.d.ts.map +1 -0
- package/dist/gpu-driven/view-gpu.d.ts +18 -2
- package/dist/gpu-driven/view-gpu.d.ts.map +1 -1
- package/dist/gpu-scene-schema.d.ts +2 -8
- package/dist/gpu-scene-schema.d.ts.map +1 -1
- package/dist/gpu-scene.d.ts +14 -0
- package/dist/gpu-scene.d.ts.map +1 -1
- package/dist/gpu-texture-usage.d.ts +1 -0
- package/dist/gpu-texture-usage.d.ts.map +1 -1
- package/dist/hdrp-buffers.d.ts +6 -0
- package/dist/hdrp-buffers.d.ts.map +1 -1
- package/dist/ibl/frame-resources.d.ts +8 -0
- package/dist/ibl/frame-resources.d.ts.map +1 -0
- package/dist/ibl/skylight-bind-group.d.ts.map +1 -1
- package/dist/index.d.ts +18 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +8 -8
- package/dist/inspection-types.d.ts +164 -0
- package/dist/inspection-types.d.ts.map +1 -1
- package/dist/instances-derived-bounds.d.ts +11 -0
- package/dist/instances-derived-bounds.d.ts.map +1 -1
- package/dist/instances.d.ts +89 -44
- package/dist/instances.d.ts.map +1 -1
- package/dist/internal.d.ts +3 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.mjs +117 -9
- package/dist/internal.mjs.map +1 -1
- package/dist/lifecycle.d.ts +2 -1
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/material-row.d.ts +5 -0
- package/dist/material-row.d.ts.map +1 -0
- package/dist/materials.d.ts +15 -0
- package/dist/materials.d.ts.map +1 -1
- package/dist/pbr-pipeline.d.ts +21 -5
- package/dist/pbr-pipeline.d.ts.map +1 -1
- package/dist/pipeline/standard-forward-lane.d.ts.map +1 -1
- package/dist/pipeline/standard-output/auto-exposure/capability.d.ts +12 -0
- package/dist/pipeline/standard-output/auto-exposure/capability.d.ts.map +1 -0
- package/dist/pipeline/standard-output/auto-exposure/gpu.d.ts +70 -0
- package/dist/pipeline/standard-output/auto-exposure/gpu.d.ts.map +1 -0
- package/dist/pipeline/standard-output/auto-exposure/graph.d.ts +75 -0
- package/dist/pipeline/standard-output/auto-exposure/graph.d.ts.map +1 -0
- package/dist/pipeline/standard-output/auto-exposure/inspection.d.ts +111 -0
- package/dist/pipeline/standard-output/auto-exposure/inspection.d.ts.map +1 -0
- package/dist/pipeline/standard-output/auto-exposure/oracle.d.ts +16 -0
- package/dist/pipeline/standard-output/auto-exposure/oracle.d.ts.map +1 -0
- package/dist/pipeline/standard-output/auto-exposure/preset.d.ts +14 -0
- package/dist/pipeline/standard-output/auto-exposure/preset.d.ts.map +1 -0
- package/dist/pipeline/standard-output/auto-exposure/state.d.ts +46 -0
- package/dist/pipeline/standard-output/auto-exposure/state.d.ts.map +1 -0
- package/dist/pipeline/standard-output/color-transform.d.ts +27 -0
- package/dist/pipeline/standard-output/color-transform.d.ts.map +1 -0
- package/dist/pipeline/standard-output/graph.d.ts +15 -0
- package/dist/pipeline/standard-output/graph.d.ts.map +1 -0
- package/dist/pipeline/standard-output/lut-admission.d.ts +29 -0
- package/dist/pipeline/standard-output/lut-admission.d.ts.map +1 -0
- package/dist/pipeline/standard-output/lut-gpu.d.ts +48 -0
- package/dist/pipeline/standard-output/lut-gpu.d.ts.map +1 -0
- package/dist/pipeline/standard-output/lut-state.d.ts +68 -0
- package/dist/pipeline/standard-output/lut-state.d.ts.map +1 -0
- package/dist/pipeline/standard-output/resources.d.ts +10 -0
- package/dist/pipeline/standard-output/resources.d.ts.map +1 -0
- package/dist/pipeline/standard-output/types.d.ts +39 -0
- package/dist/pipeline/standard-output/types.d.ts.map +1 -0
- package/dist/pipeline/standard-pipeline.d.ts.map +1 -1
- package/dist/pipeline/standard-post.d.ts +2 -2
- package/dist/pipeline/standard-post.d.ts.map +1 -1
- package/dist/pipeline-builder.d.ts +2 -1
- package/dist/pipeline-builder.d.ts.map +1 -1
- package/dist/pipeline-spec-types.d.ts +4 -0
- package/dist/pipeline-spec-types.d.ts.map +1 -1
- package/dist/pipeline-spec.d.ts +1 -9
- package/dist/pipeline-spec.d.ts.map +1 -1
- package/dist/points-lines/standard-owner.d.ts +1 -1
- package/dist/points-lines/standard-owner.d.ts.map +1 -1
- package/dist/prepare/prepared-graphics-resolver.d.ts +6 -1
- package/dist/prepare/prepared-graphics-resolver.d.ts.map +1 -1
- package/dist/record/dynamic-geometry-consumption.d.ts +15 -0
- package/dist/record/dynamic-geometry-consumption.d.ts.map +1 -0
- package/dist/record/frame-lighting.d.ts +3 -3
- package/dist/record/frame-lighting.d.ts.map +1 -1
- package/dist/record/frame-snapshot.d.ts +106 -5
- 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 +39 -4
- package/dist/record/frame.d.ts.map +1 -1
- package/dist/record/main-pass-geometry.d.ts +7 -8
- package/dist/record/main-pass-geometry.d.ts.map +1 -1
- package/dist/record/main-pass-material.d.ts +38 -1
- package/dist/record/main-pass-material.d.ts.map +1 -1
- package/dist/record/main-pass-sprite-draws.d.ts +2 -10
- package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
- package/dist/record/main-pass.d.ts +12 -2
- package/dist/record/main-pass.d.ts.map +1 -1
- package/dist/record/mesh-ssbo.d.ts +15 -6
- package/dist/record/mesh-ssbo.d.ts.map +1 -1
- package/dist/record/prepared-material-bindings.d.ts +19 -0
- package/dist/record/prepared-material-bindings.d.ts.map +1 -0
- package/dist/record/recovery-pipeline.d.ts +2 -9
- package/dist/record/recovery-pipeline.d.ts.map +1 -1
- package/dist/record/render-context.d.ts +74 -26
- package/dist/record/render-context.d.ts.map +1 -1
- package/dist/record/shadow-pass.d.ts +62 -7
- package/dist/record/shadow-pass.d.ts.map +1 -1
- package/dist/record/skybox-post-pass.d.ts +1 -1
- package/dist/record/skybox-post-pass.d.ts.map +1 -1
- package/dist/record/typed-frame-graph.d.ts +35 -7
- package/dist/record/typed-frame-graph.d.ts.map +1 -1
- package/dist/record/view-ubo.d.ts +1 -0
- package/dist/record/view-ubo.d.ts.map +1 -1
- package/dist/recovery/render-system-candidate.d.ts +10 -2
- package/dist/recovery/render-system-candidate.d.ts.map +1 -1
- package/dist/recovery/render-system-roots.d.ts +11 -0
- package/dist/recovery/render-system-roots.d.ts.map +1 -0
- package/dist/recovery/types.d.ts +76 -0
- package/dist/recovery/types.d.ts.map +1 -0
- package/dist/reflection/record-owner.d.ts +0 -2
- package/dist/reflection/record-owner.d.ts.map +1 -1
- package/dist/render-contract.d.ts +173 -30
- package/dist/render-contract.d.ts.map +1 -1
- package/dist/render-graph-primitives.d.ts +1 -0
- package/dist/render-graph-primitives.d.ts.map +1 -1
- package/dist/render-pipeline.d.ts +64 -5
- package/dist/render-pipeline.d.ts.map +1 -1
- package/dist/render-system-extract-tail.d.ts +7 -5
- package/dist/render-system-extract-tail.d.ts.map +1 -1
- package/dist/render-system-extract.d.ts +101 -41
- package/dist/render-system-extract.d.ts.map +1 -1
- package/dist/render-system-projections.d.ts +22 -0
- package/dist/render-system-projections.d.ts.map +1 -0
- package/dist/render-system.d.ts +27 -77
- package/dist/render-system.d.ts.map +1 -1
- package/dist/scene/render-scene-types.d.ts +14 -7
- package/dist/scene/render-scene-types.d.ts.map +1 -1
- package/dist/scene/render-scene.d.ts +29 -11
- package/dist/scene/render-scene.d.ts.map +1 -1
- package/dist/scene/shadow-visibility.d.ts +5 -0
- package/dist/scene/shadow-visibility.d.ts.map +1 -0
- package/dist/ssr/admission.d.ts +70 -1
- package/dist/ssr/admission.d.ts.map +1 -1
- package/dist/ssr/compose.d.ts +13 -0
- package/dist/ssr/compose.d.ts.map +1 -0
- package/dist/ssr/errors.d.ts +35 -0
- package/dist/ssr/errors.d.ts.map +1 -1
- package/dist/ssr/graph.d.ts +60 -0
- package/dist/ssr/graph.d.ts.map +1 -0
- package/dist/ssr/history.d.ts +97 -0
- package/dist/ssr/history.d.ts.map +1 -0
- package/dist/ssr/hiz.d.ts +37 -0
- package/dist/ssr/hiz.d.ts.map +1 -0
- package/dist/ssr/inspection.d.ts +42 -0
- package/dist/ssr/inspection.d.ts.map +1 -0
- package/dist/ssr/resources.d.ts +58 -0
- package/dist/ssr/resources.d.ts.map +1 -0
- package/dist/ssr/temporal.d.ts +38 -0
- package/dist/ssr/temporal.d.ts.map +1 -0
- package/dist/systems/skin-palette-allocator.d.ts +32 -10
- package/dist/systems/skin-palette-allocator.d.ts.map +1 -1
- package/dist/systems/skin-palette-types.d.ts +15 -0
- package/dist/systems/skin-palette-types.d.ts.map +1 -1
- package/dist/systems/transparent-dispatch.d.ts +9 -0
- package/dist/systems/transparent-dispatch.d.ts.map +1 -0
- package/dist/targets/material-source.d.ts +7 -0
- package/dist/targets/material-source.d.ts.map +1 -1
- package/dist/temporal/frame-coordinator.d.ts +7 -0
- package/dist/temporal/frame-coordinator.d.ts.map +1 -1
- package/dist/temporal/gpu.d.ts +8 -0
- package/dist/temporal/gpu.d.ts.map +1 -1
- package/dist/temporal/history.d.ts.map +1 -1
- package/dist/temporal/index.mjs +6 -6
- package/dist/temporal/inspection.d.ts.map +1 -1
- package/dist/temporal/standard-scene-data.d.ts +2 -1
- package/dist/temporal/standard-scene-data.d.ts.map +1 -1
- package/dist/temporal/temporal-view.d.ts +2 -0
- package/dist/temporal/temporal-view.d.ts.map +1 -1
- package/dist/typed-render-graph-primitives.d.ts +35 -1
- package/dist/typed-render-graph-primitives.d.ts.map +1 -1
- package/dist/typed-shadow-passes.d.ts +3 -1
- package/dist/typed-shadow-passes.d.ts.map +1 -1
- package/dist/volume/temporal.d.ts +6 -0
- package/dist/volume/temporal.d.ts.map +1 -1
- package/package.json +21 -20
- package/src/__tests__/auto-exposure-gpu-evidence.ts +291 -0
- package/src/__tests__/auto-exposure-inspection.unit.test.ts +80 -0
- package/src/__tests__/auto-exposure-transaction.integration.test.ts +99 -0
- package/src/__tests__/auto-exposure.browser.test.ts +33 -0
- package/src/__tests__/auto-exposure.dawn.test.ts +33 -0
- package/src/__tests__/detached-inspection.integration.test.ts +5 -0
- package/src/__tests__/device-scope-lifecycle.unit.test.ts +18 -0
- package/src/__tests__/device-scope-stale-matrix.unit.test.ts +18 -0
- package/src/__tests__/docs-gate-green.unit.test.ts +3 -3
- package/src/__tests__/factory-contract.integration.test.ts +67 -8
- package/src/__tests__/fallback-row-stride-surface.unit.test.ts +19 -0
- package/src/__tests__/feature-depth-input.dawn.test.ts +121 -0
- package/src/__tests__/feature-noise.unit.test.ts +38 -0
- package/src/__tests__/fixtures/taa-resolve-pinned-baseline.wgsl +301 -0
- package/src/__tests__/frame-camera-selection.unit.test.ts +131 -0
- package/src/__tests__/frame-plan-contract.unit.test.ts +24 -0
- package/src/__tests__/frame-targets.unit.test.ts +24 -0
- package/src/__tests__/fullscreen-feature-plan.unit.test.ts +3 -0
- package/src/__tests__/gpu-driven-baseline.characterization.test.ts +79 -0
- package/src/__tests__/gpu-driven-batch-topology-pbr.unit.test.ts +287 -6
- package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +122 -142
- package/src/__tests__/gpu-driven-indirect-raster.browser.test.ts +10 -1
- package/src/__tests__/gpu-driven-lod-cache.unit.test.ts +264 -0
- package/src/__tests__/gpu-driven-mesh-world-identity.unit.test.ts +349 -0
- package/src/__tests__/gpu-driven-pbr.dawn.test.ts +1417 -0
- package/src/__tests__/gpu-driven-pbr.integration.test.ts +21 -0
- package/src/__tests__/gpu-driven-production-fixture.ts +96 -0
- package/src/__tests__/gpu-driven-production.integration.test.ts +1075 -93
- package/src/__tests__/gpu-driven-scaling.unit.test.ts +1 -3
- package/src/__tests__/gpu-driven-shadow-views.browser.test.ts +63 -0
- package/src/__tests__/gpu-driven-shadow-views.dawn.test.ts +294 -0
- package/src/__tests__/gpu-driven-shadow-views.integration.test.ts +97 -0
- package/src/__tests__/gpu-driven-shadow-views.unit.test.ts +168 -0
- package/src/__tests__/gpu-driven-skin-contract.test-d.ts +11 -0
- package/src/__tests__/gpu-driven-view-gpu-evidence.ts +72 -20
- package/src/__tests__/gpu-driven-view-graph.integration.test.ts +30 -9
- package/src/__tests__/gpu-driven-view.unit.test.ts +159 -52
- package/src/__tests__/gpu-pass-timing.browser.test.ts +6 -1
- package/src/__tests__/gpu-resource-store-stride.unit.test.ts +42 -0
- package/src/__tests__/gpu-scene-render-graph-gpu.ts +19 -5
- package/src/__tests__/gpu-scene.dawn.test.ts +40 -13
- package/src/__tests__/gpu-scene.unit.test.ts +559 -33
- package/src/__tests__/instances-culling.integration.test.ts +36 -10
- package/src/__tests__/instances-derived-bounds.unit.test.ts +54 -0
- package/src/__tests__/instances-store.unit.test.ts +242 -39
- package/src/__tests__/ktx2-basis-gpu-consumer.dawn.test.ts +6 -0
- package/src/__tests__/lighting-scene-roundtrip.integration.test.ts +13 -16
- package/src/__tests__/lut-lkg-transaction.integration.test.ts +122 -0
- package/src/__tests__/material-contract-inventory.unit.test.ts +5 -6
- package/src/__tests__/material-dispatch-shader-id.unit.test.ts +51 -0
- package/src/__tests__/material-lane-selection.unit.test.ts +60 -0
- package/src/__tests__/material-numeric-upload.unit.test.ts +53 -0
- package/src/__tests__/material-texture-handles.unit.test.ts +18 -0
- package/src/__tests__/material-texture-source.unit.test.ts +87 -0
- package/src/__tests__/materials-authoring-validation.unit.test.ts +41 -0
- package/src/__tests__/materials-standard-contract.unit.test.ts +52 -2
- package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +4 -0
- package/src/__tests__/normal-fallback.dawn.test.ts +122 -0
- package/src/__tests__/particle-material-input-layout.unit.test.ts +104 -0
- package/src/__tests__/physical-clearcoat.integration.test.ts +37 -3
- package/src/__tests__/pipeline-texture-specialization.unit.test.ts +138 -0
- package/src/__tests__/point-shadow-inspection.unit.test.ts +2 -0
- package/src/__tests__/prepared-gpu-driven-pbr-contract.test-d.ts +31 -0
- package/src/__tests__/prepared-gpu-driven-pbr-contract.unit.test.ts +39 -0
- package/src/__tests__/prepared-gpu-driven-pbr.integration.test.ts +35 -4
- package/src/__tests__/prepared-graphics-capability.unit.test.ts +21 -0
- package/src/__tests__/prepared-graphics-pipeline-warmup.unit.test.ts +6 -2
- package/src/__tests__/profiler-phase-catalog.test.ts +5 -0
- package/src/__tests__/public-surface.test-d.ts +3 -0
- package/src/__tests__/recovery-candidate-prepare.contract.test.ts +30 -12
- package/src/__tests__/reflection-fallback-async-publication.unit.test.ts +104 -0
- package/src/__tests__/reflection-probe-record-owner.characterization.unit.test.ts +2 -1
- package/src/__tests__/render-error-code-owner.test-d.ts +4 -0
- package/src/__tests__/render-error-detail-ssot.test-d.ts +22 -0
- package/src/__tests__/render-error-exhaustive.test-d.ts +15 -0
- package/src/__tests__/render-feature-gpu-work.integration.test.ts +285 -2
- package/src/__tests__/render-feature-plan.unit.test.ts +245 -0
- package/src/__tests__/render-feature-shadow-order.unit.test.ts +228 -0
- package/src/__tests__/render-feature-zero-work.unit.test.ts +35 -1
- package/src/__tests__/render-graph-fallback.integration.test.ts +2 -2
- package/src/__tests__/render-owner-cohesion.unit.test.ts +55 -0
- package/src/__tests__/render-scene-mixed-updates.integration.test.ts +426 -0
- package/src/__tests__/render-scene-projection.unit.test.ts +914 -23
- package/src/__tests__/render-scene-resource-updates.integration.test.ts +214 -0
- package/src/__tests__/render-scene-skin-lifecycle.integration.test.ts +173 -0
- package/src/__tests__/render-scene-temporal-retry.unit.test.ts +133 -0
- package/src/__tests__/render-target-material-source.test-d.ts +27 -3
- package/src/__tests__/renderer-factory-material-contract.unit.test.ts +60 -0
- package/src/__tests__/renderer-frame-transaction.integration.test.ts +923 -5
- package/src/__tests__/shader-manifest-fixture.ts +39 -0
- package/src/__tests__/skin-motion-regression.unit.test.ts +0 -33
- package/src/__tests__/skin-palette-persistent.integration.test.ts +28 -0
- package/src/__tests__/skin-palette-persistent.unit.test.ts +247 -0
- package/src/__tests__/skinned-shadow-caster.test.ts +118 -14
- package/src/__tests__/specular-environment-scale.dawn.test.ts +156 -0
- package/src/__tests__/ssr-admission-matrix.integration.test.ts +7 -1
- package/src/__tests__/ssr-confidence-compose.unit.test.ts +84 -0
- package/src/__tests__/ssr-coordinate-oracle.unit.test.ts +28 -0
- package/src/__tests__/ssr-format-probe-gating.integration.test.ts +82 -0
- package/src/__tests__/ssr-gpu-dispatch.browser.test.ts +91 -0
- package/src/__tests__/ssr-gpu-dispatch.dawn.test.ts +112 -0
- package/src/__tests__/ssr-gpu-dispatch.ts +946 -0
- package/src/__tests__/ssr-graph-topology.unit.test.ts +104 -0
- package/src/__tests__/ssr-history-filter.dawn.test.ts +198 -0
- package/src/__tests__/ssr-hit-color.dawn.test.ts +273 -0
- package/src/__tests__/ssr-hiz-odd-reduction.dawn.test.ts +569 -0
- package/src/__tests__/ssr-hiz-rescue.dawn.test.ts +279 -0
- package/src/__tests__/ssr-hiz.browser.test.ts +150 -0
- package/src/__tests__/ssr-hiz.dawn.test.ts +150 -0
- package/src/__tests__/ssr-hiz.unit.test.ts +56 -0
- package/src/__tests__/ssr-inspection.unit.test.ts +105 -0
- package/src/__tests__/ssr-memory-budget.unit.test.ts +45 -0
- package/src/__tests__/ssr-performance-sequence-aggregation.unit.test.ts +15 -0
- package/src/__tests__/ssr-public-surface.test-d.ts +37 -0
- package/src/__tests__/ssr-receiver-coverage.dawn.test.ts +387 -0
- package/src/__tests__/ssr-reflection-mip-reducer.dawn.test.ts +309 -0
- package/src/__tests__/ssr-reprojection-probe.ts +90 -0
- package/src/__tests__/ssr-roughness-mip.dawn.test.ts +163 -0
- package/src/__tests__/ssr-shader-prewarm.unit.test.ts +59 -0
- package/src/__tests__/ssr-spatial.integration.test.ts +141 -0
- package/src/__tests__/ssr-stable-lattice.dawn.test.ts +475 -0
- package/src/__tests__/ssr-temporal-history.unit.test.ts +202 -0
- package/src/__tests__/ssr-texel-crossing.dawn.test.ts +448 -0
- package/src/__tests__/ssr-zero-work.integration.test.ts +87 -0
- package/src/__tests__/standard-cluster-variant-resolution.unit.test.ts +44 -12
- package/src/__tests__/standard-clustered-pipeline.unit.test.ts +29 -0
- package/src/__tests__/standard-output-chain-contract.unit.test.ts +99 -0
- package/src/__tests__/standard-output-chain.integration.test.ts +73 -0
- package/src/__tests__/standard-output-gpu-evidence.ts +205 -0
- package/src/__tests__/standard-output.browser.test.ts +15 -0
- package/src/__tests__/standard-output.dawn.test.ts +15 -0
- package/src/__tests__/standard-pbr-artifact-assembly.unit.test.ts +38 -0
- package/src/__tests__/standard-pipeline.integration.test.ts +320 -3
- package/src/__tests__/standard-profile-oracle.unit.test.ts +22 -0
- package/src/__tests__/standard-surface-lighting.unit.test.ts +41 -0
- package/src/__tests__/standard-texture-specialization.dawn.test.ts +141 -0
- package/src/__tests__/surface-adjacent-regressions.integration.test.ts +6 -3
- package/src/__tests__/taa-coverage-edge.dawn.test.ts +193 -0
- package/src/__tests__/taa-history-clipping.dawn.test.ts +328 -0
- package/src/__tests__/taa-neighborhood-equivalence.dawn.test.ts +778 -0
- package/src/__tests__/taa-stability-feedback.browser.test.ts +23 -0
- package/src/__tests__/taa-stability-feedback.dawn.test.ts +68 -0
- package/src/__tests__/taa-stability-feedback.ts +341 -0
- package/src/__tests__/temporal-history-lifecycle.unit.test.ts +49 -7
- package/src/__tests__/temporal-reset-matrix.unit.test.ts +9 -0
- package/src/__tests__/temporal-transaction.integration.test.ts +28 -0
- package/src/__tests__/texture-usage-surface.unit.test.ts +4 -2
- package/src/__tests__/typed-pipeline-topology.unit.test.ts +109 -4
- package/src/__tests__/typed-scene-pass-material-cache.integration.test.ts +126 -0
- package/src/__tests__/vertex-layouts-ssot.unit.test.ts +47 -0
- package/src/__tests__/visibility-extract.perf.test.ts +20 -8
- package/src/__tests__/visibility-instances.integration.test.ts +19 -7
- package/src/__tests__/visibility-producer-matrix.integration.test.ts +20 -9
- package/src/assembly/atmosphere-shader-prewarm.ts +38 -0
- package/src/assembly/dynamic-geometry-host.ts +48 -0
- package/src/assembly/dynamic-geometry-runtime.ts +71 -0
- package/src/assembly/factory.ts +4 -0
- package/src/assembly/gpu-driven-owner.ts +29 -0
- package/src/assembly/host-contract.ts +10 -0
- package/src/assembly/material/assembly.ts +38 -0
- package/src/assembly/material-shader-policy.ts +71 -28
- package/src/assembly/recovery/failure-location.ts +62 -0
- package/src/assembly/recovery/renderer-recover.ts +19 -17
- package/src/assembly/renderer-facade.ts +12 -0
- package/src/assembly/renderer-feature-inspection.ts +13 -0
- package/src/assembly/renderer-frame-transaction.ts +63 -0
- package/src/assembly/renderer-helpers.ts +26 -0
- package/src/assembly/renderer-inspection.ts +6 -0
- package/src/assembly/shader-prewarm-policy.ts +32 -0
- package/src/assembly/skin-palette-owner.ts +21 -0
- package/src/assembly/ssr-shader-prewarm.ts +41 -0
- package/src/assembly/webgpu-device-loss.ts +75 -0
- package/src/assembly/webgpu-pbr-ready.ts +232 -0
- package/src/assembly/webgpu-ready-mipmap.ts +26 -0
- package/src/assembly/webgpu-ready.ts +142 -121
- package/src/assembly/webgpu-renderer-bootstrap.ts +85 -0
- package/src/assembly/webgpu-renderer-contract.ts +69 -0
- package/src/assembly/webgpu-renderer-guards.ts +32 -0
- package/src/assembly/webgpu-renderer-observation.ts +43 -0
- package/src/assembly/webgpu-renderer-recovery-failure.ts +62 -0
- package/src/assembly/webgpu-renderer.ts +666 -652
- package/src/assembly/webgpu-vertex-layouts.ts +233 -87
- package/src/components/__tests__/camera-exposure.contract.unit.test.ts +153 -0
- package/src/components/camera.ts +287 -7
- package/src/components/index.ts +1 -0
- package/src/components/instances.ts +45 -18
- package/src/components/scene-instance.ts +2 -1
- package/src/components/screen-space-reflection.ts +21 -0
- package/src/components/sprite-animation.ts +2 -2
- package/src/components/sprite-instances.ts +1 -1
- package/src/device/gpu-residency.ts +34 -31
- package/src/environment/background.ts +263 -0
- package/src/errors/gpu-driven.ts +39 -5
- package/src/errors/render.ts +27 -3
- package/src/extract/camera.ts +26 -1
- package/src/extract/gpu-driven.ts +185 -10
- package/src/features/host.ts +237 -19
- package/src/features/noise-texture.ts +91 -0
- package/src/features/plan.ts +553 -24
- package/src/features/prepared-gpu-work.ts +631 -49
- package/src/features/prepared-graphics-store.ts +31 -0
- package/src/features/prepared-graphics.ts +5 -0
- package/src/features/render-graph-compute.ts +41 -8
- package/src/features/render-graph-contribution.ts +141 -3
- package/src/features/render-graph-raster.ts +143 -30
- package/src/features/types.ts +11 -0
- package/src/fullscreen-post-process-pass.ts +3 -0
- package/src/gpu-driven/batch-topology.ts +424 -102
- package/src/gpu-driven/pbr-program.ts +31 -0
- package/src/gpu-driven/prepared-draw.ts +29 -4
- package/src/gpu-driven/production-raster.ts +2267 -694
- package/src/gpu-driven/shadow-views.ts +539 -0
- package/src/gpu-driven/view-gpu.ts +188 -41
- package/src/gpu-scene-schema.ts +52 -11
- package/src/gpu-scene.ts +186 -99
- package/src/gpu-texture-usage.ts +1 -0
- package/src/hdrp-buffers.ts +72 -36
- package/src/ibl/frame-resources.ts +38 -0
- package/src/ibl/skylight-bind-group.ts +5 -4
- package/src/index.ts +109 -1
- package/src/inspection-types.ts +191 -0
- package/src/instances-derived-bounds.ts +258 -34
- package/src/instances.ts +459 -150
- package/src/internal.ts +22 -0
- package/src/lifecycle.ts +2 -0
- package/src/material-row.ts +145 -0
- package/src/materials.ts +44 -8
- package/src/pbr-pipeline.ts +159 -17
- package/src/pipeline/standard-forward-lane.ts +52 -24
- package/src/pipeline/standard-output/__tests__/lut-admission.unit.test.ts +103 -0
- package/src/pipeline/standard-output/auto-exposure/__tests__/capability.unit.test.ts +40 -0
- package/src/pipeline/standard-output/auto-exposure/__tests__/gpu.contract.unit.test.ts +125 -0
- package/src/pipeline/standard-output/auto-exposure/__tests__/graph.contract.unit.test.ts +94 -0
- package/src/pipeline/standard-output/auto-exposure/__tests__/oracle.test.ts +108 -0
- package/src/pipeline/standard-output/auto-exposure/__tests__/preset.test.ts +26 -0
- package/src/pipeline/standard-output/auto-exposure/capability.ts +38 -0
- package/src/pipeline/standard-output/auto-exposure/gpu.ts +567 -0
- package/src/pipeline/standard-output/auto-exposure/graph.ts +221 -0
- package/src/pipeline/standard-output/auto-exposure/inspection.ts +231 -0
- package/src/pipeline/standard-output/auto-exposure/oracle.ts +291 -0
- package/src/pipeline/standard-output/auto-exposure/preset.ts +28 -0
- package/src/pipeline/standard-output/auto-exposure/state.ts +156 -0
- package/src/pipeline/standard-output/color-transform.ts +124 -0
- package/src/pipeline/standard-output/graph.ts +139 -0
- package/src/pipeline/standard-output/lut-admission.ts +121 -0
- package/src/pipeline/standard-output/lut-gpu.ts +399 -0
- package/src/pipeline/standard-output/lut-state.ts +176 -0
- package/src/pipeline/standard-output/resources.ts +121 -0
- package/src/pipeline/standard-output/types.ts +58 -0
- package/src/pipeline/standard-pipeline.ts +192 -59
- package/src/pipeline/standard-post.ts +186 -27
- package/src/pipeline-builder.ts +16 -6
- package/src/pipeline-spec-types.ts +4 -0
- package/src/pipeline-spec.ts +37 -29
- package/src/points-lines/standard-owner.ts +6 -14
- package/src/prepare/prepared-graphics-resolver.ts +9 -2
- package/src/record/__tests__/material-slot-plan.unit.test.ts +48 -0
- package/src/record/__tests__/mesh-ssbo.unit.test.ts +40 -1
- package/src/record/__tests__/recovery-pipeline.unit.test.ts +2 -29
- package/src/record/__tests__/sprite-material-abi.unit.test.ts +36 -5
- package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +45 -0
- package/src/record/__tests__/view-ubo-layout.unit.test.ts +5 -0
- package/src/record/dynamic-geometry-consumption.ts +59 -0
- package/src/record/frame-lighting.ts +12 -11
- package/src/record/frame-snapshot.ts +133 -23
- package/src/record/frame-targets.ts +9 -0
- package/src/record/frame.ts +725 -133
- package/src/record/main-pass-geometry.ts +149 -94
- package/src/record/main-pass-material.ts +115 -26
- package/src/record/main-pass-sprite-draws.ts +16 -107
- package/src/record/main-pass.ts +78 -8
- package/src/record/material-uniforms.ts +1 -1
- package/src/record/mesh-ssbo.ts +59 -15
- package/src/record/prepared-material-bindings.ts +234 -0
- package/src/record/recovery-pipeline.ts +59 -136
- package/src/record/render-context.ts +90 -22
- package/src/record/shadow-pass.ts +1231 -209
- package/src/record/skybox-post-pass.ts +14 -3
- package/src/record/typed-frame-graph.ts +1004 -44
- package/src/record/view-ubo.ts +11 -0
- package/src/recovery/render-system-candidate.ts +90 -66
- package/src/recovery/render-system-roots.ts +113 -0
- package/src/recovery/types.ts +77 -0
- package/src/reflection/record-owner.ts +26 -54
- package/src/render-contract.ts +195 -25
- package/src/render-graph-primitives.ts +6 -2
- package/src/render-pipeline.ts +70 -1
- package/src/render-system-extract-tail.ts +409 -160
- package/src/render-system-extract.ts +376 -102
- package/src/render-system-projections.ts +241 -0
- package/src/render-system.ts +681 -822
- package/src/scene/render-scene-types.ts +13 -4
- package/src/scene/render-scene.ts +569 -355
- package/src/scene/shadow-visibility.ts +21 -0
- package/src/ssr/admission.ts +380 -14
- package/src/ssr/compose.ts +144 -0
- package/src/ssr/errors.ts +48 -0
- package/src/ssr/graph.ts +777 -0
- package/src/ssr/history.ts +436 -0
- package/src/ssr/hiz.ts +124 -0
- package/src/ssr/inspection.ts +124 -0
- package/src/ssr/resources.ts +202 -0
- package/src/ssr/temporal.ts +164 -0
- package/src/systems/skin-palette-allocator.ts +495 -148
- package/src/systems/skin-palette-types.ts +17 -0
- package/src/systems/transparent-dispatch.ts +90 -0
- package/src/targets/material-source.ts +34 -0
- package/src/temporal/coverage.ts +1 -1
- package/src/temporal/frame-coordinator.ts +23 -2
- package/src/temporal/gpu.ts +74 -12
- package/src/temporal/history.ts +3 -1
- package/src/temporal/inspection.ts +2 -1
- package/src/temporal/standard-scene-data.ts +3 -1
- package/src/temporal/temporal-view.ts +3 -0
- package/src/transmission/__tests__/standard-transmission.dawn.test.ts +204 -139
- package/src/typed-render-graph-primitives.ts +266 -74
- package/src/typed-shadow-passes.ts +122 -12
- package/src/volume/temporal.ts +10 -0
- package/dist/chunk-GE3SDD72.mjs.map +0 -1
- package/dist/chunk-GF523LHF.mjs.map +0 -1
- package/dist/chunk-IQMKJLNU.mjs.map +0 -1
- package/dist/chunk-J52NMQKR.mjs.map +0 -1
- package/dist/chunk-J6KACNOH.mjs.map +0 -1
- package/dist/chunk-JAASCMXA.mjs.map +0 -1
- package/dist/chunk-MBU4ZVE7.mjs.map +0 -1
- package/dist/chunk-RBDBZ5R7.mjs.map +0 -1
- package/dist/chunk-VSL23LZE.mjs.map +0 -1
- package/src/__tests__/instances-world-ownership.integration.test.ts +0 -62
- package/src/scene/__tests__/changed-block-summary.candidate.test.ts +0 -36
|
@@ -10,9 +10,9 @@ import type { PipelineBuilderShaderModuleFactory } from '../pipeline-builder';
|
|
|
10
10
|
import type { PreparedGraphicsResolver } from '../prepare/prepared-graphics-resolver';
|
|
11
11
|
import type { RenderFrameState, ValidatedRenderable } from '../record/frame-snapshot';
|
|
12
12
|
import type { PointsLinesRecordOwner, RenderSystemInternals } from '../record/render-context';
|
|
13
|
-
import type { RecoveryGraphCandidate, RecoveryGraphCandidatePreparation, RecoveryGraphCandidateRuntime, RecoveryGraphSetupSubmission, RecoveryPointsLinesCandidate } from '../render-system';
|
|
14
13
|
import type { ExtractedFrame, MaterialSnapshot } from '../render-system-extract';
|
|
15
14
|
import type { PersistentRenderScene } from '../scene/render-scene';
|
|
15
|
+
import type { RecoveryGraphCandidate, RecoveryGraphCandidatePreparation, RecoveryGraphCandidateRuntime, RecoveryGraphSetupSubmission, RecoveryPointsLinesCandidate } from './types';
|
|
16
16
|
export interface PreparedResolverCaches {
|
|
17
17
|
readonly preparedPipelineIds: WeakMap<object, string>;
|
|
18
18
|
readonly preparedMaterialPipelineShaders: WeakMap<object, string>;
|
|
@@ -54,11 +54,19 @@ export interface RenderSystemRecoveryDependencies {
|
|
|
54
54
|
}
|
|
55
55
|
export interface RenderSystemRecoveryOwner {
|
|
56
56
|
setLastSuccessfulFrameSeed(seed: RecoveryFrameSeed): void;
|
|
57
|
-
prepareRecoveryGraphCandidate(runtime: RecoveryGraphCandidateRuntime):
|
|
57
|
+
prepareRecoveryGraphCandidate(runtime: RecoveryGraphCandidateRuntime): RecoveryGraphCandidatePreparation;
|
|
58
58
|
submitCandidateSetup(candidate: RecoveryGraphCandidate, isValid: () => boolean): Result<RecoveryGraphSetupSubmission, RhiError>;
|
|
59
59
|
publishRecoveryGraphCandidate(candidate: RecoveryGraphCandidate): void;
|
|
60
60
|
discardRecoveryGraphCandidate(candidate: RecoveryGraphCandidate): void;
|
|
61
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Keep the missing-texture sentinel out of residency preparation. A zero
|
|
64
|
+
* handle is the same absent-reference value used by materialHandle; resolving
|
|
65
|
+
* it as a real TextureAsset would otherwise pass an undefined pod to the GPU
|
|
66
|
+
* store and fail before the renderer can produce a structured readiness
|
|
67
|
+
* result.
|
|
68
|
+
*/
|
|
69
|
+
export declare function materialTextureHandlesForResidency(candidates: Iterable<Handle<'TextureAsset', 'shared'> | undefined>): readonly Handle<'TextureAsset', 'shared'>[];
|
|
62
70
|
export declare function materialTextureHandles(material: MaterialSnapshot): readonly Handle<'TextureAsset', 'shared'>[];
|
|
63
71
|
export declare function materialSamplerHandles(material: MaterialSnapshot): readonly Handle<'SamplerAsset', 'shared'>[];
|
|
64
72
|
export declare function createRenderSystemRecovery(deps: RenderSystemRecoveryDependencies): RenderSystemRecoveryOwner;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-system-candidate.d.ts","sourceRoot":"","sources":["../../src/recovery/render-system-candidate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,QAAQ,EACT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,EAAyC,MAAM,uBAAuB,CAAC;AAG3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAGL,KAAK,0CAA0C,EAEhD,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE/E,OAAO,EAGL,KAAK,sBAAsB,EAE5B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"render-system-candidate.d.ts","sourceRoot":"","sources":["../../src/recovery/render-system-candidate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { EnvironmentLifecycle } from '../environment/lifecycle';
|
|
2
|
+
import type { RenderFrameState } from '../record/frame-snapshot';
|
|
3
|
+
import type { RecoveryRootBundle, RecoveryRootRuntime } from '../render-system';
|
|
4
|
+
/**
|
|
5
|
+
* Assemble replacement-device roots without letting candidate construction
|
|
6
|
+
* publish through the active RenderSystem owner. The caller supplies the
|
|
7
|
+
* small state handoff explicitly so this recovery seam remains independent
|
|
8
|
+
* from frame orchestration.
|
|
9
|
+
*/
|
|
10
|
+
export declare function prepareRenderSystemRecoveryRoots(runtime: RecoveryRootRuntime, environmentLifecycle: EnvironmentLifecycle, frameState: RenderFrameState, publishEnvironmentLifecycle: (lifecycle: EnvironmentLifecycle) => void): RecoveryRootBundle;
|
|
11
|
+
//# sourceMappingURL=render-system-roots.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-system-roots.d.ts","sourceRoot":"","sources":["../../src/recovery/render-system-roots.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEhF;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,mBAAmB,EAC5B,oBAAoB,EAAE,oBAAoB,EAC1C,UAAU,EAAE,gBAAgB,EAC5B,2BAA2B,EAAE,CAAC,SAAS,EAAE,oBAAoB,KAAK,IAAI,GACrE,kBAAkB,CA+FpB"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type { MipmapEncoderWork } from '@forgeax/engine-assets-runtime';
|
|
2
|
+
import type { Buffer, RenderPipeline, RhiDevice } from '@forgeax/engine-rhi';
|
|
3
|
+
import type { DeviceScope, LifecycleResourceSpec } from '../device/device-scope';
|
|
4
|
+
import type { GpuResidencyCache } from '../device/gpu-residency';
|
|
5
|
+
import type { RenderFeatureHost } from '../features/host';
|
|
6
|
+
import type { RenderFeatureGpuWorkOwner } from '../features/prepared-gpu-work';
|
|
7
|
+
import type { GpuDrivenProduction } from '../gpu-driven/production-raster';
|
|
8
|
+
import type { RenderFrameState } from '../record/frame-snapshot';
|
|
9
|
+
import type { RecoveryPipelineReadiness } from '../record/recovery-pipeline';
|
|
10
|
+
import type { PipelineState, RenderSystemInternals } from '../record/render-context';
|
|
11
|
+
import type { RenderFeatureGraphCandidate } from '../record/typed-frame-graph';
|
|
12
|
+
import type { PersistentGpuDrivenCandidate } from '../scene/render-scene';
|
|
13
|
+
/** The single Points/Lines owner's staged device-generation handoff. */
|
|
14
|
+
export interface RecoveryPointsLinesCandidate {
|
|
15
|
+
createRecoveryRoot(scope: DeviceScope): LifecycleResourceSpec<unknown>;
|
|
16
|
+
publish(): void;
|
|
17
|
+
release(): void;
|
|
18
|
+
}
|
|
19
|
+
/** Candidate-only device/runtime inputs used by the recovery prepare seam. */
|
|
20
|
+
export interface RecoveryGraphCandidateRuntime {
|
|
21
|
+
readonly internals: RenderSystemInternals;
|
|
22
|
+
readonly pipelineState: PipelineState;
|
|
23
|
+
}
|
|
24
|
+
/** Detached graph state prepared on a replacement device, before publication. */
|
|
25
|
+
export interface RecoveryGraphCandidate {
|
|
26
|
+
readonly frameState: RenderFrameState;
|
|
27
|
+
readonly setupWorks: readonly MipmapEncoderWork[];
|
|
28
|
+
readonly device: RhiDevice;
|
|
29
|
+
readonly generation: number;
|
|
30
|
+
readonly gpuDrivenProduction?: GpuDrivenProduction;
|
|
31
|
+
readonly gpuDrivenScene?: PersistentGpuDrivenCandidate;
|
|
32
|
+
/** Staged CPU-expanded Points/Lines buffers owned by the same RenderSystem. */
|
|
33
|
+
readonly pointsLines?: RecoveryPointsLinesCandidate;
|
|
34
|
+
readonly featureHost?: RenderFeatureHost;
|
|
35
|
+
readonly featureGpuWork?: RenderFeatureGpuWorkOwner;
|
|
36
|
+
readonly featureGraphCandidate?: RenderFeatureGraphCandidate;
|
|
37
|
+
readonly postProcessPipelines?: ReadonlyMap<string, RenderPipeline>;
|
|
38
|
+
readonly recoveryReadiness: RecoveryPipelineReadiness;
|
|
39
|
+
/** Release all candidate roots before publication; safe to call repeatedly. */
|
|
40
|
+
readonly release: () => void;
|
|
41
|
+
/** Transfer candidate-root ownership to the published RenderSystem. */
|
|
42
|
+
readonly markPublished: () => void;
|
|
43
|
+
}
|
|
44
|
+
/** Candidate setup completion; completion is bounded by the recovery owner. */
|
|
45
|
+
export interface RecoveryGraphSetupSubmission {
|
|
46
|
+
readonly completion?: PromiseLike<unknown>;
|
|
47
|
+
}
|
|
48
|
+
export type RecoveryGraphCandidatePreparation = {
|
|
49
|
+
readonly kind: 'no-seed';
|
|
50
|
+
} | {
|
|
51
|
+
readonly kind: 'ready';
|
|
52
|
+
readonly candidate: RecoveryGraphCandidate;
|
|
53
|
+
} | {
|
|
54
|
+
readonly kind: 'failed';
|
|
55
|
+
readonly reason: string;
|
|
56
|
+
readonly cause?: unknown;
|
|
57
|
+
};
|
|
58
|
+
/** Explicit candidate-owned inputs for lifecycle-root preparation. */
|
|
59
|
+
export interface RecoveryRootRuntime {
|
|
60
|
+
readonly scope: DeviceScope;
|
|
61
|
+
readonly device: RhiDevice;
|
|
62
|
+
readonly gpuStore: GpuResidencyCache;
|
|
63
|
+
readonly graphCandidate?: RecoveryGraphCandidate | undefined;
|
|
64
|
+
}
|
|
65
|
+
/** Candidate roots plus the one synchronous owner switch at publication. */
|
|
66
|
+
export interface RecoveryRootBundle {
|
|
67
|
+
readonly roots: readonly LifecycleResourceSpec<unknown>[];
|
|
68
|
+
publish(): void;
|
|
69
|
+
discard(): void;
|
|
70
|
+
}
|
|
71
|
+
/** Device-bound post-process resources prepared off to the side of the active renderer. */
|
|
72
|
+
export interface RecoveryPostProcessResources {
|
|
73
|
+
readonly device: RhiDevice;
|
|
74
|
+
readonly paramsBuffers: Map<string, Buffer>;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/recovery/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,6 @@ export declare class ReflectionProbeRecordOwner {
|
|
|
19
19
|
private outputFormat;
|
|
20
20
|
private fallbackFormatAvailable;
|
|
21
21
|
private nextFallbackTicket;
|
|
22
|
-
private pendingFallback;
|
|
23
22
|
private latestFallbackTickets;
|
|
24
23
|
private fallbackRetiredFrames;
|
|
25
24
|
private fallbackCommittedFrames;
|
|
@@ -43,7 +42,6 @@ export declare class ReflectionProbeRecordOwner {
|
|
|
43
42
|
private completeSubmission;
|
|
44
43
|
private stageFallbackProjections;
|
|
45
44
|
private selectFallbackReceiptKey;
|
|
46
|
-
private discardFallbackTickets;
|
|
47
45
|
/** Commit exact-zero neutral rows even when a non-neutral MRT readback fails. */
|
|
48
46
|
private commitNeutralFallbacks;
|
|
49
47
|
private commitFallbackProjection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-owner.d.ts","sourceRoot":"","sources":["../../src/reflection/record-owner.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAGV,yBAAyB,EAE1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGlG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AASjE,OAAO,EAKL,KAAK,mBAAmB,EACxB,KAAK,8BAA8B,EAKpC,MAAM,cAAc,CAAC;AAqDtB,4EAA4E;AAC5E,qBAAa,0BAA0B;
|
|
1
|
+
{"version":3,"file":"record-owner.d.ts","sourceRoot":"","sources":["../../src/reflection/record-owner.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAGV,yBAAyB,EAE1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGlG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AASjE,OAAO,EAKL,KAAK,mBAAmB,EACxB,KAAK,8BAA8B,EAKpC,MAAM,cAAc,CAAC;AAqDtB,4EAA4E;AAC5E,qBAAa,0BAA0B;IA+BzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IA9BtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;IACjE,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,qBAAqB,CAAqB;IAClD,OAAO,CAAC,sBAAsB,CAAK;IACnC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,0BAA0B,CAAK;IACvC,OAAO,CAAC,aAAa,CAA4D;IACjF,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,uBAAuB,CAAU;IACzC,OAAO,CAAC,kBAAkB,CAAK;IAI/B,OAAO,CAAC,qBAAqB,CAAsC;IACnE,OAAO,CAAC,qBAAqB,CAA6B;IAC1D,OAAO,CAAC,uBAAuB,CAA6B;IAC5D,OAAO,CAAC,mBAAmB,CAGvB;IACJ,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,gBAAgB,CAAgD;IACxE,OAAO,CAAC,gBAAgB,CAAgD;IACxE,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,eAAe,CAA6C;IACpE,OAAO,CAAC,eAAe,CAA4B;gBAEtB,SAAS,EAAE,qBAAqB;IAQ7D,OAAO,IAAI,yBAAyB;IA0CpC,OAAO,CAAC,qBAAqB;IAoB7B,OAAO,CAAC,sBAAsB;IAwB9B,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,2BAA2B;IA4BnC,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,oBAAoB;IAmC5B,OAAO,CACL,KAAK,EAAE,SAAS,mBAAmB,EAAE,EACrC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,8BAA8B,CAAC,EAC/D,aAAa,EAAE,cAAc,GAAG,SAAS,EACzC,OAAO,SAA8B,EACrC,QAAQ,GAAE,gBAAgB,GAAG,SAAqB,GACjD,0BAA0B;YAmMf,kBAAkB;IAmEhC,OAAO,CAAC,wBAAwB;IAwHhC,OAAO,CAAC,wBAAwB;IA2ChC,iFAAiF;IACjF,OAAO,CAAC,sBAAsB;IAe9B,OAAO,CAAC,wBAAwB;IAoChC,4EAA4E;IAC5E,OAAO,CAAC,mBAAmB;YA2Bb,0BAA0B;IAsLxC,OAAO,IAAI,IAAI;IAyBf,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,WAAW;IAuEnB,OAAO,CAAC,qBAAqB;IAgD7B,OAAO,CAAC,aAAa;CAqEtB"}
|
|
@@ -8,14 +8,17 @@ import type { BindGroupLayout, Buffer, Result, RhiCanvasSurfacePresentationProof
|
|
|
8
8
|
import type { SkinError } from '@forgeax/engine-skinning';
|
|
9
9
|
import type { ImageError } from '@forgeax/engine-types';
|
|
10
10
|
import type { RhiBackendInstrumentation } from './assembly/backend-contract';
|
|
11
|
-
import type { Antialias, BloomEnabled, Tonemap } from './components/camera';
|
|
11
|
+
import type { Antialias, BloomEnabled, CameraExposure, Tonemap } from './components/camera';
|
|
12
|
+
import type { ScreenSpaceReflectionData } from './components/screen-space-reflection';
|
|
12
13
|
import type { EnvironmentInspection } from './environment/inspection';
|
|
14
|
+
import type { GpuDrivenPreparationError } from './errors/gpu-driven';
|
|
13
15
|
import type { RecoveryOutcome, RecoveryPhase } from './errors/recover';
|
|
14
16
|
import type { RenderError } from './errors/render';
|
|
15
17
|
import type { RenderFeature, RenderFeatureDiagnostics } from './features/types';
|
|
16
18
|
import type { PostProcessShaderEntry } from './fullscreen-post-process-pass';
|
|
17
|
-
import type { BloomInspection, DirectionalShadowInspection, LightInspection, LodOcclusionInspection, MotionBlurInspection, ReflectionProbeInspection, RenderSceneInspection, SsrDependenciesInspection, TemporalTargetInspection, TransmissionInspection } from './inspection-types';
|
|
18
|
-
import type { InstanceCollectionInspection } from './instances';
|
|
19
|
+
import type { BloomInspection, DirectionalShadowInspection, LightInspection, LodOcclusionInspection, MotionBlurInspection, ReflectionProbeInspection, RenderFeatureGraphInspection, RenderFeatureHostInspection, RenderSceneInspection, SsrDependenciesInspection, SsrSpatialInspection, TemporalTargetInspection, TransmissionInspection } from './inspection-types';
|
|
20
|
+
import type { InstanceCollectionInspection, InstanceCollectionStore } from './instances';
|
|
21
|
+
import type { RenderSceneBounds } from './scene/render-scene-types';
|
|
19
22
|
import type { SsrAdmissionIdentity } from './ssr/identity';
|
|
20
23
|
import type { RenderTarget, RenderTargetDescriptor, RenderTargetReadbackData, RenderTargetReadbackRequest, RenderTargetReadbackTicket, RenderTargetTextureSource, RenderTargetTextureSourceOptions } from './targets/contracts';
|
|
21
24
|
import type { TemporalInspection } from './temporal/inspection';
|
|
@@ -24,6 +27,8 @@ export type { PointsLinesInspection } from './points-lines/inspection';
|
|
|
24
27
|
import type { DynamicGeometryCandidate, DynamicGeometryError, DynamicGeometryInspection, DynamicGeometryOrdering, DynamicGeometryPrepareInput, DynamicGeometryReceipt } from './dynamic-geometry';
|
|
25
28
|
import type { IblBindingInspection, MeshMaterialBindingObservation } from './mesh-material-bindings';
|
|
26
29
|
import type { StandardLightingInspection } from './pipeline/standard-lighting/inspection';
|
|
30
|
+
import type { AutoExposureInspection } from './pipeline/standard-output/auto-exposure/inspection';
|
|
31
|
+
import type { StandardLutInspection } from './pipeline/standard-output/lut-state';
|
|
27
32
|
import type { StandardProfile } from './pipeline/standard-profile';
|
|
28
33
|
import type { PointShadowInspection } from './point-shadow-inspection';
|
|
29
34
|
import type { PostProcessError } from './post-process-errors';
|
|
@@ -51,6 +56,14 @@ export type RenderResult<T, E> = {
|
|
|
51
56
|
};
|
|
52
57
|
/** The only World data boundary accepted by the M6 renderer contract. */
|
|
53
58
|
export type RenderWorldLease = RenderReadLease;
|
|
59
|
+
/** Camera-owned color/exposure facts projected once at the frame boundary. */
|
|
60
|
+
export interface CameraOutputSnapshot {
|
|
61
|
+
readonly exposure: CameraExposure;
|
|
62
|
+
readonly temperature: number;
|
|
63
|
+
readonly tint: number;
|
|
64
|
+
readonly colorLut: number;
|
|
65
|
+
readonly colorLutStrength: number;
|
|
66
|
+
}
|
|
54
67
|
/**
|
|
55
68
|
* Camera facts shared by extract, record, and scene owners.
|
|
56
69
|
*
|
|
@@ -84,12 +97,16 @@ export interface CameraSnapshot {
|
|
|
84
97
|
readonly tonemap: Tonemap;
|
|
85
98
|
readonly exposure: number;
|
|
86
99
|
readonly whitePoint: number;
|
|
100
|
+
/** Camera schema output projection consumed by Standard prepare/inspection. */
|
|
101
|
+
readonly output?: CameraOutputSnapshot;
|
|
87
102
|
readonly antialias: Antialias;
|
|
88
103
|
readonly bloom: BloomEnabled;
|
|
89
104
|
readonly bloomThreshold: number;
|
|
90
105
|
readonly bloomIntensity: number;
|
|
91
106
|
readonly bloomBlurRadius: number;
|
|
92
107
|
readonly clearColor: readonly [number, number, number, number];
|
|
108
|
+
/** Optional active-camera SSR authoring fact, copied from the ECS schema. */
|
|
109
|
+
readonly screenSpaceReflection?: ScreenSpaceReflectionData;
|
|
93
110
|
/** Renderer-owned temporal projection used by Standard's TAA producer. */
|
|
94
111
|
readonly temporal?: TemporalView;
|
|
95
112
|
/** Active-camera motion blur parameters, present only when demanded. */
|
|
@@ -124,8 +141,41 @@ interface RenderPipelineStateView {
|
|
|
124
141
|
* RenderSystemRuntime structurally satisfies this contract, but the public
|
|
125
142
|
* frame surface does not depend on that assembly owner.
|
|
126
143
|
*/
|
|
144
|
+
interface RenderPipelineObservationCapture {
|
|
145
|
+
readonly domain: 'linear-hdr' | 'linear-ldr' | 'final-srgb';
|
|
146
|
+
readonly format: TextureFormat;
|
|
147
|
+
readonly device: RhiDevice;
|
|
148
|
+
readonly texture: Texture;
|
|
149
|
+
readonly buffer: Buffer;
|
|
150
|
+
readonly frameNumber: number;
|
|
151
|
+
readonly deviceGeneration: number;
|
|
152
|
+
readonly graphGeneration: number;
|
|
153
|
+
readonly backendId: string;
|
|
154
|
+
readonly width: number;
|
|
155
|
+
readonly height: number;
|
|
156
|
+
readonly bytesPerRow: number;
|
|
157
|
+
}
|
|
158
|
+
interface RenderPipelineObservationCaptureOwner {
|
|
159
|
+
readonly register: (capture: RenderPipelineObservationCapture) => void;
|
|
160
|
+
readonly consume: (frameNumber: number) => readonly RenderPipelineObservationCapture[];
|
|
161
|
+
readonly drain: () => readonly RenderPipelineObservationCapture[];
|
|
162
|
+
}
|
|
127
163
|
interface RenderPipelineRuntime {
|
|
128
164
|
readonly device: RhiDevice;
|
|
165
|
+
/** Current renderer device generation used to fence graph captures. */
|
|
166
|
+
readonly deviceGeneration?: number | undefined;
|
|
167
|
+
/** Public receipt identity reserved for the frame currently being encoded. */
|
|
168
|
+
readonly observationFrameId?: number | undefined;
|
|
169
|
+
/** Renderer-issued graph fence populated by the graph owner during encoding. */
|
|
170
|
+
observationGraphGeneration?: number | undefined;
|
|
171
|
+
/** Per-renderer bridge for receipt-bound graph color captures. */
|
|
172
|
+
readonly observationCaptureOwner?: RenderPipelineObservationCaptureOwner | undefined;
|
|
173
|
+
/**
|
|
174
|
+
* Domains armed for the frame currently being encoded. An absent or empty
|
|
175
|
+
* set is the normal zero-cost path; typed graph capture passes remain
|
|
176
|
+
* declared for topology inspection but do not allocate or copy anything.
|
|
177
|
+
*/
|
|
178
|
+
readonly observationCaptureDomains?: readonly FrameObservationDomain[] | undefined;
|
|
129
179
|
/** Runtime-owned shader module factory used by built-in graph producers. */
|
|
130
180
|
readonly shaderModuleFactory?: {
|
|
131
181
|
createShaderModule(input: {
|
|
@@ -133,13 +183,20 @@ interface RenderPipelineRuntime {
|
|
|
133
183
|
readonly label?: string | undefined;
|
|
134
184
|
}): import('@forgeax/engine-types').Result<import('@forgeax/engine-rhi').ShaderModule, RhiError>;
|
|
135
185
|
};
|
|
186
|
+
/** Immediate factory used by same-frame built-in producers after runtime warm-up. */
|
|
187
|
+
readonly immediateShaderModuleFactory?: {
|
|
188
|
+
createShaderModule(input: {
|
|
189
|
+
readonly code: string;
|
|
190
|
+
readonly label?: string | undefined;
|
|
191
|
+
}): import('@forgeax/engine-types').Result<import('@forgeax/engine-rhi').ShaderModule, RhiError>;
|
|
192
|
+
};
|
|
136
193
|
readonly errorRegistry: {
|
|
137
194
|
fire(error: RendererError): void;
|
|
138
195
|
};
|
|
139
196
|
readonly debugOverlay?: RenderDebugOverlay | undefined;
|
|
140
197
|
readonly lookupPostProcess?: (id: string) => PostProcessShaderEntry | undefined;
|
|
141
198
|
readonly getPostProcessParamsBuffer?: (id: string) => Buffer | undefined;
|
|
142
|
-
readonly getPostProcessPipeline?: (id: string, bgl: BindGroupLayout,
|
|
199
|
+
readonly getPostProcessPipeline?: (id: string, bgl: BindGroupLayout, colorFormats: readonly GPUTextureFormat[], entry?: PostProcessShaderEntry) => RhiRenderPipeline | null;
|
|
143
200
|
}
|
|
144
201
|
/**
|
|
145
202
|
* Render-owned declaration for an app-provided debug overlay. App owns the
|
|
@@ -175,6 +232,10 @@ export interface RenderPipelineContext {
|
|
|
175
232
|
readonly spotLightProjector?: SpotLightProjectorFrameContext;
|
|
176
233
|
/** Build-time composed utility sources for the renderer-owned volume passes. */
|
|
177
234
|
readonly volumetricFogShaders?: VolumetricFogShaderSources;
|
|
235
|
+
/** Build-time composed utility sources for the renderer-owned SSR passes. */
|
|
236
|
+
readonly ssrShaders?: SsrShaderSources;
|
|
237
|
+
/** Build-time composed utility sources for the renderer-owned atmosphere passes. */
|
|
238
|
+
readonly atmosphereShaders?: AtmosphereShaderSources;
|
|
178
239
|
}
|
|
179
240
|
/** Stable utility entry-point sources emitted by the shader manifest. */
|
|
180
241
|
export interface VolumetricFogShaderSources {
|
|
@@ -183,6 +244,19 @@ export interface VolumetricFogShaderSources {
|
|
|
183
244
|
readonly integrate: string;
|
|
184
245
|
readonly composite: string;
|
|
185
246
|
}
|
|
247
|
+
/** Stable utility entry-point sources emitted by the shader manifest. */
|
|
248
|
+
export interface SsrShaderSources {
|
|
249
|
+
readonly hiz: string;
|
|
250
|
+
readonly hizReduce: string;
|
|
251
|
+
readonly trace: string;
|
|
252
|
+
readonly temporal: string;
|
|
253
|
+
readonly compose: string;
|
|
254
|
+
}
|
|
255
|
+
/** Stable analytic-atmosphere entry-point sources emitted by the shader manifest. */
|
|
256
|
+
export interface AtmosphereShaderSources {
|
|
257
|
+
readonly cube: string;
|
|
258
|
+
readonly background: string;
|
|
259
|
+
}
|
|
186
260
|
/**
|
|
187
261
|
* GPU resources for one validated volumetric-fog candidate. The record stage
|
|
188
262
|
* owns residency and parameter uploads; graph passes consume this narrow view
|
|
@@ -225,6 +299,7 @@ export interface SpotLightProjectorFrameContext {
|
|
|
225
299
|
*/
|
|
226
300
|
export interface Renderer {
|
|
227
301
|
/** Renderer-owned authoring and update path for large instance collections. */
|
|
302
|
+
readonly instances: InstanceCollectionStore;
|
|
228
303
|
attach(world: World): RenderResult<RenderWorldLease, RenderError>;
|
|
229
304
|
/** Prepare a standard MeshAsset for the active device generation. */
|
|
230
305
|
prepareDynamicGeometry(input: DynamicGeometryPrepareInput): Result<DynamicGeometryCandidate, DynamicGeometryError>;
|
|
@@ -234,6 +309,16 @@ export interface Renderer {
|
|
|
234
309
|
cancelDynamicGeometry(candidate: DynamicGeometryCandidate): Result<void, DynamicGeometryError>;
|
|
235
310
|
retireDynamicGeometry(candidate: DynamicGeometryCandidate): Result<void, DynamicGeometryError>;
|
|
236
311
|
draw(input: RenderFrameInput): RenderResult<FrameReceipt, RenderError>;
|
|
312
|
+
/**
|
|
313
|
+
* Arm one upcoming submitted frame for explicit color-domain observation.
|
|
314
|
+
* Observation buffers are not created, copied, mapped, or retained until a
|
|
315
|
+
* host calls this method before `draw()`. The demand is consumed only by a
|
|
316
|
+
* successful submit; a failed frame keeps it armed for a retry.
|
|
317
|
+
*
|
|
318
|
+
* This optional extension keeps older injected Renderer test doubles source
|
|
319
|
+
* compatible while concrete Engine renderers always implement it.
|
|
320
|
+
*/
|
|
321
|
+
requestObservation?: (domains: readonly FrameObservationDomain[]) => RenderResult<void, RenderError>;
|
|
237
322
|
createRenderTarget(descriptor: RenderTargetDescriptor): RenderResult<RenderTarget, RenderError>;
|
|
238
323
|
resizeRenderTarget(target: RenderTarget, descriptor: RenderTargetDescriptor): RenderResult<void, RenderError>;
|
|
239
324
|
createRenderTargetTextureSource(target: RenderTarget, options: RenderTargetTextureSourceOptions): RenderResult<RenderTargetTextureSource, RenderError>;
|
|
@@ -241,6 +326,8 @@ export interface Renderer {
|
|
|
241
326
|
destroyRenderTarget(target: RenderTarget): RenderResult<void, RenderError>;
|
|
242
327
|
setProfile(profile: RenderProfile): RenderResult<void, RenderError>;
|
|
243
328
|
state(): RendererState;
|
|
329
|
+
/** Detached world bounds for one record in the last extracted World; undefined if unavailable. */
|
|
330
|
+
bounds(world: World, entity: number): RenderSceneBounds | undefined;
|
|
244
331
|
inspect(): RenderInspection;
|
|
245
332
|
observe(receipt: FrameReceipt, request: FrameObservationRequest): Promise<RenderResult<FrameReceiptObservation, RenderError>>;
|
|
246
333
|
subscribe(listener: (event: RendererEvent) => void): () => void;
|
|
@@ -273,6 +360,8 @@ export type RendererEvent = {
|
|
|
273
360
|
readonly kind: 'frame-submitted';
|
|
274
361
|
readonly frameId: number;
|
|
275
362
|
readonly deviceGeneration: number;
|
|
363
|
+
/** The exact receipt returned by the renderer's submit boundary. */
|
|
364
|
+
readonly receipt: FrameReceipt;
|
|
276
365
|
};
|
|
277
366
|
/** Package-local listener alias used by the renderer assembly implementation. */
|
|
278
367
|
export type RendererEventListener = (event: RendererEvent) => void;
|
|
@@ -298,8 +387,10 @@ export interface FrameEnvironment {
|
|
|
298
387
|
* only with the matching FrameReceipt after `receipt.completed` and returns a
|
|
299
388
|
* structured Result error when the generation or frame identity is stale.
|
|
300
389
|
*/
|
|
390
|
+
export type FrameObservationDomain = 'linear-hdr' | 'linear-ldr' | 'final-srgb';
|
|
391
|
+
export type FrameObservationInclude = 'timings' | 'draws' | 'bindings' | 'target-readbacks' | FrameObservationDomain;
|
|
301
392
|
export interface FrameObservationRequest {
|
|
302
|
-
readonly include: readonly
|
|
393
|
+
readonly include: readonly FrameObservationInclude[];
|
|
303
394
|
readonly targetReadbacks?: readonly RenderTargetReadbackTicket[];
|
|
304
395
|
}
|
|
305
396
|
/**
|
|
@@ -311,6 +402,10 @@ export interface FrameObservationRequest {
|
|
|
311
402
|
export interface FrameReceipt {
|
|
312
403
|
readonly frameId: number;
|
|
313
404
|
readonly deviceGeneration: number;
|
|
405
|
+
/** Backend identity captured at submit and checked before observation. */
|
|
406
|
+
readonly backendId?: RhiCaps['backendKind'];
|
|
407
|
+
/** Monotonic compiled graph identity used by renderer-issued observations. */
|
|
408
|
+
readonly graphGeneration?: number;
|
|
314
409
|
readonly completed: Promise<RenderResult<void, RenderError>>;
|
|
315
410
|
}
|
|
316
411
|
/**
|
|
@@ -331,15 +426,42 @@ export interface RenderFrameInput {
|
|
|
331
426
|
export interface FrameReceiptObservation {
|
|
332
427
|
readonly frameId: number;
|
|
333
428
|
readonly deviceGeneration: number;
|
|
334
|
-
readonly include: readonly
|
|
429
|
+
readonly include: readonly FrameObservationInclude[];
|
|
335
430
|
/** Receipt-bound Render-owned GPU pass facts; absent when not requested. */
|
|
336
431
|
readonly timings?: GpuPassTimingObservation | undefined;
|
|
337
432
|
/** Receipt-bound volume GPU timing facts; absent when not requested. */
|
|
338
433
|
readonly volumeTimings?: VolumeTimingObservation | undefined;
|
|
339
434
|
readonly targetReadbacks?: readonly RenderTargetReadbackData[];
|
|
435
|
+
/** Independent raw bytes captured from the requested linear/display domains. */
|
|
436
|
+
readonly observations?: readonly FrameDomainObservation[] | undefined;
|
|
437
|
+
}
|
|
438
|
+
export interface FrameDomainObservation {
|
|
439
|
+
readonly domain: FrameObservationDomain;
|
|
440
|
+
readonly bytes: Uint8Array;
|
|
441
|
+
readonly metadata: {
|
|
442
|
+
readonly frameId: number;
|
|
443
|
+
readonly deviceGeneration: number;
|
|
444
|
+
readonly backendId?: RhiCaps['backendKind'];
|
|
445
|
+
/** Native texture format of the copied attachment, including BGRA order. */
|
|
446
|
+
readonly format: TextureFormat;
|
|
447
|
+
readonly graphGeneration: number;
|
|
448
|
+
readonly textureIdentity: number;
|
|
449
|
+
readonly readbackIdentity: number;
|
|
450
|
+
readonly width: number;
|
|
451
|
+
readonly height: number;
|
|
452
|
+
readonly bytesPerRow: number;
|
|
453
|
+
readonly footprint: {
|
|
454
|
+
readonly resourceCount: number;
|
|
455
|
+
readonly bindGroupCount: number;
|
|
456
|
+
};
|
|
457
|
+
};
|
|
340
458
|
}
|
|
341
459
|
/** Stable backend facts for the Standard output transform projection. */
|
|
342
460
|
export interface RenderOutputInspection {
|
|
461
|
+
/** Camera-owned auto-exposure facts, detached from GPU state when available. */
|
|
462
|
+
readonly autoExposure?: AutoExposureInspection;
|
|
463
|
+
/** Renderer-owned detached LUT residency and receipt facts. */
|
|
464
|
+
readonly standardLut?: StandardLutInspection;
|
|
343
465
|
readonly outputTransform?: typeof STANDARD_OUTPUT_TRANSFORM_FEATURE_ID;
|
|
344
466
|
readonly displayEncoded: boolean;
|
|
345
467
|
readonly intermediateFormat?: TextureFormat;
|
|
@@ -383,6 +505,15 @@ export interface RenderObservationInspection {
|
|
|
383
505
|
/** Exact pass names and target descriptor from the committed graph. */
|
|
384
506
|
readonly passNames: readonly string[];
|
|
385
507
|
readonly standardOutputColor?: RenderStandardOutputColorInspection;
|
|
508
|
+
/** Monotonic, renderer-owned observation resource facts; no GPU handles. */
|
|
509
|
+
readonly resourceStats?: {
|
|
510
|
+
readonly allocationCount: number;
|
|
511
|
+
readonly liveCount: number;
|
|
512
|
+
readonly peakLiveCount: number;
|
|
513
|
+
readonly mapCount: number;
|
|
514
|
+
readonly readbackCount: number;
|
|
515
|
+
readonly liveByteLength: number;
|
|
516
|
+
};
|
|
386
517
|
}
|
|
387
518
|
/**
|
|
388
519
|
* Detached renderer facts for host diagnostics and capability selection.
|
|
@@ -420,6 +551,12 @@ export interface RenderInspection {
|
|
|
420
551
|
readonly features: readonly string[];
|
|
421
552
|
/** Truthful lifecycle facts for every registered declarative feature. */
|
|
422
553
|
readonly featureDiagnostics: readonly RenderFeatureDiagnostics[];
|
|
554
|
+
/** Detached signature and prepared-resource counters for feature planning. */
|
|
555
|
+
readonly featureHost?: RenderFeatureHostInspection;
|
|
556
|
+
/** Detached typed-graph compile/reuse and candidate lifecycle counters. */
|
|
557
|
+
readonly featureGraph?: RenderFeatureGraphInspection;
|
|
558
|
+
/** Detached material texture-source probe counters from the last extract. */
|
|
559
|
+
readonly materialTextureSources?: import('./inspection-types').MaterialTextureSourceInspection;
|
|
423
560
|
readonly frustumStats: {
|
|
424
561
|
readonly culled: number;
|
|
425
562
|
readonly total: number;
|
|
@@ -435,6 +572,8 @@ export interface RenderInspection {
|
|
|
435
572
|
readonly reflectionProbes: ReflectionProbeInspection;
|
|
436
573
|
/** Renderer-owned SSR dependency seam; consumer facts are projected from live owners. */
|
|
437
574
|
readonly ssrDependencies: SsrDependenciesInspection;
|
|
575
|
+
/** Renderer-owned SSR spatial status and bounded execution facts. */
|
|
576
|
+
readonly ssr: SsrSpatialInspection;
|
|
438
577
|
/** Last completed transmission candidate facts, detached from GPU handles. */
|
|
439
578
|
readonly transmission?: TransmissionInspection;
|
|
440
579
|
/** Last prepared Standard transport facts, detached from GPU handles. */
|
|
@@ -479,16 +618,12 @@ export interface RenderInspection {
|
|
|
479
618
|
readonly lastGeneration: number | undefined;
|
|
480
619
|
};
|
|
481
620
|
};
|
|
482
|
-
/**
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
readonly
|
|
488
|
-
readonly endpoint: 'surface.storage.raw';
|
|
489
|
-
readonly capability: RenderOutputInspection['capability'];
|
|
490
|
-
readonly presentationProof?: RhiCanvasSurfacePresentationProof;
|
|
491
|
-
readonly error: RenderOutputInspection['error'];
|
|
621
|
+
/**
|
|
622
|
+
* Output-transform facts from the same committed graph and physical surface.
|
|
623
|
+
* Keep this as one named subtree so AI consumers do not have to guess which
|
|
624
|
+
* detached fields belong to the output contract versus renderer lifecycle.
|
|
625
|
+
*/
|
|
626
|
+
readonly output: RenderOutputInspection;
|
|
492
627
|
readonly observation: RenderObservationInspection;
|
|
493
628
|
readonly environment: EnvironmentInspection;
|
|
494
629
|
readonly temporal: TemporalInspection;
|
|
@@ -521,6 +656,8 @@ export interface RenderInspection {
|
|
|
521
656
|
export type DrawOwnerOptions = {
|
|
522
657
|
readonly cameraOwner: number;
|
|
523
658
|
readonly resourceOwner: number;
|
|
659
|
+
/** Optional FrameCamera entity selection; absent preserves ActiveCamera semantics. */
|
|
660
|
+
readonly cameraEntityKey?: number;
|
|
524
661
|
readonly profileFrame?: ProfileFrameToken;
|
|
525
662
|
};
|
|
526
663
|
/** Information attached to a device-loss notification. */
|
|
@@ -541,17 +678,18 @@ export type RendererLostListener = (info: RendererLostInfo) => void;
|
|
|
541
678
|
* exception), NOT the eliminated cross-cluster `RuntimeError` SSOT (D-3).
|
|
542
679
|
*
|
|
543
680
|
* Composition = `RhiError | RenderError | AssetRuntimeError | SkinError |
|
|
544
|
-
* PostProcessError`.
|
|
545
|
-
*
|
|
546
|
-
*
|
|
547
|
-
*
|
|
548
|
-
*
|
|
549
|
-
* `
|
|
550
|
-
* `
|
|
681
|
+
* GpuDrivenPreparationError | PostProcessError`. The GPU preparation arm is
|
|
682
|
+
* the renderer-owned producer contract: its closed `code` and typed `detail`
|
|
683
|
+
* identify the material, geometry, skin, generation, or shadow owner without making
|
|
684
|
+
* RHI errors carry render policy. `RecoverError` and `EngineEnvironmentError`
|
|
685
|
+
* are intentionally excluded — neither is ever emitted through the Renderer
|
|
686
|
+
* event stream (`RecoverError` returns from `recover()`,
|
|
687
|
+
* `EngineEnvironmentError` throws at construction).
|
|
551
688
|
*
|
|
552
689
|
* AI consumers do `switch (err.code)` over the union: the disjoint
|
|
553
690
|
* `RhiErrorCode` / `RenderErrorCode` / `AssetRuntimeErrorCode` / `SkinErrorCode`
|
|
554
|
-
* / `PostProcessErrorCode` literal sets let
|
|
691
|
+
* / `GpuDrivenPreparationErrorCode` / `PostProcessErrorCode` literal sets let
|
|
692
|
+
* TS narrow each arm to the concrete
|
|
555
693
|
* class (charter P3 union discoverability — every fan-out member is reachable
|
|
556
694
|
* in an exhaustive switch, no untyped escape). Example:
|
|
557
695
|
*
|
|
@@ -562,13 +700,14 @@ export type RendererLostListener = (info: RendererLostInfo) => void;
|
|
|
562
700
|
* case 'asset-not-registered': // AssetRuntimeError arm, err narrowed here
|
|
563
701
|
* return report(err.hint);
|
|
564
702
|
* // ...one arm per RhiErrorCode | RenderErrorCode | AssetRuntimeErrorCode
|
|
565
|
-
* // | SkinErrorCode |
|
|
703
|
+
* // | SkinErrorCode | GpuDrivenPreparationErrorCode |
|
|
704
|
+
* // PostProcessErrorCode member; no default needed,
|
|
566
705
|
* // TS flags every unhandled code at compile time.
|
|
567
706
|
* }
|
|
568
707
|
* });
|
|
569
708
|
* ```
|
|
570
709
|
*/
|
|
571
|
-
export type RendererError = RhiError | RenderGraphError | ImageError | RenderError | AssetRuntimeError | SkinError | PostProcessError;
|
|
710
|
+
export type RendererError = RhiError | RenderGraphError | ImageError | RenderError | GpuDrivenPreparationError | AssetRuntimeError | SkinError | PostProcessError;
|
|
572
711
|
/**
|
|
573
712
|
* Package-local error listener retained for host assembly. Public consumers
|
|
574
713
|
* use `Renderer.subscribe` and receive `RendererEvent` instead.
|
|
@@ -580,7 +719,7 @@ export type RendererErrorListener = (error: RendererError) => void;
|
|
|
580
719
|
* pipelines retain a bounded catalog while the default render workload gets
|
|
581
720
|
* actionable owner attribution.
|
|
582
721
|
*/
|
|
583
|
-
export declare const RENDER_GRAPH_EXECUTION_PHASE_CATALOG: readonly ["record/graph-execute/point-shadow", "record/graph-execute/cluster-binner-upload", "record/graph-execute/g-buffer", "record/graph-execute/g-buffer/geometry-loop", "record/graph-execute/g-buffer/material-bind-groups", "record/graph-execute/g-buffer/pipeline-selection", "record/graph-execute/g-buffer/draw-submit", "record/graph-execute/ssao-calc", "record/graph-execute/ssao-blur", "record/graph-execute/lighting", "record/graph-execute/forward", "record/graph-execute/forward/geometry-loop", "record/graph-execute/forward/material-bind-groups", "record/graph-execute/forward/pipeline-selection", "record/graph-execute/forward/draw-submit", "record/graph-execute/output-transform", "record/graph-execute/present", "record/graph-execute/debug-overlay", "record/graph-execute/shadow", "record/graph-execute/spot-shadow", "record/graph-execute/skybox", "record/graph-execute/main", "record/graph-execute/fxaa", "record/graph-execute/bloom-bright", "record/graph-execute/bloom-blur-h", "record/graph-execute/bloom-blur-v", "record/graph-execute/bloom-composite", "record/graph-execute/other"];
|
|
722
|
+
export declare const RENDER_GRAPH_EXECUTION_PHASE_CATALOG: readonly ["record/graph-execute/point-shadow", "record/graph-execute/cluster-binner-upload", "record/graph-execute/g-buffer", "record/graph-execute/g-buffer/geometry-loop", "record/graph-execute/g-buffer/material-bind-groups", "record/graph-execute/g-buffer/pipeline-selection", "record/graph-execute/g-buffer/draw-submit", "record/graph-execute/ssao-calc", "record/graph-execute/ssao-blur", "record/graph-execute/lighting", "record/graph-execute/forward", "record/graph-execute/forward/geometry-loop", "record/graph-execute/forward/material-bind-groups", "record/graph-execute/forward/pipeline-selection", "record/graph-execute/forward/draw-submit", "record/graph-execute/output-transform", "record/graph-execute/present", "record/graph-execute/debug-overlay", "record/graph-execute/shadow", "record/graph-execute/spot-shadow", "record/graph-execute/skybox", "record/graph-execute/main", "record/graph-execute/fxaa", "record/graph-execute/bloom-bright", "record/graph-execute/bloom-blur-h", "record/graph-execute/bloom-blur-v", "record/graph-execute/bloom-composite", "record/graph-execute/ssr-hiz", "record/graph-execute/ssr-trace", "record/graph-execute/ssr-temporal", "record/graph-execute/ssr-reflection-mip", "record/graph-execute/ssr-compose", "record/graph-execute/other"];
|
|
584
723
|
export type RenderGraphExecutionPhase = (typeof RENDER_GRAPH_EXECUTION_PHASE_CATALOG)[number];
|
|
585
724
|
/** Bounded producer-owned children of the scene-state record owner. */
|
|
586
725
|
export declare const RENDER_HDRP_BINNER_PHASE_CATALOG: readonly ["record/scene-state/hdrp-cluster/binner/light-bounds-and-occupancy", "record/scene-state/hdrp-cluster/binner/light-bounds-and-occupancy/light-aabb", "record/scene-state/hdrp-cluster/binner/light-bounds-and-occupancy/cluster-occupancy", "record/scene-state/hdrp-cluster/binner/cluster-reserve", "record/scene-state/hdrp-cluster/binner/input-preparation", "record/scene-state/hdrp-cluster/binner/bin-core", "record/scene-state/hdrp-cluster/binner/light-index-write", "record/scene-state/hdrp-cluster/binner/light-index-write/bounds-read", "record/scene-state/hdrp-cluster/binner/light-index-write/cluster-write"];
|
|
@@ -594,9 +733,9 @@ export declare const RENDER_SCENE_STATE_PHASE_CATALOG: readonly ["record/scene-s
|
|
|
594
733
|
* engine-owned Extract / Prepare / Record orchestration so a host can measure
|
|
595
734
|
* attribution without guessing from RHI command counts.
|
|
596
735
|
*/
|
|
597
|
-
export declare const RENDER_RECORD_PHASE_CATALOG: readonly ["record/occlusion-query-submit", "record/occlusion-global-advance", "record/scene-state", "record/scene-state/fold-buckets", "record/scene-state/lighting-prep", "record/scene-state/ambient-resolution", "record/scene-state/directional-shadow-cache", "record/scene-state/hdrp-cluster", "record/scene-state/hdrp-cluster/binner", "record/scene-state/hdrp-cluster/binner/light-bounds-and-occupancy", "record/scene-state/hdrp-cluster/binner/light-bounds-and-occupancy/light-aabb", "record/scene-state/hdrp-cluster/binner/light-bounds-and-occupancy/cluster-occupancy", "record/scene-state/hdrp-cluster/binner/cluster-reserve", "record/scene-state/hdrp-cluster/binner/input-preparation", "record/scene-state/hdrp-cluster/binner/bin-core", "record/scene-state/hdrp-cluster/binner/light-index-write", "record/scene-state/hdrp-cluster/binner/light-index-write/bounds-read", "record/scene-state/hdrp-cluster/binner/light-index-write/cluster-write", "record/scene-state/hdrp-cluster/payload-packing", "record/scene-state/hdrp-cluster/buffer-upload", "record/swapchain", "record/render-graph", "record/target-views", "record/validation", "record/dispatch-plan", "record/uploads", "record/bind-groups", "record/graph-execute", "record/graph-execute/point-shadow", "record/graph-execute/cluster-binner-upload", "record/graph-execute/g-buffer", "record/graph-execute/g-buffer/geometry-loop", "record/graph-execute/g-buffer/material-bind-groups", "record/graph-execute/g-buffer/pipeline-selection", "record/graph-execute/g-buffer/draw-submit", "record/graph-execute/ssao-calc", "record/graph-execute/ssao-blur", "record/graph-execute/lighting", "record/graph-execute/forward", "record/graph-execute/forward/geometry-loop", "record/graph-execute/forward/material-bind-groups", "record/graph-execute/forward/pipeline-selection", "record/graph-execute/forward/draw-submit", "record/graph-execute/output-transform", "record/graph-execute/present", "record/graph-execute/debug-overlay", "record/graph-execute/shadow", "record/graph-execute/spot-shadow", "record/graph-execute/skybox", "record/graph-execute/main", "record/graph-execute/fxaa", "record/graph-execute/bloom-bright", "record/graph-execute/bloom-blur-h", "record/graph-execute/bloom-blur-v", "record/graph-execute/bloom-composite", "record/graph-execute/other"];
|
|
736
|
+
export declare const RENDER_RECORD_PHASE_CATALOG: readonly ["record/occlusion-query-submit", "record/occlusion-global-advance", "record/scene-state", "record/scene-state/fold-buckets", "record/scene-state/lighting-prep", "record/scene-state/ambient-resolution", "record/scene-state/directional-shadow-cache", "record/scene-state/hdrp-cluster", "record/scene-state/hdrp-cluster/binner", "record/scene-state/hdrp-cluster/binner/light-bounds-and-occupancy", "record/scene-state/hdrp-cluster/binner/light-bounds-and-occupancy/light-aabb", "record/scene-state/hdrp-cluster/binner/light-bounds-and-occupancy/cluster-occupancy", "record/scene-state/hdrp-cluster/binner/cluster-reserve", "record/scene-state/hdrp-cluster/binner/input-preparation", "record/scene-state/hdrp-cluster/binner/bin-core", "record/scene-state/hdrp-cluster/binner/light-index-write", "record/scene-state/hdrp-cluster/binner/light-index-write/bounds-read", "record/scene-state/hdrp-cluster/binner/light-index-write/cluster-write", "record/scene-state/hdrp-cluster/payload-packing", "record/scene-state/hdrp-cluster/buffer-upload", "record/swapchain", "record/render-graph", "record/target-views", "record/validation", "record/dispatch-plan", "record/uploads", "record/bind-groups", "record/graph-execute", "record/graph-execute/point-shadow", "record/graph-execute/cluster-binner-upload", "record/graph-execute/g-buffer", "record/graph-execute/g-buffer/geometry-loop", "record/graph-execute/g-buffer/material-bind-groups", "record/graph-execute/g-buffer/pipeline-selection", "record/graph-execute/g-buffer/draw-submit", "record/graph-execute/ssao-calc", "record/graph-execute/ssao-blur", "record/graph-execute/lighting", "record/graph-execute/forward", "record/graph-execute/forward/geometry-loop", "record/graph-execute/forward/material-bind-groups", "record/graph-execute/forward/pipeline-selection", "record/graph-execute/forward/draw-submit", "record/graph-execute/output-transform", "record/graph-execute/present", "record/graph-execute/debug-overlay", "record/graph-execute/shadow", "record/graph-execute/spot-shadow", "record/graph-execute/skybox", "record/graph-execute/main", "record/graph-execute/fxaa", "record/graph-execute/bloom-bright", "record/graph-execute/bloom-blur-h", "record/graph-execute/bloom-blur-v", "record/graph-execute/bloom-composite", "record/graph-execute/ssr-hiz", "record/graph-execute/ssr-trace", "record/graph-execute/ssr-temporal", "record/graph-execute/ssr-reflection-mip", "record/graph-execute/ssr-compose", "record/graph-execute/other"];
|
|
598
737
|
export type RenderRecordPhase = (typeof RENDER_RECORD_PHASE_CATALOG)[number];
|
|
599
|
-
export declare const RENDER_PHASE_CATALOG: readonly ["extract", "occlusion-prepare", "bind-groups", "features", "sort", "record", "record/occlusion-query-submit", "record/occlusion-global-advance", "record/scene-state", "record/scene-state/fold-buckets", "record/scene-state/lighting-prep", "record/scene-state/ambient-resolution", "record/scene-state/directional-shadow-cache", "record/scene-state/hdrp-cluster", "record/scene-state/hdrp-cluster/binner", "record/scene-state/hdrp-cluster/binner/light-bounds-and-occupancy", "record/scene-state/hdrp-cluster/binner/light-bounds-and-occupancy/light-aabb", "record/scene-state/hdrp-cluster/binner/light-bounds-and-occupancy/cluster-occupancy", "record/scene-state/hdrp-cluster/binner/cluster-reserve", "record/scene-state/hdrp-cluster/binner/input-preparation", "record/scene-state/hdrp-cluster/binner/bin-core", "record/scene-state/hdrp-cluster/binner/light-index-write", "record/scene-state/hdrp-cluster/binner/light-index-write/bounds-read", "record/scene-state/hdrp-cluster/binner/light-index-write/cluster-write", "record/scene-state/hdrp-cluster/payload-packing", "record/scene-state/hdrp-cluster/buffer-upload", "record/swapchain", "record/render-graph", "record/target-views", "record/validation", "record/dispatch-plan", "record/uploads", "record/bind-groups", "record/graph-execute", "record/graph-execute/point-shadow", "record/graph-execute/cluster-binner-upload", "record/graph-execute/g-buffer", "record/graph-execute/g-buffer/geometry-loop", "record/graph-execute/g-buffer/material-bind-groups", "record/graph-execute/g-buffer/pipeline-selection", "record/graph-execute/g-buffer/draw-submit", "record/graph-execute/ssao-calc", "record/graph-execute/ssao-blur", "record/graph-execute/lighting", "record/graph-execute/forward", "record/graph-execute/forward/geometry-loop", "record/graph-execute/forward/material-bind-groups", "record/graph-execute/forward/pipeline-selection", "record/graph-execute/forward/draw-submit", "record/graph-execute/output-transform", "record/graph-execute/present", "record/graph-execute/debug-overlay", "record/graph-execute/shadow", "record/graph-execute/spot-shadow", "record/graph-execute/skybox", "record/graph-execute/main", "record/graph-execute/fxaa", "record/graph-execute/bloom-bright", "record/graph-execute/bloom-blur-h", "record/graph-execute/bloom-blur-v", "record/graph-execute/bloom-composite", "record/graph-execute/other"];
|
|
738
|
+
export declare const RENDER_PHASE_CATALOG: readonly ["extract", "occlusion-prepare", "bind-groups", "features", "sort", "record", "record/occlusion-query-submit", "record/occlusion-global-advance", "record/scene-state", "record/scene-state/fold-buckets", "record/scene-state/lighting-prep", "record/scene-state/ambient-resolution", "record/scene-state/directional-shadow-cache", "record/scene-state/hdrp-cluster", "record/scene-state/hdrp-cluster/binner", "record/scene-state/hdrp-cluster/binner/light-bounds-and-occupancy", "record/scene-state/hdrp-cluster/binner/light-bounds-and-occupancy/light-aabb", "record/scene-state/hdrp-cluster/binner/light-bounds-and-occupancy/cluster-occupancy", "record/scene-state/hdrp-cluster/binner/cluster-reserve", "record/scene-state/hdrp-cluster/binner/input-preparation", "record/scene-state/hdrp-cluster/binner/bin-core", "record/scene-state/hdrp-cluster/binner/light-index-write", "record/scene-state/hdrp-cluster/binner/light-index-write/bounds-read", "record/scene-state/hdrp-cluster/binner/light-index-write/cluster-write", "record/scene-state/hdrp-cluster/payload-packing", "record/scene-state/hdrp-cluster/buffer-upload", "record/swapchain", "record/render-graph", "record/target-views", "record/validation", "record/dispatch-plan", "record/uploads", "record/bind-groups", "record/graph-execute", "record/graph-execute/point-shadow", "record/graph-execute/cluster-binner-upload", "record/graph-execute/g-buffer", "record/graph-execute/g-buffer/geometry-loop", "record/graph-execute/g-buffer/material-bind-groups", "record/graph-execute/g-buffer/pipeline-selection", "record/graph-execute/g-buffer/draw-submit", "record/graph-execute/ssao-calc", "record/graph-execute/ssao-blur", "record/graph-execute/lighting", "record/graph-execute/forward", "record/graph-execute/forward/geometry-loop", "record/graph-execute/forward/material-bind-groups", "record/graph-execute/forward/pipeline-selection", "record/graph-execute/forward/draw-submit", "record/graph-execute/output-transform", "record/graph-execute/present", "record/graph-execute/debug-overlay", "record/graph-execute/shadow", "record/graph-execute/spot-shadow", "record/graph-execute/skybox", "record/graph-execute/main", "record/graph-execute/fxaa", "record/graph-execute/bloom-bright", "record/graph-execute/bloom-blur-h", "record/graph-execute/bloom-blur-v", "record/graph-execute/bloom-composite", "record/graph-execute/ssr-hiz", "record/graph-execute/ssr-trace", "record/graph-execute/ssr-temporal", "record/graph-execute/ssr-reflection-mip", "record/graph-execute/ssr-compose", "record/graph-execute/other"];
|
|
600
739
|
export type RenderPhase = (typeof RENDER_PHASE_CATALOG)[number];
|
|
601
740
|
export type RenderPhaseSkipReason = 'feature-host-unavailable' | 'feature-host-empty' | 'pipeline-state-unavailable' | 'camera-unavailable';
|
|
602
741
|
/** First-version options bag (intentionally empty; reserved for v0.1). */
|
|
@@ -613,7 +752,11 @@ export interface RendererOptions {
|
|
|
613
752
|
readonly rhiInstrumentation?: RhiBackendInstrumentation | undefined;
|
|
614
753
|
/** Optional bounded GPU pass timing facts; this is not frame latency. */
|
|
615
754
|
readonly gpuPassTiming?: GpuPassTimingOptions | undefined;
|
|
616
|
-
/**
|
|
755
|
+
/**
|
|
756
|
+
* Exact source/tree/lock/build identity binding for the renderer-owned SSR seam.
|
|
757
|
+
* Opts into one format-capability probe during device-generation initialization;
|
|
758
|
+
* camera ScreenSpaceReflection still controls all per-frame SSR work.
|
|
759
|
+
*/
|
|
617
760
|
readonly ssrIdentity?: SsrAdmissionIdentity | undefined;
|
|
618
761
|
/**
|
|
619
762
|
* M3 D-P4 escape hatch (feat-20260511-rhi-wgpu-impl): explicit
|