@forgeax/engine-render 0.1.28 → 0.1.30
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 +856 -126
- package/dist/assembly/atmosphere-shader-prewarm.d.ts +6 -0
- package/dist/assembly/atmosphere-shader-prewarm.d.ts.map +1 -0
- package/dist/assembly/device-feature-admission.d.ts +4 -3
- package/dist/assembly/device-feature-admission.d.ts.map +1 -1
- package/dist/assembly/dynamic-geometry-host.d.ts +27 -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 +14 -0
- package/dist/assembly/host-contract.d.ts.map +1 -1
- package/dist/assembly/material/assembly.d.ts +31 -1
- package/dist/assembly/material/assembly.d.ts.map +1 -1
- package/dist/assembly/material/pipeline-helpers.d.ts +24 -0
- package/dist/assembly/material/pipeline-helpers.d.ts.map +1 -0
- 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/device-loss-fanout.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/recovery-attempt.d.ts +1 -6
- package/dist/assembly/recovery/recovery-attempt.d.ts.map +1 -1
- package/dist/assembly/recovery/renderer-recover.d.ts +7 -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 +7 -1
- 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/capture/scene-projection.d.ts +41 -0
- package/dist/capture/scene-projection.d.ts.map +1 -0
- package/dist/{chunk-J52NMQKR.mjs → chunk-7MQ3XBSP.mjs} +1098 -844
- package/dist/chunk-7MQ3XBSP.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-VSL23LZE.mjs → chunk-C3DDSXYK.mjs} +1188 -463
- package/dist/chunk-C3DDSXYK.mjs.map +1 -0
- package/dist/{chunk-IQMKJLNU.mjs → chunk-FUUO4UND.mjs} +443 -30
- package/dist/chunk-FUUO4UND.mjs.map +1 -0
- package/dist/{chunk-J6KACNOH.mjs → chunk-JRBDO2KB.mjs} +617 -7
- package/dist/chunk-JRBDO2KB.mjs.map +1 -0
- package/dist/{chunk-GE3SDD72.mjs → chunk-MDQJPY3T.mjs} +20 -40
- package/dist/chunk-MDQJPY3T.mjs.map +1 -0
- package/dist/{chunk-MYJ5RPJO.mjs → chunk-NO4WZCAH.mjs} +3 -3
- package/dist/chunk-NO4WZCAH.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-MBU4ZVE7.mjs → chunk-PSEQ6QPH.mjs} +4655 -892
- package/dist/chunk-PSEQ6QPH.mjs.map +1 -0
- package/dist/{chunk-JAASCMXA.mjs → chunk-S5UE2T5P.mjs} +289 -41
- package/dist/chunk-S5UE2T5P.mjs.map +1 -0
- package/dist/components/camera.d.ts +62 -2
- package/dist/components/camera.d.ts.map +1 -1
- package/dist/components/directional-light.d.ts +2 -2
- package/dist/components/dynamic-resolution.d.ts +15 -0
- package/dist/components/dynamic-resolution.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 +6 -20
- package/dist/components/instances.d.ts.map +1 -1
- package/dist/components/light-helpers.d.ts.map +1 -1
- package/dist/components/reflection-probe.d.ts +1 -0
- package/dist/components/reflection-probe.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/components/skylight.d.ts +4 -1
- package/dist/components/skylight.d.ts.map +1 -1
- package/dist/construct-renderer.mjs +14809 -7570
- package/dist/construct-renderer.mjs.map +1 -1
- package/dist/device/device-scope.d.ts +2 -0
- package/dist/device/device-scope.d.ts.map +1 -1
- package/dist/device/gpu-residency.d.ts +3 -14
- package/dist/device/gpu-residency.d.ts.map +1 -1
- package/dist/dynamic-geometry.d.ts.map +1 -1
- package/dist/environment/background.d.ts +7 -0
- package/dist/environment/background.d.ts.map +1 -0
- package/dist/environment/ibl.d.ts +11 -0
- package/dist/environment/ibl.d.ts.map +1 -0
- package/dist/environment/storage.d.ts +14 -0
- package/dist/environment/storage.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 +41 -4
- package/dist/errors/render.d.ts.map +1 -1
- package/dist/extract/camera.d.ts.map +1 -1
- package/dist/extract/contracts.d.ts +7 -0
- package/dist/extract/contracts.d.ts.map +1 -1
- package/dist/extract/gpu-driven.d.ts +50 -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/material-artifacts.d.ts +24 -0
- package/dist/gpu-driven/material-artifacts.d.ts.map +1 -0
- package/dist/gpu-driven/material-bindings.d.ts +7 -0
- package/dist/gpu-driven/material-bindings.d.ts.map +1 -0
- 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 +2 -0
- package/dist/gpu-driven/prepared-draw.d.ts.map +1 -1
- package/dist/gpu-driven/production-raster.d.ts +169 -27
- 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-resource.d.ts +5 -2
- package/dist/gpu-resource.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 +9 -0
- package/dist/hdrp-buffers.d.ts.map +1 -1
- package/dist/ibl/IblPipelineCache.d.ts +2 -0
- package/dist/ibl/IblPipelineCache.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 +3 -1
- package/dist/ibl/skylight-bind-group.d.ts.map +1 -1
- package/dist/index.d.ts +87 -75
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +10 -8
- package/dist/index.mjs.map +1 -1
- package/dist/inspection-types.d.ts +180 -1
- 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 +15 -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 +23 -5
- package/dist/pbr-pipeline.d.ts.map +1 -1
- package/dist/pipeline/render-extent.d.ts +51 -0
- package/dist/pipeline/render-extent.d.ts.map +1 -0
- package/dist/pipeline/standard-build-context.d.ts +7 -0
- package/dist/pipeline/standard-build-context.d.ts.map +1 -0
- package/dist/pipeline/standard-forward-lane.d.ts +3 -2
- 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/standard-profile.d.ts +2 -1
- package/dist/pipeline/standard-profile.d.ts.map +1 -1
- package/dist/pipeline-builder.d.ts +5 -2
- 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/plugin.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/post-process-errors.d.ts +9 -2
- package/dist/post-process-errors.d.ts.map +1 -1
- package/dist/prepare/extended-lighting/resources.d.ts +3 -3
- 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 +109 -13
- 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 +41 -5
- package/dist/record/frame.d.ts.map +1 -1
- package/dist/record/main-pass-geometry.d.ts +13 -9
- package/dist/record/main-pass-geometry.d.ts.map +1 -1
- package/dist/record/main-pass-material.d.ts +43 -3
- 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 +14 -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 +1 -0
- package/dist/record/recovery-pipeline.d.ts.map +1 -1
- package/dist/record/render-context.d.ts +101 -22
- 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 +39 -8
- 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/background.d.ts +14 -0
- package/dist/reflection/background.d.ts.map +1 -0
- package/dist/reflection/filter.d.ts.map +1 -1
- package/dist/reflection/projection.d.ts +1 -0
- package/dist/reflection/projection.d.ts.map +1 -1
- package/dist/reflection/record-owner.d.ts +4 -4
- package/dist/reflection/record-owner.d.ts.map +1 -1
- package/dist/render-contract.d.ts +211 -53
- 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 +81 -6
- package/dist/render-pipeline.d.ts.map +1 -1
- package/dist/render-system-extract-tail.d.ts +15 -6
- package/dist/render-system-extract-tail.d.ts.map +1 -1
- package/dist/render-system-extract.d.ts +128 -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 +31 -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/ssao-config.d.ts +8 -6
- package/dist/ssao-config.d.ts.map +1 -1
- 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 +4 -2
- package/dist/temporal/standard-scene-data.d.ts.map +1 -1
- package/dist/temporal/target-coverage-attachment.d.ts +15 -0
- package/dist/temporal/target-coverage-attachment.d.ts.map +1 -0
- package/dist/temporal/temporal-view.d.ts +6 -0
- package/dist/temporal/temporal-view.d.ts.map +1 -1
- package/dist/temporal/view.d.ts +6 -0
- package/dist/temporal/view.d.ts.map +1 -1
- package/dist/typed-render-graph-primitives.d.ts +41 -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/component.d.ts +1 -0
- package/dist/volume/component.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__/capture-scene-projection.unit.test.ts +24 -0
- package/src/__tests__/detached-inspection.integration.test.ts +5 -0
- package/src/__tests__/device-feature-admission.unit.test.ts +15 -24
- package/src/__tests__/device-loss-fanout.unit.test.ts +43 -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__/dynamic-geometry-batch.unit.test.ts +157 -0
- package/src/__tests__/dynamic-geometry.unit.test.ts +36 -0
- package/src/__tests__/dynamic-resolution-plugin.integration.test.ts +81 -0
- package/src/__tests__/factory-contract.integration.test.ts +231 -9
- 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-observation.contract.test.ts +21 -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 +307 -7
- 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 +261 -0
- package/src/__tests__/gpu-driven-mesh-world-identity.unit.test.ts +346 -0
- package/src/__tests__/gpu-driven-pbr.dawn.test.ts +1422 -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 +1076 -106
- 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 +160 -52
- package/src/__tests__/gpu-pass-timing-browser-runner.ts +15 -0
- package/src/__tests__/gpu-pass-timing.browser.test.ts +20 -2
- package/src/__tests__/gpu-resource-scope.unit.test.ts +71 -0
- 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 +613 -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 +57 -3
- package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +4 -0
- package/src/__tests__/mesh-submission-lifetime.unit.test.ts +8 -0
- package/src/__tests__/morph-neutral-admission.unit.test.ts +19 -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 +42 -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__/post-process-error-policy-owner.unit.test.ts +6 -5
- 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 +251 -9
- 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 +171 -0
- package/src/__tests__/reflection-probe-authoring.unit.test.ts +12 -10
- package/src/__tests__/reflection-probe-box.dawn.test.ts +71 -0
- package/src/__tests__/reflection-probe-filter.unit.test.ts +9 -0
- package/src/__tests__/reflection-probe-orientation.dawn.test.ts +294 -0
- package/src/__tests__/reflection-probe-record-owner.characterization.unit.test.ts +5 -14
- package/src/__tests__/reflection-probe-updates.unit.test.ts +129 -0
- package/src/__tests__/render-error-code-owner.test-d.ts +7 -0
- package/src/__tests__/render-error-detail-ssot.test-d.ts +27 -1
- package/src/__tests__/render-error-exhaustive.test-d.ts +15 -0
- package/src/__tests__/render-extent.unit.test.ts +63 -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 +915 -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 +233 -9
- package/src/__tests__/renderer-frame-transaction.integration.test.ts +923 -5
- package/src/__tests__/shader-manifest-fixture.ts +45 -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 +125 -14
- package/src/__tests__/specular-environment-scale.dawn.test.ts +158 -0
- package/src/__tests__/ssao-config.unit.test.ts +7 -0
- package/src/__tests__/ssao-surface.dawn.test.ts +252 -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-cube-silhouette.dawn.test.ts +270 -0
- package/src/__tests__/ssr-format-probe-gating.integration.test.ts +82 -0
- package/src/__tests__/ssr-gpu-dispatch.browser.test.ts +99 -0
- package/src/__tests__/ssr-gpu-dispatch.dawn.test.ts +116 -0
- package/src/__tests__/ssr-gpu-dispatch.ts +951 -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 +84 -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 +275 -0
- package/src/__tests__/standard-pipeline.integration.test.ts +320 -3
- package/src/__tests__/standard-profile-oracle.unit.test.ts +49 -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 +199 -0
- package/src/__tests__/taa-history-clipping.dawn.test.ts +328 -0
- package/src/__tests__/taa-neighborhood-equivalence.dawn.test.ts +782 -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 +342 -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__/temporal-view.unit.test.ts +17 -0
- package/src/__tests__/texture-usage-surface.unit.test.ts +4 -2
- package/src/__tests__/transmission-prewarm.unit.test.ts +57 -0
- 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/__tests__/volumetric-fog-stage-readback.dawn.test.ts +62 -13
- package/src/__tests__/volumetric-fog-topology.unit.test.ts +7 -7
- package/src/assembly/atmosphere-shader-prewarm.ts +39 -0
- package/src/assembly/device-feature-admission.ts +9 -4
- package/src/assembly/dynamic-geometry-host.ts +284 -163
- 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 +19 -0
- package/src/assembly/material/assembly.ts +383 -1
- package/src/assembly/material/pipeline-helpers.ts +100 -0
- package/src/assembly/material-shader-policy.ts +110 -46
- package/src/assembly/recovery/device-loss-fanout.ts +5 -0
- package/src/assembly/recovery/failure-location.ts +62 -0
- package/src/assembly/recovery/recovery-attempt.ts +2 -29
- package/src/assembly/recovery/renderer-recover.ts +16 -17
- package/src/assembly/renderer-facade.ts +34 -1
- 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 +46 -1
- 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 +161 -131
- 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 +744 -730
- package/src/assembly/webgpu-vertex-layouts.ts +233 -87
- package/src/capture/scene-projection.ts +37 -0
- package/src/components/__tests__/camera-exposure.contract.unit.test.ts +153 -0
- package/src/components/__tests__/dynamic-resolution-schema.unit.test.ts +65 -0
- package/src/components/__tests__/light-radius.integration.test.ts +59 -0
- package/src/components/camera.ts +287 -7
- package/src/components/directional-light.ts +3 -3
- package/src/components/dynamic-resolution.ts +67 -0
- package/src/components/index.ts +2 -0
- package/src/components/instances.ts +45 -18
- package/src/components/light-helpers.ts +6 -1
- package/src/components/reflection-probe.ts +1 -0
- package/src/components/scene-instance.ts +2 -1
- package/src/components/screen-space-reflection.ts +21 -0
- package/src/components/skylight.ts +4 -1
- package/src/components/sprite-animation.ts +2 -2
- package/src/components/sprite-instances.ts +1 -1
- package/src/device/device-scope.ts +13 -7
- package/src/device/gpu-residency.ts +45 -42
- package/src/dynamic-geometry.ts +13 -8
- package/src/environment/background.ts +281 -0
- package/src/environment/ibl.ts +211 -0
- package/src/environment/storage.ts +63 -0
- package/src/errors/gpu-driven.ts +49 -8
- package/src/errors/render.ts +91 -3
- package/src/extract/camera.ts +37 -1
- package/src/extract/contracts.ts +10 -0
- package/src/extract/gpu-driven.ts +240 -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 +452 -108
- package/src/gpu-driven/material-artifacts.ts +179 -0
- package/src/gpu-driven/material-bindings.ts +41 -0
- package/src/gpu-driven/pbr-program.ts +31 -0
- package/src/gpu-driven/prepared-draw.ts +42 -6
- package/src/gpu-driven/production-raster.ts +2806 -716
- package/src/gpu-driven/shadow-views.ts +539 -0
- package/src/gpu-driven/view-gpu.ts +188 -41
- package/src/gpu-resource.ts +21 -2
- package/src/gpu-scene-schema.ts +61 -11
- package/src/gpu-scene.ts +197 -99
- package/src/gpu-texture-usage.ts +1 -0
- package/src/hdrp-buffers.ts +141 -36
- package/src/ibl/IblPipelineCache.ts +5 -0
- package/src/ibl/frame-resources.ts +38 -0
- package/src/ibl/skylight-bind-group.ts +32 -21
- package/src/index.ts +194 -75
- package/src/inspection-types.ts +207 -1
- 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 +194 -0
- package/src/materials.ts +44 -8
- package/src/pbr-pipeline.ts +172 -19
- package/src/pipeline/render-extent.ts +111 -0
- package/src/pipeline/standard-build-context.ts +7 -0
- package/src/pipeline/standard-forward-lane.ts +74 -29
- 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 +232 -70
- package/src/pipeline/standard-post.ts +190 -27
- package/src/pipeline/standard-profile.ts +2 -1
- package/src/pipeline-builder.ts +28 -9
- package/src/pipeline-spec-types.ts +4 -0
- package/src/pipeline-spec.ts +37 -29
- package/src/plugin.ts +4 -0
- package/src/points-lines/standard-owner.ts +6 -14
- package/src/post-process-errors.ts +26 -18
- package/src/prepare/__tests__/extended-lighting-capability.unit.test.ts +2 -2
- package/src/prepare/extended-lighting/resources.ts +3 -3
- package/src/prepare/prepared-graphics-resolver.ts +9 -2
- package/src/record/__tests__/main-pass-geometry.unit.test.ts +68 -0
- package/src/record/__tests__/material-bg-cache.unit.test.ts +45 -0
- package/src/record/__tests__/material-slot-plan.unit.test.ts +57 -0
- package/src/record/__tests__/mesh-ssbo.unit.test.ts +40 -1
- package/src/record/__tests__/recovery-pipeline.unit.test.ts +20 -1
- package/src/record/__tests__/sprite-material-abi.unit.test.ts +41 -6
- package/src/record/__tests__/temporal-payload.unit.test.ts +2 -0
- 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 +15 -12
- package/src/record/frame-snapshot.ts +146 -34
- package/src/record/frame-targets.ts +9 -0
- package/src/record/frame.ts +838 -170
- package/src/record/main-pass-geometry.ts +209 -103
- package/src/record/main-pass-material.ts +157 -40
- package/src/record/main-pass-sprite-draws.ts +16 -107
- package/src/record/main-pass.ts +141 -12
- package/src/record/material-uniforms.ts +1 -1
- package/src/record/mesh-ssbo.ts +59 -15
- package/src/record/prepared-material-bindings.ts +238 -0
- package/src/record/recovery-pipeline.ts +69 -90
- package/src/record/render-context.ts +123 -24
- package/src/record/shadow-pass.ts +1389 -230
- package/src/record/skybox-post-pass.ts +14 -3
- package/src/record/typed-frame-graph.ts +1064 -47
- package/src/record/view-ubo.ts +12 -1
- package/src/recovery/render-system-candidate.ts +135 -68
- package/src/recovery/render-system-roots.ts +113 -0
- package/src/recovery/types.ts +77 -0
- package/src/reflection/background.ts +151 -0
- package/src/reflection/filter.ts +3 -0
- package/src/reflection/projection.ts +16 -6
- package/src/reflection/record-owner.ts +308 -140
- package/src/render-contract.ts +237 -49
- package/src/render-graph-primitives.ts +34 -5
- package/src/render-pipeline.ts +90 -2
- package/src/render-system-extract-tail.ts +431 -162
- package/src/render-system-extract.ts +478 -119
- package/src/render-system-projections.ts +241 -0
- package/src/render-system.ts +715 -828
- package/src/scene/render-scene-types.ts +13 -4
- package/src/scene/render-scene.ts +577 -355
- package/src/scene/shadow-visibility.ts +21 -0
- package/src/ssao-config.ts +25 -8
- 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 +797 -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 +79 -12
- package/src/temporal/history.ts +3 -1
- package/src/temporal/inspection.ts +2 -1
- package/src/temporal/standard-scene-data.ts +10 -2
- package/src/temporal/target-coverage-attachment.ts +72 -0
- package/src/temporal/temporal-view.ts +11 -2
- package/src/temporal/view.ts +12 -2
- package/src/transmission/__tests__/standard-transmission.dawn.test.ts +219 -139
- package/src/typed-render-graph-primitives.ts +304 -74
- package/src/typed-shadow-passes.ts +122 -12
- package/src/volume/component.ts +1 -0
- package/src/volume/passes.ts +3 -3
- 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-MYJ5RPJO.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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admission.d.ts","sourceRoot":"","sources":["../../src/ssr/admission.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,KAAK,iCAAiC,EAEvC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"admission.d.ts","sourceRoot":"","sources":["../../src/ssr/admission.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { GraphBuffer, GraphTextureView, RenderGraphBuilder } from '@forgeax/engine-render-graph';
|
|
2
|
+
import type { RenderPipelineFrame, RenderPipelineTarget } from '../render-pipeline';
|
|
3
|
+
/** Material response is produced with the visible surface; composition never
|
|
4
|
+
* redraws that surface, so equal-depth overlaps cannot apply the delta twice. */
|
|
5
|
+
export declare function addSsrCompositionPass(graph: RenderGraphBuilder<RenderPipelineFrame>, input: {
|
|
6
|
+
readonly scene: RenderPipelineTarget;
|
|
7
|
+
readonly radiance: GraphTextureView;
|
|
8
|
+
readonly fallback: GraphTextureView;
|
|
9
|
+
readonly response: GraphTextureView;
|
|
10
|
+
readonly normal: GraphTextureView;
|
|
11
|
+
readonly view: GraphBuffer;
|
|
12
|
+
}): import("@forgeax/engine-types").Result<void, import("@forgeax/engine-render-graph").RenderGraphError>;
|
|
13
|
+
//# sourceMappingURL=compose.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/ssr/compose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AAMtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAEpF;iFACiF;AACjF,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,KAAK,EAAE;IACL,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B,yGAwHF"}
|
package/dist/ssr/errors.d.ts
CHANGED
|
@@ -35,5 +35,40 @@ export interface SsrAdmissionError {
|
|
|
35
35
|
readonly hint: string;
|
|
36
36
|
readonly detail: SsrAdmissionErrorDetail;
|
|
37
37
|
}
|
|
38
|
+
/** Closed authoring fields accepted by the ScreenSpaceReflection schema. */
|
|
39
|
+
export type SsrConfigField = 'maxDistance' | 'thickness' | 'maxRoughness';
|
|
40
|
+
/** Dynamic finite range returned by ScreenSpaceReflection validation. */
|
|
41
|
+
export interface SsrConfigRange {
|
|
42
|
+
readonly min: number;
|
|
43
|
+
readonly minInclusive: boolean;
|
|
44
|
+
readonly max: number;
|
|
45
|
+
readonly maxInclusive: boolean;
|
|
46
|
+
}
|
|
47
|
+
/** Structured invalid-authoring failure; callers branch on code and detail. */
|
|
48
|
+
export interface SsrConfigInvalidError {
|
|
49
|
+
readonly code: 'ssr-config-invalid';
|
|
50
|
+
readonly expected: string;
|
|
51
|
+
readonly hint: string;
|
|
52
|
+
readonly detail: {
|
|
53
|
+
readonly field: SsrConfigField;
|
|
54
|
+
readonly value: number;
|
|
55
|
+
readonly range: SsrConfigRange;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/** Closed spatial admission reasons. */
|
|
59
|
+
export type SsrSpatialUnavailableReason = 'lane-unsupported' | 'projection-unsupported' | 'scene-input-unavailable' | 'capability-unavailable' | 'format-unavailable' | 'temporal-unavailable' | 'reflection-fallback-unavailable' | 'recovery-unavailable';
|
|
60
|
+
/** Structured spatial admission failure with bounded actual facts. */
|
|
61
|
+
export interface SsrUnavailableError {
|
|
62
|
+
readonly code: 'ssr-unavailable';
|
|
63
|
+
readonly expected: string;
|
|
64
|
+
readonly hint: string;
|
|
65
|
+
readonly detail: {
|
|
66
|
+
readonly lane: string;
|
|
67
|
+
readonly reason: SsrSpatialUnavailableReason;
|
|
68
|
+
readonly required: readonly string[];
|
|
69
|
+
readonly actual: Readonly<Record<string, boolean | number | string>>;
|
|
70
|
+
readonly recovery: string;
|
|
71
|
+
};
|
|
72
|
+
}
|
|
38
73
|
export declare function createSsrAdmissionError(detail: SsrAdmissionErrorDetail): SsrAdmissionError;
|
|
39
74
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/ssr/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/ssr/errors.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,MAAM,MAAM,qBAAqB,GAC7B,mBAAmB,GACnB,qCAAqC,GACrC,wBAAwB,GACxB,0BAA0B,GAC1B,+BAA+B,GAC/B,mBAAmB,CAAC;AAExB,MAAM,MAAM,sBAAsB,GAC9B,SAAS,GACT,cAAc,GACd,aAAa,GACb,WAAW,GACX,SAAS,GACT,OAAO,CAAC;AAEZ,MAAM,MAAM,uBAAuB,GAC/B;IACE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,qCAAqC,CAAC;IACrD,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;CACvF,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;CACtC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,+BAA+B,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC;CACpF,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEN,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;CAC1C;AAID,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,GAAG,iBAAiB,CAc1F"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/ssr/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { GraphBuffer, GraphTextureView, RenderGraphBuilder, RenderGraphFrame } from '@forgeax/engine-render-graph';
|
|
2
|
+
import { RenderGraphError } from '@forgeax/engine-render-graph';
|
|
3
|
+
import { type Result } from '@forgeax/engine-types';
|
|
4
|
+
import type { SsrSpatialAdmission } from './admission';
|
|
5
|
+
import { type SsrSpatialResources } from './resources';
|
|
6
|
+
export declare const SSR_TRACE_COARSE_STEPS: 48;
|
|
7
|
+
export declare const SSR_TRACE_REFINE_STEPS: 5;
|
|
8
|
+
export interface SsrTracePlan {
|
|
9
|
+
readonly resolution: 'half';
|
|
10
|
+
readonly coarseSteps: typeof SSR_TRACE_COARSE_STEPS;
|
|
11
|
+
readonly refineSteps: typeof SSR_TRACE_REFINE_STEPS;
|
|
12
|
+
}
|
|
13
|
+
export declare function buildSsrTracePlan(): SsrTracePlan;
|
|
14
|
+
export interface SsrConfidenceFactors {
|
|
15
|
+
readonly hit: number;
|
|
16
|
+
readonly thickness: number;
|
|
17
|
+
readonly facing: number;
|
|
18
|
+
readonly edge: number;
|
|
19
|
+
readonly roughness: number;
|
|
20
|
+
readonly temporal: number;
|
|
21
|
+
}
|
|
22
|
+
/** Compute the bounded product used by the spatial trace result. */
|
|
23
|
+
export declare function computeSsrConfidence(factors: SsrConfidenceFactors): number;
|
|
24
|
+
export interface SsrSpatialGraphInputs {
|
|
25
|
+
readonly admission: SsrSpatialAdmission;
|
|
26
|
+
readonly width: number;
|
|
27
|
+
readonly height: number;
|
|
28
|
+
readonly depth?: GraphTextureView;
|
|
29
|
+
readonly normal?: GraphTextureView;
|
|
30
|
+
readonly scene?: GraphTextureView;
|
|
31
|
+
/** Standard temporal-v1 source metadata, needed by trace even without history. */
|
|
32
|
+
readonly currentTemporal?: GraphTextureView;
|
|
33
|
+
/** Lighting-owned exact material coverage in alpha; RGB stays with composition. */
|
|
34
|
+
readonly fallback?: GraphTextureView;
|
|
35
|
+
/** Shared Standard View UBO used to reconstruct world-space SSR rays. */
|
|
36
|
+
readonly view?: GraphBuffer;
|
|
37
|
+
/** Shared Standard temporal-v1 target plus the SSR-owned history write. */
|
|
38
|
+
readonly temporal?: {
|
|
39
|
+
readonly previousHistory: GraphTextureView;
|
|
40
|
+
readonly outputHistory: GraphTextureView;
|
|
41
|
+
readonly previousSurface: GraphTextureView;
|
|
42
|
+
readonly outputSurface: GraphTextureView;
|
|
43
|
+
readonly params: GraphBuffer;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export interface SsrSpatialGraphProjection {
|
|
47
|
+
readonly enabled: boolean;
|
|
48
|
+
readonly passNames: readonly string[];
|
|
49
|
+
readonly resources: SsrSpatialResources | undefined;
|
|
50
|
+
readonly trace: SsrTracePlan | undefined;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Project the M1 spatial chain into the caller's typed graph.
|
|
54
|
+
*
|
|
55
|
+
* A non-admitted result exits before resource creation. The graph owns all
|
|
56
|
+
* transient views and dependencies; this module never creates an encoder,
|
|
57
|
+
* queue submission, public handle, or second renderer.
|
|
58
|
+
*/
|
|
59
|
+
export declare function addSsrSpatialPasses<FrameCtx extends RenderGraphFrame>(graph: RenderGraphBuilder<FrameCtx>, input: SsrSpatialGraphInputs): Result<SsrSpatialGraphProjection, RenderGraphError>;
|
|
60
|
+
//# sourceMappingURL=graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/ssr/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAK7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElF,eAAO,MAAM,sBAAsB,EAAG,EAAW,CAAC;AAClD,eAAO,MAAM,sBAAsB,EAAG,CAAU,CAAC;AAEjD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,OAAO,sBAAsB,CAAC;IACpD,QAAQ,CAAC,WAAW,EAAE,OAAO,sBAAsB,CAAC;CACrD;AAED,wBAAgB,iBAAiB,IAAI,YAAY,CAMhD;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAW1E;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAClC,kFAAkF;IAClF,QAAQ,CAAC,eAAe,CAAC,EAAE,gBAAgB,CAAC;IAC5C,mFAAmF;IACnF,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IACrC,yEAAyE;IACzE,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC;QAC3C,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;QACzC,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC;QAC3C,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;QACzC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAAC;CAC1C;AA+HD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,SAAS,gBAAgB,EACnE,KAAK,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EACnC,KAAK,EAAE,qBAAqB,GAC3B,MAAM,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CA4jBrD"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import type { Buffer, RhiDevice, RhiError, RhiQueue, Texture, TextureDescriptor, TextureView } from '@forgeax/engine-rhi';
|
|
2
|
+
import { type Result } from '@forgeax/engine-types';
|
|
3
|
+
import type { DeviceScope } from '../device/device-scope';
|
|
4
|
+
export declare const SSR_HISTORY_FORMAT: "rgba16float";
|
|
5
|
+
export type SsrHistoryResetReason = 'first-enable' | 'resize' | 'camera-cut' | 'history-version' | 'coverage-loss' | 'reflection-generation' | 'device-recovery' | 'disable';
|
|
6
|
+
export type SsrHistoryFailureStage = 'build' | 'encode' | 'finish' | 'submit';
|
|
7
|
+
export type SsrHistoryState = 'first-frame' | 'stable' | 'reset' | 'aborted' | 'retiring' | 'retired' | 'disposed';
|
|
8
|
+
export interface SsrHistorySlot {
|
|
9
|
+
readonly texture: Texture;
|
|
10
|
+
readonly view: TextureView;
|
|
11
|
+
readonly surfaceTexture: Texture;
|
|
12
|
+
readonly surfaceView: TextureView;
|
|
13
|
+
}
|
|
14
|
+
export interface SsrHistoryResources {
|
|
15
|
+
readonly width: number;
|
|
16
|
+
readonly height: number;
|
|
17
|
+
readonly halfWidth: number;
|
|
18
|
+
readonly halfHeight: number;
|
|
19
|
+
readonly bytes: number;
|
|
20
|
+
readonly descriptor: TextureDescriptor;
|
|
21
|
+
readonly slots: readonly [SsrHistorySlot, SsrHistorySlot];
|
|
22
|
+
/** One renderer-owned parameter block shared by the temporal resolve. */
|
|
23
|
+
readonly paramsBuffer: Buffer;
|
|
24
|
+
readonly childScope: DeviceScope;
|
|
25
|
+
}
|
|
26
|
+
export interface SsrHistoryCandidate {
|
|
27
|
+
readonly readSlot: 0 | 1 | null;
|
|
28
|
+
readonly writeSlot: 0 | 1;
|
|
29
|
+
readonly historyValid: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface SsrHistoryInspection {
|
|
32
|
+
readonly state: SsrHistoryState;
|
|
33
|
+
readonly width: number;
|
|
34
|
+
readonly height: number;
|
|
35
|
+
readonly halfWidth: number;
|
|
36
|
+
readonly halfHeight: number;
|
|
37
|
+
readonly format: typeof SSR_HISTORY_FORMAT;
|
|
38
|
+
readonly historyCount: 0 | 2;
|
|
39
|
+
readonly historyValid: boolean;
|
|
40
|
+
readonly readSlot: 0 | 1 | null;
|
|
41
|
+
readonly writeSlot: 0 | 1;
|
|
42
|
+
readonly activeBytes: number;
|
|
43
|
+
readonly candidateBytes: number;
|
|
44
|
+
readonly retiringBytes: number;
|
|
45
|
+
readonly resetCount: number;
|
|
46
|
+
readonly resetReason: SsrHistoryResetReason | undefined;
|
|
47
|
+
readonly lastFailure: SsrHistoryFailureStage | undefined;
|
|
48
|
+
}
|
|
49
|
+
export interface SsrHistoryError {
|
|
50
|
+
readonly code: 'ssr-history-unavailable' | 'ssr-history-active' | 'ssr-history-not-active' | 'ssr-history-retired';
|
|
51
|
+
readonly expected: string;
|
|
52
|
+
readonly hint: string;
|
|
53
|
+
readonly detail?: Readonly<{
|
|
54
|
+
readonly stage?: SsrHistoryFailureStage;
|
|
55
|
+
readonly reason?: SsrHistoryResetReason;
|
|
56
|
+
}>;
|
|
57
|
+
}
|
|
58
|
+
/** Owns only SSR's two physical history slots; the shared coordinator owns epochs. */
|
|
59
|
+
export declare class SsrHistoryOwner {
|
|
60
|
+
private readonly device;
|
|
61
|
+
private readonly scope;
|
|
62
|
+
private activeResources;
|
|
63
|
+
private readonly retiringResources;
|
|
64
|
+
private retirementFencePending;
|
|
65
|
+
private activeCandidate;
|
|
66
|
+
private readIndex;
|
|
67
|
+
private valid;
|
|
68
|
+
private state;
|
|
69
|
+
private resetReason;
|
|
70
|
+
private lastFailure;
|
|
71
|
+
private resetCount;
|
|
72
|
+
private constructor();
|
|
73
|
+
static create(input: {
|
|
74
|
+
readonly device: RhiDevice;
|
|
75
|
+
readonly scope: DeviceScope;
|
|
76
|
+
readonly width: number;
|
|
77
|
+
readonly height: number;
|
|
78
|
+
}): Result<SsrHistoryOwner, RhiError>;
|
|
79
|
+
get resources(): SsrHistoryResources;
|
|
80
|
+
beginFrame(): Result<SsrHistoryCandidate, SsrHistoryError>;
|
|
81
|
+
commitFrame(candidate: SsrHistoryCandidate): Result<void, SsrHistoryError>;
|
|
82
|
+
abortFrame(candidate: SsrHistoryCandidate, stage: SsrHistoryFailureStage): void;
|
|
83
|
+
reset(reason: SsrHistoryResetReason): void;
|
|
84
|
+
resize(width: number, height: number): Result<void, RhiError>;
|
|
85
|
+
/** Retire pending allocations after the queue's already-submitted work. */
|
|
86
|
+
retireAfterFence(queue: RhiQueue, onFailure: (cause: unknown) => void): void;
|
|
87
|
+
retire(): void;
|
|
88
|
+
dispose(): void;
|
|
89
|
+
inspect(): SsrHistoryInspection;
|
|
90
|
+
}
|
|
91
|
+
export declare function createSsrHistoryOwner(input: {
|
|
92
|
+
readonly device: RhiDevice;
|
|
93
|
+
readonly scope: DeviceScope;
|
|
94
|
+
readonly width: number;
|
|
95
|
+
readonly height: number;
|
|
96
|
+
}): Result<SsrHistoryOwner, RhiError>;
|
|
97
|
+
//# sourceMappingURL=history.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/ssr/history.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { GraphExtent } from '@forgeax/engine-render-graph';
|
|
2
|
+
/** The one depth format owned by the SSR spatial producer. */
|
|
3
|
+
export declare const SSR_HIZ_FORMAT: "r32float";
|
|
4
|
+
export interface SsrHiZExtent {
|
|
5
|
+
readonly width: number;
|
|
6
|
+
readonly height: number;
|
|
7
|
+
}
|
|
8
|
+
export interface SsrHiZLevelPlan extends SsrHiZExtent {
|
|
9
|
+
readonly level: number;
|
|
10
|
+
}
|
|
11
|
+
export interface SsrHiZPlan {
|
|
12
|
+
readonly extent: SsrHiZExtent;
|
|
13
|
+
readonly format: typeof SSR_HIZ_FORMAT;
|
|
14
|
+
readonly mipLevelCount: number;
|
|
15
|
+
readonly levels: readonly SsrHiZLevelPlan[];
|
|
16
|
+
readonly graphSize: GraphExtent;
|
|
17
|
+
}
|
|
18
|
+
/** Derive the physical WebGPU floor-halved mip extent, clamped to one texel. */
|
|
19
|
+
export declare function nextSsrHiZMipExtent(extent: SsrHiZExtent): SsrHiZExtent;
|
|
20
|
+
/** Derive the complete current-view Hi-Z descriptor without allocating a resource. */
|
|
21
|
+
export declare function buildSsrHiZPlan(extent: SsrHiZExtent): SsrHiZPlan;
|
|
22
|
+
/** Map an invalid or empty depth sample to the Hi-Z empty-pixel sentinel. */
|
|
23
|
+
export declare function normalizeSsrHiZDepth(value: number): number;
|
|
24
|
+
/**
|
|
25
|
+
* Reduce one mip level with the physical mip's complete coverage footprint.
|
|
26
|
+
*
|
|
27
|
+
* WebGPU mip dimensions are floor-halved, so a 3-wide source has a 1-wide
|
|
28
|
+
* destination. The destination cells therefore use integer normalized
|
|
29
|
+
* boundaries with a conservative ceil on the end boundary instead of
|
|
30
|
+
* assuming a fixed 2x2 footprint. Adjacent cells overlap at odd boundaries;
|
|
31
|
+
* this keeps boundary and trailing source columns/rows in the hierarchy.
|
|
32
|
+
* The empty sentinel is infinity and therefore never wins over a finite
|
|
33
|
+
* positive view-space depth. Invalid input samples are treated as empty so a
|
|
34
|
+
* malformed depth cannot introduce NaN into the hierarchy.
|
|
35
|
+
*/
|
|
36
|
+
export declare function reduceSsrHiZLevel(source: ArrayLike<number>, sourceExtent: SsrHiZExtent): Float32Array;
|
|
37
|
+
//# sourceMappingURL=hiz.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hiz.d.ts","sourceRoot":"","sources":["../../src/ssr/hiz.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE,8DAA8D;AAC9D,eAAO,MAAM,cAAc,EAAG,UAAmB,CAAC;AAElD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,OAAO,cAAc,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;CACjC;AAiBD,gFAAgF;AAChF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAMtE;AAED,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAkBhE;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AAaD;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EACzB,YAAY,EAAE,YAAY,GACzB,YAAY,CAyBd"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { ScreenSpaceReflectionData } from '../components/screen-space-reflection';
|
|
2
|
+
import type { ReflectionFallbackSource } from '../inspection-types';
|
|
3
|
+
import type { SsrSpatialAdmission, SsrSpatialLane, SsrSpatialWork } from './admission';
|
|
4
|
+
import type { SsrConfigInvalidError, SsrUnavailableError } from './errors';
|
|
5
|
+
import type { SsrHistoryState } from './history';
|
|
6
|
+
export type SsrSpatialInspectionFailure = SsrConfigInvalidError | SsrUnavailableError;
|
|
7
|
+
export interface SsrSpatialHistoryInspection {
|
|
8
|
+
readonly state: 'not-owned' | SsrHistoryState;
|
|
9
|
+
readonly bytes: number;
|
|
10
|
+
readonly resetCount: number;
|
|
11
|
+
}
|
|
12
|
+
export interface SsrSpatialInspectionProjection {
|
|
13
|
+
readonly status?: SsrSpatialInspection['status'];
|
|
14
|
+
readonly coverage?: Partial<SsrSpatialInspection['coverage']>;
|
|
15
|
+
readonly history?: SsrSpatialHistoryInspection;
|
|
16
|
+
readonly passRoster?: readonly string[];
|
|
17
|
+
readonly fallbackSource?: ReflectionFallbackSource;
|
|
18
|
+
readonly failure?: SsrSpatialInspectionFailure;
|
|
19
|
+
}
|
|
20
|
+
/** Keep the public projection bounded even if a graph owner supplies a bad list. */
|
|
21
|
+
export declare const SSR_INSPECTION_MAX_PASSES: 64;
|
|
22
|
+
export interface SsrSpatialInspection {
|
|
23
|
+
readonly status: 'not-requested' | 'requested' | 'admitted' | 'fallback-only' | 'structural-only';
|
|
24
|
+
readonly lane: SsrSpatialLane;
|
|
25
|
+
readonly config: ScreenSpaceReflectionData | undefined;
|
|
26
|
+
readonly viewRange: number;
|
|
27
|
+
readonly coverage: {
|
|
28
|
+
/** Null means no GPU coverage measurement is available for this frame. */
|
|
29
|
+
readonly hitCount: number | null;
|
|
30
|
+
readonly fallbackCount: number | null;
|
|
31
|
+
readonly excludedCount: number | null;
|
|
32
|
+
};
|
|
33
|
+
readonly history: SsrSpatialHistoryInspection;
|
|
34
|
+
readonly work: SsrSpatialWork;
|
|
35
|
+
readonly passRoster: readonly string[];
|
|
36
|
+
readonly fallbackSource: ReflectionFallbackSource | undefined;
|
|
37
|
+
readonly failure: SsrSpatialInspectionFailure | undefined;
|
|
38
|
+
}
|
|
39
|
+
/** Project only detached, bounded facts from the spatial admission result. */
|
|
40
|
+
export declare function projectSsrSpatialInspection(admission: SsrSpatialAdmission, projection?: SsrSpatialInspectionProjection): SsrSpatialInspection;
|
|
41
|
+
export declare function serializeSsrSpatialInspection(inspection: SsrSpatialInspection): string;
|
|
42
|
+
//# sourceMappingURL=inspection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspection.d.ts","sourceRoot":"","sources":["../../src/ssr/inspection.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,MAAM,MAAM,2BAA2B,GAAG,qBAAqB,GAAG,mBAAmB,CAAC;AAEtF,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,eAAe,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9D,QAAQ,CAAC,OAAO,CAAC,EAAE,2BAA2B,CAAC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,cAAc,CAAC,EAAE,wBAAwB,CAAC;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,2BAA2B,CAAC;CAChD;AAED,oFAAoF;AACpF,eAAO,MAAM,yBAAyB,EAAG,EAAW,CAAC;AA4CrD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,WAAW,GAAG,UAAU,GAAG,eAAe,GAAG,iBAAiB,CAAC;IAClG,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,yBAAyB,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE;QACjB,0EAA0E;QAC1E,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QACtC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;KACvC,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;IAC9C,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,cAAc,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC9D,QAAQ,CAAC,OAAO,EAAE,2BAA2B,GAAG,SAAS,CAAC;CAC3D;AAED,8EAA8E;AAC9E,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,mBAAmB,EAC9B,UAAU,GAAE,8BAAmC,GAC9C,oBAAoB,CA2BtB;AAED,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,oBAAoB,GAAG,MAAM,CAEtF"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { GraphTexture, GraphTextureView, RenderGraphBuilder, RenderGraphError, RenderGraphFrame } from '@forgeax/engine-render-graph';
|
|
2
|
+
import { type Result } from '@forgeax/engine-types';
|
|
3
|
+
import { type SsrHiZExtent, type SsrHiZPlan } from './hiz';
|
|
4
|
+
export { SSR_HIZ_FORMAT } from './hiz';
|
|
5
|
+
export declare const SSR_TRACE_FORMAT: "rgba16float";
|
|
6
|
+
export declare const SSR_R32FLOAT_BYTES_PER_PIXEL: 4;
|
|
7
|
+
export declare const SSR_RGBA16FLOAT_BYTES_PER_PIXEL: 8;
|
|
8
|
+
export declare const SSR_TEMPORAL_PARAMS_BYTES: 32;
|
|
9
|
+
export declare const SSR_SPATIAL_MEMORY_BUDGET_BYTES: 45088768;
|
|
10
|
+
export interface SsrHiZResources {
|
|
11
|
+
readonly plan: SsrHiZPlan;
|
|
12
|
+
readonly texture: GraphTexture;
|
|
13
|
+
readonly levels: readonly GraphTextureView[];
|
|
14
|
+
}
|
|
15
|
+
export interface SsrSpatialTexture {
|
|
16
|
+
readonly texture: GraphTexture;
|
|
17
|
+
readonly view: GraphTextureView;
|
|
18
|
+
readonly width: number;
|
|
19
|
+
readonly height: number;
|
|
20
|
+
readonly format: typeof SSR_TRACE_FORMAT;
|
|
21
|
+
}
|
|
22
|
+
export interface SsrSpatialResources {
|
|
23
|
+
readonly hiz: SsrHiZResources;
|
|
24
|
+
readonly trace: SsrSpatialTexture;
|
|
25
|
+
/** Half-resolution reactivity of the admitted reflection source taps. */
|
|
26
|
+
readonly hitReactivity: GraphTextureView;
|
|
27
|
+
/** Half-resolution resolved radiance/confidence when temporal resolve is active. */
|
|
28
|
+
readonly resolved?: SsrSpatialTexture;
|
|
29
|
+
/** Sampled view of all resolved reflection levels; mip 0 remains sharp. */
|
|
30
|
+
readonly radiancePyramid?: GraphTextureView;
|
|
31
|
+
}
|
|
32
|
+
export interface SsrSpatialMemoryEstimate {
|
|
33
|
+
readonly width: number;
|
|
34
|
+
readonly height: number;
|
|
35
|
+
readonly halfWidth: number;
|
|
36
|
+
readonly halfHeight: number;
|
|
37
|
+
readonly hizBytes: number;
|
|
38
|
+
readonly traceBytes: number;
|
|
39
|
+
readonly hitReactivityBytes: number;
|
|
40
|
+
readonly resolvedBytes: number;
|
|
41
|
+
readonly historyBytes: number;
|
|
42
|
+
readonly temporalParamsBytes: number;
|
|
43
|
+
/** Full-resolution fallback output allocated only for SSR; included in the total. */
|
|
44
|
+
readonly fallbackInputBytes: number;
|
|
45
|
+
/** Total additional descriptor bytes, including the lighting-owned fallback, before aliasing. */
|
|
46
|
+
readonly ssrOwnedBytes: number;
|
|
47
|
+
readonly budgetBytes: typeof SSR_SPATIAL_MEMORY_BUDGET_BYTES;
|
|
48
|
+
readonly withinBudget: boolean;
|
|
49
|
+
}
|
|
50
|
+
/** Derive descriptor bytes for one admitted half-resolution SSR frame. */
|
|
51
|
+
export declare function estimateSsrSpatialMemory(extent: SsrHiZExtent, options?: {
|
|
52
|
+
readonly temporal?: boolean;
|
|
53
|
+
}): SsrSpatialMemoryEstimate;
|
|
54
|
+
/** Create the renderer-owned Hi-Z texture and one typed view per mip. */
|
|
55
|
+
export declare function createSsrHiZResources(graph: RenderGraphBuilder<RenderGraphFrame>, extent: SsrHiZExtent): Result<SsrHiZResources, RenderGraphError>;
|
|
56
|
+
/** Allocate only the transient resources required by an admitted spatial path. */
|
|
57
|
+
export declare function createSsrSpatialResources(graph: RenderGraphBuilder<RenderGraphFrame>, extent: SsrHiZExtent): Result<SsrSpatialResources, RenderGraphError>;
|
|
58
|
+
//# sourceMappingURL=resources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/ssr/resources.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type Result } from '@forgeax/engine-types';
|
|
2
|
+
import type { TemporalFrameBeginInput, TemporalFrameCandidate, TemporalFrameConsumerId, TemporalFrameCoordinator, TemporalFrameError, TemporalFramePhases, TemporalFrameReceipt, TemporalFrameStage } from '../temporal/frame-coordinator';
|
|
3
|
+
import type { SsrHistoryCandidate, SsrHistoryError, SsrHistoryFailureStage, SsrHistoryInspection, SsrHistoryOwner, SsrHistoryResetReason } from './history';
|
|
4
|
+
export interface SsrTemporalCandidate<T> {
|
|
5
|
+
readonly temporal: TemporalFrameCandidate<T>;
|
|
6
|
+
readonly history: SsrHistoryCandidate;
|
|
7
|
+
}
|
|
8
|
+
export interface SsrTemporalExecutionError {
|
|
9
|
+
readonly code: 'ssr-temporal-stage-failed';
|
|
10
|
+
readonly expected: string;
|
|
11
|
+
readonly hint: string;
|
|
12
|
+
readonly detail: Readonly<{
|
|
13
|
+
readonly stage: TemporalFrameStage;
|
|
14
|
+
readonly cause: unknown;
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
17
|
+
export interface SsrTemporalInspection {
|
|
18
|
+
readonly sharedEpoch: number;
|
|
19
|
+
readonly consumerIds: readonly TemporalFrameConsumerId[];
|
|
20
|
+
readonly coordinatorAttempt: 'none' | 'active' | 'committed' | 'aborted';
|
|
21
|
+
readonly history: SsrHistoryInspection;
|
|
22
|
+
}
|
|
23
|
+
export type SsrTemporalError = TemporalFrameError | SsrHistoryError | SsrTemporalExecutionError;
|
|
24
|
+
/** Stages SSR history beside the shared renderer transaction without owning submit or epochs. */
|
|
25
|
+
export declare class SsrTemporalConsumer<T = unknown> {
|
|
26
|
+
private readonly coordinator;
|
|
27
|
+
readonly history: SsrHistoryOwner;
|
|
28
|
+
constructor(coordinator: TemporalFrameCoordinator<T>, history: SsrHistoryOwner);
|
|
29
|
+
begin(input: TemporalFrameBeginInput<T>): Result<SsrTemporalCandidate<T>, TemporalFrameError | SsrHistoryError>;
|
|
30
|
+
commit(candidate: SsrTemporalCandidate<T>): Result<TemporalFrameReceipt<T>, TemporalFrameError | SsrHistoryError>;
|
|
31
|
+
abort(candidate: SsrTemporalCandidate<T>, stage: SsrHistoryFailureStage): void;
|
|
32
|
+
run(input: TemporalFrameBeginInput<T>, phases: TemporalFramePhases<T>): Result<TemporalFrameReceipt<T>, SsrTemporalError>;
|
|
33
|
+
reset(reason: SsrHistoryResetReason): void;
|
|
34
|
+
retireAfterFence(queue: Parameters<SsrHistoryOwner['retireAfterFence']>[0], onFailure: Parameters<SsrHistoryOwner['retireAfterFence']>[1]): void;
|
|
35
|
+
inspect(): SsrTemporalInspection;
|
|
36
|
+
}
|
|
37
|
+
export declare function createSsrTemporalConsumer<T>(coordinator: TemporalFrameCoordinator<T>, history: SsrHistoryOwner): SsrTemporalConsumer<T>;
|
|
38
|
+
//# sourceMappingURL=temporal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"temporal.d.ts","sourceRoot":"","sources":["../../src/ssr/temporal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACtB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;CACvC;AACD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;QAAE,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC5F;AACD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACzD,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;IACzE,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;CACxC;AACD,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG,eAAe,GAAG,yBAAyB,CAAC;AA4ChG,iGAAiG;AACjG,qBAAa,mBAAmB,CAAC,CAAC,GAAG,OAAO;IAExC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,QAAQ,CAAC,OAAO,EAAE,eAAe;gBADhB,WAAW,EAAE,wBAAwB,CAAC,CAAC,CAAC,EAChD,OAAO,EAAE,eAAe;IAEnC,KAAK,CACH,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAChC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,kBAAkB,GAAG,eAAe,CAAC;IAUxE,MAAM,CACJ,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC,GACjC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,kBAAkB,GAAG,eAAe,CAAC;IAUxE,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,sBAAsB,GAAG,IAAI;IAI9E,GAAG,CACD,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,EACjC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC7B,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC;IAqBpD,KAAK,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI;IAI1C,gBAAgB,CACd,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,EACzD,SAAS,EAAE,UAAU,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,GAC5D,IAAI;IAGP,OAAO,IAAI,qBAAqB;CASjC;AACD,wBAAgB,yBAAyB,CAAC,CAAC,EACzC,WAAW,EAAE,wBAAwB,CAAC,CAAC,CAAC,EACxC,OAAO,EAAE,eAAe,GACvB,mBAAmB,CAAC,CAAC,CAAC,CAExB"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import type { Mat4 } from '@forgeax/engine-math';
|
|
2
2
|
import type { RhiDevice } from '@forgeax/engine-rhi';
|
|
3
|
-
import type { SkinPaletteSlice } from './skin-palette-types';
|
|
3
|
+
import type { SkinPaletteReceipt, SkinPaletteSlice } from './skin-palette-types';
|
|
4
4
|
export interface SkinPaletteAllocator {
|
|
5
|
+
/** Monotonic successful GPU content writes, independent of allocation identity. */
|
|
6
|
+
readonly contentRevision: number;
|
|
5
7
|
/**
|
|
6
|
-
* Static BG entry size for
|
|
7
|
-
* `MAX_JOINTS * 64 =
|
|
8
|
-
*
|
|
8
|
+
* Static BG entry size for the direct/residual
|
|
9
|
+
* `pbr-skin-mesh-array-bgl @binding(1)` path. Always `MAX_JOINTS * 64 =
|
|
10
|
+
* 16320`; the scene-index GPU path binds the complete storage arena
|
|
11
|
+
* instead. Path-independent for the fixed-window consumer.
|
|
9
12
|
*/
|
|
10
13
|
readonly bindingWindowBytes: number;
|
|
11
14
|
/**
|
|
@@ -16,6 +19,27 @@ export interface SkinPaletteAllocator {
|
|
|
16
19
|
* `slice.buffer` identity (shared vs per-entity), not this flag.
|
|
17
20
|
*/
|
|
18
21
|
readonly useStorageBuffer: boolean;
|
|
22
|
+
/** Allocate or reuse a persistent identity/generation-scoped palette range. */
|
|
23
|
+
allocatePersistentSlice(input: {
|
|
24
|
+
readonly identity: string;
|
|
25
|
+
readonly generation: number;
|
|
26
|
+
readonly jointCount: number;
|
|
27
|
+
readonly bounds?: Float32Array;
|
|
28
|
+
}): SkinPaletteReceipt;
|
|
29
|
+
/**
|
|
30
|
+
* Compare the producer's current joint matrices with the last observed
|
|
31
|
+
* pose and mark only changed joints dirty. The allocator owns this small
|
|
32
|
+
* pose observation cache so extract does not grow a second palette registry.
|
|
33
|
+
*/
|
|
34
|
+
observePersistentJoints(identity: string, ibms: readonly Float32Array[], jointWorlds: readonly Mat4[]): readonly number[];
|
|
35
|
+
/** Mark producer-owned joints dirty; adjacent joints are merged on receipt. */
|
|
36
|
+
markDirtyJoints(identity: string, joints: readonly number[]): void;
|
|
37
|
+
/** Start a frame without discarding persistent ranges or their fences. */
|
|
38
|
+
beginFrame(): void;
|
|
39
|
+
/** Reconcile persistent identities after the frame's extract pass. */
|
|
40
|
+
endFrame(): void;
|
|
41
|
+
/** Retire one producer identity after its owning scene is detached. */
|
|
42
|
+
releasePersistentSlice(identity: string): void;
|
|
19
43
|
/**
|
|
20
44
|
* Allocate a slice for `jointCount` joints. Returns the buffer + byte
|
|
21
45
|
* offset the record stage should bind. Storage path returns the same
|
|
@@ -28,12 +52,6 @@ export interface SkinPaletteAllocator {
|
|
|
28
52
|
* `device.limits.maxStorageBufferBindingSize`
|
|
29
53
|
*/
|
|
30
54
|
allocateSlice(jointCount: number): SkinPaletteSlice;
|
|
31
|
-
/** Allocate one stable slice for a retained render source. */
|
|
32
|
-
allocateSliceFor(key: string, jointCount: number): SkinPaletteSlice;
|
|
33
|
-
/** Release a stable slice when its render source leaves the scene. */
|
|
34
|
-
releaseSliceFor(key: string): void;
|
|
35
|
-
/** Reconcile stable slices after a full render-source extraction. */
|
|
36
|
-
retainSliceKeys(keys: ReadonlySet<string>): void;
|
|
37
55
|
/**
|
|
38
56
|
* Write joint matrices into the slice's buffer at the slice's offset.
|
|
39
57
|
* Computes M_i = jointWorldTransforms[i] * ibm[i] per joint.
|
|
@@ -44,12 +62,16 @@ export interface SkinPaletteAllocator {
|
|
|
44
62
|
* directly against the IBM.
|
|
45
63
|
*/
|
|
46
64
|
writeJointPalette(slice: SkinPaletteSlice, ibms: readonly Float32Array[], jointWorlds: readonly Mat4[]): void;
|
|
65
|
+
/** Write only the dirty ranges carried by a persistent receipt. */
|
|
66
|
+
writePersistentJointPalette(receipt: SkinPaletteReceipt, ibms: readonly Float32Array[], jointWorlds: readonly Mat4[]): void;
|
|
47
67
|
/**
|
|
48
68
|
* Reset for next frame. Storage path: cursor rewinds, shared buffer
|
|
49
69
|
* stays. Uniform path: per-entity buffer cursor rewinds (pool entries
|
|
50
70
|
* stay allocated and round-robin to the next frame's first entity).
|
|
51
71
|
*/
|
|
52
72
|
resetForFrame(): void;
|
|
73
|
+
/** Release all allocator-owned GPU buffers during renderer teardown. */
|
|
74
|
+
dispose(): void;
|
|
53
75
|
}
|
|
54
76
|
export declare function createSkinPaletteAllocator(device: RhiDevice, maxBindingSize: number, useStorageBuffer?: boolean): SkinPaletteAllocator;
|
|
55
77
|
//# sourceMappingURL=skin-palette-allocator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skin-palette-allocator.d.ts","sourceRoot":"","sources":["../../src/systems/skin-palette-allocator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skin-palette-allocator.d.ts","sourceRoot":"","sources":["../../src/systems/skin-palette-allocator.ts"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,KAAK,EAAU,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAO7D,OAAO,KAAK,EAEV,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAuB9B,MAAM,WAAW,oBAAoB;IACnC,mFAAmF;IACnF,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,+EAA+E;IAC/E,uBAAuB,CAAC,KAAK,EAAE;QAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;KAChC,GAAG,kBAAkB,CAAC;IACvB;;;;OAIG;IACH,uBAAuB,CACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,SAAS,YAAY,EAAE,EAC7B,WAAW,EAAE,SAAS,IAAI,EAAE,GAC3B,SAAS,MAAM,EAAE,CAAC;IACrB,+EAA+E;IAC/E,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IACnE,0EAA0E;IAC1E,UAAU,IAAI,IAAI,CAAC;IACnB,sEAAsE;IACtE,QAAQ,IAAI,IAAI,CAAC;IACjB,uEAAuE;IACvE,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C;;;;;;;;;;OAUG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACpD;;;;;;;;OAQG;IACH,iBAAiB,CACf,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,SAAS,YAAY,EAAE,EAC7B,WAAW,EAAE,SAAS,IAAI,EAAE,GAC3B,IAAI,CAAC;IACR,mEAAmE;IACnE,2BAA2B,CACzB,OAAO,EAAE,kBAAkB,EAC3B,IAAI,EAAE,SAAS,YAAY,EAAE,EAC7B,WAAW,EAAE,SAAS,IAAI,EAAE,GAC3B,IAAI,CAAC;IACR;;;;OAIG;IACH,aAAa,IAAI,IAAI,CAAC;IACtB,wEAAwE;IACxE,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,EACjB,cAAc,EAAE,MAAM,EACtB,gBAAgB,UAAO,GACtB,oBAAoB,CAsiBtB"}
|
|
@@ -11,4 +11,19 @@ export interface SkinPaletteSlice {
|
|
|
11
11
|
/** GPU buffer containing the slice's joint matrices. */
|
|
12
12
|
readonly buffer: Buffer;
|
|
13
13
|
}
|
|
14
|
+
export interface SkinPaletteDirtyRange {
|
|
15
|
+
readonly startJoint: number;
|
|
16
|
+
readonly jointCount: number;
|
|
17
|
+
}
|
|
18
|
+
export interface SkinPaletteReceipt extends SkinPaletteSlice {
|
|
19
|
+
readonly identity: string;
|
|
20
|
+
readonly generation: number;
|
|
21
|
+
readonly fence: number;
|
|
22
|
+
readonly customDataStart: number;
|
|
23
|
+
readonly storageOrUniform: 'storage' | 'uniform';
|
|
24
|
+
readonly bounds?: Float32Array;
|
|
25
|
+
readonly dirtyRanges: readonly SkinPaletteDirtyRange[];
|
|
26
|
+
readonly uploadBytes: number;
|
|
27
|
+
readonly retiredByteOffset?: number;
|
|
28
|
+
}
|
|
14
29
|
//# sourceMappingURL=skin-palette-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skin-palette-types.d.ts","sourceRoot":"","sources":["../../src/systems/skin-palette-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB"}
|
|
1
|
+
{"version":3,"file":"skin-palette-types.d.ts","sourceRoot":"","sources":["../../src/systems/skin-palette-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { World } from '@forgeax/engine-ecs';
|
|
2
|
+
import type { CameraSnapshot } from '../render-contract';
|
|
3
|
+
import type { DispatchEntry, RenderableSnapshot } from '../render-system-extract';
|
|
4
|
+
/**
|
|
5
|
+
* Reorder only the transparent queue while preserving every opaque slot.
|
|
6
|
+
* Equal depth/layer values use material identity as a fold-friendly tie break.
|
|
7
|
+
*/
|
|
8
|
+
export declare function sortTransparentDispatch(dispatch: DispatchEntry[], world: World, cameras: readonly CameraSnapshot[], renderables: readonly RenderableSnapshot[]): DispatchEntry[];
|
|
9
|
+
//# sourceMappingURL=transparent-dispatch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transparent-dispatch.d.ts","sourceRoot":"","sources":["../../src/systems/transparent-dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AASlF;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,aAAa,EAAE,EACzB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,WAAW,EAAE,SAAS,kBAAkB,EAAE,GACzC,aAAa,EAAE,CAoEjB"}
|
|
@@ -27,6 +27,13 @@ export interface RenderTargetMaterialSourceExpectation {
|
|
|
27
27
|
}
|
|
28
28
|
/** Resolve a source only inside the renderer-owned material projection. */
|
|
29
29
|
export declare function resolveRenderTargetMaterialSource(source: RenderTargetTextureSource): RenderTargetMaterialSourceBinding | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Returns the stable renderer-local resource identity used by batch grouping.
|
|
32
|
+
* The opaque source object is intentionally not stringified: target identity,
|
|
33
|
+
* device generation, and view subresource are the producer-owned facts that
|
|
34
|
+
* determine whether two draws may share one material bind group.
|
|
35
|
+
*/
|
|
36
|
+
export declare function renderTargetMaterialSourceIdentity(source: RenderTargetTextureSource): string | undefined;
|
|
30
37
|
export declare function createRenderTargetMaterialSource(target: RenderTarget, descriptor: RenderTargetDescriptor, options: RenderTargetTextureSourceOptions & {
|
|
31
38
|
readonly generation: number;
|
|
32
39
|
}): RenderResult<RenderTargetMaterialSourceBinding, RenderError>;
|