@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
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { World } from '@forgeax/engine-ecs';
|
|
2
|
+
import type { RenderFrameState, ValidatedRenderable } from './frame-snapshot';
|
|
3
|
+
|
|
4
|
+
/** Capture the render-stage mesh binding used by the current submitted frame. */
|
|
5
|
+
export function createDynamicGeometryConsumptionRecorder(
|
|
6
|
+
worlds: readonly World[],
|
|
7
|
+
bindings: WeakMap<World, Map<number, number>>,
|
|
8
|
+
): (entry: ValidatedRenderable) => void {
|
|
9
|
+
return (entry) => {
|
|
10
|
+
const renderable = entry.source;
|
|
11
|
+
const world = worlds[renderable.worldId];
|
|
12
|
+
if (world === undefined) return;
|
|
13
|
+
let worldBindings = bindings.get(world);
|
|
14
|
+
if (worldBindings === undefined) {
|
|
15
|
+
worldBindings = new Map();
|
|
16
|
+
bindings.set(world, worldBindings);
|
|
17
|
+
}
|
|
18
|
+
worldBindings.set(renderable.entityKey, renderable.assetHandle);
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface DynamicGeometryFrameBindings {
|
|
23
|
+
begin(): void;
|
|
24
|
+
onRenderableDraw(worlds: readonly World[]): (entry: ValidatedRenderable) => void;
|
|
25
|
+
commit(submitted: boolean): void;
|
|
26
|
+
isConsumed(world: World, entity: number, meshHandle: number | undefined): boolean;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/** Own the submitted-frame receipt used by dynamic-geometry publication. */
|
|
30
|
+
export function createDynamicGeometryFrameBindings(): DynamicGeometryFrameBindings {
|
|
31
|
+
let submitted = new WeakMap<World, ReadonlyMap<number, number>>();
|
|
32
|
+
let pending = new WeakMap<World, Map<number, number>>();
|
|
33
|
+
return {
|
|
34
|
+
begin(): void {
|
|
35
|
+
submitted = new WeakMap();
|
|
36
|
+
pending = new WeakMap();
|
|
37
|
+
},
|
|
38
|
+
onRenderableDraw(worlds): (entry: ValidatedRenderable) => void {
|
|
39
|
+
return createDynamicGeometryConsumptionRecorder(worlds, pending);
|
|
40
|
+
},
|
|
41
|
+
commit(didSubmit): void {
|
|
42
|
+
if (didSubmit) submitted = pending;
|
|
43
|
+
},
|
|
44
|
+
isConsumed(world, entity, meshHandle): boolean {
|
|
45
|
+
if (!Number.isInteger(entity) || meshHandle === undefined) return false;
|
|
46
|
+
return submitted.get(world)?.get(entity) === meshHandle;
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** Drop temporal history after a dynamic-geometry topology replacement. */
|
|
52
|
+
export function resetDynamicGeometryTemporalHistory(frameState: RenderFrameState): void {
|
|
53
|
+
frameState.temporalFrameTransaction.reset('signature-change');
|
|
54
|
+
frameState.temporalFrame = undefined;
|
|
55
|
+
frameState.temporalFrameInput = undefined;
|
|
56
|
+
frameState.lastSuccessfulTemporalView = undefined;
|
|
57
|
+
frameState.successfulTemporalFrameIndex = 0;
|
|
58
|
+
frameState.pendingTemporalCommit = { kind: 'none' };
|
|
59
|
+
}
|
|
@@ -58,7 +58,7 @@ import {
|
|
|
58
58
|
ShadowAtlas,
|
|
59
59
|
} from '../shadow-atlas';
|
|
60
60
|
import { getOrCreateSsaoBuffers } from '../ssao-buffers';
|
|
61
|
-
import { getSsaoParameters } from '../ssao-config';
|
|
61
|
+
import { getSsaoParameters, SSAO_SAMPLE_COUNTS } from '../ssao-config';
|
|
62
62
|
// extendedLighting keeps Spot modifier factors on the existing light record
|
|
63
63
|
// path; no additional render pass or submit owner is introduced.
|
|
64
64
|
import type { BindGroupCounts, RenderFrameState } from './frame-snapshot';
|
|
@@ -137,8 +137,8 @@ function mapClusterUploadFailure(
|
|
|
137
137
|
* verbatim from `recordFrame`. Walks the handle-identity WeakMap caches
|
|
138
138
|
* (feat-20260531 M2 + feat-20260622 M3) to resolve or lazily create the view
|
|
139
139
|
* (@group 0), mesh (@group 2), and — when HDRP is active — HDRP-unified cluster
|
|
140
|
-
* bind groups.
|
|
141
|
-
*
|
|
140
|
+
* bind groups. Raster groups may be null with no validated meshes; the Cluster
|
|
141
|
+
* producer follows the accepted lighting topology independently. `bindGroupCounts` accounting +
|
|
142
142
|
* cache maps are threaded through explicitly.
|
|
143
143
|
*
|
|
144
144
|
* @internal
|
|
@@ -181,10 +181,12 @@ export function buildPerFrameBindGroups(
|
|
|
181
181
|
const clusteredLighting = standardLighting?.kind === 'clustered';
|
|
182
182
|
const membershipLayout = pipelineState.hdrpClusterMembershipBindGroupLayout;
|
|
183
183
|
const membership = frameState.hdrpClusterMembership;
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
184
|
+
// The graph's Cluster producer also serves RenderFeature consumers and
|
|
185
|
+
// warmup frames with no ordinary meshes. Its lifetime follows the accepted
|
|
186
|
+
// lighting topology, not the ordinary raster validation count.
|
|
187
|
+
const expectedHdrpBuffers = clusteredLighting
|
|
188
|
+
? getOrCreateHdrpBuffers(internals, frameState.installedPipelineConfig?.clusterGrid)
|
|
189
|
+
: null;
|
|
188
190
|
const currentMembership =
|
|
189
191
|
expectedHdrpBuffers !== null &&
|
|
190
192
|
membership?.clusterGridBuffer === expectedHdrpBuffers.clusterGridBuffer
|
|
@@ -332,7 +334,7 @@ export function buildPerFrameBindGroups(
|
|
|
332
334
|
},
|
|
333
335
|
// feat-20260612-point-light-shadows-urp-hdrp Round-2 F-1:
|
|
334
336
|
// shadowParams UBO (`array<vec4<f32>, 4>` = 64 B). Lane N
|
|
335
|
-
// stores `(near, far,
|
|
337
|
+
// stores `(near, far, depthBias, normalBias)` for the point light
|
|
336
338
|
// with shadowAtlasLayer === N. Updated per frame from
|
|
337
339
|
// `pointShadowSnapshots` below.
|
|
338
340
|
{
|
|
@@ -829,7 +831,7 @@ export function writeSpotModifierTextures(
|
|
|
829
831
|
* binding 6), extracted verbatim from `recordFrame`.
|
|
830
832
|
*
|
|
831
833
|
* feat-20260612-point-light-shadows-urp-hdrp Round-2 F-1: 4 lanes x vec4<f32>;
|
|
832
|
-
* lane[shadowAtlasLayer] = (near, far,
|
|
834
|
+
* lane[shadowAtlasLayer] = (near, far, depthBias, normalBias). Lanes for non-shadow
|
|
833
835
|
* slots stay zero (the WGSL sample path is gated by PointLight.shadowAtlasLayer
|
|
834
836
|
* >= 0). Always writes the full 64 B so stale non-zero lanes from a previous
|
|
835
837
|
* frame's allocation cannot poison the current frame.
|
|
@@ -854,11 +856,10 @@ export function writeShadowParamsBuffer(
|
|
|
854
856
|
const base = layer * SHADOW_PARAMS_FLOATS_PER_LANE;
|
|
855
857
|
const near = ps.nearPlane;
|
|
856
858
|
const far = ps.farPlane;
|
|
857
|
-
const invSpan = far > near ? 1 / (far - near) : 0;
|
|
858
859
|
shadowParamsArr[base] = near;
|
|
859
860
|
shadowParamsArr[base + 1] = far;
|
|
860
|
-
shadowParamsArr[base + 2] =
|
|
861
|
-
shadowParamsArr[base + 3] =
|
|
861
|
+
shadowParamsArr[base + 2] = ps.depthBias;
|
|
862
|
+
shadowParamsArr[base + 3] = ps.normalBias;
|
|
862
863
|
}
|
|
863
864
|
const shadowParamsWriteRes = internals.device.queue.writeBuffer(
|
|
864
865
|
pipelineState.shadowParamsBuffer,
|
|
@@ -1127,6 +1128,7 @@ export function writeHdrpClusterAndSsaoBuffers(
|
|
|
1127
1128
|
profilePhase,
|
|
1128
1129
|
'record/scene-state/hdrp-cluster/buffer-upload',
|
|
1129
1130
|
(): Result<void, RenderError> => {
|
|
1131
|
+
if (frameState.installedPipelineConfig?.ssao?.enabled !== true) return ok(undefined);
|
|
1130
1132
|
const ssaoBufs = getOrCreateSsaoBuffers(internals);
|
|
1131
1133
|
if (ssaoBufs === null) return ok(undefined);
|
|
1132
1134
|
const sProj = computeProjectionMatrix(camera);
|
|
@@ -1151,6 +1153,7 @@ export function writeHdrpClusterAndSsaoBuffers(
|
|
|
1151
1153
|
ssaoUniformPayload[48] = parameters.intensity;
|
|
1152
1154
|
ssaoUniformPayload[49] = parameters.radius;
|
|
1153
1155
|
ssaoUniformPayload[50] = parameters.bias;
|
|
1156
|
+
ssaoUniformPayload[51] = SSAO_SAMPLE_COUNTS[parameters.quality];
|
|
1154
1157
|
|
|
1155
1158
|
const ssaoUniformRes = internals.device.queue.writeBuffer(
|
|
1156
1159
|
ssaoBufs.uniformBuffer,
|
|
@@ -18,10 +18,16 @@ import type { DirectionalShadowQuality } from '../components/directional-shadow-
|
|
|
18
18
|
import type { EnvironmentGeneration } from '../environment/generation';
|
|
19
19
|
import type { EnvironmentLifecycle } from '../environment/lifecycle';
|
|
20
20
|
import type { GpuBuffer } from '../gpu-resource';
|
|
21
|
-
import type {
|
|
21
|
+
import type { InstanceCollectionStore } from '../instances';
|
|
22
22
|
import type { IblBindingInspection } from '../mesh-material-bindings';
|
|
23
23
|
import type { StandardLightingInspection } from '../pipeline/standard-lighting/inspection';
|
|
24
|
+
import type { AutoExposureGpuResources } from '../pipeline/standard-output/auto-exposure/gpu';
|
|
25
|
+
import type { AutoExposureState } from '../pipeline/standard-output/auto-exposure/state';
|
|
26
|
+
import type { StandardLutGpuResources } from '../pipeline/standard-output/lut-gpu';
|
|
27
|
+
import type { StandardLutCandidate, StandardLutState } from '../pipeline/standard-output/lut-state';
|
|
24
28
|
import type { PointShadowInspection } from '../point-shadow-inspection';
|
|
29
|
+
import type { SsrSpatialAdmission } from '../ssr/admission';
|
|
30
|
+
import type { SsrHistoryCandidate, SsrHistoryOwner } from '../ssr/history';
|
|
25
31
|
import type { TemporalGpuState } from '../temporal/gpu';
|
|
26
32
|
import type { TemporalView } from '../temporal/view';
|
|
27
33
|
|
|
@@ -30,6 +36,23 @@ export type TemporalCommitOutcome =
|
|
|
30
36
|
| { readonly kind: 'off'; readonly view: TemporalView }
|
|
31
37
|
| { readonly kind: 'taa'; readonly view: TemporalView };
|
|
32
38
|
|
|
39
|
+
/** CPU transaction metadata staged beside the renderer-owned GPU candidate. */
|
|
40
|
+
export interface PendingAutoExposureState {
|
|
41
|
+
readonly state: AutoExposureState;
|
|
42
|
+
readonly generation: number;
|
|
43
|
+
readonly deviceEpoch: number;
|
|
44
|
+
readonly frameId: number;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/** CPU POD staged beside the renderer-owned LUT resources until submit. */
|
|
48
|
+
export interface PendingStandardLutState {
|
|
49
|
+
readonly state: StandardLutState;
|
|
50
|
+
readonly candidate?: StandardLutCandidate;
|
|
51
|
+
readonly remove: boolean;
|
|
52
|
+
readonly targetGeneration: number;
|
|
53
|
+
readonly deviceEpoch: number;
|
|
54
|
+
}
|
|
55
|
+
|
|
33
56
|
/**
|
|
34
57
|
* feat-20260708-composited-multi-world-rendering M1 / D-1 / D-9:
|
|
35
58
|
* worldId-entityKey composite key helper. Formula: `worldId * 2^32 + entityKey`.
|
|
@@ -53,7 +76,14 @@ export function worldEntityKey(worldId: number, entityKey: number): number {
|
|
|
53
76
|
return worldId * 4294967296 + entityKey; // 2^32 = 4294967296
|
|
54
77
|
}
|
|
55
78
|
|
|
56
|
-
/**
|
|
79
|
+
/**
|
|
80
|
+
* Cache identity for a renderer-owned instance collection.
|
|
81
|
+
*
|
|
82
|
+
* A collection can be rebound from one entity to another while retaining the
|
|
83
|
+
* same count, revision, and extraction archetype. The collection id is the
|
|
84
|
+
* owner identity in that case; the entity cache key is only the compatibility
|
|
85
|
+
* fallback for legacy snapshots that predate the collection field.
|
|
86
|
+
*/
|
|
57
87
|
export function instanceCollectionCacheKey(
|
|
58
88
|
worldId: number,
|
|
59
89
|
instance: { readonly cacheKey: number; readonly collectionId?: number },
|
|
@@ -77,6 +107,7 @@ export interface MaterialBgAssemblyCacheEntry {
|
|
|
77
107
|
readonly materialBgl: BindGroupLayout;
|
|
78
108
|
/** Buffer identity changes when the shared material capacity grows. */
|
|
79
109
|
readonly materialBuffer: Buffer;
|
|
110
|
+
readonly sceneMaterialBuffer?: Buffer;
|
|
80
111
|
readonly skylightResources: SkylightBindGroupResources;
|
|
81
112
|
readonly bindGroup: BindGroup;
|
|
82
113
|
}
|
|
@@ -204,34 +235,92 @@ export function validateGraphTargetCaptureReadback(input: {
|
|
|
204
235
|
if (!allowZero && bytes.every((value) => value === 0)) {
|
|
205
236
|
return { ok: false, code: 'capture-readback-empty' };
|
|
206
237
|
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
238
|
+
const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
239
|
+
let index = 0;
|
|
240
|
+
// Inspect both half-float exponents per word. DataView also preserves
|
|
241
|
+
// little-endian capture semantics for unaligned slices and host byte orders.
|
|
242
|
+
for (; index + 3 < bytes.byteLength; index += 4) {
|
|
243
|
+
const word = view.getUint32(index, true);
|
|
244
|
+
if ((word & 0x7c00) === 0x7c00 || (word & 0x7c000000) === 0x7c000000)
|
|
245
|
+
return { ok: false, code: 'capture-readback-non-finite' };
|
|
210
246
|
}
|
|
247
|
+
if (index + 1 < bytes.byteLength && (view.getUint16(index, true) & 0x7c00) === 0x7c00)
|
|
248
|
+
return { ok: false, code: 'capture-readback-non-finite' };
|
|
211
249
|
return { ok: true };
|
|
212
250
|
}
|
|
213
251
|
|
|
252
|
+
/**
|
|
253
|
+
* Receipt delivered after a selected pass-replay raster pass has encoded.
|
|
254
|
+
* The depth view and target handles are the frame-resolved objects used by
|
|
255
|
+
* the graph; the numeric texture identity is derived by getTextureIdentity.
|
|
256
|
+
*/
|
|
257
|
+
export interface GraphTargetPassReplayReceipt {
|
|
258
|
+
readonly passName: string;
|
|
259
|
+
readonly executionIndex: number;
|
|
260
|
+
readonly resolvedDepthStencilAttachmentView: TextureView;
|
|
261
|
+
readonly graphGeneration: number;
|
|
262
|
+
readonly targetName: string;
|
|
263
|
+
readonly targetView: TextureView;
|
|
264
|
+
readonly targetTexture: Texture;
|
|
265
|
+
readonly targetTextureIdentity: number;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
export type GraphTargetPassReplayCallback = (receipt: GraphTargetPassReplayReceipt) => void;
|
|
269
|
+
|
|
270
|
+
/** Receipt delivered once after a complete selected prefix reaches its boundary pass. */
|
|
271
|
+
export interface GraphTargetPassReplayPrefixReceipt extends GraphTargetPassReplayReceipt {
|
|
272
|
+
/** The compiled-order prefix that was replayed. */
|
|
273
|
+
readonly replayPassNames: readonly string[];
|
|
274
|
+
/** The unique depth-bearing raster pass used as the observation anchor. */
|
|
275
|
+
readonly depthAttachmentPassName: string;
|
|
276
|
+
/** The final pass in the selected prefix. */
|
|
277
|
+
readonly observeAfterPassName: string;
|
|
278
|
+
readonly depthAttachmentExecutionIndex: number;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
export type GraphTargetPassReplayPrefixCallback = (
|
|
282
|
+
receipt: GraphTargetPassReplayPrefixReceipt,
|
|
283
|
+
) => void;
|
|
284
|
+
|
|
214
285
|
/** Internal readback request consumed by the record encoder in the same submit. */
|
|
215
|
-
export
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
286
|
+
export type GraphTargetCaptureRequest =
|
|
287
|
+
| {
|
|
288
|
+
/** The default preserves the original target-copy request shape. */
|
|
289
|
+
readonly kind?: 'target-copy';
|
|
290
|
+
readonly name: string;
|
|
291
|
+
/** Optional one-shot pass selection for internal graph-target diagnostics. */
|
|
292
|
+
readonly replayPassNames?: readonly string[];
|
|
293
|
+
readonly buffer: Buffer;
|
|
294
|
+
readonly bytesPerRow: number;
|
|
295
|
+
readonly width: number;
|
|
296
|
+
readonly height: number;
|
|
297
|
+
/** Descriptor contract checked against the resolved target at copy time. */
|
|
298
|
+
readonly expected: {
|
|
299
|
+
readonly format: ResolvedColorTargetDescriptor['format'];
|
|
300
|
+
readonly width: number;
|
|
301
|
+
readonly height: number;
|
|
302
|
+
readonly usage: number;
|
|
303
|
+
/** Optional caller binding; when present it is checked at copy time. */
|
|
304
|
+
readonly identity?: {
|
|
305
|
+
readonly graphGeneration: number;
|
|
306
|
+
readonly frameId: number;
|
|
307
|
+
readonly textureIdentity: number;
|
|
308
|
+
};
|
|
309
|
+
};
|
|
310
|
+
}
|
|
311
|
+
| {
|
|
312
|
+
/** Execute selected compiled passes without requesting a target copy. */
|
|
313
|
+
readonly kind: 'pass-replay';
|
|
314
|
+
readonly replayPassNames: readonly string[];
|
|
315
|
+
/** Optional graph target used to validate the selected pass attachment. */
|
|
316
|
+
readonly targetName?: string;
|
|
317
|
+
/** Optional callback invoked after each selected pass encodes. */
|
|
318
|
+
readonly onPassEncoded?: GraphTargetPassReplayCallback;
|
|
319
|
+
/** Optional one-shot callback invoked after the selected prefix boundary encodes. */
|
|
320
|
+
readonly depthAttachmentPassName?: string;
|
|
321
|
+
readonly observeAfterPassName?: string;
|
|
322
|
+
readonly onPrefixEncoded?: GraphTargetPassReplayPrefixCallback;
|
|
232
323
|
};
|
|
233
|
-
};
|
|
234
|
-
}
|
|
235
324
|
|
|
236
325
|
/** Renderer-private readback request for the Standard fallback MRT. */
|
|
237
326
|
export interface ReflectionFallbackReadbackRequest {
|
|
@@ -251,7 +340,6 @@ export interface ReflectionFallbackReadbackRequest {
|
|
|
251
340
|
};
|
|
252
341
|
encoded: boolean;
|
|
253
342
|
}
|
|
254
|
-
|
|
255
343
|
/**
|
|
256
344
|
* Build a synthetic CameraSnapshot the record stage uses when the world
|
|
257
345
|
* carries no Camera entity. Identity-shaped projection / view inputs
|
|
@@ -319,6 +407,18 @@ export interface RenderFrameState {
|
|
|
319
407
|
iblBindingInspection?: IblBindingInspection;
|
|
320
408
|
/** Demand for the frame-local Standard fallback MRT. */
|
|
321
409
|
reflectionFallbackDemand?: boolean;
|
|
410
|
+
/** Whether the active camera explicitly requested SSR this frame. */
|
|
411
|
+
ssrRequested?: boolean | undefined;
|
|
412
|
+
/** Current renderer-owned SSR spatial admission projection. */
|
|
413
|
+
ssrSpatialAdmission?: SsrSpatialAdmission | undefined;
|
|
414
|
+
/** Persistent SSR history owner; candidate is promoted only after submit. */
|
|
415
|
+
ssrHistoryOwner?: SsrHistoryOwner | undefined;
|
|
416
|
+
ssrHistoryCandidate?: SsrHistoryCandidate | undefined;
|
|
417
|
+
/** Reused CPU parameter payload for the SSR temporal resolve. */
|
|
418
|
+
ssrTemporalParamsPayload?: Uint8Array | undefined;
|
|
419
|
+
/** Last camera identity used by the SSR history reset seam. */
|
|
420
|
+
ssrLastCameraEntity?: number | undefined;
|
|
421
|
+
ssrLastHistoryVersion?: number | undefined;
|
|
322
422
|
/** Monotonic compiled-graph identity used by diagnostic readbacks. */
|
|
323
423
|
graphGeneration: number;
|
|
324
424
|
/** Number of successfully submitted TAA frames; failed attempts do not advance it. */
|
|
@@ -390,6 +490,22 @@ export interface RenderFrameState {
|
|
|
390
490
|
lastSuccessfulCameraAntialias: CameraSnapshot['antialias'] | undefined;
|
|
391
491
|
/** Staged TAA GPU state is promoted only after queue.submit succeeds. */
|
|
392
492
|
temporalGpuState: TemporalGpuState | undefined;
|
|
493
|
+
/** Device-scoped auto-exposure buffers imported by the Standard graph. */
|
|
494
|
+
autoExposureGpuResources?: AutoExposureGpuResources | undefined;
|
|
495
|
+
/** Candidate auto-exposure buffers; promoted only after queue.submit succeeds. */
|
|
496
|
+
pendingAutoExposureGpuResources?: AutoExposureGpuResources | undefined;
|
|
497
|
+
/** Accepted auto-exposure inspection state; promoted only after submit. */
|
|
498
|
+
autoExposureState?: AutoExposureState | undefined;
|
|
499
|
+
/** Candidate auto-exposure inspection state; cleared on any failed frame. */
|
|
500
|
+
pendingAutoExposureState?: PendingAutoExposureState | undefined;
|
|
501
|
+
/** Prepared ordinary TextureAsset LUT candidate for the Standard graph. */
|
|
502
|
+
standardLutGpuResources?: StandardLutGpuResources | undefined;
|
|
503
|
+
/** Candidate LUT resources; promoted only after queue.submit succeeds. */
|
|
504
|
+
pendingStandardLutGpuResources?: StandardLutGpuResources | undefined;
|
|
505
|
+
/** Accepted LUT inspection state; promoted only after submit. */
|
|
506
|
+
standardLutState: StandardLutState;
|
|
507
|
+
/** Candidate LUT inspection state; cleared on any failed frame. */
|
|
508
|
+
pendingStandardLutState?: PendingStandardLutState | undefined;
|
|
393
509
|
/** Last successful TAA GPU state; candidate replacement stays staged until submit. */
|
|
394
510
|
activeTemporalGpuState: TemporalGpuState | undefined;
|
|
395
511
|
/** Submitted temporal generations retained until their queue fence resolves. */
|
|
@@ -399,12 +515,14 @@ export interface RenderFrameState {
|
|
|
399
515
|
pendingTemporalCommit: TemporalCommitOutcome;
|
|
400
516
|
/** Staged environment generation is promoted only after queue.submit succeeds. */
|
|
401
517
|
environmentGeneration: EnvironmentGeneration | undefined;
|
|
518
|
+
environmentFrame?: import('../environment/frame').SelectedEnvironmentFrame | undefined;
|
|
519
|
+
pendingAtmospherePublish?: (() => void) | undefined;
|
|
402
520
|
readonly environmentLifecycle: EnvironmentLifecycle | undefined;
|
|
403
521
|
currentDirectionalShadowView: TextureView | null;
|
|
404
522
|
currentSpotShadowView: TextureView | null;
|
|
405
523
|
readonly instanceBuffers: Map<number, InstanceBufferCacheEntry>;
|
|
406
524
|
/** Renderer-owned collection owner used for record-stage residency facts. */
|
|
407
|
-
readonly
|
|
525
|
+
readonly instanceCollections?: InstanceCollectionStore;
|
|
408
526
|
/** Stable buffers for renderer-owned collections split by device cap. */
|
|
409
527
|
readonly instanceBufferChunks?: Map<string, InstanceBufferCacheEntry>;
|
|
410
528
|
/** Per-object ProbeBlendRecord buffers; upload is one atomic 160B write. */
|
|
@@ -548,14 +666,8 @@ export interface RenderFrameState {
|
|
|
548
666
|
readonly materialBgShared: Map<string, WeakMap<object, unknown>>;
|
|
549
667
|
/** Cross-frame fast path for fully-resident, immutable material snapshots. */
|
|
550
668
|
readonly materialBgAssemblyCache: Map<string, MaterialBgAssemblyCacheEntry>;
|
|
551
|
-
/**
|
|
552
|
-
|
|
553
|
-
* material bind group cache (D-6). Single flat Map<variant, BindGroup>
|
|
554
|
-
* for the one true singleton in production: shadow-material-singleton.
|
|
555
|
-
* shadow-instances-singleton is a test fixture fiction (research F3);
|
|
556
|
-
* no second singleton field is needed.
|
|
557
|
-
*/
|
|
558
|
-
readonly singletonMaterialCache: Map<string, BindGroup>;
|
|
669
|
+
/** Opaque shadow fallback bindings follow physical resources across scene replacement. */
|
|
670
|
+
shadowMaterialBindGroups: WeakMap<object, unknown>;
|
|
559
671
|
/**
|
|
560
672
|
* Post-process bind group cache: nested WeakMap chain root shared by the
|
|
561
673
|
* built-in bloom (bright / blur-H / blur-V / composite), FXAA, and HDRP SSAO
|
|
@@ -9,6 +9,15 @@ export function graphExecutionPhase(passName: string): RenderGraphExecutionPhase
|
|
|
9
9
|
if (passName.startsWith('shadowCascade')) return 'record/graph-execute/shadow';
|
|
10
10
|
if (passName.startsWith('point-shadow')) return 'record/graph-execute/point-shadow';
|
|
11
11
|
if (passName.startsWith('spot-shadow')) return 'record/graph-execute/spot-shadow';
|
|
12
|
+
if (passName === 'ssr-hiz-seed' || passName.startsWith('ssr-hiz-reduce-')) {
|
|
13
|
+
return 'record/graph-execute/ssr-hiz';
|
|
14
|
+
}
|
|
15
|
+
if (passName === 'ssr-trace') return 'record/graph-execute/ssr-trace';
|
|
16
|
+
if (passName === 'ssr-temporal') return 'record/graph-execute/ssr-temporal';
|
|
17
|
+
if (passName.startsWith('ssr-reflection-mip-')) {
|
|
18
|
+
return 'record/graph-execute/ssr-reflection-mip';
|
|
19
|
+
}
|
|
20
|
+
if (passName === 'ssr-compose') return 'record/graph-execute/ssr-compose';
|
|
12
21
|
switch (passName) {
|
|
13
22
|
case 'cluster-binner-upload':
|
|
14
23
|
case 'cluster-membership-producer':
|