@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":"render-graph-contribution.d.ts","sourceRoot":"","sources":["../../src/features/render-graph-contribution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"render-graph-contribution.d.ts","sourceRoot":"","sources":["../../src/features/render-graph-contribution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAEX,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,KAAK,WAAW,EAAiC,MAAM,kBAAkB,CAAC;AACnF,OAAO,KAAK,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,MAAM,QAAQ,CAAC;AAEzF,OAAO,EACL,KAAK,kCAAkC,EACvC,KAAK,gCAAgC,EACrC,KAAK,6BAA6B,EAElC,KAAK,wBAAwB,EAE9B,MAAM,uBAAuB,CAAC;AAG/B,wBAAgB,kCAAkC;;;EAKjD;AAkBD,wBAAgB,2BAA2B,CAAC,QAAQ,SAAS,gBAAgB,EAC3E,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EACrC,UAAU,EAAE,SAAS,0BAA0B,EAAE,EACjD,KAAK,EAAE,UAAU,CAAC,OAAO,kCAAkC,CAAC,GAC3D,MAAM,CAAC,wBAAwB,CAAC,QAAQ,CAAC,GAAG,SAAS,EAAE,gBAAgB,GAAG,WAAW,CAAC,CAkFxF;AAED,+EAA+E;AAC/E,wBAAgB,yBAAyB,CAAC,QAAQ,SAAS,gBAAgB,EACzE,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EACrC,UAAU,EAAE,SAAS,0BAA0B,EAAE,EACjD,OAAO,EAAE;IACP,QAAQ,CAAC,aAAa,EAAE,gCAAgC,CAAC;IACzD,QAAQ,CAAC,eAAe,CAAC,EAAE,kCAAkC,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IACpF,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,uBAAuB,CAAC,EAAE,6BAA6B,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IACvF,QAAQ,CAAC,uBAAuB,CAAC,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,kCAAkC,CAAC,CAAC;CACxE,GACA,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,WAAW,CAAC,CAmE9C"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type { GraphResourceResolver, GraphTexture, GraphTextureView, RenderGraphBuilder, RenderGraphError, RenderGraphFrame } from '@forgeax/engine-render-graph';
|
|
2
|
-
import type { BindGroup } from '@forgeax/engine-rhi';
|
|
1
|
+
import type { GraphAccess, GraphResourceResolver, GraphTexture, GraphTextureView, RenderGraphBuilder, RenderGraphError, RenderGraphFrame } from '@forgeax/engine-render-graph';
|
|
2
|
+
import type { BindGroup, RenderPipeline, RhiRenderPassEncoder } from '@forgeax/engine-rhi';
|
|
3
3
|
import { type Result } from '@forgeax/engine-types';
|
|
4
4
|
import { type RenderError } from '../errors/render';
|
|
5
5
|
import type { PreparedGraphicsResolvedResource, PreparedGraphicsResolvedSnapshot } from '../prepare/prepared-graphics-resolver';
|
|
6
6
|
import type { SceneDataTarget } from '../temporal/scene-data';
|
|
7
|
+
import type { RenderFeatureResolvedGpuBuffer } from './prepared-gpu-work';
|
|
7
8
|
import type { RenderFeatureGraphicsPassDescriptor, RenderFeaturePreparedGraphicsState } from './prepared-graphics';
|
|
8
9
|
import { type RenderFeatureGraphBufferState } from './render-graph-resources';
|
|
9
10
|
import type { RenderFeatureTargetHandle } from './targets';
|
|
@@ -25,13 +26,28 @@ export type RenderFeatureGraphBindingsResolver<FrameCtx extends RenderGraphFrame
|
|
|
25
26
|
readonly resources: GraphResourceResolver;
|
|
26
27
|
readonly resolveTarget: RenderFeatureGraphTargetResolver;
|
|
27
28
|
}) => RenderFeatureGraphBindingsResolution | undefined;
|
|
29
|
+
export type RenderFeatureLightingResolver<FrameCtx extends RenderGraphFrame> = (frame: FrameCtx, pipeline: RenderPipeline) => BindGroup | undefined;
|
|
30
|
+
/** Prepared draws embedded by the owning pipeline into its light-view passes. */
|
|
31
|
+
export interface RenderFeatureShadowDraws<FrameCtx extends RenderGraphFrame> {
|
|
32
|
+
readonly accesses: readonly GraphAccess[];
|
|
33
|
+
encode(pass: RhiRenderPassEncoder, frame: FrameCtx, resources: GraphResourceResolver, view: BindGroup): void;
|
|
34
|
+
}
|
|
35
|
+
/** Physical draw inputs shared by readiness ordering and graph imports. */
|
|
36
|
+
export declare function resolveRenderFeatureDrawBuffers(featureIdentity: string, order: number, descriptor: RenderFeatureGraphicsPassDescriptor, snapshot: PreparedGraphicsResolvedSnapshot): Result<{
|
|
37
|
+
vertex: Map<object, RenderFeatureResolvedGpuBuffer>;
|
|
38
|
+
index: Map<object, RenderFeatureResolvedGpuBuffer>;
|
|
39
|
+
indirect: Map<object, RenderFeatureResolvedGpuBuffer>;
|
|
40
|
+
}, RenderError>;
|
|
28
41
|
export declare class RenderFeatureRasterGraphProjection<FrameCtx extends RenderGraphFrame> {
|
|
29
42
|
private readonly builder;
|
|
30
43
|
private readonly resolveTarget;
|
|
31
44
|
private readonly resolveBindings?;
|
|
32
45
|
private readonly reportError?;
|
|
46
|
+
private readonly resolveStandardLighting?;
|
|
47
|
+
private readonly standardSurfaceAccesses;
|
|
33
48
|
private readonly buffers;
|
|
34
|
-
constructor(builder: RenderGraphBuilder<FrameCtx>, resolveTarget: RenderFeatureGraphTargetResolver, resolveBindings?: RenderFeatureGraphBindingsResolver<FrameCtx> | undefined, buffers?: RenderFeatureGraphBufferState, reportError?: ((error: RenderError) => void) | undefined);
|
|
49
|
+
constructor(builder: RenderGraphBuilder<FrameCtx>, resolveTarget: RenderFeatureGraphTargetResolver, resolveBindings?: RenderFeatureGraphBindingsResolver<FrameCtx> | undefined, buffers?: RenderFeatureGraphBufferState, reportError?: ((error: RenderError) => void) | undefined, resolveStandardLighting?: RenderFeatureLightingResolver<FrameCtx> | undefined, standardSurfaceAccesses?: readonly GraphAccess[]);
|
|
50
|
+
prepareShadowDraws(name: string, featureIdentity: string, order: number, descriptor: RenderFeatureGraphicsPassDescriptor, state: RenderFeaturePreparedGraphicsState, snapshot: PreparedGraphicsResolvedSnapshot): Result<RenderFeatureShadowDraws<FrameCtx>, RenderGraphError | RenderError>;
|
|
35
51
|
addPass(name: string, featureIdentity: string, order: number, descriptor: RenderFeatureGraphicsPassDescriptor, state: RenderFeaturePreparedGraphicsState, snapshot: PreparedGraphicsResolvedSnapshot): Result<void, RenderGraphError | RenderError>;
|
|
36
52
|
private importDrawBuffers;
|
|
37
53
|
private encode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-graph-raster.d.ts","sourceRoot":"","sources":["../../src/features/render-graph-raster.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"render-graph-raster.d.ts","sourceRoot":"","sources":["../../src/features/render-graph-raster.ts"],"names":[],"mappings":"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"}
|
package/dist/features/types.d.ts
CHANGED
|
@@ -75,6 +75,17 @@ export interface RenderFeature<FrameData> {
|
|
|
75
75
|
}[];
|
|
76
76
|
extract(context: RenderFeatureExtractContext): Result<FrameData, RenderError>;
|
|
77
77
|
plan(data: FrameData, context: RenderFeaturePlanContext): Result<RenderFeaturePlan, RenderError>;
|
|
78
|
+
/**
|
|
79
|
+
* Consume frame-owned producer state only after the compiled graph reached
|
|
80
|
+
* queue submission. The host invokes this callback at most once for the
|
|
81
|
+
* extracted frame and never during declarative planning.
|
|
82
|
+
*/
|
|
83
|
+
onFrameSubmitted?(data: FrameData): void;
|
|
84
|
+
/**
|
|
85
|
+
* Discard frame-owned producer state when graph admission or submission is
|
|
86
|
+
* rejected. This is the symmetric recovery path for onFrameSubmitted.
|
|
87
|
+
*/
|
|
88
|
+
onFrameAborted?(data: FrameData): void;
|
|
78
89
|
}
|
|
79
90
|
export interface RenderFeatureRecoverInput {
|
|
80
91
|
readonly caps: Readonly<RhiCaps>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/features/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/features/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,8 @@ export type PostProcessReadSampleType = 'depth';
|
|
|
32
32
|
export interface PostProcessShaderEntry {
|
|
33
33
|
/** Composed WGSL source for the fragment stage (post-naga_oil). */
|
|
34
34
|
readonly source: string;
|
|
35
|
+
/** Fragment entry point selected by the typed graph; defaults to `fs_main`. */
|
|
36
|
+
readonly fragmentEntryPoint?: string | undefined;
|
|
35
37
|
/**
|
|
36
38
|
* Params UBO schema. When undefined, the generic shader has no uniform buffer
|
|
37
39
|
* and the BGL degrades to 2 entries (texture@0 + sampler@1). When present, the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fullscreen-post-process-pass.d.ts","sourceRoot":"","sources":["../src/fullscreen-post-process-pass.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,MAAM,EACN,SAAS,EACT,QAAQ,EACR,oBAAoB,EACpB,OAAO,EACP,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAuB7B;;;;;;;;;GASG;AACH,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC;AAIhD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,sBAAsB;IACrC,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAC;IACtD;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,oBAAoB,CAAC,EAAE,GAAG,SAAS,CAAC;CACzE;AAaD,+EAA+E;AAC/E,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvF;AAED,8EAA8E;AAC9E,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAErF;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"fullscreen-post-process-pass.d.ts","sourceRoot":"","sources":["../src/fullscreen-post-process-pass.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,8 @@ import type { RenderSceneApplyResult, RenderSceneSlot } from '../scene/render-sc
|
|
|
5
5
|
import { type GpuLodRow } from '../scene/visibility/gpu-lod';
|
|
6
6
|
import type { PreparedGpuDrivenDraw } from './prepared-draw';
|
|
7
7
|
export type { BatchTopologyInspection } from '../inspection-types';
|
|
8
|
+
/** High bit in the compact candidate material lane marks a skin palette row. */
|
|
9
|
+
export declare const GPU_DRIVEN_SKIN_FLAG = 2147483648;
|
|
8
10
|
export interface GpuDrivenBatchKey {
|
|
9
11
|
readonly assetHandle: number;
|
|
10
12
|
readonly drawKind: 'indexed' | 'non-indexed';
|
|
@@ -27,6 +29,7 @@ export interface GpuDrivenCandidate {
|
|
|
27
29
|
readonly generation: number;
|
|
28
30
|
readonly drawItemIndex: number;
|
|
29
31
|
readonly instanceOrdinal: number;
|
|
32
|
+
readonly prepared?: PreparedGpuDrivenDraw;
|
|
30
33
|
/** Absolute coverage rows uploaded to the GPU selector; root is implicit. */
|
|
31
34
|
readonly lodCoverages?: readonly number[];
|
|
32
35
|
readonly lodHysteresis?: number;
|
|
@@ -36,7 +39,6 @@ export interface GpuDrivenCandidate {
|
|
|
36
39
|
readonly count: number;
|
|
37
40
|
readonly baseVertex: number;
|
|
38
41
|
}[];
|
|
39
|
-
readonly prepared?: PreparedGpuDrivenDraw;
|
|
40
42
|
}
|
|
41
43
|
export interface GpuDrivenBatch {
|
|
42
44
|
readonly batchId: number;
|
|
@@ -49,6 +51,8 @@ export interface GpuDrivenBatch {
|
|
|
49
51
|
}
|
|
50
52
|
export interface SubmissionPlan {
|
|
51
53
|
readonly revision: number;
|
|
54
|
+
/** Payload-only updates keep topology revision stable but still invalidate the plan snapshot. */
|
|
55
|
+
readonly payloadRevision: number;
|
|
52
56
|
readonly batches: readonly GpuDrivenBatch[];
|
|
53
57
|
readonly candidateCount: number;
|
|
54
58
|
readonly visibleCapacity: number;
|
|
@@ -67,6 +71,28 @@ export interface GpuLodCompactCandidate {
|
|
|
67
71
|
}
|
|
68
72
|
/** Selects one level per stable topology candidate without mutating membership. */
|
|
69
73
|
export declare function compactGpuLodCandidates(inputs: readonly GpuLodCandidateInput[]): readonly GpuLodCompactCandidate[];
|
|
74
|
+
export interface SubmissionCandidateMembershipEntry {
|
|
75
|
+
readonly batchId: number;
|
|
76
|
+
readonly candidate: GpuDrivenCandidate;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Immutable reverse membership for one submission topology.
|
|
80
|
+
*
|
|
81
|
+
* Shadow views query the same candidate domain as the main view. Keeping the
|
|
82
|
+
* primitive-to-batch join beside the immutable plan makes that lookup once per
|
|
83
|
+
* topology instead of rescanning every batch for every view.
|
|
84
|
+
*/
|
|
85
|
+
export interface SubmissionCandidateMembership {
|
|
86
|
+
readonly source: SubmissionPlan;
|
|
87
|
+
readonly byPrimitiveIndex: ReadonlyMap<number, readonly SubmissionCandidateMembershipEntry[]>;
|
|
88
|
+
}
|
|
89
|
+
export declare function buildSubmissionCandidateMembership(source: SubmissionPlan): SubmissionCandidateMembership;
|
|
90
|
+
/**
|
|
91
|
+
* Re-project one source topology for a view without changing batch identity.
|
|
92
|
+
* The returned plan only changes candidate windows and keeps batch ids,
|
|
93
|
+
* generations, draw ranges, and indirect offsets from the source plan.
|
|
94
|
+
*/
|
|
95
|
+
export declare function buildBatchAlignedSubmission(source: SubmissionPlan, candidatesByBatch: ReadonlyMap<number, readonly GpuDrivenCandidate[]>): SubmissionPlan;
|
|
70
96
|
export declare function projectedHeightForCandidate(slot: RenderSceneSlot, camera: CameraSnapshot): number;
|
|
71
97
|
/** Stable compatibility grouping; per-view visibility never mutates this owner. */
|
|
72
98
|
export declare class BatchTopology {
|
|
@@ -76,8 +102,14 @@ export declare class BatchTopology {
|
|
|
76
102
|
private readonly generationByBatchId;
|
|
77
103
|
private readonly freeBatchIds;
|
|
78
104
|
private revision;
|
|
105
|
+
private payloadRevision;
|
|
79
106
|
private rebuilds;
|
|
80
107
|
private patches;
|
|
108
|
+
private payloadPatches;
|
|
109
|
+
private membershipChecks;
|
|
110
|
+
private membershipAllocations;
|
|
111
|
+
private candidateAdds;
|
|
112
|
+
private candidateRemoves;
|
|
81
113
|
private cachedPlan;
|
|
82
114
|
rebuild(slots: readonly RenderSceneSlot[]): void;
|
|
83
115
|
apply(delta: RenderSceneApplyResult): boolean;
|
|
@@ -85,5 +117,6 @@ export declare class BatchTopology {
|
|
|
85
117
|
inspect(): BatchTopologyInspection;
|
|
86
118
|
private add;
|
|
87
119
|
private remove;
|
|
120
|
+
private candidateFromEligible;
|
|
88
121
|
}
|
|
89
122
|
//# sourceMappingURL=batch-topology.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-topology.d.ts","sourceRoot":"","sources":["../../src/gpu-driven/batch-topology.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"batch-topology.d.ts","sourceRoot":"","sources":["../../src/gpu-driven/batch-topology.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC3F,OAAO,EAAE,KAAK,SAAS,EAAgB,MAAM,6BAA6B,CAAC;AAE3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,YAAY,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAEnE,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAE/C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,aAAa,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,sFAAsF;IACtF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,qEAAqE;IACrE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,gEAAgE;IAChE,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;CAC9C;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAC1C,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS;QAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC7B,EAAE,CAAC;CACL;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iGAAiG;IACjG,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;IAC5C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,mFAAmF;AACnF,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,oBAAoB,EAAE,GACtC,SAAS,sBAAsB,EAAE,CAOnC;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;CACxC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,kCAAkC,EAAE,CAAC,CAAC;CAC/F;AAOD,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,cAAc,GACrB,6BAA6B,CAsB/B;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,cAAc,EACtB,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC,GACpE,cAAc,CAwBhB;AAyQD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,GAAG,MAAM,CA8BjG;AAED,mFAAmF;AACnF,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA2C;IACjF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAqB;IAC1D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAgB;IACpD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,UAAU,CAA6B;IAE/C,OAAO,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,GAAG,IAAI;IAahD,KAAK,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO;IAwH7C,IAAI,IAAI,cAAc;IAkCtB,OAAO,IAAI,uBAAuB;IAkBlC,OAAO,CAAC,GAAG;IAuCX,OAAO,CAAC,MAAM;IAqCd,OAAO,CAAC,qBAAqB;CAiB9B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { MaterialShaderArtifact } from '@forgeax/engine-shader';
|
|
2
|
+
import type { RenderSystemInternals } from '../record/render-context';
|
|
3
|
+
import type { DispatchEntry, RenderableSnapshot } from '../render-system-extract';
|
|
4
|
+
type ArtifactRow = {
|
|
5
|
+
readonly source: RenderableSnapshot;
|
|
6
|
+
readonly renderableIndex: number;
|
|
7
|
+
};
|
|
8
|
+
/** Resolve the same producer programs for normal frames and replacement devices. */
|
|
9
|
+
export declare function collectGpuDrivenMaterialArtifacts({ rows, shadowRows, dispatch, shadowDispatch, resolve, clustered, reflectionFallback, }: {
|
|
10
|
+
readonly rows: readonly ArtifactRow[];
|
|
11
|
+
readonly shadowRows: readonly ArtifactRow[];
|
|
12
|
+
readonly dispatch: readonly DispatchEntry[];
|
|
13
|
+
readonly shadowDispatch: readonly DispatchEntry[];
|
|
14
|
+
readonly resolve: RenderSystemInternals['getMaterialShaderArtifact'];
|
|
15
|
+
readonly clustered: boolean;
|
|
16
|
+
readonly reflectionFallback: boolean;
|
|
17
|
+
}): {
|
|
18
|
+
materialArtifacts: Map<string, MaterialShaderArtifact>;
|
|
19
|
+
shadowMaterialArtifacts: Map<string, MaterialShaderArtifact>;
|
|
20
|
+
firstArtifact: MaterialShaderArtifact | undefined;
|
|
21
|
+
firstSkinArtifact: MaterialShaderArtifact | undefined;
|
|
22
|
+
};
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=material-artifacts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"material-artifacts.d.ts","sourceRoot":"","sources":["../../src/gpu-driven/material-artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAElF,KAAK,WAAW,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7F,oFAAoF;AACpF,wBAAgB,iCAAiC,CAAC,EAChD,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,cAAc,EACd,OAAO,EACP,SAAS,EACT,kBAAkB,GACnB,EAAE;IACD,QAAQ,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C,QAAQ,CAAC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC,2BAA2B,CAAC,CAAC;IACrE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CACtC;;;;;EA0JA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ValidatedRenderable } from '../record/frame-snapshot';
|
|
2
|
+
import type { ReflectionProbeRecordState } from '../record/render-context';
|
|
3
|
+
import type { DispatchEntry, RenderableSnapshot } from '../render-system-extract';
|
|
4
|
+
export declare function materialBindingKey(source: Pick<RenderableSnapshot, 'worldId' | 'entityKey'>, handle: number): string;
|
|
5
|
+
/** Per-object bindings and pass membership are part of an indirect batch's resource identity. */
|
|
6
|
+
export declare function projectMaterialBindingClasses(rows: readonly ValidatedRenderable[], dispatch: readonly DispatchEntry[], probes?: ReflectionProbeRecordState): ReadonlyMap<string, string>;
|
|
7
|
+
//# sourceMappingURL=material-bindings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"material-bindings.d.ts","sourceRoot":"","sources":["../../src/gpu-driven/material-bindings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAElF,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,WAAW,CAAC,EACzD,MAAM,EAAE,MAAM,GACb,MAAM,CAER;AAED,iGAAiG;AACjG,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,SAAS,mBAAmB,EAAE,EACpC,QAAQ,EAAE,SAAS,aAAa,EAAE,EAClC,MAAM,CAAC,EAAE,0BAA0B,GAClC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAuB7B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ShaderModule } from '@forgeax/engine-rhi';
|
|
2
|
+
import type { MaterialShaderArtifact } from '@forgeax/engine-shader';
|
|
3
|
+
/** One producer-selected WGSL module and its matching vertex/material receipt. */
|
|
4
|
+
export interface GpuDrivenPbrProgram {
|
|
5
|
+
readonly module: ShaderModule;
|
|
6
|
+
readonly artifact: MaterialShaderArtifact;
|
|
7
|
+
}
|
|
8
|
+
export declare function standardPbrProgramKey(materialShaderId: string, vertexColorAvailable?: boolean): string | undefined;
|
|
9
|
+
export declare function resolveStandardPbrProgram(programs: ReadonlyMap<string, GpuDrivenPbrProgram> | undefined, materialShaderId: string, vertexColorAvailable?: boolean): GpuDrivenPbrProgram | undefined;
|
|
10
|
+
//# sourceMappingURL=pbr-program.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbr-program.d.ts","sourceRoot":"","sources":["../../src/gpu-driven/pbr-program.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,kFAAkF;AAClF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;CAC3C;AAED,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,MAAM,EACxB,oBAAoB,UAAQ,GAC3B,MAAM,GAAG,SAAS,CASpB;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,SAAS,EAC9D,gBAAgB,EAAE,MAAM,EACxB,oBAAoB,UAAQ,GAC3B,mBAAmB,GAAG,SAAS,CAGjC"}
|
|
@@ -22,6 +22,8 @@ export interface PreparedGpuDrivenDraw {
|
|
|
22
22
|
readonly deformation: 'rigid' | 'skin';
|
|
23
23
|
};
|
|
24
24
|
readonly receiptGeneration: number;
|
|
25
|
+
/** Content/layout identity that separates ABI variants (for example COLOR_0). */
|
|
26
|
+
readonly receiptIdentity?: string;
|
|
25
27
|
readonly directEntry: string;
|
|
26
28
|
readonly sceneIndexEntry: string;
|
|
27
29
|
readonly materialRow: MaterialShaderArtifactReceipt['materialRow'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepared-draw.d.ts","sourceRoot":"","sources":["../../src/gpu-driven/prepared-draw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EACL,yBAAyB,EAE1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC5D,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,CAAC;KACxC,CAAC;IACF,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,6BAA6B,CAAC,aAAa,CAAC,CAAC;IACnE,QAAQ,CAAC,aAAa,EAAE,6BAA6B,CAAC,eAAe,CAAC,CAAC;IACvE,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IACzD,QAAQ,CAAC,YAAY,EAAE,6BAA6B,CAAC,cAAc,CAAC,CAAC;IACrE,QAAQ,CAAC,SAAS,EAAE,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAC/D,QAAQ,CAAC,kBAAkB,EAAE,6BAA6B,CAAC,oBAAoB,CAAC,CAAC;IACjF,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,oEAAoE;AACpE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;CACtC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,oBAAoB,CAAC;CAC7C;
|
|
1
|
+
{"version":3,"file":"prepared-draw.d.ts","sourceRoot":"","sources":["../../src/gpu-driven/prepared-draw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EACL,yBAAyB,EAE1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC5D,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,CAAC;KACxC,CAAC;IACF,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,iFAAiF;IACjF,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,6BAA6B,CAAC,aAAa,CAAC,CAAC;IACnE,QAAQ,CAAC,aAAa,EAAE,6BAA6B,CAAC,eAAe,CAAC,CAAC;IACvE,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IACzD,QAAQ,CAAC,YAAY,EAAE,6BAA6B,CAAC,cAAc,CAAC,CAAC;IACrE,QAAQ,CAAC,SAAS,EAAE,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAC/D,QAAQ,CAAC,kBAAkB,EAAE,6BAA6B,CAAC,oBAAoB,CAAC,CAAC;IACjF,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,oEAAoE;AACpE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;CACtC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAgED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,yBAAyB,GAE9B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAA;CAAE,GAC5D;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAA;CAAE,CA2GpE"}
|
|
@@ -1,21 +1,30 @@
|
|
|
1
1
|
import type { RenderGraphBuilder, RenderGraphError } from '@forgeax/engine-render-graph';
|
|
2
|
-
import type { BindGroup, BindGroupLayout, Result, RhiDevice,
|
|
2
|
+
import type { BindGroup, BindGroupLayout, Result, RhiDevice, TextureFormat } from '@forgeax/engine-rhi';
|
|
3
3
|
import { RhiError } from '@forgeax/engine-rhi';
|
|
4
4
|
import type { MaterialShaderArtifact } from '@forgeax/engine-shader';
|
|
5
|
+
import type { MaterialRenderState } from '@forgeax/engine-types';
|
|
5
6
|
import type { DeviceScope, LifecycleResourceSpec } from '../device/device-scope';
|
|
6
7
|
import type { MeshGpuHandles } from '../device/gpu-residency';
|
|
7
|
-
import
|
|
8
|
+
import { GpuDrivenPreparationError } from '../errors/gpu-driven';
|
|
9
|
+
import type { GpuDrivenProductionInspection, GpuDrivenStructureMetrics } from '../inspection-types';
|
|
8
10
|
import type { PipelineBuilderShaderModuleFactory } from '../pipeline-builder';
|
|
9
|
-
import type {
|
|
11
|
+
import type { ValidatedRenderable } from '../record/frame-snapshot';
|
|
12
|
+
import { type PipelineState, type RenderSystemInternals } from '../record/render-context';
|
|
10
13
|
import type { CameraSnapshot } from '../render-contract';
|
|
11
|
-
import type { RenderPipelineFrame, RenderPipelineGpuDrivenProjection } from '../render-pipeline';
|
|
12
|
-
import type { RenderableSnapshot } from '../render-system-extract';
|
|
14
|
+
import type { GpuDrivenStandardPbrFrameResources, RenderPipelineFrame, RenderPipelineGpuDrivenProjection } from '../render-pipeline';
|
|
15
|
+
import type { DispatchEntry, MaterialSnapshot, RenderableSnapshot, ShadowCasterMembership } from '../render-system-extract';
|
|
13
16
|
import type { PersistentGpuDrivenState } from '../scene/render-scene';
|
|
14
17
|
import type { OcclusionFrameProjection } from '../scene/visibility/occlusion-runtime';
|
|
18
|
+
import { type GpuDrivenBatch, type SubmissionPlan } from './batch-topology';
|
|
19
|
+
import { type ShadowViewIdentity, type ShadowViewProjection, ShadowViewStatePool, type ShadowViewUpdateInput } from './shadow-views';
|
|
15
20
|
import { type GpuDrivenLodSelectionInspection } from './view-gpu';
|
|
16
21
|
export interface StandardPbrSceneCandidate {
|
|
17
22
|
readonly primitiveIndex: number;
|
|
18
23
|
readonly world: Float32Array;
|
|
24
|
+
/** Optional per-instance local transform selected by BatchTopology. */
|
|
25
|
+
readonly instanceTransform?: Float32Array;
|
|
26
|
+
/** Optional GPU Scene material row carried by the shadow projection. */
|
|
27
|
+
readonly materialIndex?: number;
|
|
19
28
|
}
|
|
20
29
|
export interface StandardPbrSceneProjection {
|
|
21
30
|
readonly entryPoint: string;
|
|
@@ -24,6 +33,23 @@ export interface StandardPbrSceneProjection {
|
|
|
24
33
|
/** Packed Mesh rows: mat4 + padded mat3 + previous mat4 + temporal vec4. */
|
|
25
34
|
readonly rows: Float32Array;
|
|
26
35
|
}
|
|
36
|
+
export interface GpuDrivenShadowBatchProjection {
|
|
37
|
+
readonly mesh: MeshGpuHandles;
|
|
38
|
+
readonly meshBindGroup: BindGroup;
|
|
39
|
+
readonly visibleBindGroup: BindGroup;
|
|
40
|
+
readonly deformation: 'rigid' | 'skin';
|
|
41
|
+
/** Actual producer-selected shadow-pass artifact for this batch. */
|
|
42
|
+
readonly shadowArtifact: MaterialShaderArtifact;
|
|
43
|
+
/** Pass entry points selected by the authored ShadowCaster dispatch. */
|
|
44
|
+
readonly shadowVertexEntry?: string;
|
|
45
|
+
readonly shadowFragmentEntry?: string;
|
|
46
|
+
/** Material snapshot used to assemble the receipt-owned alpha-mask BG. */
|
|
47
|
+
readonly material: MaterialSnapshot;
|
|
48
|
+
/** Composite entity identity used only for video-resource routing. */
|
|
49
|
+
readonly materialEntityKey: number;
|
|
50
|
+
/** Geometry-owned COLOR_0 fact shared by main and shadow ABI variants. */
|
|
51
|
+
readonly vertexColorAvailable: boolean;
|
|
52
|
+
}
|
|
27
53
|
/**
|
|
28
54
|
* Build the producer-owned Standard PBR scene-index projection. The receipt is
|
|
29
55
|
* the only source of the vertex entry and layout identity; callers cannot
|
|
@@ -69,7 +95,29 @@ export declare function adaptStandardPbrFrameResources(input: {
|
|
|
69
95
|
readonly code: 'missing-material-receipt' | 'invalid-material-receipt';
|
|
70
96
|
};
|
|
71
97
|
};
|
|
72
|
-
|
|
98
|
+
interface PreparedBatch {
|
|
99
|
+
readonly batch: GpuDrivenBatch;
|
|
100
|
+
readonly mesh: MeshGpuHandles;
|
|
101
|
+
/** Exact producer artifact selected by every draw in this homogeneous batch. */
|
|
102
|
+
readonly artifact: MaterialShaderArtifact;
|
|
103
|
+
readonly renderState: MaterialRenderState | undefined;
|
|
104
|
+
/** Stable World attachment key used to join same-submit GPU counters. */
|
|
105
|
+
readonly worldKey: number;
|
|
106
|
+
/** Stable representative slot identity for this homogeneous batch. */
|
|
107
|
+
readonly primitiveSlot: number;
|
|
108
|
+
readonly slotGeneration: number;
|
|
109
|
+
}
|
|
110
|
+
declare function filteredPlan(source: SubmissionPlan, slots: PersistentGpuDrivenState['slots'], meshBySlot: ReadonlyMap<number, MeshGpuHandles>, shadowCasterDrawKeys?: ReadonlySet<string>, skinArtifact?: MaterialShaderArtifact, shadowCasterMembership?: readonly ShadowCasterMembership[], camera?: CameraSnapshot, activeEntityKeys?: ReadonlySet<number>, worldKeys?: readonly number[], materialArtifact?: MaterialShaderArtifact, materialArtifacts?: ReadonlyMap<string, MaterialShaderArtifact>, materialBindingClasses?: ReadonlyMap<string, string>): {
|
|
111
|
+
readonly plan: SubmissionPlan;
|
|
112
|
+
readonly batches: readonly PreparedBatch[];
|
|
113
|
+
/** True only when every source draw item/instance has a main GPU candidate. */
|
|
114
|
+
readonly ownsAllDrawItems: boolean;
|
|
115
|
+
/** Concrete entity/material/draw identities claimed by this projection. */
|
|
116
|
+
readonly drawKeys: ReadonlySet<string>;
|
|
117
|
+
/** Extracted concrete ShadowCaster keys actually claimed by this plan. */
|
|
118
|
+
readonly shadowDrawKeys: ReadonlySet<string>;
|
|
119
|
+
};
|
|
120
|
+
type FilteredProductionPlan = ReturnType<typeof filteredPlan>;
|
|
73
121
|
export interface GpuDrivenWorldLodSelectionInspection {
|
|
74
122
|
readonly worldKey: number;
|
|
75
123
|
readonly primitiveSlot: number;
|
|
@@ -82,14 +130,49 @@ export interface GpuDrivenWorldLodSelectionInspection {
|
|
|
82
130
|
readonly count: number;
|
|
83
131
|
}[];
|
|
84
132
|
}
|
|
133
|
+
type MaterialPipelineFactory = NonNullable<RenderSystemInternals['getMaterialShaderPipelineEntry']>;
|
|
85
134
|
export interface PreparedGpuDrivenFrame {
|
|
86
135
|
readonly topologySignature: string;
|
|
87
|
-
|
|
88
|
-
readonly
|
|
136
|
+
/** True when every source draw item/instance is claimed by the GPU lane. */
|
|
137
|
+
readonly ownsAllDrawItems: boolean;
|
|
138
|
+
/** True only when the extracted ShadowCaster channel is fully represented. */
|
|
139
|
+
readonly ownsAllShadowCasters?: boolean;
|
|
140
|
+
/** Concrete main-pass draw identities claimed by the GPU projection. */
|
|
141
|
+
readonly drawKeys?: ReadonlySet<string>;
|
|
142
|
+
readonly standardPbrFrameResources: GpuDrivenStandardPbrFrameResources;
|
|
89
143
|
readonly occlusion?: OcclusionFrameProjection;
|
|
90
144
|
/** @internal Commits a replacement generation only after graph promotion. */
|
|
91
145
|
readonly _commitResourceReplacement: () => void;
|
|
92
|
-
|
|
146
|
+
/** @internal Retires superseded view buffers when graph compilation promotes them. */
|
|
147
|
+
readonly _commitGpuResourceReplacement?: () => void;
|
|
148
|
+
/** @internal Discards staged shadow cache publication after a failed frame. */
|
|
149
|
+
readonly _abortResourceReplacement?: () => void;
|
|
150
|
+
/** Concrete ShadowCaster keys claimed by the GPU subset for this frame. */
|
|
151
|
+
readonly shadowDrawKeys?: ReadonlySet<string>;
|
|
152
|
+
/** View-scoped ShadowCaster claims consumed by each shadow record pass. */
|
|
153
|
+
readonly shadowDrawKeysByView?: ReadonlyMap<string, ReadonlySet<string>>;
|
|
154
|
+
readonly projectShadow?: (graph: RenderGraphBuilder<RenderPipelineFrame>, identity: ShadowViewIdentity) => Result<ShadowViewProjection | undefined, RenderGraphError>;
|
|
155
|
+
readonly updateShadowViews?: (views: readonly Omit<ShadowViewUpdateInput, 'sourcePlan' | 'scene'>[]) => Result<void, RhiError>;
|
|
156
|
+
readonly shadowViewPool?: ShadowViewStatePool;
|
|
157
|
+
readonly shadowBatchProjections?: ReadonlyMap<string, ReadonlyMap<number, GpuDrivenShadowBatchProjection>>;
|
|
158
|
+
project(graph: RenderGraphBuilder<RenderPipelineFrame>, format: TextureFormat, sampleCount: 1 | 4, additionalColorFormats?: readonly TextureFormat[]): Result<RenderPipelineGpuDrivenProjection, RenderGraphError | RhiError>;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Renderer-owned identity token for the validation that resolves renderable
|
|
162
|
+
* assets to GPU meshes. The token is deliberately narrower than a frame
|
|
163
|
+
* number: unchanged persistent scene snapshots can reuse the resolved rows,
|
|
164
|
+
* while a mesh/device/pipeline generation change forces a fresh producer read.
|
|
165
|
+
*/
|
|
166
|
+
export interface GpuDrivenResidencyValidationInput {
|
|
167
|
+
/** Opaque renderer-computed world/source identity and generation fence. */
|
|
168
|
+
readonly cacheKey: string;
|
|
169
|
+
readonly renderables: readonly RenderableSnapshot[];
|
|
170
|
+
readonly transparentDispatch: readonly DispatchEntry[];
|
|
171
|
+
readonly pipelineState: PipelineState;
|
|
172
|
+
readonly pipelineHandle: number;
|
|
173
|
+
readonly meshResidencyEpoch: number;
|
|
174
|
+
readonly deviceGeneration: number;
|
|
175
|
+
readonly assetCatalogEpoch: number;
|
|
93
176
|
}
|
|
94
177
|
export interface RecoveryCapabilityFacts {
|
|
95
178
|
readonly generation: number;
|
|
@@ -118,42 +201,101 @@ export declare function classifyRecoveryCapability(facts: RecoveryCapabilityFact
|
|
|
118
201
|
export declare class GpuDrivenProduction {
|
|
119
202
|
private readonly device;
|
|
120
203
|
private readonly shaderModuleFactory;
|
|
204
|
+
private readonly recoveryCount;
|
|
121
205
|
private disposed;
|
|
122
206
|
private view;
|
|
123
|
-
private
|
|
124
|
-
private
|
|
207
|
+
private materialRaster;
|
|
208
|
+
private skinRaster;
|
|
125
209
|
private readonly sceneIdentities;
|
|
126
210
|
private nextSceneIdentity;
|
|
127
211
|
private filteredCache;
|
|
212
|
+
private shadowFilteredCache;
|
|
128
213
|
private gpuOwnedSnapshotsMaterialized;
|
|
129
214
|
private filteredPlanBuilds;
|
|
130
215
|
private gpuOwnedEntityCount;
|
|
131
216
|
private batchBindGroupCreates;
|
|
132
217
|
private validatedGpuOwnedRows;
|
|
133
218
|
private cpuFallbackDrawItems;
|
|
219
|
+
private cpuSemanticFallbackDrawItems;
|
|
220
|
+
private cpuDeformationFallbackDrawItems;
|
|
221
|
+
private readonly cpuDeformationReasons;
|
|
222
|
+
private blockedDrawItems;
|
|
223
|
+
private preparationFailure;
|
|
224
|
+
private encodedIndirectDraws;
|
|
134
225
|
private telemetryPrepared;
|
|
135
226
|
private telemetryCandidateCount;
|
|
136
227
|
private telemetryGeometryWork;
|
|
137
228
|
private telemetryRootGeometryWork;
|
|
229
|
+
private telemetryOverflow;
|
|
138
230
|
private indirectDrawCount;
|
|
139
|
-
private
|
|
231
|
+
private gpuOwnedDrawItems;
|
|
232
|
+
private mainTotalDrawItems;
|
|
233
|
+
private lane;
|
|
234
|
+
private laneReason;
|
|
235
|
+
private submissionState;
|
|
236
|
+
private retryCount;
|
|
237
|
+
private lastKnownGoodGeneration;
|
|
238
|
+
private overflowRecoveryRequired;
|
|
239
|
+
private shadowViews;
|
|
240
|
+
private shadowSourcePlan;
|
|
241
|
+
private shadowScene;
|
|
242
|
+
private shadowBatchProjections;
|
|
243
|
+
private shadowDrawKeysByView;
|
|
244
|
+
private shadowExpectedDrawKeys;
|
|
245
|
+
private shadowBatchProjectionSource;
|
|
246
|
+
private skinPaletteBuffer;
|
|
247
|
+
private committedPaletteContentRevision;
|
|
140
248
|
private standardPbrProjection;
|
|
249
|
+
private committedProjectionSource;
|
|
250
|
+
private validatedResidencyCache;
|
|
251
|
+
private residencyValidationCacheHits;
|
|
252
|
+
private residencyValidationScans;
|
|
253
|
+
private cpuValidationTelemetryCache;
|
|
254
|
+
private cpuValidationCacheHits;
|
|
255
|
+
private cpuValidationScans;
|
|
256
|
+
private structureMetrics;
|
|
141
257
|
private signatureCache;
|
|
142
|
-
constructor(device: RhiDevice, shaderModuleFactory: PipelineBuilderShaderModuleFactory);
|
|
258
|
+
constructor(device: RhiDevice, shaderModuleFactory: PipelineBuilderShaderModuleFactory, recoveryCount?: number);
|
|
259
|
+
/**
|
|
260
|
+
* Reuse the last producer-resolved residency rows when all source identity
|
|
261
|
+
* and generation fences still match. Renderables and dispatch entries are
|
|
262
|
+
* checked element-by-element as well as by their stable object identities so
|
|
263
|
+
* an accidental in-place mutation cannot reuse stale renderable indices.
|
|
264
|
+
*/
|
|
265
|
+
reuseResidencyValidation(input: GpuDrivenResidencyValidationInput): readonly ValidatedRenderable[] | undefined;
|
|
266
|
+
/** Publish the producer-owned rows after a completed residency validation. */
|
|
267
|
+
rememberResidencyValidation(input: GpuDrivenResidencyValidationInput, value: readonly ValidatedRenderable[]): void;
|
|
268
|
+
private applyCpuValidationTelemetry;
|
|
143
269
|
static forDevice(device: RhiDevice, shaderModuleFactory: PipelineBuilderShaderModuleFactory): GpuDrivenProduction;
|
|
144
|
-
/** Recovery has no frame retry: await generated programs before preparing the graph. */
|
|
145
|
-
static forRecoveryDevice(device: RhiDevice, factory: PipelineBuilderShaderModuleFactory, createShaderModule: (descriptor: {
|
|
146
|
-
code: string;
|
|
147
|
-
label?: string;
|
|
148
|
-
}) => Promise<Result<ShaderModule, RhiError>>): Promise<Result<GpuDrivenProduction, RhiError>>;
|
|
149
270
|
createRecoveryRoot(scope: DeviceScope): LifecycleResourceSpec<unknown>;
|
|
150
271
|
prepare(input: {
|
|
151
272
|
readonly scene: PersistentGpuDrivenState | undefined;
|
|
152
273
|
readonly camera: CameraSnapshot;
|
|
153
|
-
|
|
274
|
+
/** GPU meshes projected by retained RenderScene slot, never raw asset handle. */
|
|
275
|
+
readonly meshBySlot: ReadonlyMap<number, MeshGpuHandles>;
|
|
154
276
|
readonly viewBindGroupLayout: BindGroupLayout;
|
|
155
277
|
readonly meshResidencyEpoch: number;
|
|
156
|
-
readonly
|
|
278
|
+
readonly materialBindingClasses?: ReadonlyMap<string, string>;
|
|
279
|
+
/** Cooked producer artifact selected from the frame material catalog. */
|
|
280
|
+
readonly materialArtifact?: MaterialShaderArtifact;
|
|
281
|
+
/** Compatibility input for callers that have not migrated their name. */
|
|
282
|
+
readonly standardPbrArtifact?: MaterialShaderArtifact;
|
|
283
|
+
/** Cooked producer artifact for the GPU skinning variant. */
|
|
284
|
+
readonly materialSkinArtifact?: MaterialShaderArtifact;
|
|
285
|
+
/** Compatibility input for callers that have not migrated their name. */
|
|
286
|
+
readonly standardPbrSkinArtifact?: MaterialShaderArtifact;
|
|
287
|
+
/** Per-draw producer artifacts keyed by prepared identity and receipt. */
|
|
288
|
+
readonly materialArtifacts?: ReadonlyMap<string, MaterialShaderArtifact>;
|
|
289
|
+
/** Per-draw shadow-pass artifacts keyed by the same prepared identity. */
|
|
290
|
+
readonly shadowMaterialArtifacts?: ReadonlyMap<string, MaterialShaderArtifact>;
|
|
291
|
+
readonly materialPipelineState?: PipelineState;
|
|
292
|
+
readonly standardPbrPipelineState?: PipelineState;
|
|
293
|
+
/** Existing renderer owner that builds the selected artifact PSO/BGL. */
|
|
294
|
+
readonly materialPipelineFactory?: MaterialPipelineFactory;
|
|
295
|
+
/** Extracted ShadowCaster ownership keyed by concrete draw item and pass. */
|
|
296
|
+
readonly shadowCasterDrawKeys?: ReadonlySet<string>;
|
|
297
|
+
/** Structured ShadowCaster ownership facts for exact pass admission. */
|
|
298
|
+
readonly shadowCasterMembership?: readonly ShadowCasterMembership[];
|
|
157
299
|
/** Entity keys admitted by the persistent visibility facet for this view. */
|
|
158
300
|
readonly activeEntityKeys?: ReadonlySet<number>;
|
|
159
301
|
/** Collision-free renderer-owned revision for the active visibility set. */
|
|
@@ -161,19 +303,19 @@ export declare class GpuDrivenProduction {
|
|
|
161
303
|
/** Total extracted candidates, including facet-suppressed rows. */
|
|
162
304
|
readonly telemetryCandidateCount?: number;
|
|
163
305
|
readonly occlusion?: OcclusionFrameProjection;
|
|
164
|
-
/**
|
|
165
|
-
readonly
|
|
166
|
-
|
|
167
|
-
|
|
306
|
+
/** Per-frame deltas from the existing RenderScene/GPU Scene/palette owners. */
|
|
307
|
+
readonly structureMetrics?: GpuDrivenStructureMetrics;
|
|
308
|
+
}): Result<PreparedGpuDrivenFrame | undefined, RhiError | GpuDrivenPreparationError>;
|
|
309
|
+
updateShadowViews(views: readonly Omit<ShadowViewUpdateInput, 'sourcePlan' | 'scene'>[], artifact: MaterialShaderArtifact | undefined, skinArtifact: MaterialShaderArtifact | undefined, materialArtifacts: ReadonlyMap<string, MaterialShaderArtifact> | undefined, shadowMaterialArtifacts: ReadonlyMap<string, MaterialShaderArtifact> | undefined, filtered: FilteredProductionPlan, scene: PersistentGpuDrivenState, shadowCasterDrawKeys: ReadonlySet<string> | undefined, shadowCasterMembership: readonly ShadowCasterMembership[] | undefined): Result<void, RhiError>;
|
|
310
|
+
private disableShadowViews;
|
|
168
311
|
dispose(): void;
|
|
169
|
-
/** Whether the current production topology can consume GPU Scene row updates. */
|
|
170
|
-
requiresSceneRows(): boolean;
|
|
171
312
|
inspect(): GpuDrivenProductionInspection;
|
|
172
313
|
/** Read renderer-owned LOD counters copied by the last GPU submission. */
|
|
173
314
|
readLodSelection(): Promise<GpuDrivenLodSelectionInspection | undefined>;
|
|
174
315
|
recordCpuValidation(validated: readonly {
|
|
175
316
|
readonly source: RenderableSnapshot;
|
|
176
|
-
}[],
|
|
317
|
+
}[], gpuOwnedDrawKeys: ReadonlySet<string>, cacheKey?: string): void;
|
|
177
318
|
private sceneIdentity;
|
|
178
319
|
}
|
|
320
|
+
export {};
|
|
179
321
|
//# sourceMappingURL=production-raster.d.ts.map
|