@forgeax/engine-render 0.1.20 → 0.1.23
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 +365 -29
- package/dist/assembly/backend-contract.d.ts +13 -0
- package/dist/assembly/backend-contract.d.ts.map +1 -1
- package/dist/assembly/device-feature-admission.d.ts +18 -0
- package/dist/assembly/device-feature-admission.d.ts.map +1 -0
- package/dist/assembly/directional-shadow-inspection.d.ts +38 -0
- package/dist/assembly/directional-shadow-inspection.d.ts.map +1 -0
- package/dist/assembly/factory.d.ts +30 -19
- package/dist/assembly/factory.d.ts.map +1 -1
- package/dist/assembly/host-contract.d.ts +19 -0
- package/dist/assembly/host-contract.d.ts.map +1 -1
- package/dist/assembly/render-target-host.d.ts +46 -0
- package/dist/assembly/render-target-host.d.ts.map +1 -0
- package/dist/assets/render-asset-port.d.ts.map +1 -1
- package/dist/authoring.mjs +4 -1
- package/dist/authoring.mjs.map +1 -1
- package/dist/capture/cube-views.d.ts +21 -0
- package/dist/capture/cube-views.d.ts.map +1 -0
- package/dist/capture/scheduler.d.ts +54 -0
- package/dist/capture/scheduler.d.ts.map +1 -0
- package/dist/{chunk-PCHBPYML.mjs → chunk-4L3P6DT5.mjs} +2 -2
- package/dist/chunk-4L3P6DT5.mjs.map +1 -0
- package/dist/{chunk-VFPLTKCU.mjs → chunk-4NPUASZR.mjs} +15 -4
- package/dist/chunk-4NPUASZR.mjs.map +1 -0
- package/dist/chunk-DIYW3M5D.mjs +5085 -0
- package/dist/chunk-DIYW3M5D.mjs.map +1 -0
- package/dist/chunk-FBC4R44J.mjs +1003 -0
- package/dist/chunk-FBC4R44J.mjs.map +1 -0
- package/dist/{chunk-CDTWTHZR.mjs → chunk-FF7K3FSO.mjs} +474 -168
- package/dist/chunk-FF7K3FSO.mjs.map +1 -0
- package/dist/chunk-HZUPSYW7.mjs +1104 -0
- package/dist/chunk-HZUPSYW7.mjs.map +1 -0
- package/dist/{chunk-TBQJOK2L.mjs → chunk-QODA5UKU.mjs} +321 -269
- package/dist/chunk-QODA5UKU.mjs.map +1 -0
- package/dist/chunk-YALPS44A.mjs +296 -0
- package/dist/chunk-YALPS44A.mjs.map +1 -0
- package/dist/{chunk-4XINDLAY.mjs → chunk-ZUWKAZ2I.mjs} +1963 -2178
- package/dist/chunk-ZUWKAZ2I.mjs.map +1 -0
- package/dist/cluster-binner.d.ts +5 -0
- package/dist/cluster-binner.d.ts.map +1 -1
- package/dist/components/camera.d.ts +1 -0
- package/dist/components/camera.d.ts.map +1 -1
- package/dist/components/cube-camera.d.ts +20 -0
- package/dist/components/cube-camera.d.ts.map +1 -0
- package/dist/components/directional-light.d.ts +11 -2
- package/dist/components/directional-light.d.ts.map +1 -1
- package/dist/components/directional-shadow-filter.d.ts +25 -0
- package/dist/components/directional-shadow-filter.d.ts.map +1 -0
- package/dist/components/index.d.ts +5 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/light-helpers.d.ts +4 -0
- package/dist/components/light-helpers.d.ts.map +1 -1
- package/dist/components/light-probe.d.ts +9 -0
- package/dist/components/light-probe.d.ts.map +1 -0
- package/dist/components/rect-area-light.d.ts +12 -0
- package/dist/components/rect-area-light.d.ts.map +1 -0
- package/dist/components/reflection-probe.d.ts +17 -0
- package/dist/components/reflection-probe.d.ts.map +1 -0
- package/dist/components/scene-instance.d.ts +4 -0
- package/dist/components/scene-instance.d.ts.map +1 -1
- package/dist/components/spot-light.d.ts +3 -0
- package/dist/components/spot-light.d.ts.map +1 -1
- package/dist/construct-renderer.mjs +14836 -9620
- package/dist/construct-renderer.mjs.map +1 -1
- package/dist/device/gpu-residency.d.ts +8 -1
- package/dist/device/gpu-residency.d.ts.map +1 -1
- package/dist/device/lifecycle-transaction.d.ts +2 -0
- package/dist/device/lifecycle-transaction.d.ts.map +1 -0
- package/dist/environment/frame.d.ts.map +1 -1
- package/dist/environment/lifecycle.d.ts +5 -0
- package/dist/environment/lifecycle.d.ts.map +1 -1
- package/dist/errors/gpu-driven.d.ts +26 -0
- package/dist/errors/gpu-driven.d.ts.map +1 -0
- package/dist/errors/index.d.ts +1 -0
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/recover.d.ts +9 -1
- package/dist/errors/recover.d.ts.map +1 -1
- package/dist/errors/render.d.ts +166 -93
- package/dist/errors/render.d.ts.map +1 -1
- package/dist/extract/directional-shadow-projection.d.ts +23 -0
- package/dist/extract/directional-shadow-projection.d.ts.map +1 -0
- package/dist/extract/environment.d.ts +14 -0
- package/dist/extract/environment.d.ts.map +1 -1
- package/dist/extract/gpu-driven.d.ts +50 -0
- package/dist/extract/gpu-driven.d.ts.map +1 -0
- package/dist/extract/visibility.d.ts.map +1 -1
- package/dist/features/fullscreen.d.ts.map +1 -1
- package/dist/features/targets.d.ts.map +1 -1
- package/dist/features/types.d.ts +10 -0
- package/dist/features/types.d.ts.map +1 -1
- package/dist/fullscreen-post-process-pass.d.ts +13 -2
- package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
- package/dist/gpu-driven/batch-topology.d.ts +34 -0
- package/dist/gpu-driven/batch-topology.d.ts.map +1 -1
- package/dist/gpu-driven/prepared-draw.d.ts +63 -0
- package/dist/gpu-driven/prepared-draw.d.ts.map +1 -0
- package/dist/gpu-driven/production-raster.d.ts +97 -2
- package/dist/gpu-driven/production-raster.d.ts.map +1 -1
- package/dist/gpu-driven/view-gpu.d.ts +64 -1
- package/dist/gpu-driven/view-gpu.d.ts.map +1 -1
- package/dist/gpu-scene-schema.d.ts +14 -0
- package/dist/gpu-scene-schema.d.ts.map +1 -1
- package/dist/gpu-scene.d.ts +8 -1
- package/dist/gpu-scene.d.ts.map +1 -1
- package/dist/gpu-usage.d.ts +0 -1
- package/dist/gpu-usage.d.ts.map +1 -1
- package/dist/hdrp-buffers.d.ts +21 -19
- package/dist/hdrp-buffers.d.ts.map +1 -1
- package/dist/ibl/IblPipelineCache.d.ts +4 -0
- package/dist/ibl/IblPipelineCache.d.ts.map +1 -1
- package/dist/ibl/kernel-cache.d.ts +36 -0
- package/dist/ibl/kernel-cache.d.ts.map +1 -0
- package/dist/index.d.ts +39 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +91 -6
- package/dist/index.mjs.map +1 -1
- package/dist/inspection-types.d.ts +214 -1
- package/dist/inspection-types.d.ts.map +1 -1
- package/dist/instances-derived-bounds.d.ts +50 -0
- package/dist/instances-derived-bounds.d.ts.map +1 -0
- package/dist/internal.d.ts +9 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.mjs +23 -2
- package/dist/internal.mjs.map +1 -1
- package/dist/light-buffer-layout.d.ts +58 -140
- package/dist/light-buffer-layout.d.ts.map +1 -1
- package/dist/materials.d.ts.map +1 -1
- package/dist/mesh-material-bindings.d.ts +54 -0
- package/dist/mesh-material-bindings.d.ts.map +1 -1
- package/dist/pbr-pipeline.d.ts +38 -14
- package/dist/pbr-pipeline.d.ts.map +1 -1
- package/dist/pipeline/standard-forward-lane.d.ts +2 -1
- package/dist/pipeline/standard-forward-lane.d.ts.map +1 -1
- package/dist/pipeline/standard-lighting/errors.d.ts +4 -0
- package/dist/pipeline/standard-lighting/errors.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/graph.d.ts +24 -0
- package/dist/pipeline/standard-lighting/graph.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/inspection.d.ts +38 -0
- package/dist/pipeline/standard-lighting/inspection.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/layout.d.ts +28 -0
- package/dist/pipeline/standard-lighting/layout.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/light-frame.d.ts +33 -0
- package/dist/pipeline/standard-lighting/light-frame.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/membership.d.ts +14 -0
- package/dist/pipeline/standard-lighting/membership.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/prepare.d.ts +16 -0
- package/dist/pipeline/standard-lighting/prepare.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/topology.d.ts +45 -0
- package/dist/pipeline/standard-lighting/topology.d.ts.map +1 -0
- package/dist/pipeline/standard-lighting/transport.d.ts +36 -0
- package/dist/pipeline/standard-lighting/transport.d.ts.map +1 -0
- package/dist/pipeline/standard-pipeline.d.ts +4 -13
- package/dist/pipeline/standard-pipeline.d.ts.map +1 -1
- package/dist/pipeline/standard-post.d.ts.map +1 -1
- package/dist/pipeline/standard-profile.d.ts +5 -26
- package/dist/pipeline/standard-profile.d.ts.map +1 -1
- package/dist/pipeline-builder.d.ts +2 -0
- package/dist/pipeline-builder.d.ts.map +1 -1
- package/dist/pipeline-spec.d.ts +40 -7
- package/dist/pipeline-spec.d.ts.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/point-shadow-inspection.d.ts +21 -0
- package/dist/point-shadow-inspection.d.ts.map +1 -0
- package/dist/prepare/extended-lighting/ltc-resources.d.ts +31 -0
- package/dist/prepare/extended-lighting/ltc-resources.d.ts.map +1 -0
- package/dist/prepare/extended-lighting/resources.d.ts +72 -0
- package/dist/prepare/extended-lighting/resources.d.ts.map +1 -0
- package/dist/prepare/extended-lighting/spot-modifiers.d.ts +42 -0
- package/dist/prepare/extended-lighting/spot-modifiers.d.ts.map +1 -0
- package/dist/prepare/extended-lighting/state.d.ts +24 -0
- package/dist/prepare/extended-lighting/state.d.ts.map +1 -0
- package/dist/record/frame-lighting.d.ts +33 -36
- package/dist/record/frame-lighting.d.ts.map +1 -1
- package/dist/record/frame-snapshot.d.ts +78 -24
- package/dist/record/frame-snapshot.d.ts.map +1 -1
- package/dist/record/frame-targets.d.ts +5 -0
- package/dist/record/frame-targets.d.ts.map +1 -1
- package/dist/record/frame.d.ts +16 -6
- package/dist/record/frame.d.ts.map +1 -1
- package/dist/record/gpu-pass-timing/contract.d.ts +96 -0
- package/dist/record/gpu-pass-timing/contract.d.ts.map +1 -0
- package/dist/record/gpu-pass-timing/errors.d.ts +18 -0
- package/dist/record/gpu-pass-timing/errors.d.ts.map +1 -0
- package/dist/record/gpu-pass-timing/index.d.ts +8 -0
- package/dist/record/gpu-pass-timing/index.d.ts.map +1 -0
- package/dist/record/gpu-pass-timing/parser.d.ts +11 -0
- package/dist/record/gpu-pass-timing/parser.d.ts.map +1 -0
- package/dist/record/gpu-pass-timing/session.d.ts +43 -0
- package/dist/record/gpu-pass-timing/session.d.ts.map +1 -0
- package/dist/record/gpu-timing.d.ts +20 -3
- package/dist/record/gpu-timing.d.ts.map +1 -1
- package/dist/record/helpers.d.ts +0 -20
- package/dist/record/helpers.d.ts.map +1 -1
- package/dist/record/main-pass-geometry.d.ts +6 -1
- package/dist/record/main-pass-geometry.d.ts.map +1 -1
- package/dist/record/main-pass-material.d.ts +25 -2
- package/dist/record/main-pass-material.d.ts.map +1 -1
- package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
- package/dist/record/main-pass.d.ts +2 -0
- package/dist/record/main-pass.d.ts.map +1 -1
- package/dist/record/mesh-ssbo.d.ts.map +1 -1
- package/dist/record/render-context.d.ts +98 -6
- package/dist/record/render-context.d.ts.map +1 -1
- package/dist/record/shadow-pass.d.ts.map +1 -1
- package/dist/record/skybox-post-pass.d.ts.map +1 -1
- package/dist/record/typed-frame-graph.d.ts +119 -4
- package/dist/record/typed-frame-graph.d.ts.map +1 -1
- package/dist/record/view-ubo.d.ts +7 -5
- package/dist/record/view-ubo.d.ts.map +1 -1
- package/dist/reflection/filter.d.ts +22 -0
- package/dist/reflection/filter.d.ts.map +1 -0
- package/dist/reflection/gpu-table.d.ts +25 -0
- package/dist/reflection/gpu-table.d.ts.map +1 -0
- package/dist/reflection/inspection.d.ts +10 -0
- package/dist/reflection/inspection.d.ts.map +1 -0
- package/dist/reflection/projection.d.ts +140 -0
- package/dist/reflection/projection.d.ts.map +1 -0
- package/dist/reflection/record-owner.d.ts +60 -0
- package/dist/reflection/record-owner.d.ts.map +1 -0
- package/dist/render-contract.d.ts +62 -14
- 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 +49 -2
- package/dist/render-pipeline.d.ts.map +1 -1
- package/dist/render-system-extract.d.ts +160 -31
- package/dist/render-system-extract.d.ts.map +1 -1
- package/dist/render-system.d.ts +28 -2
- package/dist/render-system.d.ts.map +1 -1
- package/dist/renderer.d.ts +43 -0
- package/dist/renderer.d.ts.map +1 -0
- package/dist/scene/probe-blend-record.d.ts +22 -0
- package/dist/scene/probe-blend-record.d.ts.map +1 -0
- package/dist/scene/probe-blend.d.ts +142 -0
- package/dist/scene/probe-blend.d.ts.map +1 -0
- package/dist/scene/render-scene-types.d.ts +0 -6
- package/dist/scene/render-scene-types.d.ts.map +1 -1
- package/dist/scene/render-scene.d.ts +117 -9
- package/dist/scene/render-scene.d.ts.map +1 -1
- package/dist/scene/visibility/bounds.d.ts +20 -0
- package/dist/scene/visibility/bounds.d.ts.map +1 -0
- package/dist/scene/visibility/budget.d.ts +16 -0
- package/dist/scene/visibility/budget.d.ts.map +1 -0
- package/dist/scene/visibility/facet.d.ts +73 -0
- package/dist/scene/visibility/facet.d.ts.map +1 -0
- package/dist/scene/visibility/gpu-frame-timing.d.ts +41 -0
- package/dist/scene/visibility/gpu-frame-timing.d.ts.map +1 -0
- package/dist/scene/visibility/gpu-lod.d.ts +46 -0
- package/dist/scene/visibility/gpu-lod.d.ts.map +1 -0
- package/dist/scene/visibility/inspection.d.ts +132 -0
- package/dist/scene/visibility/inspection.d.ts.map +1 -0
- package/dist/scene/visibility/lod-selector.d.ts +25 -0
- package/dist/scene/visibility/lod-selector.d.ts.map +1 -0
- package/dist/scene/visibility/occlusion-confidence.d.ts +81 -0
- package/dist/scene/visibility/occlusion-confidence.d.ts.map +1 -0
- package/dist/scene/visibility/occlusion-pass.d.ts +57 -0
- package/dist/scene/visibility/occlusion-pass.d.ts.map +1 -0
- package/dist/scene/visibility/occlusion-query-pool.d.ts +57 -0
- package/dist/scene/visibility/occlusion-query-pool.d.ts.map +1 -0
- package/dist/scene/visibility/occlusion-runtime.d.ts +96 -0
- package/dist/scene/visibility/occlusion-runtime.d.ts.map +1 -0
- package/dist/scene/visibility/types.d.ts +34 -0
- package/dist/scene/visibility/types.d.ts.map +1 -0
- package/dist/shadow-atlas.d.ts +3 -3
- package/dist/shadow-atlas.d.ts.map +1 -1
- package/dist/ssao-buffers.d.ts +3 -0
- package/dist/ssao-buffers.d.ts.map +1 -1
- package/dist/ssr/admission.d.ts +122 -0
- package/dist/ssr/admission.d.ts.map +1 -0
- package/dist/ssr/composition.d.ts +32 -0
- package/dist/ssr/composition.d.ts.map +1 -0
- package/dist/ssr/errors.d.ts +39 -0
- package/dist/ssr/errors.d.ts.map +1 -0
- package/dist/ssr/identity.d.ts +13 -0
- package/dist/ssr/identity.d.ts.map +1 -0
- package/dist/systems/skin-palette-allocator.d.ts +1 -1
- package/dist/targets/contracts.d.ts +66 -0
- package/dist/targets/contracts.d.ts.map +1 -0
- package/dist/targets/graph-projection.d.ts +29 -0
- package/dist/targets/graph-projection.d.ts.map +1 -0
- package/dist/targets/material-source.d.ts +34 -0
- package/dist/targets/material-source.d.ts.map +1 -0
- package/dist/targets/owner.d.ts +32 -0
- package/dist/targets/owner.d.ts.map +1 -0
- package/dist/targets/physical.d.ts +18 -0
- package/dist/targets/physical.d.ts.map +1 -0
- package/dist/targets/readback.d.ts +39 -0
- package/dist/targets/readback.d.ts.map +1 -0
- package/dist/temporal/frame-coordinator.d.ts +13 -0
- package/dist/temporal/frame-coordinator.d.ts.map +1 -1
- package/dist/temporal/frame.d.ts +2 -0
- package/dist/temporal/frame.d.ts.map +1 -1
- package/dist/temporal/index.mjs +6 -5
- package/dist/temporal/view.d.ts +7 -0
- package/dist/temporal/view.d.ts.map +1 -1
- package/dist/tilemap-chunk-extract-system.d.ts +1 -1
- package/dist/typed-render-graph-primitives.d.ts +5 -1
- package/dist/typed-render-graph-primitives.d.ts.map +1 -1
- package/dist/typed-shadow-passes.d.ts +1 -1
- package/dist/typed-shadow-passes.d.ts.map +1 -1
- package/dist/volume/passes.d.ts +9 -5
- package/dist/volume/passes.d.ts.map +1 -1
- package/package.json +20 -20
- package/src/__tests__/bloom-exact-zero.unit.test.ts +48 -19
- package/src/__tests__/bloom-lifecycle.integration.test.ts +41 -13
- package/src/__tests__/camera-target-consumption.unit.test.ts +53 -0
- package/src/__tests__/cluster-binner.unit.test.ts +35 -0
- package/src/__tests__/cluster-grid-default-surface.unit.test.ts +12 -2
- package/src/__tests__/cube-camera-scheduler.unit.test.ts +70 -0
- package/src/__tests__/cube-camera-single-submit.perf.test.ts +75 -0
- package/src/__tests__/cube-camera-view-matrices.unit.test.ts +41 -0
- package/src/__tests__/cube-camera-vocabulary.unit.test.ts +47 -0
- package/src/__tests__/cube-camera.integration.test.ts +42 -0
- package/src/__tests__/detached-inspection.integration.test.ts +6 -0
- package/src/__tests__/device-feature-admission.unit.test.ts +85 -0
- package/src/__tests__/direct-light-snapshot.unit.test.ts +62 -6
- package/src/__tests__/docs-gate-green.unit.test.ts +38 -0
- package/src/__tests__/environment-generation.integration.test.ts +16 -0
- package/src/__tests__/evidence-identity.ts +13 -0
- package/src/__tests__/evidence-identity.unit.test.ts +24 -0
- package/src/__tests__/extended-lighting-recovery.browser.test.ts +14 -0
- package/src/__tests__/extended-lighting-recovery.dawn.test.ts +14 -0
- package/src/__tests__/extended-lighting-recovery.integration.test.ts +81 -0
- package/src/__tests__/extended-lighting-resources.unit.test.ts +51 -0
- package/src/__tests__/extended-lighting-zero-feature.integration.test.ts +52 -0
- package/src/__tests__/factory-contract.integration.test.ts +288 -29
- package/src/__tests__/fog-component.unit.test.ts +67 -0
- package/src/__tests__/fog.integration.test.ts +86 -0
- package/src/__tests__/frame-observation.contract.test.ts +15 -0
- package/src/__tests__/fullscreen-feature-plan.unit.test.ts +37 -0
- package/src/__tests__/gpu-driven-batch-topology-pbr.unit.test.ts +146 -0
- package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +10 -8
- package/src/__tests__/gpu-driven-indirect-raster.dawn.test.ts +18 -1
- package/src/__tests__/gpu-driven-production.integration.test.ts +579 -17
- package/src/__tests__/gpu-driven-scaling.unit.test.ts +66 -2
- package/src/__tests__/gpu-driven-view-gpu-evidence.ts +26 -1
- package/src/__tests__/gpu-driven-view-graph.integration.test.ts +101 -6
- package/src/__tests__/gpu-driven-view.browser.test.ts +3 -3
- package/src/__tests__/gpu-driven-view.dawn.test.ts +3 -3
- package/src/__tests__/gpu-driven-view.unit.test.ts +50 -0
- package/src/__tests__/gpu-lod-evidence.ts +188 -0
- package/src/__tests__/gpu-lod-fallback.integration.test.ts +10 -0
- package/src/__tests__/gpu-lod-indirect.integration.test.ts +40 -0
- package/src/__tests__/gpu-lod-parity.dawn.test.ts +29 -0
- package/src/__tests__/gpu-lod-readiness.integration.test.ts +52 -0
- package/src/__tests__/gpu-lod-schema.unit.test.ts +66 -0
- package/src/__tests__/gpu-lod-selector.unit.test.ts +28 -0
- package/src/__tests__/gpu-lod-silhouette.browser.test.ts +13 -0
- package/src/__tests__/gpu-pass-timing-browser-runner.ts +281 -0
- package/src/__tests__/gpu-pass-timing-coexistence.integration.test.ts +80 -0
- package/src/__tests__/gpu-pass-timing-contract.unit.test.ts +243 -0
- package/src/__tests__/gpu-pass-timing-exact-zero.unit.test.ts +131 -0
- package/src/__tests__/gpu-pass-timing-lifecycle.integration.test.ts +230 -0
- package/src/__tests__/gpu-pass-timing-observation.unit.test.ts +233 -0
- package/src/__tests__/gpu-pass-timing-session.unit.test.ts +438 -0
- package/src/__tests__/gpu-pass-timing.browser.test.ts +26 -0
- package/src/__tests__/gpu-pass-timing.rhi-null.unit.test.ts +125 -0
- package/src/__tests__/gpu-resource-store-stride.unit.test.ts +66 -1
- package/src/__tests__/gpu-scene.dawn.test.ts +8 -1
- package/src/__tests__/gpu-scene.unit.test.ts +49 -3
- package/src/__tests__/hdrp-group2-visibility.unit.test.ts +24 -0
- package/src/__tests__/instances-culling.integration.test.ts +94 -0
- package/src/__tests__/instances-derived-bounds.unit.test.ts +118 -0
- package/src/__tests__/light-buffer-layout.unit.test.ts +113 -3
- package/src/__tests__/light-inspection.unit.test.ts +55 -0
- package/src/__tests__/light-resource-error.unit.test.ts +43 -0
- package/src/__tests__/lighting-scene-roundtrip.integration.test.ts +109 -0
- package/src/__tests__/lod-bounds.unit.test.ts +42 -0
- package/src/__tests__/lod-cpu-lane.integration.test.ts +55 -0
- package/src/__tests__/lod-cpu-no-change.perf.test.ts +19 -0
- package/src/__tests__/lod-gpu-frame-timing.unit.test.ts +49 -0
- package/src/__tests__/lod-multi-view.integration.test.ts +63 -0
- package/src/__tests__/lod-occlusion-device-loss.integration.test.ts +27 -0
- package/src/__tests__/lod-occlusion-final-decision.integration.test.ts +47 -0
- package/src/__tests__/lod-occlusion-inspection.integration.test.ts +217 -0
- package/src/__tests__/lod-occlusion-inspection.schema.test-d.ts +14 -0
- package/src/__tests__/lod-occlusion-inspection.unit.test.ts +72 -0
- package/src/__tests__/lod-occlusion-visual-evidence.ts +91 -0
- package/src/__tests__/lod-occlusion.browser.test.ts +15 -0
- package/src/__tests__/lod-occlusion.dawn.test.ts +20 -0
- package/src/__tests__/lod-selector.profile.test.ts +35 -0
- package/src/__tests__/lod-selector.unit.test.ts +68 -0
- package/src/__tests__/lod-visibility-identity.unit.test.ts +198 -0
- package/src/__tests__/lod-visibility-lifecycle.integration.test.ts +132 -0
- package/src/__tests__/ltc-resources.unit.test.ts +32 -0
- package/src/__tests__/material-contract-inventory.unit.test.ts +17 -0
- package/src/__tests__/material-observation.integration.test.ts +101 -0
- package/src/__tests__/occlusion-confidence.unit.test.ts +168 -0
- package/src/__tests__/occlusion-invalidation.integration.test.ts +37 -0
- package/src/__tests__/occlusion-pass-routing.unit.test.ts +16 -0
- package/src/__tests__/occlusion-pass.dawn.test.ts +20 -0
- package/src/__tests__/occlusion-pass.integration.test.ts +43 -0
- package/src/__tests__/occlusion-pass.rhi-null.test.ts +22 -0
- package/src/__tests__/occlusion-query-pool.rhi-null.test.ts +21 -0
- package/src/__tests__/occlusion-query-pool.unit.test.ts +95 -0
- package/src/__tests__/occlusion-query-ticket.integration.test.ts +47 -0
- package/src/__tests__/occlusion-query.dawn.test.ts +16 -0
- package/src/__tests__/occlusion-query.evidence.ts +178 -0
- package/src/__tests__/occlusion-query.rhi-null.test.ts +31 -0
- package/src/__tests__/occlusion-runtime.unit.test.ts +120 -0
- package/src/__tests__/pbr-view-layout.unit.test.ts +16 -0
- package/src/__tests__/point-shadow-inspection.unit.test.ts +60 -0
- package/src/__tests__/prepared-gpu-driven-pbr.integration.test.ts +196 -0
- package/src/__tests__/probe-bindings.unit.test.ts +200 -0
- package/src/__tests__/probe-blend-numeric.unit.test.ts +67 -0
- package/src/__tests__/probe-blend-oracle.unit.test.ts +136 -0
- package/src/__tests__/probe-capacity.integration.test.ts +97 -0
- package/src/__tests__/probe-recovery.integration.test.ts +104 -0
- package/src/__tests__/probe-scene-dirty.integration.test.ts +211 -0
- package/src/__tests__/profiler-phase-catalog.test.ts +4 -1
- package/src/__tests__/profiler-phase-token.test.ts +1 -0
- package/src/__tests__/public-surface.test-d.ts +10 -0
- package/src/__tests__/rect-area-boundary.unit.test.ts +24 -0
- package/src/__tests__/reflection-fallback-graph.unit.test.ts +67 -0
- package/src/__tests__/reflection-fallback-inspection.unit.test.ts +77 -0
- package/src/__tests__/reflection-fallback-lifecycle.integration.test.ts +21 -0
- package/src/__tests__/reflection-fallback-projection.unit.test.ts +90 -0
- package/src/__tests__/reflection-fallback-source.unit.test.ts +32 -0
- package/src/__tests__/reflection-probe-authoring.unit.test.ts +71 -0
- package/src/__tests__/reflection-probe-filter.unit.test.ts +54 -0
- package/src/__tests__/reflection-probe-ibl-topology.unit.test.ts +45 -0
- package/src/__tests__/reflection-probe-owner-placement.unit.test.ts +39 -0
- package/src/__tests__/reflection-probe-pass-encode.integration.test.ts +101 -0
- package/src/__tests__/reflection-probe-performance.perf.test.ts +60 -0
- package/src/__tests__/reflection-probe-record-owner.characterization.unit.test.ts +120 -0
- package/src/__tests__/reflection-probe-recovery.integration.test.ts +55 -0
- package/src/__tests__/reflection-probe-selection.unit.test.ts +46 -0
- package/src/__tests__/render-error-code-owner.test-d.ts +19 -3
- package/src/__tests__/render-feature-docs.unit.test.ts +12 -7
- package/src/__tests__/render-graph-fallback.integration.test.ts +24 -0
- package/src/__tests__/render-perf/extended-lighting.bench.test.ts +66 -0
- package/src/__tests__/render-scene-projection.unit.test.ts +447 -18
- package/src/__tests__/render-target-admission.unit.test.ts +80 -0
- package/src/__tests__/render-target-graph-projection.unit.test.ts +102 -0
- package/src/__tests__/render-target-inspection.unit.test.ts +52 -0
- package/src/__tests__/render-target-material-source.test-d.ts +30 -0
- package/src/__tests__/render-target-material-source.unit.test.ts +97 -0
- package/src/__tests__/render-target-owner-placement.unit.test.ts +203 -0
- package/src/__tests__/render-target-owner.unit.test.ts +122 -0
- package/src/__tests__/render-target-probe-soak.perf.test.ts +94 -0
- package/src/__tests__/render-target-public-schema.json +107 -0
- package/src/__tests__/render-target-public-schema.unit.test.ts +91 -0
- package/src/__tests__/render-target-public-surface.test-d.ts +83 -0
- package/src/__tests__/render-target-readback.integration.test.ts +90 -0
- package/src/__tests__/render-target-recovery.integration.test.ts +85 -0
- package/src/__tests__/renderer-factory-material-contract.unit.test.ts +124 -0
- package/src/__tests__/renderer-lifecycle.integration.test.ts +14 -0
- package/src/__tests__/shader-stage-surface.unit.test.ts +19 -4
- package/src/__tests__/skin-motion-regression.unit.test.ts +154 -0
- package/src/__tests__/skinned-shadow-caster.test.ts +13 -4
- package/src/__tests__/spot-modifier-projection.unit.test.ts +70 -0
- package/src/__tests__/ssr-admission-matrix.integration.test.ts +206 -0
- package/src/__tests__/ssr-composition.unit.test.ts +46 -0
- package/src/__tests__/ssr-fallback-zero-work.bench.test.ts +94 -0
- package/src/__tests__/ssr-recovery-errors.unit.test.ts +58 -0
- package/src/__tests__/standard-cluster-capability.integration.test.ts +63 -0
- package/src/__tests__/standard-cluster-transport.unit.test.ts +121 -0
- package/src/__tests__/standard-cluster-variant-resolution.unit.test.ts +299 -0
- package/src/__tests__/standard-clustered-pipeline.unit.test.ts +15 -5
- package/src/__tests__/standard-lighting-inspection.integration.test.ts +138 -0
- package/src/__tests__/standard-lighting-ssot.unit.test.ts +18 -0
- package/src/__tests__/standard-lighting-write.unit.test.ts +441 -0
- package/src/__tests__/standard-lighting.integration.test.ts +67 -0
- package/src/__tests__/standard-pipeline.dawn.test.ts +206 -5
- package/src/__tests__/standard-pipeline.integration.test.ts +181 -150
- package/src/__tests__/standard-probe-binding.unit.test.ts +25 -0
- package/src/__tests__/standard-profile-oracle.unit.test.ts +23 -38
- package/src/__tests__/temporal-fallback-generation.integration.test.ts +16 -0
- package/src/__tests__/temporal-view.unit.test.ts +3 -3
- package/src/__tests__/transmission-prewarm.unit.test.ts +69 -0
- package/src/__tests__/typed-pipeline-topology.unit.test.ts +395 -14
- package/src/__tests__/urp-pipeline-targets.unit.test.ts +2 -2
- package/src/__tests__/visibility-budget.integration.test.ts +140 -0
- package/src/__tests__/visibility-budget.unit.test.ts +70 -0
- package/src/__tests__/visibility-extract.integration.test.ts +11 -6
- package/src/__tests__/visibility-resolver.unit.test.ts +15 -0
- package/src/__tests__/volumetric-fog-point-spot-accumulation.integration.test.ts +6 -3
- package/src/__tests__/volumetric-fog-stage-readback.dawn.test.ts +31 -28
- package/src/assembly/backend-contract.ts +13 -0
- package/src/assembly/device-feature-admission.ts +80 -0
- package/src/assembly/directional-shadow-inspection.ts +122 -0
- package/src/assembly/factory.ts +1411 -366
- package/src/assembly/host-contract.ts +35 -0
- package/src/assembly/render-target-host.ts +847 -0
- package/src/assets/asset-decoders.ts +1 -1
- package/src/assets/render-asset-port.ts +7 -1
- package/src/capture/cube-views.ts +69 -0
- package/src/capture/scheduler.ts +265 -0
- package/src/cluster-binner.ts +31 -0
- package/src/components/__tests__/lighting-authoring.unit.test.ts +39 -0
- package/src/components/__tests__/rect-area-light.unit.test.ts +33 -0
- package/src/components/__tests__/schema-contract.unit.test.ts +12 -0
- package/src/components/__tests__/schema-parity.unit.test.ts +9 -0
- package/src/components/camera.ts +4 -0
- package/src/components/cube-camera.ts +52 -0
- package/src/components/directional-light.ts +22 -2
- package/src/components/directional-shadow-filter.ts +57 -0
- package/src/components/index.ts +5 -0
- package/src/components/light-helpers.ts +133 -8
- package/src/components/light-probe.ts +13 -0
- package/src/components/rect-area-light.ts +15 -0
- package/src/components/reflection-probe.ts +49 -0
- package/src/components/scene-instance.ts +6 -0
- package/src/components/spot-light.ts +3 -0
- package/src/device/__tests__/extended-lighting-recovery.unit.test.ts +24 -0
- package/src/device/gpu-residency.ts +140 -9
- package/src/device/lifecycle-transaction.ts +12 -0
- package/src/environment/frame.ts +6 -24
- package/src/environment/lifecycle.ts +20 -1
- package/src/errors/gpu-driven.ts +92 -0
- package/src/errors/index.ts +1 -0
- package/src/errors/recover.ts +32 -0
- package/src/errors/render.ts +341 -143
- package/src/extract/camera.ts +3 -3
- package/src/extract/directional-shadow-projection.ts +61 -0
- package/src/extract/environment.ts +57 -0
- package/src/extract/gpu-driven.ts +108 -0
- package/src/extract/visibility.ts +2 -1
- package/src/features/fullscreen.ts +3 -0
- package/src/features/targets.ts +4 -1
- package/src/features/types.ts +10 -0
- package/src/fullscreen-post-process-pass.ts +43 -2
- package/src/gpu-driven/batch-topology.ts +207 -28
- package/src/gpu-driven/prepared-draw.ts +208 -0
- package/src/gpu-driven/production-raster.ts +953 -43
- package/src/gpu-driven/view-gpu.ts +411 -29
- package/src/gpu-scene-schema.ts +13 -0
- package/src/gpu-scene.ts +140 -64
- package/src/gpu-usage.ts +0 -1
- package/src/hdrp-buffers.ts +169 -63
- package/src/ibl/IblPipelineCache.ts +11 -0
- package/src/ibl/kernel-cache.ts +88 -0
- package/src/index.ts +222 -0
- package/src/inspection-types.ts +276 -1
- package/src/instances-derived-bounds.ts +171 -0
- package/src/internal.ts +38 -0
- package/src/light-buffer-layout.ts +155 -310
- package/src/materials.ts +16 -2
- package/src/mesh-material-bindings.ts +132 -0
- package/src/pbr-pipeline.ts +255 -60
- package/src/pipeline/standard-forward-lane.ts +93 -16
- package/src/pipeline/standard-lighting/errors.ts +6 -0
- package/src/pipeline/standard-lighting/graph.ts +158 -0
- package/src/pipeline/standard-lighting/inspection.ts +88 -0
- package/src/pipeline/standard-lighting/layout.ts +31 -0
- package/src/pipeline/standard-lighting/light-frame.ts +35 -0
- package/src/pipeline/standard-lighting/membership.ts +43 -0
- package/src/pipeline/standard-lighting/prepare.ts +37 -0
- package/src/pipeline/standard-lighting/topology.ts +120 -0
- package/src/pipeline/standard-lighting/transport.ts +78 -0
- package/src/pipeline/standard-pipeline.ts +124 -193
- package/src/pipeline/standard-post.ts +26 -7
- package/src/pipeline/standard-profile.ts +17 -47
- package/src/pipeline-builder.ts +5 -2
- package/src/pipeline-spec.ts +95 -21
- package/src/plugin.ts +4 -0
- package/src/point-shadow-inspection.ts +55 -0
- package/src/prepare/__tests__/extended-lighting-capability.unit.test.ts +56 -0
- package/src/prepare/extended-lighting/ltc-resources.ts +136 -0
- package/src/prepare/extended-lighting/resources.ts +389 -0
- package/src/prepare/extended-lighting/spot-modifiers.ts +194 -0
- package/src/prepare/extended-lighting/state.ts +92 -0
- package/src/record/__tests__/gpu-timing.unit.test.ts +177 -0
- package/src/record/__tests__/temporal-payload.unit.test.ts +64 -1
- package/src/record/__tests__/transparent-group2-selection.unit.test.ts +73 -0
- package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +20 -1
- package/src/record/__tests__/view-ubo-layout.unit.test.ts +40 -0
- package/src/record/frame-lighting.ts +591 -452
- package/src/record/frame-snapshot.ts +92 -39
- package/src/record/frame-targets.ts +17 -0
- package/src/record/frame.ts +662 -158
- package/src/record/gpu-pass-timing/contract.ts +180 -0
- package/src/record/gpu-pass-timing/errors.ts +34 -0
- package/src/record/gpu-pass-timing/index.ts +37 -0
- package/src/record/gpu-pass-timing/parser.ts +97 -0
- package/src/record/gpu-pass-timing/session.ts +938 -0
- package/src/record/gpu-timing.ts +112 -39
- package/src/record/helpers.ts +0 -58
- package/src/record/main-pass-geometry.ts +324 -119
- package/src/record/main-pass-material.ts +103 -10
- package/src/record/main-pass-sprite-draws.ts +99 -103
- package/src/record/main-pass.ts +71 -15
- package/src/record/mesh-ssbo.ts +47 -36
- package/src/record/render-context.ts +136 -3
- package/src/record/shadow-pass.ts +83 -68
- package/src/record/skybox-post-pass.ts +20 -4
- package/src/record/typed-frame-graph.ts +1034 -43
- package/src/record/view-ubo.ts +72 -47
- package/src/reflection/filter.ts +81 -0
- package/src/reflection/gpu-table.ts +44 -0
- package/src/reflection/inspection.ts +67 -0
- package/src/reflection/projection.ts +476 -0
- package/src/reflection/record-owner.ts +1283 -0
- package/src/render-contract.ts +93 -10
- package/src/render-graph-primitives.ts +9 -4
- package/src/render-pipeline.ts +122 -2
- package/src/render-system-extract.ts +1041 -225
- package/src/render-system.ts +1310 -85
- package/src/renderer.ts +222 -0
- package/src/scene/__tests__/changed-block-summary.candidate.test.ts +36 -0
- package/src/scene/probe-blend-record.ts +54 -0
- package/src/scene/probe-blend.ts +813 -0
- package/src/scene/render-scene-types.ts +0 -7
- package/src/scene/render-scene.ts +942 -171
- package/src/scene/visibility/bounds.ts +57 -0
- package/src/scene/visibility/budget.ts +40 -0
- package/src/scene/visibility/facet.ts +400 -0
- package/src/scene/visibility/gpu-frame-timing.ts +101 -0
- package/src/scene/visibility/gpu-lod.ts +119 -0
- package/src/scene/visibility/inspection.ts +313 -0
- package/src/scene/visibility/lod-selector.ts +84 -0
- package/src/scene/visibility/occlusion-confidence.ts +478 -0
- package/src/scene/visibility/occlusion-pass.ts +165 -0
- package/src/scene/visibility/occlusion-query-pool.ts +178 -0
- package/src/scene/visibility/occlusion-runtime.ts +672 -0
- package/src/scene/visibility/types.ts +50 -0
- package/src/shadow-atlas.ts +5 -5
- package/src/ssao-buffers.ts +9 -2
- package/src/ssr/admission.ts +451 -0
- package/src/ssr/composition.ts +73 -0
- package/src/ssr/errors.ts +76 -0
- package/src/ssr/identity.ts +12 -0
- package/src/systems/skin-palette-allocator.ts +1 -1
- package/src/targets/contracts.ts +182 -0
- package/src/targets/graph-projection.ts +169 -0
- package/src/targets/material-source.ts +143 -0
- package/src/targets/owner.ts +214 -0
- package/src/targets/physical.ts +18 -0
- package/src/targets/readback.ts +153 -0
- package/src/temporal/frame-coordinator.ts +26 -0
- package/src/temporal/frame.ts +14 -1
- package/src/temporal/view.ts +11 -0
- package/src/tilemap-chunk-extract-system.ts +4 -4
- package/src/transmission/__tests__/standard-transmission.dawn.test.ts +59 -20
- package/src/typed-render-graph-primitives.ts +53 -3
- package/src/typed-shadow-passes.ts +46 -40
- package/src/volume/passes.ts +61 -58
- package/dist/.tsbuildinfo +0 -1
- package/dist/chunk-4XINDLAY.mjs.map +0 -1
- package/dist/chunk-CDTWTHZR.mjs.map +0 -1
- package/dist/chunk-M2MP4ZOU.mjs +0 -73
- package/dist/chunk-M2MP4ZOU.mjs.map +0 -1
- package/dist/chunk-PCHBPYML.mjs.map +0 -1
- package/dist/chunk-TBQJOK2L.mjs.map +0 -1
- package/dist/chunk-VFPLTKCU.mjs.map +0 -1
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { QuerySet, Result, RhiCommandEncoder, RhiDevice, RhiError, RhiRenderPassEncoder } from '@forgeax/engine-rhi';
|
|
2
|
+
import type { PipelineBuilderShaderModuleFactory } from '../../pipeline-builder';
|
|
3
|
+
import type { VisibilityBudget } from './budget';
|
|
4
|
+
import type { VisibilityFacetStore } from './facet';
|
|
5
|
+
import { type OcclusionBounds } from './occlusion-pass';
|
|
6
|
+
import { OcclusionQueryPool } from './occlusion-query-pool';
|
|
7
|
+
import { type PrimitiveKey, type ViewKey, type VisibilityCandidate } from './types';
|
|
8
|
+
/** @internal Deterministic producer hook; never configured by the player API. */
|
|
9
|
+
export interface OcclusionRuntimeTestHooks {
|
|
10
|
+
readonly beforeMap?: () => Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
/** @internal Used only by the production evidence falsification harness. */
|
|
13
|
+
export declare function setOcclusionRuntimeTestHooks(hooks: OcclusionRuntimeTestHooks | undefined): void;
|
|
14
|
+
export interface OcclusionRuntimeCandidate {
|
|
15
|
+
readonly view: ViewKey;
|
|
16
|
+
readonly primitive: PrimitiveKey;
|
|
17
|
+
readonly epoch: number;
|
|
18
|
+
readonly bounds: OcclusionBounds;
|
|
19
|
+
readonly candidate: VisibilityCandidate;
|
|
20
|
+
readonly deviceGeneration: number;
|
|
21
|
+
/** Clip-space triangles for the conservative bounds proxy. */
|
|
22
|
+
readonly proxyVertices?: Float32Array;
|
|
23
|
+
}
|
|
24
|
+
export interface OcclusionFrameProjection {
|
|
25
|
+
readonly querySet: QuerySet;
|
|
26
|
+
readonly queryIndex: number;
|
|
27
|
+
readonly queryCount: number;
|
|
28
|
+
readonly sampleCount: 1 | 4;
|
|
29
|
+
readonly pageIndex: number;
|
|
30
|
+
readonly reservationId: number;
|
|
31
|
+
readonly encodeProxyBounds: (pass: RhiRenderPassEncoder) => Result<void, RhiError>;
|
|
32
|
+
readonly beginCandidate: (pass: RhiRenderPassEncoder) => Result<void, RhiError>;
|
|
33
|
+
readonly endCandidate: (pass: RhiRenderPassEncoder) => Result<void, RhiError>;
|
|
34
|
+
readonly recordResolve: (encoder: RhiCommandEncoder) => Result<void, RhiError>;
|
|
35
|
+
readonly commit: (submitted: boolean, submissionGeneration: number, profilePhase?: OcclusionProfilePhaseRunner) => void;
|
|
36
|
+
}
|
|
37
|
+
export type OcclusionProfilePhaseRunner = <T>(phase: 'record/occlusion-query-submit' | 'record/occlusion-global-advance', action: () => T) => T;
|
|
38
|
+
/**
|
|
39
|
+
* RenderSystem-owned query transport. It is deliberately the only bridge
|
|
40
|
+
* between the logical pool, the typed graph raster pass, and facet completion.
|
|
41
|
+
*/
|
|
42
|
+
export declare class OcclusionRenderRuntime {
|
|
43
|
+
private readonly device;
|
|
44
|
+
private readonly facets;
|
|
45
|
+
private readonly shaderModuleFactory?;
|
|
46
|
+
private readonly budget;
|
|
47
|
+
private readonly pool;
|
|
48
|
+
private readonly resources;
|
|
49
|
+
private readonly activeCompletions;
|
|
50
|
+
private readonly retiredResources;
|
|
51
|
+
/** Candidate descriptors are rebuilt only when the extracted frame changes. */
|
|
52
|
+
private candidateSource;
|
|
53
|
+
private validCandidates;
|
|
54
|
+
private readonly candidateByKey;
|
|
55
|
+
private lastPrepareUnavailable;
|
|
56
|
+
private pendingFrame;
|
|
57
|
+
private disposed;
|
|
58
|
+
private proxyBuffer;
|
|
59
|
+
private readonly proxyScratch;
|
|
60
|
+
private proxyPipeline;
|
|
61
|
+
private proxyPipelineSampleCount;
|
|
62
|
+
private readonly queryLatencySamplesUs;
|
|
63
|
+
private lastQueryLatencyUs;
|
|
64
|
+
private readonly projection;
|
|
65
|
+
constructor(device: RhiDevice, facets: VisibilityFacetStore, shaderModuleFactory?: PipelineBuilderShaderModuleFactory | undefined, budget?: VisibilityBudget);
|
|
66
|
+
prepare(candidate: OcclusionRuntimeCandidate): OcclusionFrameProjection | undefined;
|
|
67
|
+
prepareBatch(candidates: readonly OcclusionRuntimeCandidate[], sampleCount?: 1 | 4, useReadyQueue?: boolean): OcclusionFrameProjection | undefined;
|
|
68
|
+
inspect(): ReturnType<OcclusionQueryPool['inspect']>;
|
|
69
|
+
get prepareUnavailable(): boolean;
|
|
70
|
+
/** Map-only latency from the submitted query page; queue wait is excluded. */
|
|
71
|
+
inspectQueryLatency(): {
|
|
72
|
+
readonly median: number;
|
|
73
|
+
readonly p95: number;
|
|
74
|
+
readonly last: number;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Wait until query readbacks submitted before the current observation have
|
|
78
|
+
* settled. The renderer receipt only fences command submission; query
|
|
79
|
+
* completion also includes the asynchronous map/unmap transition. Keeping
|
|
80
|
+
* that fence here makes `renderer.observe()` publish the latest visibility
|
|
81
|
+
* result and measured map latency instead of racing the readback promise.
|
|
82
|
+
*/
|
|
83
|
+
waitForCompletions(): Promise<void>;
|
|
84
|
+
/** Count a successful frame for hidden rows that were not queried this frame. */
|
|
85
|
+
advanceSuccessfulSubmit(submissionGeneration: number): void;
|
|
86
|
+
dispose(): void;
|
|
87
|
+
private ensureResources;
|
|
88
|
+
private commit;
|
|
89
|
+
private publishAndApplySubmit;
|
|
90
|
+
private destroyResources;
|
|
91
|
+
private completeAfterSubmit;
|
|
92
|
+
private encodeProxyBounds;
|
|
93
|
+
private ensureProxyBuffer;
|
|
94
|
+
private ensureProxyPipeline;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=occlusion-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"occlusion-runtime.d.ts","sourceRoot":"","sources":["../../../src/scene/visibility/occlusion-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** Closed view roles used by the renderer-owned visibility facet. */
|
|
2
|
+
export type VisibilityViewRole = 'main' | 'shadow' | 'reflection' | 'probe';
|
|
3
|
+
export interface ViewKey {
|
|
4
|
+
readonly attachmentId: string;
|
|
5
|
+
readonly cameraEntity: number;
|
|
6
|
+
readonly viewRole: VisibilityViewRole;
|
|
7
|
+
readonly viewGeneration: number;
|
|
8
|
+
}
|
|
9
|
+
export interface PrimitiveKey {
|
|
10
|
+
readonly attachmentId: string;
|
|
11
|
+
readonly worldGeneration: number;
|
|
12
|
+
readonly primitiveSlot: number;
|
|
13
|
+
readonly slotGeneration: number;
|
|
14
|
+
}
|
|
15
|
+
export interface VisibilityCandidate {
|
|
16
|
+
readonly level: number;
|
|
17
|
+
readonly confidence: number;
|
|
18
|
+
}
|
|
19
|
+
export interface VisibilityFacetInspection {
|
|
20
|
+
readonly owner: 'persistent-render-scene';
|
|
21
|
+
readonly activeViews: number;
|
|
22
|
+
readonly facetRows: number;
|
|
23
|
+
}
|
|
24
|
+
export interface VisibilityFacetInput {
|
|
25
|
+
readonly view: ViewKey;
|
|
26
|
+
readonly primitive: PrimitiveKey;
|
|
27
|
+
readonly epoch: number;
|
|
28
|
+
readonly candidate: VisibilityCandidate;
|
|
29
|
+
}
|
|
30
|
+
export declare function viewKeyId(key: ViewKey): string;
|
|
31
|
+
export declare function primitiveKeyId(key: PrimitiveKey): string;
|
|
32
|
+
export declare function viewKey(input: ViewKey): ViewKey;
|
|
33
|
+
export declare function primitiveKey(input: PrimitiveKey): PrimitiveKey;
|
|
34
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/scene/visibility/types.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAC;AAE5E,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;CACzC;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAE9C;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAExD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE/C;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,CAE9D"}
|
package/dist/shadow-atlas.d.ts
CHANGED
|
@@ -5,17 +5,17 @@ import { type RhiDevice, type Sampler, type Texture, type TextureView } from '@f
|
|
|
5
5
|
export interface ShadowAtlasOptions {
|
|
6
6
|
/** Per-face square size in pixels. Default 512 (PointLightShadow.mapSize default). */
|
|
7
7
|
readonly faceSize?: number;
|
|
8
|
-
/** Number of cube layers. Default
|
|
8
|
+
/** Number of cube layers. Default is the renderer atlas admission capacity. */
|
|
9
9
|
readonly layers?: number;
|
|
10
10
|
}
|
|
11
11
|
/** Default per-face square size in pixels. Mirrors PointLightShadow.mapSize default. */
|
|
12
12
|
export declare const SHADOW_ATLAS_DEFAULT_FACE_SIZE = 512;
|
|
13
|
-
/** Default cube layer count.
|
|
13
|
+
/** Default cube layer count. Renderer-owned point-shadow admission capacity. */
|
|
14
14
|
export declare const SHADOW_ATLAS_DEFAULT_LAYERS = 4;
|
|
15
15
|
/**
|
|
16
16
|
* Cube-array depth atlas for point-light shadows.
|
|
17
17
|
*
|
|
18
|
-
* Shape: `texture_depth_cube_array` (depth32float) with `layers
|
|
18
|
+
* Shape: `texture_depth_cube_array` (depth32float) with `layers` and per-
|
|
19
19
|
* face size `faceSize x faceSize`. The cube_array sampling view feeds
|
|
20
20
|
* `@group(0) @binding(5)` in URP shaders; the per-face 2D view feeds the
|
|
21
21
|
* shadow-caster render pass attachment for one (layer, face) at a time
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shadow-atlas.d.ts","sourceRoot":"","sources":["../src/shadow-atlas.ts"],"names":[],"mappings":"AAiCA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAQ7B;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B
|
|
1
|
+
{"version":3,"file":"shadow-atlas.d.ts","sourceRoot":"","sources":["../src/shadow-atlas.ts"],"names":[],"mappings":"AAiCA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAQ7B;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wFAAwF;AACxF,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAClD,gFAAgF;AAChF,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,WAAW;IACtB,yEAAyE;IACzE,OAAO,CAAC,OAAO,CAAwB;IACvC;;;OAGG;IACH,OAAO,CAAC,aAAa,CAA4B;IACjD,yDAAyD;IACzD,OAAO,CAAC,cAAc,CAAwB;IAC9C,iEAAiE;IACjE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkC;IAC5D,+DAA+D;IAC/D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wBAAwB;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,SAAS,EAAE,OAAO,GAAE,kBAAuB;IAM/D;;;;;;OAMG;IACH,WAAW,IAAI,OAAO;IAItB;;;;;;;;;OASG;IACH,MAAM,IAAI,IAAI;IAkCd;;;;OAIG;IACH,YAAY,IAAI,WAAW,GAAG,IAAI;IAIlC;;;OAGG;IACH,oBAAoB,IAAI,OAAO,GAAG,IAAI;IAItC;;OAEG;IACH,UAAU,IAAI,OAAO,GAAG,IAAI;IAI5B;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW;IAoBlD;;;;OAIG;IACH,OAAO,IAAI,IAAI;CAShB"}
|
package/dist/ssao-buffers.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export declare function generateSsaoNoise(seed?: number): Float32Array;
|
|
|
6
6
|
export declare const SSAO_UNIFORM_INTENSITY_OFFSET = 192;
|
|
7
7
|
export declare const SSAO_UNIFORM_BYTES = 256;
|
|
8
8
|
interface SsaoFallbackResources {
|
|
9
|
+
readonly device: RenderSystemRuntime['device'];
|
|
9
10
|
readonly texture: Texture;
|
|
10
11
|
readonly view: TextureView;
|
|
11
12
|
readonly sampler: Sampler;
|
|
@@ -26,6 +27,8 @@ export declare function getOrCreateSsaoFallbackTexture(runtime: RenderSystemRunt
|
|
|
26
27
|
* Fields are readonly per charter P5: one resource, one owner.
|
|
27
28
|
*/
|
|
28
29
|
export interface SsaoBuffers {
|
|
30
|
+
/** Device identity that owns every handle in this bundle. */
|
|
31
|
+
readonly device: RenderSystemRuntime['device'];
|
|
29
32
|
/** 64 padded vec4 uniform buffer for hemisphere samples. */
|
|
30
33
|
readonly kernelBuffer: Buffer;
|
|
31
34
|
readonly kernelBytes: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssao-buffers.d.ts","sourceRoot":"","sources":["../src/ssao-buffers.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAInE,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAiB3C,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,MAAU,GAAG,SAAS,YAAY,EAAE,CAuB5E;AAED,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,MAAU,GAAG,YAAY,CAShE;AAiBD,eAAO,MAAM,6BAA6B,MAAiC,CAAC;AAC5E,eAAO,MAAM,kBAAkB,MAAgB,CAAC;AAYhD,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAID;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,mBAAmB,GAC3B,qBAAqB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"ssao-buffers.d.ts","sourceRoot":"","sources":["../src/ssao-buffers.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAInE,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAiB3C,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,MAAU,GAAG,SAAS,YAAY,EAAE,CAuB5E;AAED,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,MAAU,GAAG,YAAY,CAShE;AAiBD,eAAO,MAAM,6BAA6B,MAAiC,CAAC;AAC5E,eAAO,MAAM,kBAAkB,MAAgB,CAAC;AAYhD,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAID;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,mBAAmB,GAC3B,qBAAqB,GAAG,IAAI,CA2E9B;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC/C,4DAA4D;IAC5D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,gEAAgE;IAChE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,oFAAoF;IACpF,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAID;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,mBAAmB,GAAG,WAAW,GAAG,IAAI,CA0GvF"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Consumer-only SSR M0 admission.
|
|
3
|
+
*
|
|
4
|
+
* This module consumes detached producer receipts. It owns no capture,
|
|
5
|
+
* device, graph, or recovery handle and therefore cannot repair a missing
|
|
6
|
+
* producer. A complete receipt set is the only route to an admitted result.
|
|
7
|
+
*/
|
|
8
|
+
import { type RhiTextureFormatCapabilityReceipt } from '@forgeax/engine-rhi';
|
|
9
|
+
import type { ReflectionFallbackReceipt } from '../inspection-types';
|
|
10
|
+
import type { SsrOwnerRecoveryAction } from './errors';
|
|
11
|
+
import type { SsrAdmissionIdentity } from './identity';
|
|
12
|
+
export declare const SSR_FORMAT_PROFILE: "r32float-mip-sampled-storage";
|
|
13
|
+
export declare const SSR_FORMAT_STAGES: readonly ["texture-create", "mip-view", "sampled-storage-bind-group", "pipeline-bind", "finish", "submit", "completion", "readback"];
|
|
14
|
+
export type { SsrAdmissionIdentity } from './identity';
|
|
15
|
+
export type SsrFormatStage = (typeof SSR_FORMAT_STAGES)[number];
|
|
16
|
+
/**
|
|
17
|
+
* The admission input is the real renderer owner receipt plus the one
|
|
18
|
+
* integration identity supplied by the host. It deliberately does not
|
|
19
|
+
* recreate submitted/source/LKG boolean flags.
|
|
20
|
+
*/
|
|
21
|
+
export type SsrReflectionFallbackReceipt = ReflectionFallbackReceipt & {
|
|
22
|
+
readonly identity: SsrAdmissionIdentity;
|
|
23
|
+
};
|
|
24
|
+
/** RHI capability receipt with the same host-supplied integration identity. */
|
|
25
|
+
export type SsrFormatReceipt = RhiTextureFormatCapabilityReceipt & {
|
|
26
|
+
readonly identity: SsrAdmissionIdentity;
|
|
27
|
+
};
|
|
28
|
+
export interface SsrTemporalReceipt {
|
|
29
|
+
readonly identity: SsrAdmissionIdentity;
|
|
30
|
+
readonly successfulSubmit: true;
|
|
31
|
+
readonly generation: number;
|
|
32
|
+
}
|
|
33
|
+
export interface SsrAdmissionWork {
|
|
34
|
+
readonly attachmentCount: number;
|
|
35
|
+
readonly passCount: number;
|
|
36
|
+
readonly bindingCount: number;
|
|
37
|
+
readonly resourceCount: number;
|
|
38
|
+
readonly historyCount: 0;
|
|
39
|
+
readonly temporalDemand: 0;
|
|
40
|
+
}
|
|
41
|
+
export interface SsrAdmissionBudget {
|
|
42
|
+
readonly probeExecutions: 0 | 1;
|
|
43
|
+
readonly resetCount: 0;
|
|
44
|
+
readonly rebuildCount: 0;
|
|
45
|
+
}
|
|
46
|
+
export interface SsrAdmissionFailure {
|
|
47
|
+
readonly code: 'ssr-not-requested' | 'ssr-reflection-fallback-unavailable' | 'ssr-format-unavailable' | 'ssr-temporal-unavailable' | 'ssr-receipt-identity-mismatch' | 'ssr-receipt-stale';
|
|
48
|
+
readonly expected: string;
|
|
49
|
+
readonly hint: string;
|
|
50
|
+
readonly detail: Readonly<{
|
|
51
|
+
readonly owner: 'producer' | 'format' | 'temporal' | 'consumer';
|
|
52
|
+
/** Owner-directed action an AI consumer can take without parsing hint text. */
|
|
53
|
+
readonly action: SsrOwnerRecoveryAction;
|
|
54
|
+
readonly generation?: number;
|
|
55
|
+
readonly identityField?: keyof SsrAdmissionIdentity;
|
|
56
|
+
}>;
|
|
57
|
+
}
|
|
58
|
+
export type SsrAdmissionResult = {
|
|
59
|
+
readonly status: 'admitted';
|
|
60
|
+
readonly identity: SsrAdmissionIdentity | undefined;
|
|
61
|
+
readonly generation: number;
|
|
62
|
+
readonly work: SsrAdmissionWork;
|
|
63
|
+
readonly budget: SsrAdmissionBudget;
|
|
64
|
+
readonly failure?: undefined;
|
|
65
|
+
} | {
|
|
66
|
+
readonly status: 'fallback-only';
|
|
67
|
+
readonly identity: SsrAdmissionIdentity | undefined;
|
|
68
|
+
readonly generation: number;
|
|
69
|
+
readonly work: SsrAdmissionWork;
|
|
70
|
+
readonly budget: SsrAdmissionBudget;
|
|
71
|
+
readonly failure: SsrAdmissionFailure;
|
|
72
|
+
};
|
|
73
|
+
export interface SsrAdmissionInput {
|
|
74
|
+
readonly requested: boolean;
|
|
75
|
+
readonly identity: SsrAdmissionIdentity;
|
|
76
|
+
readonly reflectionFallback?: SsrReflectionFallbackReceipt;
|
|
77
|
+
readonly format?: SsrFormatReceipt;
|
|
78
|
+
readonly temporal?: SsrTemporalReceipt;
|
|
79
|
+
readonly previousGeneration?: number;
|
|
80
|
+
}
|
|
81
|
+
/** Public renderer projection consumed by the parent SSR feature. */
|
|
82
|
+
export interface SsrDependenciesInspection {
|
|
83
|
+
readonly status: 'admitted' | 'fallback-only';
|
|
84
|
+
/** Absent until the host binds an exact source/tree/lock/build identity. */
|
|
85
|
+
readonly identity: SsrAdmissionIdentity | undefined;
|
|
86
|
+
readonly requested: boolean;
|
|
87
|
+
readonly reflectionFallback: ReflectionFallbackReceipt | undefined;
|
|
88
|
+
readonly format: SsrFormatReceipt | undefined;
|
|
89
|
+
readonly temporal: SsrTemporalReceipt | undefined;
|
|
90
|
+
readonly admission: SsrAdmissionResult;
|
|
91
|
+
readonly work: SsrAdmissionWork;
|
|
92
|
+
readonly budget: SsrAdmissionBudget;
|
|
93
|
+
readonly failure: SsrAdmissionFailure | undefined;
|
|
94
|
+
}
|
|
95
|
+
export declare function admitSsrM0(input: SsrAdmissionInput): SsrAdmissionResult;
|
|
96
|
+
/**
|
|
97
|
+
* Joins the live owner projections at the renderer boundary. The only casts
|
|
98
|
+
* here add the host identity to receipts that otherwise remain canonical RHI
|
|
99
|
+
* or ReflectionProbe PODs; no producer fact is copied or renamed.
|
|
100
|
+
*/
|
|
101
|
+
export declare function projectSsrDependencies(input: {
|
|
102
|
+
readonly requested: boolean;
|
|
103
|
+
readonly identity: SsrAdmissionIdentity | undefined;
|
|
104
|
+
readonly reflectionFallback: ReflectionFallbackReceipt | undefined;
|
|
105
|
+
readonly format: RhiTextureFormatCapabilityReceipt | undefined;
|
|
106
|
+
readonly temporal: {
|
|
107
|
+
readonly successfulSubmit: true;
|
|
108
|
+
readonly generation: number;
|
|
109
|
+
} | undefined;
|
|
110
|
+
readonly previousGeneration?: number;
|
|
111
|
+
}): SsrDependenciesInspection;
|
|
112
|
+
export declare function zeroSsrAdmissionWork(): SsrAdmissionWork;
|
|
113
|
+
/**
|
|
114
|
+
* Projects the admission decision into the existing temporal reset seam.
|
|
115
|
+
* Admission never creates temporal history; only a changed committed
|
|
116
|
+
* producer generation can request a reset through the coordinator.
|
|
117
|
+
*/
|
|
118
|
+
export declare function resolveSsrAdmissionGeneration(previousGeneration: number | undefined, nextGeneration: number | undefined): {
|
|
119
|
+
readonly changed: boolean;
|
|
120
|
+
readonly generation: number | undefined;
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=admission.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admission.d.ts","sourceRoot":"","sources":["../../src/ssr/admission.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type Result } from '@forgeax/engine-types';
|
|
2
|
+
/** Linear HDR RGB used by the M0 composition contract. */
|
|
3
|
+
export type SsrReflectionColor = readonly [number, number, number];
|
|
4
|
+
export interface SsrCompositionInput {
|
|
5
|
+
/** Screen-hit confidence. The parent SSR consumer supplies 0..1. */
|
|
6
|
+
readonly c: number;
|
|
7
|
+
/** The Standard BRDF specular lobe before SSR replacement. */
|
|
8
|
+
readonly baseSpecular: SsrReflectionColor;
|
|
9
|
+
/** The same-source BRDF-projected screen contribution. */
|
|
10
|
+
readonly screenSpecular: SsrReflectionColor;
|
|
11
|
+
/** The committed producer-owned environment contribution. */
|
|
12
|
+
readonly fallbackSpecular: SsrReflectionColor;
|
|
13
|
+
}
|
|
14
|
+
export interface SsrCompositionInputError {
|
|
15
|
+
readonly code: 'ssr-composition-input-invalid';
|
|
16
|
+
readonly expected: string;
|
|
17
|
+
readonly hint: string;
|
|
18
|
+
readonly detail: Readonly<{
|
|
19
|
+
readonly field: 'c' | 'baseSpecular' | 'screenSpecular' | 'fallbackSpecular';
|
|
20
|
+
}>;
|
|
21
|
+
}
|
|
22
|
+
export type SsrCompositionResult = Result<SsrReflectionColor, SsrCompositionInputError>;
|
|
23
|
+
/**
|
|
24
|
+
* Apply the M0 reflection replacement contract without owning an SSR pass.
|
|
25
|
+
*
|
|
26
|
+
* `c=0` returns the base Standard specular lobe. `c=1` replaces only that
|
|
27
|
+
* lobe with the same-source screen contribution, subtracting the committed
|
|
28
|
+
* environment contribution once. Hi-Z traversal, history and graph wiring
|
|
29
|
+
* remain owned by the parent SSR feature.
|
|
30
|
+
*/
|
|
31
|
+
export declare function composeSsrReflection(input: SsrCompositionInput): SsrCompositionResult;
|
|
32
|
+
//# sourceMappingURL=composition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composition.d.ts","sourceRoot":"","sources":["../../src/ssr/composition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE7D,0DAA0D;AAC1D,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEnE,MAAM,WAAW,mBAAmB;IAClC,oEAAoE;IACpE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,0DAA0D;IAC1D,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAC;IAC5C,6DAA6D;IAC7D,QAAQ,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;CAC/C;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,+BAA+B,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;QACxB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,cAAc,GAAG,gBAAgB,GAAG,kBAAkB,CAAC;KAC9E,CAAC,CAAC;CACJ;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,CAAC;AAkBxF;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAqBrF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** Closed, consumer-facing failures for the detached SSR M0 contract. */
|
|
2
|
+
export type SsrAdmissionErrorCode = 'ssr-not-requested' | 'ssr-reflection-fallback-unavailable' | 'ssr-format-unavailable' | 'ssr-temporal-unavailable' | 'ssr-receipt-identity-mismatch' | 'ssr-receipt-stale';
|
|
3
|
+
export type SsrOwnerRecoveryAction = 'use-LKG' | 'use-Skylight' | 'use-neutral' | 'recapture' | 'rebuild' | 'retry';
|
|
4
|
+
export type SsrAdmissionErrorDetail = {
|
|
5
|
+
readonly code: 'ssr-not-requested';
|
|
6
|
+
readonly owner: 'consumer';
|
|
7
|
+
readonly action: 'retry';
|
|
8
|
+
} | {
|
|
9
|
+
readonly code: 'ssr-reflection-fallback-unavailable';
|
|
10
|
+
readonly owner: 'producer';
|
|
11
|
+
readonly action: 'use-LKG' | 'use-Skylight' | 'use-neutral' | 'recapture' | 'rebuild';
|
|
12
|
+
} | {
|
|
13
|
+
readonly code: 'ssr-format-unavailable';
|
|
14
|
+
readonly owner: 'format';
|
|
15
|
+
readonly action: 'rebuild' | 'retry';
|
|
16
|
+
readonly stage?: string;
|
|
17
|
+
} | {
|
|
18
|
+
readonly code: 'ssr-temporal-unavailable';
|
|
19
|
+
readonly owner: 'temporal';
|
|
20
|
+
readonly action: 'rebuild' | 'retry';
|
|
21
|
+
} | {
|
|
22
|
+
readonly code: 'ssr-receipt-identity-mismatch';
|
|
23
|
+
readonly owner: 'producer' | 'format' | 'temporal';
|
|
24
|
+
readonly action: 'rebuild';
|
|
25
|
+
readonly identityField: 'sourceHead' | 'sourceTree' | 'lockSha256' | 'buildSha256';
|
|
26
|
+
} | {
|
|
27
|
+
readonly code: 'ssr-receipt-stale';
|
|
28
|
+
readonly owner: 'consumer';
|
|
29
|
+
readonly action: 'retry';
|
|
30
|
+
readonly generation: number;
|
|
31
|
+
};
|
|
32
|
+
export interface SsrAdmissionError {
|
|
33
|
+
readonly code: SsrAdmissionErrorCode;
|
|
34
|
+
readonly expected: string;
|
|
35
|
+
readonly hint: string;
|
|
36
|
+
readonly detail: SsrAdmissionErrorDetail;
|
|
37
|
+
}
|
|
38
|
+
export declare function createSsrAdmissionError(detail: SsrAdmissionErrorDetail): SsrAdmissionError;
|
|
39
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/ssr/errors.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,MAAM,MAAM,qBAAqB,GAC7B,mBAAmB,GACnB,qCAAqC,GACrC,wBAAwB,GACxB,0BAA0B,GAC1B,+BAA+B,GAC/B,mBAAmB,CAAC;AAExB,MAAM,MAAM,sBAAsB,GAC9B,SAAS,GACT,cAAc,GACd,aAAa,GACb,WAAW,GACX,SAAS,GACT,OAAO,CAAC;AAEZ,MAAM,MAAM,uBAAuB,GAC/B;IACE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,qCAAqC,CAAC;IACrD,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;CACvF,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;CACtC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,+BAA+B,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC;CACpF,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEN,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;CAC1C;AAID,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,GAAG,iBAAiB,CAc1F"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exact source/build identity shared by the producer, RHI and SSR consumer.
|
|
3
|
+
*
|
|
4
|
+
* Keeping the POD in its own leaf avoids a second copy of the identity shape
|
|
5
|
+
* in the owner inspection types and in the admission module.
|
|
6
|
+
*/
|
|
7
|
+
export type SsrAdmissionIdentity = Readonly<{
|
|
8
|
+
readonly sourceHead: string;
|
|
9
|
+
readonly sourceTree: string;
|
|
10
|
+
readonly lockSha256: string;
|
|
11
|
+
readonly buildSha256: string;
|
|
12
|
+
}>;
|
|
13
|
+
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/ssr/identity.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC,CAAC"}
|
|
@@ -33,7 +33,7 @@ export interface SkinPaletteAllocator {
|
|
|
33
33
|
* Computes M_i = jointWorldTransforms[i] * ibm[i] per joint.
|
|
34
34
|
*
|
|
35
35
|
* `jointWorlds[i]` is taken straight from `Skin.joints[i]` entity's
|
|
36
|
-
* `
|
|
36
|
+
* `GlobalTransform.world` view (a 16-float column-major Float32Array
|
|
37
37
|
* written by propagateTransforms); zero recompose, premultiplies
|
|
38
38
|
* directly against the IBM.
|
|
39
39
|
*/
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { RenderError } from '../errors/render';
|
|
2
|
+
import type { RenderResult } from '../render-contract';
|
|
3
|
+
export type RenderTargetFormat = 'rgba16float' | 'rgba8unorm' | 'rgba8unorm-srgb';
|
|
4
|
+
export type RenderTargetShape = '2d' | 'cube';
|
|
5
|
+
export type RenderTargetMipLevels = 1 | 'full';
|
|
6
|
+
export type RenderTargetSampleCount = 1 | 4;
|
|
7
|
+
export type RenderTargetDepthFormat = 'depth24plus-stencil8' | 'depth32float';
|
|
8
|
+
export interface RenderTargetDescriptor {
|
|
9
|
+
readonly shape: RenderTargetShape;
|
|
10
|
+
readonly width: number;
|
|
11
|
+
readonly height: number;
|
|
12
|
+
readonly format: RenderTargetFormat;
|
|
13
|
+
readonly mipLevels: RenderTargetMipLevels;
|
|
14
|
+
readonly sampleCount: RenderTargetSampleCount;
|
|
15
|
+
readonly depth?: RenderTargetDepthFormat;
|
|
16
|
+
readonly sampled: boolean;
|
|
17
|
+
readonly readback: boolean;
|
|
18
|
+
}
|
|
19
|
+
declare const RenderTargetBrand: unique symbol;
|
|
20
|
+
declare const RenderTargetTextureSourceBrand: unique symbol;
|
|
21
|
+
declare const RenderTargetReadbackTicketBrand: unique symbol;
|
|
22
|
+
/** Opaque logical target lease owned by one Renderer. */
|
|
23
|
+
export interface RenderTarget {
|
|
24
|
+
readonly [RenderTargetBrand]: 'RenderTarget';
|
|
25
|
+
}
|
|
26
|
+
export type RenderTargetTextureAspect = 'color';
|
|
27
|
+
export interface RenderTargetTextureSourceOptions {
|
|
28
|
+
readonly aspect: RenderTargetTextureAspect;
|
|
29
|
+
readonly dimension: RenderTargetShape;
|
|
30
|
+
readonly mipLevel: number;
|
|
31
|
+
}
|
|
32
|
+
/** Renderer-local runtime material source; it is not an asset handle. */
|
|
33
|
+
export interface RenderTargetTextureSource {
|
|
34
|
+
readonly [RenderTargetTextureSourceBrand]: 'RenderTargetTextureSource';
|
|
35
|
+
}
|
|
36
|
+
export interface RenderTargetReadbackRequest {
|
|
37
|
+
readonly mipLevel: number;
|
|
38
|
+
/** Cube array layer to copy; 2D targets accept only the omitted form. */
|
|
39
|
+
readonly face?: number;
|
|
40
|
+
}
|
|
41
|
+
/** One-shot readback request bound to a future matching FrameReceipt. */
|
|
42
|
+
export interface RenderTargetReadbackTicket {
|
|
43
|
+
readonly [RenderTargetReadbackTicketBrand]: 'RenderTargetReadbackTicket';
|
|
44
|
+
}
|
|
45
|
+
/** Bytes released by observe after the ticket's matching frame completes. */
|
|
46
|
+
export interface RenderTargetReadbackData {
|
|
47
|
+
readonly ticket: RenderTargetReadbackTicket;
|
|
48
|
+
readonly bytes: Uint8Array;
|
|
49
|
+
readonly frameId: number;
|
|
50
|
+
readonly deviceGeneration: number;
|
|
51
|
+
readonly mipLevel: number;
|
|
52
|
+
readonly face?: number;
|
|
53
|
+
readonly bytesPerRow: number;
|
|
54
|
+
readonly byteLength: number;
|
|
55
|
+
}
|
|
56
|
+
export interface RenderTargetAdmissionLimits {
|
|
57
|
+
readonly maxTextureDimension2D: number;
|
|
58
|
+
readonly maxBytesPerTarget: number;
|
|
59
|
+
readonly renderableFormats: readonly RenderTargetFormat[];
|
|
60
|
+
readonly sampleCounts: readonly RenderTargetSampleCount[];
|
|
61
|
+
readonly depthFormats: readonly RenderTargetDepthFormat[];
|
|
62
|
+
}
|
|
63
|
+
/** Validate descriptor facts before a renderer allocates a physical target. */
|
|
64
|
+
export declare function admitRenderTargetDescriptor(descriptor: RenderTargetDescriptor, limits: RenderTargetAdmissionLimits): RenderResult<RenderTargetDescriptor, RenderError>;
|
|
65
|
+
export {};
|
|
66
|
+
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/targets/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAKpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,YAAY,GAAG,iBAAiB,CAAC;AAClF,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,MAAM,CAAC;AAC9C,MAAM,MAAM,qBAAqB,GAAG,CAAC,GAAG,MAAM,CAAC;AAC/C,MAAM,MAAM,uBAAuB,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5C,MAAM,MAAM,uBAAuB,GAAG,sBAAsB,GAAG,cAAc,CAAC;AAE9E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAC;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,OAAO,CAAC,MAAM,iBAAiB,EAAE,OAAO,MAAM,CAAC;AAC/C,OAAO,CAAC,MAAM,8BAA8B,EAAE,OAAO,MAAM,CAAC;AAC5D,OAAO,CAAC,MAAM,+BAA+B,EAAE,OAAO,MAAM,CAAC;AAE7D,yDAAyD;AACzD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE,cAAc,CAAC;CAC9C;AAED,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC;AAEhD,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,yEAAyE;AACzE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,CAAC,8BAA8B,CAAC,EAAE,2BAA2B,CAAC;CACxE;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,yEAAyE;AACzE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,CAAC,+BAA+B,CAAC,EAAE,4BAA4B,CAAC;CAC1E;AAED,6EAA6E;AAC7E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC1D,QAAQ,CAAC,YAAY,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC1D,QAAQ,CAAC,YAAY,EAAE,SAAS,uBAAuB,EAAE,CAAC;CAC3D;AA2CD,+EAA+E;AAC/E,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,sBAAsB,EAClC,MAAM,EAAE,2BAA2B,GAClC,YAAY,CAAC,sBAAsB,EAAE,WAAW,CAAC,CA0DnD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { GraphTexture, GraphTextureView, GraphTextureViewDescriptor, RenderGraphBuilder, RenderGraphFrame } from '@forgeax/engine-render-graph';
|
|
2
|
+
import type { Texture, TextureView } from '@forgeax/engine-rhi';
|
|
3
|
+
import type { RenderError } from '../errors/render';
|
|
4
|
+
import type { RenderResult } from '../render-contract';
|
|
5
|
+
import type { RenderTarget, RenderTargetDescriptor } from './contracts';
|
|
6
|
+
export interface RenderTargetGraphInput {
|
|
7
|
+
readonly target: RenderTarget;
|
|
8
|
+
readonly generation: number;
|
|
9
|
+
readonly descriptor: RenderTargetDescriptor;
|
|
10
|
+
readonly texture: Texture;
|
|
11
|
+
readonly view: TextureView;
|
|
12
|
+
readonly resolveView?: TextureView | undefined;
|
|
13
|
+
}
|
|
14
|
+
export interface RenderTargetGraphSubresource {
|
|
15
|
+
readonly mipLevel?: number;
|
|
16
|
+
readonly face?: number;
|
|
17
|
+
}
|
|
18
|
+
export interface RenderTargetGraphProjection {
|
|
19
|
+
readonly ownership: 'imported';
|
|
20
|
+
readonly generation: number;
|
|
21
|
+
readonly texture: GraphTexture;
|
|
22
|
+
readonly view: GraphTextureView;
|
|
23
|
+
readonly sampleView: GraphTextureView;
|
|
24
|
+
readonly resolveView?: GraphTextureView | undefined;
|
|
25
|
+
readonly viewDescriptor: GraphTextureViewDescriptor;
|
|
26
|
+
readonly usage: readonly ('sampled-read' | 'copy-src')[];
|
|
27
|
+
}
|
|
28
|
+
export declare function projectRenderTargetGraph<FrameCtx extends RenderGraphFrame>(graph: RenderGraphBuilder<FrameCtx>, input: RenderTargetGraphInput, subresource?: RenderTargetGraphSubresource): RenderResult<RenderTargetGraphProjection, RenderError>;
|
|
29
|
+
//# sourceMappingURL=graph-projection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-projection.d.ts","sourceRoot":"","sources":["../../src/targets/graph-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,0BAA0B,EAC1B,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,OAAO,EAAiB,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAExE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CAChD;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,cAAc,EAAE,0BAA0B,CAAC;IACpD,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,cAAc,GAAG,UAAU,CAAC,EAAE,CAAC;CAC1D;AAsED,wBAAgB,wBAAwB,CAAC,QAAQ,SAAS,gBAAgB,EACxE,KAAK,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EACnC,KAAK,EAAE,sBAAsB,EAC7B,WAAW,GAAE,4BAAiC,GAC7C,YAAY,CAAC,2BAA2B,EAAE,WAAW,CAAC,CA0DxD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { TextureView } from '@forgeax/engine-rhi';
|
|
2
|
+
import type { RenderError } from '../errors/render';
|
|
3
|
+
import type { RenderResult } from '../render-contract';
|
|
4
|
+
import type { RenderTarget, RenderTargetDescriptor, RenderTargetTextureSource, RenderTargetTextureSourceOptions } from './contracts';
|
|
5
|
+
export interface RenderTargetMaterialSourceView {
|
|
6
|
+
readonly dimension: RenderTargetTextureSourceOptions['dimension'];
|
|
7
|
+
readonly mipLevel: number;
|
|
8
|
+
readonly resolveRequired: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface RenderTargetMaterialSourceBinding {
|
|
11
|
+
readonly source: RenderTargetTextureSource;
|
|
12
|
+
readonly target: RenderTarget;
|
|
13
|
+
readonly generation: number;
|
|
14
|
+
readonly shape: RenderTargetDescriptor['shape'];
|
|
15
|
+
readonly format: RenderTargetDescriptor['format'];
|
|
16
|
+
readonly view: RenderTargetMaterialSourceView;
|
|
17
|
+
/** Renderer-local physical view, present only for the active generation. */
|
|
18
|
+
readonly textureView?: TextureView;
|
|
19
|
+
}
|
|
20
|
+
export interface RenderTargetMaterialSourceExpectation {
|
|
21
|
+
readonly target: RenderTarget;
|
|
22
|
+
readonly generation: number;
|
|
23
|
+
readonly shape: RenderTargetDescriptor['shape'];
|
|
24
|
+
readonly format: RenderTargetDescriptor['format'];
|
|
25
|
+
readonly dimension: RenderTargetTextureSourceOptions['dimension'];
|
|
26
|
+
readonly mipLevel: number;
|
|
27
|
+
}
|
|
28
|
+
/** Resolve a source only inside the renderer-owned material projection. */
|
|
29
|
+
export declare function resolveRenderTargetMaterialSource(source: RenderTargetTextureSource): RenderTargetMaterialSourceBinding | undefined;
|
|
30
|
+
export declare function createRenderTargetMaterialSource(target: RenderTarget, descriptor: RenderTargetDescriptor, options: RenderTargetTextureSourceOptions & {
|
|
31
|
+
readonly generation: number;
|
|
32
|
+
}): RenderResult<RenderTargetMaterialSourceBinding, RenderError>;
|
|
33
|
+
export declare function validateRenderTargetMaterialSource(binding: RenderTargetMaterialSourceBinding, expected: RenderTargetMaterialSourceExpectation): RenderResult<void, RenderError>;
|
|
34
|
+
//# sourceMappingURL=material-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"material-source.d.ts","sourceRoot":"","sources":["../../src/targets/material-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAKpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,YAAY,EACZ,sBAAsB,EACtB,yBAAyB,EACzB,gCAAgC,EACjC,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,SAAS,EAAE,gCAAgC,CAAC,WAAW,CAAC,CAAC;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAClD,QAAQ,CAAC,IAAI,EAAE,8BAA8B,CAAC;IAC9C,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;CACpC;AAED,MAAM,WAAW,qCAAqC;IACpD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,gCAAgC,CAAC,WAAW,CAAC,CAAC;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAQD,2EAA2E;AAC3E,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,yBAAyB,GAChC,iCAAiC,GAAG,SAAS,CAE/C;AAaD,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,sBAAsB,EAClC,OAAO,EAAE,gCAAgC,GAAG;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC1E,YAAY,CAAC,iCAAiC,EAAE,WAAW,CAAC,CAgC9D;AAED,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,iCAAiC,EAC1C,QAAQ,EAAE,qCAAqC,GAC9C,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAqCjC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { RenderError } from '../errors/render';
|
|
2
|
+
import type { RenderResult } from '../render-contract';
|
|
3
|
+
import type { RenderTarget, RenderTargetDescriptor } from './contracts';
|
|
4
|
+
export type RenderTargetOwnerState = 'uninitialized' | 'candidate' | 'active' | 'rebuilding' | 'destroyed';
|
|
5
|
+
export interface RenderTargetPhysicalCandidate {
|
|
6
|
+
readonly generation: number;
|
|
7
|
+
readonly descriptor: RenderTargetDescriptor;
|
|
8
|
+
}
|
|
9
|
+
export interface RenderTargetOwnerInspection {
|
|
10
|
+
readonly token: RenderTarget;
|
|
11
|
+
readonly state: RenderTargetOwnerState;
|
|
12
|
+
readonly generation: number;
|
|
13
|
+
readonly descriptor: RenderTargetDescriptor;
|
|
14
|
+
readonly candidate?: RenderTargetPhysicalCandidate;
|
|
15
|
+
}
|
|
16
|
+
export interface RenderTargetOwnerOptions {
|
|
17
|
+
readonly rendererId: symbol;
|
|
18
|
+
readonly initialGeneration: number;
|
|
19
|
+
}
|
|
20
|
+
export interface RenderTargetOwner {
|
|
21
|
+
create(descriptor: RenderTargetDescriptor): RenderResult<RenderTarget, RenderError>;
|
|
22
|
+
stage(target: RenderTarget, descriptor?: RenderTargetDescriptor): RenderResult<RenderTargetPhysicalCandidate, RenderError>;
|
|
23
|
+
promote(target: RenderTarget, generation: number): RenderResult<void, RenderError>;
|
|
24
|
+
rejectCandidate(target: RenderTarget, generation: number, stage: 'allocation' | 'compile' | 'write' | 'submit'): RenderResult<void, RenderError>;
|
|
25
|
+
beginRecovery(target: RenderTarget, generation: number): RenderResult<void, RenderError>;
|
|
26
|
+
finishRecovery(target: RenderTarget): RenderResult<void, RenderError>;
|
|
27
|
+
retire(target: RenderTarget, generation: number): RenderResult<void, RenderError>;
|
|
28
|
+
destroy(target: RenderTarget): RenderResult<void, RenderError>;
|
|
29
|
+
inspect(target: RenderTarget): RenderResult<RenderTargetOwnerInspection, RenderError>;
|
|
30
|
+
}
|
|
31
|
+
export declare function createRenderTargetOwner(options: RenderTargetOwnerOptions): RenderTargetOwner;
|
|
32
|
+
//# sourceMappingURL=owner.d.ts.map
|