@forgeax/engine-render 0.1.27 → 0.1.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +842 -124
- package/dist/assembly/atmosphere-shader-prewarm.d.ts +6 -0
- package/dist/assembly/atmosphere-shader-prewarm.d.ts.map +1 -0
- package/dist/assembly/dynamic-geometry-host.d.ts +52 -0
- package/dist/assembly/dynamic-geometry-host.d.ts.map +1 -0
- 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 +19 -0
- package/dist/assembly/host-contract.d.ts.map +1 -1
- package/dist/assembly/material/assembly.d.ts +7 -0
- package/dist/assembly/material/assembly.d.ts.map +1 -1
- package/dist/assembly/material-shader-policy.d.ts +3 -1
- package/dist/assembly/material-shader-policy.d.ts.map +1 -1
- package/dist/assembly/recovery/failure-location.d.ts +12 -0
- package/dist/assembly/recovery/failure-location.d.ts.map +1 -0
- package/dist/assembly/recovery/renderer-recover.d.ts +6 -4
- package/dist/assembly/recovery/renderer-recover.d.ts.map +1 -1
- package/dist/assembly/renderer-facade.d.ts.map +1 -1
- package/dist/assembly/renderer-feature-inspection.d.ts +5 -0
- package/dist/assembly/renderer-feature-inspection.d.ts.map +1 -0
- package/dist/assembly/renderer-frame-transaction.d.ts +19 -0
- package/dist/assembly/renderer-frame-transaction.d.ts.map +1 -1
- package/dist/assembly/renderer-helpers.d.ts +3 -0
- package/dist/assembly/renderer-helpers.d.ts.map +1 -1
- package/dist/assembly/renderer-inspection.d.ts +4 -0
- package/dist/assembly/renderer-inspection.d.ts.map +1 -1
- package/dist/assembly/shader-prewarm-policy.d.ts +6 -0
- package/dist/assembly/shader-prewarm-policy.d.ts.map +1 -1
- package/dist/assembly/skin-palette-owner.d.ts +8 -0
- package/dist/assembly/skin-palette-owner.d.ts.map +1 -0
- package/dist/assembly/ssr-shader-prewarm.d.ts +6 -0
- package/dist/assembly/ssr-shader-prewarm.d.ts.map +1 -0
- package/dist/assembly/webgpu-device-loss.d.ts +15 -0
- package/dist/assembly/webgpu-device-loss.d.ts.map +1 -0
- package/dist/assembly/webgpu-pbr-ready.d.ts +38 -0
- package/dist/assembly/webgpu-pbr-ready.d.ts.map +1 -0
- package/dist/assembly/webgpu-ready-mipmap.d.ts +11 -0
- package/dist/assembly/webgpu-ready-mipmap.d.ts.map +1 -0
- package/dist/assembly/webgpu-ready.d.ts +7 -3
- package/dist/assembly/webgpu-ready.d.ts.map +1 -1
- package/dist/assembly/webgpu-renderer-bootstrap.d.ts +10 -0
- package/dist/assembly/webgpu-renderer-bootstrap.d.ts.map +1 -0
- package/dist/assembly/webgpu-renderer-contract.d.ts +62 -0
- package/dist/assembly/webgpu-renderer-contract.d.ts.map +1 -0
- package/dist/assembly/webgpu-renderer-guards.d.ts +9 -0
- package/dist/assembly/webgpu-renderer-guards.d.ts.map +1 -0
- package/dist/assembly/webgpu-renderer-observation.d.ts +6 -0
- package/dist/assembly/webgpu-renderer-observation.d.ts.map +1 -0
- package/dist/assembly/webgpu-renderer-recovery-failure.d.ts +12 -0
- package/dist/assembly/webgpu-renderer-recovery-failure.d.ts.map +1 -0
- package/dist/assembly/webgpu-renderer.d.ts +7 -141
- package/dist/assembly/webgpu-renderer.d.ts.map +1 -1
- package/dist/assembly/webgpu-vertex-layouts.d.ts +28 -84
- package/dist/assembly/webgpu-vertex-layouts.d.ts.map +1 -1
- package/dist/authoring.mjs +3 -3
- package/dist/{chunk-ADHHVYLW.mjs → chunk-33XZFTQU.mjs} +245 -39
- package/dist/chunk-33XZFTQU.mjs.map +1 -0
- package/dist/{chunk-GF523LHF.mjs → chunk-BLXGONR2.mjs} +30 -12
- package/dist/chunk-BLXGONR2.mjs.map +1 -0
- package/dist/{chunk-KM2NOX2I.mjs → chunk-BQVQOQJH.mjs} +958 -254
- package/dist/chunk-BQVQOQJH.mjs.map +1 -0
- package/dist/{chunk-HKXTW355.mjs → chunk-BTWH7BP4.mjs} +386 -17
- package/dist/chunk-BTWH7BP4.mjs.map +1 -0
- package/dist/{chunk-TMIASV2N.mjs → chunk-FUODTTIA.mjs} +3934 -676
- package/dist/chunk-FUODTTIA.mjs.map +1 -0
- package/dist/{chunk-FJ6P52EE.mjs → chunk-ILQ5MEZF.mjs} +3 -17
- package/dist/chunk-ILQ5MEZF.mjs.map +1 -0
- package/dist/{chunk-E34VL5VI.mjs → chunk-JQTSEI3Z.mjs} +3 -3
- package/dist/{chunk-E34VL5VI.mjs.map → chunk-JQTSEI3Z.mjs.map} +1 -1
- package/dist/{chunk-GE3SDD72.mjs → chunk-NICXSHAT.mjs} +16 -38
- package/dist/chunk-NICXSHAT.mjs.map +1 -0
- package/dist/{chunk-ZZ4YQ474.mjs → chunk-NRNXBLIJ.mjs} +577 -7
- package/dist/chunk-NRNXBLIJ.mjs.map +1 -0
- package/dist/{chunk-JDWARUOI.mjs → chunk-PA5DRJNI.mjs} +17 -3
- package/dist/chunk-PA5DRJNI.mjs.map +1 -0
- package/dist/{chunk-XDP6XE5V.mjs → chunk-S4DNKQYQ.mjs} +1118 -446
- package/dist/chunk-S4DNKQYQ.mjs.map +1 -0
- package/dist/components/camera.d.ts +62 -2
- package/dist/components/camera.d.ts.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/instances.d.ts +6 -20
- package/dist/components/instances.d.ts.map +1 -1
- package/dist/components/scene-instance.d.ts +2 -1
- package/dist/components/scene-instance.d.ts.map +1 -1
- package/dist/components/screen-space-reflection.d.ts +14 -0
- package/dist/components/screen-space-reflection.d.ts.map +1 -0
- package/dist/construct-renderer.mjs +13805 -7186
- package/dist/construct-renderer.mjs.map +1 -1
- package/dist/device/gpu-residency.d.ts +11 -17
- package/dist/device/gpu-residency.d.ts.map +1 -1
- package/dist/device/mesh-residency-lifetime.d.ts +21 -0
- package/dist/device/mesh-residency-lifetime.d.ts.map +1 -0
- package/dist/dynamic-geometry.d.ts +125 -0
- package/dist/dynamic-geometry.d.ts.map +1 -0
- package/dist/environment/background.d.ts +6 -0
- package/dist/environment/background.d.ts.map +1 -0
- package/dist/errors/gpu-driven.d.ts +6 -3
- package/dist/errors/gpu-driven.d.ts.map +1 -1
- package/dist/errors/render.d.ts +7 -4
- package/dist/errors/render.d.ts.map +1 -1
- package/dist/extract/camera.d.ts.map +1 -1
- package/dist/extract/gpu-driven.d.ts +33 -3
- package/dist/extract/gpu-driven.d.ts.map +1 -1
- package/dist/features/host.d.ts +23 -1
- package/dist/features/host.d.ts.map +1 -1
- package/dist/features/noise-texture.d.ts +17 -0
- package/dist/features/noise-texture.d.ts.map +1 -0
- package/dist/features/plan.d.ts +83 -2
- package/dist/features/plan.d.ts.map +1 -1
- package/dist/features/prepared-gpu-work.d.ts +37 -4
- package/dist/features/prepared-gpu-work.d.ts.map +1 -1
- package/dist/features/prepared-graphics-store.d.ts.map +1 -1
- package/dist/features/prepared-graphics.d.ts +5 -0
- package/dist/features/prepared-graphics.d.ts.map +1 -1
- package/dist/features/render-graph-compute.d.ts +5 -3
- package/dist/features/render-graph-compute.d.ts.map +1 -1
- package/dist/features/render-graph-contribution.d.ts +11 -3
- package/dist/features/render-graph-contribution.d.ts.map +1 -1
- package/dist/features/render-graph-raster.d.ts +19 -3
- package/dist/features/render-graph-raster.d.ts.map +1 -1
- package/dist/features/types.d.ts +11 -0
- package/dist/features/types.d.ts.map +1 -1
- package/dist/fullscreen-post-process-pass.d.ts +2 -0
- package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
- package/dist/gpu-driven/batch-topology.d.ts +34 -1
- package/dist/gpu-driven/batch-topology.d.ts.map +1 -1
- package/dist/gpu-driven/pbr-program.d.ts +10 -0
- package/dist/gpu-driven/pbr-program.d.ts.map +1 -0
- package/dist/gpu-driven/prepared-draw.d.ts.map +1 -1
- package/dist/gpu-driven/production-raster.d.ts +144 -23
- package/dist/gpu-driven/production-raster.d.ts.map +1 -1
- package/dist/gpu-driven/shadow-views.d.ts +126 -0
- package/dist/gpu-driven/shadow-views.d.ts.map +1 -0
- package/dist/gpu-driven/view-gpu.d.ts +18 -2
- package/dist/gpu-driven/view-gpu.d.ts.map +1 -1
- package/dist/gpu-scene-schema.d.ts +2 -8
- package/dist/gpu-scene-schema.d.ts.map +1 -1
- package/dist/gpu-scene.d.ts +14 -0
- package/dist/gpu-scene.d.ts.map +1 -1
- package/dist/gpu-texture-usage.d.ts +1 -0
- package/dist/gpu-texture-usage.d.ts.map +1 -1
- package/dist/hdrp-buffers.d.ts +6 -0
- package/dist/hdrp-buffers.d.ts.map +1 -1
- package/dist/ibl/frame-resources.d.ts +8 -0
- package/dist/ibl/frame-resources.d.ts.map +1 -0
- package/dist/ibl/skylight-bind-group.d.ts.map +1 -1
- package/dist/index.d.ts +21 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +8 -7
- package/dist/index.mjs.map +1 -1
- package/dist/inspection-types.d.ts +164 -0
- package/dist/inspection-types.d.ts.map +1 -1
- package/dist/instances-derived-bounds.d.ts +11 -0
- package/dist/instances-derived-bounds.d.ts.map +1 -1
- package/dist/instances.d.ts +89 -44
- package/dist/instances.d.ts.map +1 -1
- package/dist/internal.d.ts +3 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.mjs +118 -10
- package/dist/internal.mjs.map +1 -1
- package/dist/lifecycle.d.ts +2 -1
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/material-row.d.ts +5 -0
- package/dist/material-row.d.ts.map +1 -0
- package/dist/materials.d.ts +15 -0
- package/dist/materials.d.ts.map +1 -1
- package/dist/pbr-pipeline.d.ts +21 -5
- package/dist/pbr-pipeline.d.ts.map +1 -1
- package/dist/pipeline/standard-forward-lane.d.ts.map +1 -1
- package/dist/pipeline/standard-output/auto-exposure/capability.d.ts +12 -0
- package/dist/pipeline/standard-output/auto-exposure/capability.d.ts.map +1 -0
- package/dist/pipeline/standard-output/auto-exposure/gpu.d.ts +70 -0
- package/dist/pipeline/standard-output/auto-exposure/gpu.d.ts.map +1 -0
- package/dist/pipeline/standard-output/auto-exposure/graph.d.ts +75 -0
- package/dist/pipeline/standard-output/auto-exposure/graph.d.ts.map +1 -0
- package/dist/pipeline/standard-output/auto-exposure/inspection.d.ts +111 -0
- package/dist/pipeline/standard-output/auto-exposure/inspection.d.ts.map +1 -0
- package/dist/pipeline/standard-output/auto-exposure/oracle.d.ts +16 -0
- package/dist/pipeline/standard-output/auto-exposure/oracle.d.ts.map +1 -0
- package/dist/pipeline/standard-output/auto-exposure/preset.d.ts +14 -0
- package/dist/pipeline/standard-output/auto-exposure/preset.d.ts.map +1 -0
- package/dist/pipeline/standard-output/auto-exposure/state.d.ts +46 -0
- package/dist/pipeline/standard-output/auto-exposure/state.d.ts.map +1 -0
- package/dist/pipeline/standard-output/color-transform.d.ts +27 -0
- package/dist/pipeline/standard-output/color-transform.d.ts.map +1 -0
- package/dist/pipeline/standard-output/graph.d.ts +15 -0
- package/dist/pipeline/standard-output/graph.d.ts.map +1 -0
- package/dist/pipeline/standard-output/lut-admission.d.ts +29 -0
- package/dist/pipeline/standard-output/lut-admission.d.ts.map +1 -0
- package/dist/pipeline/standard-output/lut-gpu.d.ts +48 -0
- package/dist/pipeline/standard-output/lut-gpu.d.ts.map +1 -0
- package/dist/pipeline/standard-output/lut-state.d.ts +68 -0
- package/dist/pipeline/standard-output/lut-state.d.ts.map +1 -0
- package/dist/pipeline/standard-output/resources.d.ts +10 -0
- package/dist/pipeline/standard-output/resources.d.ts.map +1 -0
- package/dist/pipeline/standard-output/types.d.ts +39 -0
- package/dist/pipeline/standard-output/types.d.ts.map +1 -0
- package/dist/pipeline/standard-pipeline.d.ts.map +1 -1
- package/dist/pipeline/standard-post.d.ts +2 -2
- package/dist/pipeline/standard-post.d.ts.map +1 -1
- package/dist/pipeline-builder.d.ts +2 -1
- package/dist/pipeline-builder.d.ts.map +1 -1
- package/dist/pipeline-spec-types.d.ts +4 -0
- package/dist/pipeline-spec-types.d.ts.map +1 -1
- package/dist/pipeline-spec.d.ts +1 -9
- package/dist/pipeline-spec.d.ts.map +1 -1
- package/dist/points-lines/standard-owner.d.ts +1 -1
- package/dist/points-lines/standard-owner.d.ts.map +1 -1
- package/dist/prepare/prepared-graphics-resolver.d.ts +6 -1
- package/dist/prepare/prepared-graphics-resolver.d.ts.map +1 -1
- package/dist/record/dynamic-geometry-consumption.d.ts +15 -0
- package/dist/record/dynamic-geometry-consumption.d.ts.map +1 -0
- package/dist/record/frame-lighting.d.ts +3 -3
- package/dist/record/frame-lighting.d.ts.map +1 -1
- package/dist/record/frame-snapshot.d.ts +106 -5
- package/dist/record/frame-snapshot.d.ts.map +1 -1
- package/dist/record/frame-targets.d.ts.map +1 -1
- package/dist/record/frame.d.ts +39 -4
- package/dist/record/frame.d.ts.map +1 -1
- package/dist/record/main-pass-geometry.d.ts +7 -8
- package/dist/record/main-pass-geometry.d.ts.map +1 -1
- package/dist/record/main-pass-material.d.ts +38 -1
- package/dist/record/main-pass-material.d.ts.map +1 -1
- package/dist/record/main-pass-sprite-draws.d.ts +2 -10
- package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
- package/dist/record/main-pass.d.ts +12 -2
- package/dist/record/main-pass.d.ts.map +1 -1
- package/dist/record/mesh-ssbo.d.ts +15 -6
- package/dist/record/mesh-ssbo.d.ts.map +1 -1
- package/dist/record/prepared-material-bindings.d.ts +19 -0
- package/dist/record/prepared-material-bindings.d.ts.map +1 -0
- package/dist/record/recovery-pipeline.d.ts +2 -9
- package/dist/record/recovery-pipeline.d.ts.map +1 -1
- package/dist/record/render-context.d.ts +76 -26
- package/dist/record/render-context.d.ts.map +1 -1
- package/dist/record/shadow-pass.d.ts +62 -7
- package/dist/record/shadow-pass.d.ts.map +1 -1
- package/dist/record/skybox-post-pass.d.ts +1 -1
- package/dist/record/skybox-post-pass.d.ts.map +1 -1
- package/dist/record/typed-frame-graph.d.ts +35 -7
- package/dist/record/typed-frame-graph.d.ts.map +1 -1
- package/dist/record/view-ubo.d.ts +1 -0
- package/dist/record/view-ubo.d.ts.map +1 -1
- package/dist/recovery/render-system-candidate.d.ts +10 -2
- package/dist/recovery/render-system-candidate.d.ts.map +1 -1
- package/dist/recovery/render-system-roots.d.ts +11 -0
- package/dist/recovery/render-system-roots.d.ts.map +1 -0
- package/dist/recovery/types.d.ts +76 -0
- package/dist/recovery/types.d.ts.map +1 -0
- package/dist/reflection/record-owner.d.ts +0 -2
- package/dist/reflection/record-owner.d.ts.map +1 -1
- package/dist/render-contract.d.ts +185 -30
- package/dist/render-contract.d.ts.map +1 -1
- package/dist/render-graph-primitives.d.ts +1 -0
- package/dist/render-graph-primitives.d.ts.map +1 -1
- package/dist/render-pipeline.d.ts +64 -5
- package/dist/render-pipeline.d.ts.map +1 -1
- package/dist/render-system-extract-tail.d.ts +7 -5
- package/dist/render-system-extract-tail.d.ts.map +1 -1
- package/dist/render-system-extract.d.ts +101 -41
- package/dist/render-system-extract.d.ts.map +1 -1
- package/dist/render-system-projections.d.ts +22 -0
- package/dist/render-system-projections.d.ts.map +1 -0
- package/dist/render-system.d.ts +34 -77
- package/dist/render-system.d.ts.map +1 -1
- package/dist/scene/render-scene-types.d.ts +14 -7
- package/dist/scene/render-scene-types.d.ts.map +1 -1
- package/dist/scene/render-scene.d.ts +29 -11
- package/dist/scene/render-scene.d.ts.map +1 -1
- package/dist/scene/shadow-visibility.d.ts +5 -0
- package/dist/scene/shadow-visibility.d.ts.map +1 -0
- package/dist/ssr/admission.d.ts +70 -1
- package/dist/ssr/admission.d.ts.map +1 -1
- package/dist/ssr/compose.d.ts +13 -0
- package/dist/ssr/compose.d.ts.map +1 -0
- package/dist/ssr/errors.d.ts +35 -0
- package/dist/ssr/errors.d.ts.map +1 -1
- package/dist/ssr/graph.d.ts +60 -0
- package/dist/ssr/graph.d.ts.map +1 -0
- package/dist/ssr/history.d.ts +97 -0
- package/dist/ssr/history.d.ts.map +1 -0
- package/dist/ssr/hiz.d.ts +37 -0
- package/dist/ssr/hiz.d.ts.map +1 -0
- package/dist/ssr/inspection.d.ts +42 -0
- package/dist/ssr/inspection.d.ts.map +1 -0
- package/dist/ssr/resources.d.ts +58 -0
- package/dist/ssr/resources.d.ts.map +1 -0
- package/dist/ssr/temporal.d.ts +38 -0
- package/dist/ssr/temporal.d.ts.map +1 -0
- package/dist/systems/skin-palette-allocator.d.ts +32 -10
- package/dist/systems/skin-palette-allocator.d.ts.map +1 -1
- package/dist/systems/skin-palette-types.d.ts +15 -0
- package/dist/systems/skin-palette-types.d.ts.map +1 -1
- package/dist/systems/transparent-dispatch.d.ts +9 -0
- package/dist/systems/transparent-dispatch.d.ts.map +1 -0
- package/dist/targets/material-source.d.ts +7 -0
- package/dist/targets/material-source.d.ts.map +1 -1
- package/dist/temporal/frame-coordinator.d.ts +7 -0
- package/dist/temporal/frame-coordinator.d.ts.map +1 -1
- package/dist/temporal/gpu.d.ts +8 -0
- package/dist/temporal/gpu.d.ts.map +1 -1
- package/dist/temporal/history.d.ts.map +1 -1
- package/dist/temporal/index.mjs +6 -6
- package/dist/temporal/inspection.d.ts.map +1 -1
- package/dist/temporal/standard-scene-data.d.ts +2 -1
- package/dist/temporal/standard-scene-data.d.ts.map +1 -1
- package/dist/temporal/temporal-view.d.ts +2 -0
- package/dist/temporal/temporal-view.d.ts.map +1 -1
- package/dist/typed-render-graph-primitives.d.ts +35 -1
- package/dist/typed-render-graph-primitives.d.ts.map +1 -1
- package/dist/typed-shadow-passes.d.ts +3 -1
- package/dist/typed-shadow-passes.d.ts.map +1 -1
- package/dist/volume/temporal.d.ts +6 -0
- package/dist/volume/temporal.d.ts.map +1 -1
- package/package.json +21 -20
- package/src/__tests__/auto-exposure-gpu-evidence.ts +291 -0
- package/src/__tests__/auto-exposure-inspection.unit.test.ts +80 -0
- package/src/__tests__/auto-exposure-transaction.integration.test.ts +99 -0
- package/src/__tests__/auto-exposure.browser.test.ts +33 -0
- package/src/__tests__/auto-exposure.dawn.test.ts +33 -0
- package/src/__tests__/detached-inspection.integration.test.ts +5 -0
- package/src/__tests__/device-scope-lifecycle.unit.test.ts +18 -0
- package/src/__tests__/device-scope-stale-matrix.unit.test.ts +18 -0
- package/src/__tests__/docs-gate-green.unit.test.ts +3 -3
- package/src/__tests__/dynamic-geometry-host.unit.test.ts +1123 -0
- package/src/__tests__/dynamic-geometry.unit.test.ts +233 -0
- package/src/__tests__/factory-contract.integration.test.ts +73 -22
- package/src/__tests__/fallback-row-stride-surface.unit.test.ts +19 -0
- package/src/__tests__/feature-depth-input.dawn.test.ts +121 -0
- package/src/__tests__/feature-noise.unit.test.ts +38 -0
- package/src/__tests__/fixtures/taa-resolve-pinned-baseline.wgsl +301 -0
- package/src/__tests__/frame-camera-selection.unit.test.ts +131 -0
- package/src/__tests__/frame-plan-contract.unit.test.ts +24 -0
- package/src/__tests__/frame-targets.unit.test.ts +24 -0
- package/src/__tests__/fullscreen-feature-plan.unit.test.ts +3 -0
- package/src/__tests__/gpu-driven-baseline.characterization.test.ts +79 -0
- package/src/__tests__/gpu-driven-batch-topology-pbr.unit.test.ts +287 -6
- package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +122 -142
- package/src/__tests__/gpu-driven-indirect-raster.browser.test.ts +10 -1
- package/src/__tests__/gpu-driven-lod-cache.unit.test.ts +264 -0
- package/src/__tests__/gpu-driven-mesh-world-identity.unit.test.ts +349 -0
- package/src/__tests__/gpu-driven-pbr.dawn.test.ts +1417 -0
- package/src/__tests__/gpu-driven-pbr.integration.test.ts +21 -0
- package/src/__tests__/gpu-driven-production-fixture.ts +96 -0
- package/src/__tests__/gpu-driven-production.integration.test.ts +1075 -93
- package/src/__tests__/gpu-driven-scaling.unit.test.ts +1 -3
- package/src/__tests__/gpu-driven-shadow-views.browser.test.ts +63 -0
- package/src/__tests__/gpu-driven-shadow-views.dawn.test.ts +294 -0
- package/src/__tests__/gpu-driven-shadow-views.integration.test.ts +97 -0
- package/src/__tests__/gpu-driven-shadow-views.unit.test.ts +168 -0
- package/src/__tests__/gpu-driven-skin-contract.test-d.ts +11 -0
- package/src/__tests__/gpu-driven-view-gpu-evidence.ts +72 -20
- package/src/__tests__/gpu-driven-view-graph.integration.test.ts +30 -9
- package/src/__tests__/gpu-driven-view.unit.test.ts +159 -52
- package/src/__tests__/gpu-pass-timing.browser.test.ts +6 -1
- package/src/__tests__/gpu-resource-store-stride.unit.test.ts +42 -0
- package/src/__tests__/gpu-scene-render-graph-gpu.ts +19 -5
- package/src/__tests__/gpu-scene.dawn.test.ts +40 -13
- package/src/__tests__/gpu-scene.unit.test.ts +559 -33
- package/src/__tests__/instances-culling.integration.test.ts +36 -10
- package/src/__tests__/instances-derived-bounds.unit.test.ts +54 -0
- package/src/__tests__/instances-store.unit.test.ts +242 -39
- package/src/__tests__/ktx2-basis-gpu-consumer.dawn.test.ts +6 -0
- package/src/__tests__/lighting-scene-roundtrip.integration.test.ts +13 -16
- package/src/__tests__/lut-lkg-transaction.integration.test.ts +122 -0
- package/src/__tests__/material-contract-inventory.unit.test.ts +5 -6
- package/src/__tests__/material-dispatch-shader-id.unit.test.ts +51 -0
- package/src/__tests__/material-lane-selection.unit.test.ts +60 -0
- package/src/__tests__/material-numeric-upload.unit.test.ts +53 -0
- package/src/__tests__/material-texture-handles.unit.test.ts +18 -0
- package/src/__tests__/material-texture-source.unit.test.ts +87 -0
- package/src/__tests__/materials-authoring-validation.unit.test.ts +41 -0
- package/src/__tests__/materials-standard-contract.unit.test.ts +52 -2
- package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +4 -0
- package/src/__tests__/mesh-submission-lifetime.unit.test.ts +53 -0
- package/src/__tests__/normal-fallback.dawn.test.ts +122 -0
- package/src/__tests__/particle-material-input-layout.unit.test.ts +104 -0
- package/src/__tests__/physical-clearcoat.integration.test.ts +37 -3
- package/src/__tests__/pipeline-texture-specialization.unit.test.ts +138 -0
- package/src/__tests__/point-shadow-inspection.unit.test.ts +2 -0
- package/src/__tests__/prepared-gpu-driven-pbr-contract.test-d.ts +31 -0
- package/src/__tests__/prepared-gpu-driven-pbr-contract.unit.test.ts +39 -0
- package/src/__tests__/prepared-gpu-driven-pbr.integration.test.ts +35 -4
- package/src/__tests__/prepared-graphics-capability.unit.test.ts +21 -0
- package/src/__tests__/prepared-graphics-pipeline-warmup.unit.test.ts +6 -2
- package/src/__tests__/profiler-phase-catalog.test.ts +5 -0
- package/src/__tests__/public-surface.test-d.ts +3 -0
- package/src/__tests__/recovery-candidate-prepare.contract.test.ts +30 -12
- package/src/__tests__/reflection-fallback-async-publication.unit.test.ts +104 -0
- package/src/__tests__/reflection-probe-record-owner.characterization.unit.test.ts +2 -1
- package/src/__tests__/render-error-code-owner.test-d.ts +4 -0
- package/src/__tests__/render-error-detail-ssot.test-d.ts +22 -0
- package/src/__tests__/render-error-exhaustive.test-d.ts +15 -0
- package/src/__tests__/render-feature-gpu-work.integration.test.ts +285 -2
- package/src/__tests__/render-feature-plan.unit.test.ts +245 -0
- package/src/__tests__/render-feature-shadow-order.unit.test.ts +228 -0
- package/src/__tests__/render-feature-zero-work.unit.test.ts +35 -1
- package/src/__tests__/render-graph-fallback.integration.test.ts +2 -2
- package/src/__tests__/render-owner-cohesion.unit.test.ts +55 -0
- package/src/__tests__/render-scene-mixed-updates.integration.test.ts +426 -0
- package/src/__tests__/render-scene-projection.unit.test.ts +914 -23
- package/src/__tests__/render-scene-resource-updates.integration.test.ts +214 -0
- package/src/__tests__/render-scene-skin-lifecycle.integration.test.ts +173 -0
- package/src/__tests__/render-scene-temporal-retry.unit.test.ts +133 -0
- package/src/__tests__/render-target-material-source.test-d.ts +27 -3
- package/src/__tests__/renderer-factory-material-contract.unit.test.ts +61 -1
- package/src/__tests__/renderer-frame-transaction.integration.test.ts +923 -5
- package/src/__tests__/shader-manifest-fixture.ts +39 -0
- package/src/__tests__/skin-motion-regression.unit.test.ts +0 -33
- package/src/__tests__/skin-palette-persistent.integration.test.ts +28 -0
- package/src/__tests__/skin-palette-persistent.unit.test.ts +247 -0
- package/src/__tests__/skinned-shadow-caster.test.ts +118 -14
- package/src/__tests__/specular-environment-scale.dawn.test.ts +156 -0
- package/src/__tests__/ssr-admission-matrix.integration.test.ts +7 -1
- package/src/__tests__/ssr-confidence-compose.unit.test.ts +84 -0
- package/src/__tests__/ssr-coordinate-oracle.unit.test.ts +28 -0
- package/src/__tests__/ssr-format-probe-gating.integration.test.ts +82 -0
- package/src/__tests__/ssr-gpu-dispatch.browser.test.ts +91 -0
- package/src/__tests__/ssr-gpu-dispatch.dawn.test.ts +112 -0
- package/src/__tests__/ssr-gpu-dispatch.ts +946 -0
- package/src/__tests__/ssr-graph-topology.unit.test.ts +104 -0
- package/src/__tests__/ssr-history-filter.dawn.test.ts +198 -0
- package/src/__tests__/ssr-hit-color.dawn.test.ts +273 -0
- package/src/__tests__/ssr-hiz-odd-reduction.dawn.test.ts +569 -0
- package/src/__tests__/ssr-hiz-rescue.dawn.test.ts +279 -0
- package/src/__tests__/ssr-hiz.browser.test.ts +150 -0
- package/src/__tests__/ssr-hiz.dawn.test.ts +150 -0
- package/src/__tests__/ssr-hiz.unit.test.ts +56 -0
- package/src/__tests__/ssr-inspection.unit.test.ts +105 -0
- package/src/__tests__/ssr-memory-budget.unit.test.ts +45 -0
- package/src/__tests__/ssr-performance-sequence-aggregation.unit.test.ts +15 -0
- package/src/__tests__/ssr-public-surface.test-d.ts +37 -0
- package/src/__tests__/ssr-receiver-coverage.dawn.test.ts +387 -0
- package/src/__tests__/ssr-reflection-mip-reducer.dawn.test.ts +309 -0
- package/src/__tests__/ssr-reprojection-probe.ts +90 -0
- package/src/__tests__/ssr-roughness-mip.dawn.test.ts +163 -0
- package/src/__tests__/ssr-shader-prewarm.unit.test.ts +59 -0
- package/src/__tests__/ssr-spatial.integration.test.ts +141 -0
- package/src/__tests__/ssr-stable-lattice.dawn.test.ts +475 -0
- package/src/__tests__/ssr-temporal-history.unit.test.ts +202 -0
- package/src/__tests__/ssr-texel-crossing.dawn.test.ts +448 -0
- package/src/__tests__/ssr-zero-work.integration.test.ts +87 -0
- package/src/__tests__/standard-cluster-variant-resolution.unit.test.ts +44 -12
- package/src/__tests__/standard-clustered-pipeline.unit.test.ts +29 -0
- package/src/__tests__/standard-output-chain-contract.unit.test.ts +99 -0
- package/src/__tests__/standard-output-chain.integration.test.ts +73 -0
- package/src/__tests__/standard-output-gpu-evidence.ts +205 -0
- package/src/__tests__/standard-output.browser.test.ts +15 -0
- package/src/__tests__/standard-output.dawn.test.ts +15 -0
- package/src/__tests__/standard-pbr-artifact-assembly.unit.test.ts +38 -0
- package/src/__tests__/standard-pipeline.integration.test.ts +320 -3
- package/src/__tests__/standard-profile-oracle.unit.test.ts +22 -0
- package/src/__tests__/standard-surface-lighting.unit.test.ts +41 -0
- package/src/__tests__/standard-texture-specialization.dawn.test.ts +141 -0
- package/src/__tests__/surface-adjacent-regressions.integration.test.ts +6 -3
- package/src/__tests__/taa-coverage-edge.dawn.test.ts +193 -0
- package/src/__tests__/taa-history-clipping.dawn.test.ts +328 -0
- package/src/__tests__/taa-neighborhood-equivalence.dawn.test.ts +778 -0
- package/src/__tests__/taa-stability-feedback.browser.test.ts +23 -0
- package/src/__tests__/taa-stability-feedback.dawn.test.ts +68 -0
- package/src/__tests__/taa-stability-feedback.ts +341 -0
- package/src/__tests__/temporal-history-lifecycle.unit.test.ts +49 -7
- package/src/__tests__/temporal-reset-matrix.unit.test.ts +9 -0
- package/src/__tests__/temporal-transaction.integration.test.ts +28 -0
- package/src/__tests__/texture-usage-surface.unit.test.ts +4 -2
- package/src/__tests__/typed-pipeline-topology.unit.test.ts +109 -4
- package/src/__tests__/typed-scene-pass-material-cache.integration.test.ts +126 -0
- package/src/__tests__/vertex-layouts-ssot.unit.test.ts +47 -0
- package/src/__tests__/visibility-extract.perf.test.ts +20 -8
- package/src/__tests__/visibility-instances.integration.test.ts +19 -7
- package/src/__tests__/visibility-producer-matrix.integration.test.ts +20 -9
- package/src/assembly/atmosphere-shader-prewarm.ts +38 -0
- package/src/assembly/dynamic-geometry-host.ts +887 -0
- package/src/assembly/dynamic-geometry-runtime.ts +71 -0
- package/src/assembly/factory.ts +4 -0
- package/src/assembly/gpu-driven-owner.ts +29 -0
- package/src/assembly/host-contract.ts +36 -0
- package/src/assembly/material/assembly.ts +38 -0
- package/src/assembly/material-shader-policy.ts +71 -28
- package/src/assembly/recovery/failure-location.ts +62 -0
- package/src/assembly/recovery/renderer-recover.ts +19 -17
- package/src/assembly/renderer-facade.ts +29 -0
- package/src/assembly/renderer-feature-inspection.ts +13 -0
- package/src/assembly/renderer-frame-transaction.ts +63 -0
- package/src/assembly/renderer-helpers.ts +26 -0
- package/src/assembly/renderer-inspection.ts +6 -0
- package/src/assembly/shader-prewarm-policy.ts +32 -0
- package/src/assembly/skin-palette-owner.ts +21 -0
- package/src/assembly/ssr-shader-prewarm.ts +41 -0
- package/src/assembly/webgpu-device-loss.ts +75 -0
- package/src/assembly/webgpu-pbr-ready.ts +232 -0
- package/src/assembly/webgpu-ready-mipmap.ts +26 -0
- package/src/assembly/webgpu-ready.ts +142 -121
- package/src/assembly/webgpu-renderer-bootstrap.ts +85 -0
- package/src/assembly/webgpu-renderer-contract.ts +69 -0
- package/src/assembly/webgpu-renderer-guards.ts +32 -0
- package/src/assembly/webgpu-renderer-observation.ts +43 -0
- package/src/assembly/webgpu-renderer-recovery-failure.ts +62 -0
- package/src/assembly/webgpu-renderer.ts +675 -614
- package/src/assembly/webgpu-vertex-layouts.ts +233 -87
- package/src/components/__tests__/camera-exposure.contract.unit.test.ts +153 -0
- package/src/components/camera.ts +287 -7
- package/src/components/index.ts +1 -0
- package/src/components/instances.ts +45 -18
- package/src/components/scene-instance.ts +2 -1
- package/src/components/screen-space-reflection.ts +21 -0
- package/src/components/sprite-animation.ts +3 -3
- package/src/components/sprite-instances.ts +1 -1
- package/src/device/gpu-residency.ts +96 -93
- package/src/device/mesh-residency-lifetime.ts +73 -0
- package/src/dynamic-geometry.ts +736 -0
- package/src/environment/background.ts +263 -0
- package/src/errors/gpu-driven.ts +39 -5
- package/src/errors/render.ts +27 -3
- package/src/extract/camera.ts +26 -1
- package/src/extract/gpu-driven.ts +185 -10
- package/src/features/host.ts +237 -19
- package/src/features/noise-texture.ts +91 -0
- package/src/features/plan.ts +553 -24
- package/src/features/prepared-gpu-work.ts +631 -49
- package/src/features/prepared-graphics-store.ts +31 -0
- package/src/features/prepared-graphics.ts +5 -0
- package/src/features/render-graph-compute.ts +41 -8
- package/src/features/render-graph-contribution.ts +141 -3
- package/src/features/render-graph-raster.ts +143 -30
- package/src/features/types.ts +11 -0
- package/src/fullscreen-post-process-pass.ts +3 -0
- package/src/gpu-driven/batch-topology.ts +424 -102
- package/src/gpu-driven/pbr-program.ts +31 -0
- package/src/gpu-driven/prepared-draw.ts +29 -4
- package/src/gpu-driven/production-raster.ts +2267 -694
- package/src/gpu-driven/shadow-views.ts +539 -0
- package/src/gpu-driven/view-gpu.ts +188 -41
- package/src/gpu-scene-schema.ts +52 -11
- package/src/gpu-scene.ts +186 -99
- package/src/gpu-texture-usage.ts +1 -0
- package/src/hdrp-buffers.ts +72 -36
- package/src/ibl/frame-resources.ts +38 -0
- package/src/ibl/skylight-bind-group.ts +5 -4
- package/src/index.ts +125 -1
- package/src/inspection-types.ts +191 -0
- package/src/instances-derived-bounds.ts +258 -34
- package/src/instances.ts +459 -150
- package/src/internal.ts +22 -0
- package/src/lifecycle.ts +2 -0
- package/src/material-row.ts +145 -0
- package/src/materials.ts +44 -8
- package/src/pbr-pipeline.ts +159 -17
- package/src/pipeline/standard-forward-lane.ts +52 -24
- package/src/pipeline/standard-output/__tests__/lut-admission.unit.test.ts +103 -0
- package/src/pipeline/standard-output/auto-exposure/__tests__/capability.unit.test.ts +40 -0
- package/src/pipeline/standard-output/auto-exposure/__tests__/gpu.contract.unit.test.ts +125 -0
- package/src/pipeline/standard-output/auto-exposure/__tests__/graph.contract.unit.test.ts +94 -0
- package/src/pipeline/standard-output/auto-exposure/__tests__/oracle.test.ts +108 -0
- package/src/pipeline/standard-output/auto-exposure/__tests__/preset.test.ts +26 -0
- package/src/pipeline/standard-output/auto-exposure/capability.ts +38 -0
- package/src/pipeline/standard-output/auto-exposure/gpu.ts +567 -0
- package/src/pipeline/standard-output/auto-exposure/graph.ts +221 -0
- package/src/pipeline/standard-output/auto-exposure/inspection.ts +231 -0
- package/src/pipeline/standard-output/auto-exposure/oracle.ts +291 -0
- package/src/pipeline/standard-output/auto-exposure/preset.ts +28 -0
- package/src/pipeline/standard-output/auto-exposure/state.ts +156 -0
- package/src/pipeline/standard-output/color-transform.ts +124 -0
- package/src/pipeline/standard-output/graph.ts +139 -0
- package/src/pipeline/standard-output/lut-admission.ts +121 -0
- package/src/pipeline/standard-output/lut-gpu.ts +399 -0
- package/src/pipeline/standard-output/lut-state.ts +176 -0
- package/src/pipeline/standard-output/resources.ts +121 -0
- package/src/pipeline/standard-output/types.ts +58 -0
- package/src/pipeline/standard-pipeline.ts +192 -59
- package/src/pipeline/standard-post.ts +186 -27
- package/src/pipeline-builder.ts +16 -6
- package/src/pipeline-spec-types.ts +4 -0
- package/src/pipeline-spec.ts +37 -29
- package/src/points-lines/standard-owner.ts +6 -14
- package/src/prepare/prepared-graphics-resolver.ts +9 -2
- package/src/record/__tests__/material-slot-plan.unit.test.ts +48 -0
- package/src/record/__tests__/mesh-ssbo.unit.test.ts +40 -1
- package/src/record/__tests__/recovery-pipeline.unit.test.ts +2 -29
- package/src/record/__tests__/sprite-material-abi.unit.test.ts +36 -5
- package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +45 -0
- package/src/record/__tests__/view-ubo-layout.unit.test.ts +5 -0
- package/src/record/dynamic-geometry-consumption.ts +59 -0
- package/src/record/frame-lighting.ts +12 -11
- package/src/record/frame-snapshot.ts +133 -23
- package/src/record/frame-targets.ts +9 -0
- package/src/record/frame.ts +727 -133
- package/src/record/main-pass-geometry.ts +162 -98
- package/src/record/main-pass-material.ts +115 -26
- package/src/record/main-pass-sprite-draws.ts +18 -107
- package/src/record/main-pass.ts +78 -8
- package/src/record/material-uniforms.ts +1 -1
- package/src/record/mesh-ssbo.ts +59 -15
- package/src/record/prepared-material-bindings.ts +234 -0
- package/src/record/recovery-pipeline.ts +59 -136
- package/src/record/render-context.ts +92 -22
- package/src/record/shadow-pass.ts +1231 -209
- package/src/record/skybox-post-pass.ts +14 -3
- package/src/record/typed-frame-graph.ts +1006 -53
- package/src/record/view-ubo.ts +11 -0
- package/src/recovery/render-system-candidate.ts +90 -66
- package/src/recovery/render-system-roots.ts +113 -0
- package/src/recovery/types.ts +77 -0
- package/src/reflection/record-owner.ts +26 -54
- package/src/render-contract.ts +219 -25
- package/src/render-graph-primitives.ts +6 -2
- package/src/render-pipeline.ts +70 -1
- package/src/render-system-extract-tail.ts +409 -160
- package/src/render-system-extract.ts +376 -102
- package/src/render-system-projections.ts +241 -0
- package/src/render-system.ts +692 -791
- package/src/scene/render-scene-types.ts +13 -4
- package/src/scene/render-scene.ts +569 -355
- package/src/scene/shadow-visibility.ts +21 -0
- package/src/ssr/admission.ts +380 -14
- package/src/ssr/compose.ts +144 -0
- package/src/ssr/errors.ts +48 -0
- package/src/ssr/graph.ts +777 -0
- package/src/ssr/history.ts +436 -0
- package/src/ssr/hiz.ts +124 -0
- package/src/ssr/inspection.ts +124 -0
- package/src/ssr/resources.ts +202 -0
- package/src/ssr/temporal.ts +164 -0
- package/src/systems/skin-palette-allocator.ts +495 -148
- package/src/systems/skin-palette-types.ts +17 -0
- package/src/systems/transparent-dispatch.ts +90 -0
- package/src/targets/material-source.ts +34 -0
- package/src/temporal/coverage.ts +1 -1
- package/src/temporal/frame-coordinator.ts +23 -2
- package/src/temporal/gpu.ts +74 -12
- package/src/temporal/history.ts +3 -1
- package/src/temporal/inspection.ts +2 -1
- package/src/temporal/standard-scene-data.ts +3 -1
- package/src/temporal/temporal-view.ts +3 -0
- package/src/transmission/__tests__/standard-transmission.dawn.test.ts +204 -139
- package/src/typed-render-graph-primitives.ts +266 -74
- package/src/typed-shadow-passes.ts +122 -12
- package/src/volume/temporal.ts +10 -0
- package/dist/chunk-ADHHVYLW.mjs.map +0 -1
- package/dist/chunk-FJ6P52EE.mjs.map +0 -1
- package/dist/chunk-GE3SDD72.mjs.map +0 -1
- package/dist/chunk-GF523LHF.mjs.map +0 -1
- package/dist/chunk-HKXTW355.mjs.map +0 -1
- package/dist/chunk-JDWARUOI.mjs.map +0 -1
- package/dist/chunk-KM2NOX2I.mjs.map +0 -1
- package/dist/chunk-TMIASV2N.mjs.map +0 -1
- package/dist/chunk-XDP6XE5V.mjs.map +0 -1
- package/dist/chunk-ZZ4YQ474.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,15 +1,17 @@
|
|
|
1
|
-
import type { ColorValueDomain, GraphAccess, GraphResourceResolver, GraphTexture, GraphTextureDescriptor, GraphTextureView, GraphTextureViewDescriptor, RenderGraphBuilder, RenderGraphError, RenderGraphFrame } from '@forgeax/engine-render-graph';
|
|
2
|
-
import type { BindGroup, RhiCaps, RhiError, RhiRenderPassEncoder, TextureFormat } from '@forgeax/engine-rhi';
|
|
1
|
+
import type { ColorValueDomain, GraphAccess, GraphBuffer, GraphResourceResolver, GraphTexture, GraphTextureDescriptor, GraphTextureView, GraphTextureViewDescriptor, RenderGraphBuilder, RenderGraphError, RenderGraphFrame } from '@forgeax/engine-render-graph';
|
|
2
|
+
import type { BindGroup, Buffer, RhiCaps, RhiError, RhiRenderPassEncoder, TextureFormat } from '@forgeax/engine-rhi';
|
|
3
3
|
import { type Result } from '@forgeax/engine-types';
|
|
4
4
|
import type { Tonemap } from './components/camera';
|
|
5
5
|
import type { DirectionalShadowFilterLabel } from './components/directional-shadow-filter';
|
|
6
6
|
import type { RenderError } from './errors/render';
|
|
7
7
|
import type { RenderFeatureTargetKind } from './features/targets';
|
|
8
|
+
import type { ShadowViewIdentity, ShadowViewProjection } from './gpu-driven/shadow-views';
|
|
8
9
|
import type { StandardTopologyInputValue } from './pipeline/standard-lighting/topology';
|
|
9
10
|
import { STANDARD_POST_STAGE_NAMES, type StandardProfile } from './pipeline/standard-profile';
|
|
10
11
|
import type { SurfaceProfile } from './record/render-context';
|
|
11
|
-
import type { RenderPipelineContext } from './render-contract';
|
|
12
|
+
import type { FrameObservationDomain, RenderPipelineContext } from './render-contract';
|
|
12
13
|
import type { OcclusionFrameProjection } from './scene/visibility/occlusion-runtime';
|
|
14
|
+
import type { SsrSpatialAdmission } from './ssr/admission';
|
|
13
15
|
import type { TransmissionDemand } from './transmission/projection';
|
|
14
16
|
export type { RenderPipelineContext } from './render-contract';
|
|
15
17
|
export type RenderColorDomain = 'linearHdr' | 'linearLdr' | 'displayEncoded';
|
|
@@ -73,6 +75,8 @@ export interface RenderPipelineTopology {
|
|
|
73
75
|
* clear directly to the surface.
|
|
74
76
|
*/
|
|
75
77
|
readonly clearOnly?: boolean | undefined;
|
|
78
|
+
/** Selected atmosphere requires the graph-owned sky producer and background. */
|
|
79
|
+
readonly atmosphere?: boolean | undefined;
|
|
76
80
|
/** Whether Standard main draws carry the producer-owned fallback MRT. */
|
|
77
81
|
readonly reflectionFallback?: {
|
|
78
82
|
readonly enabled: boolean;
|
|
@@ -85,6 +89,19 @@ export interface RenderPipelineTopology {
|
|
|
85
89
|
readonly profile?: SurfaceProfile | undefined;
|
|
86
90
|
};
|
|
87
91
|
readonly camera: Pick<RenderPipelineContext['camera'], 'tonemap' | 'antialias' | 'bloom'>;
|
|
92
|
+
/** Frame-stable Standard output policy; no raw RHI handles enter topology. */
|
|
93
|
+
readonly output?: {
|
|
94
|
+
readonly autoExposure: boolean;
|
|
95
|
+
/** Camera-owned Bradford white balance is part of the same output pass. */
|
|
96
|
+
readonly whiteBalance?: boolean;
|
|
97
|
+
readonly temperature?: number;
|
|
98
|
+
readonly tint?: number;
|
|
99
|
+
readonly colorLut: boolean;
|
|
100
|
+
readonly colorLutStrength: number;
|
|
101
|
+
readonly lutSourceKey?: string;
|
|
102
|
+
};
|
|
103
|
+
/** Detached spatial SSR admission; graph resources remain renderer-owned. */
|
|
104
|
+
readonly ssr?: SsrSpatialAdmission | undefined;
|
|
88
105
|
readonly temporal?: {
|
|
89
106
|
readonly taa: boolean;
|
|
90
107
|
readonly motionBlur: boolean;
|
|
@@ -175,10 +192,22 @@ export interface RenderPipelineFeatureTarget {
|
|
|
175
192
|
}
|
|
176
193
|
export interface RenderPipelineGpuDrivenProjection {
|
|
177
194
|
readonly accesses: readonly GraphAccess[];
|
|
178
|
-
encode(viewBindGroup: BindGroup, pass: RhiRenderPassEncoder, resources: GraphResourceResolver): void;
|
|
195
|
+
encode(viewBindGroup: BindGroup, pass: RhiRenderPassEncoder, resources: GraphResourceResolver, frameResources: GpuDrivenStandardPbrFrameResources): void;
|
|
196
|
+
}
|
|
197
|
+
/** Producer-owned Standard PBR resources resolved during graph execution. */
|
|
198
|
+
export interface GpuDrivenStandardPbrFrameResources {
|
|
199
|
+
readonly materialBindGroups: (BindGroup | undefined)[];
|
|
200
|
+
/** Frame-global material slots keyed by the retained scene entity identity. */
|
|
201
|
+
readonly materialSlotIndicesByEntity: Map<number, readonly number[]>;
|
|
202
|
+
readonly instancesBindGroup: BindGroup;
|
|
203
|
+
readonly materialStride: number;
|
|
204
|
+
/** Exact producer-owned numeric Material table consumed by scene-index PBR. */
|
|
205
|
+
readonly sceneMaterialBuffer: Buffer;
|
|
179
206
|
}
|
|
180
207
|
export interface RenderPipelineBuildContext<FrameCtx extends RenderPipelineFrame> {
|
|
181
208
|
readonly graph: RenderGraphBuilder<FrameCtx>;
|
|
209
|
+
/** Explicit receipt-bound color domains requested for this frame. */
|
|
210
|
+
readonly observationCaptureDomains?: readonly FrameObservationDomain[] | undefined;
|
|
182
211
|
/**
|
|
183
212
|
* The single prepared Standard lighting projection for this frame. The
|
|
184
213
|
* Forward and Deferred adapters consume this value; they never inspect raw
|
|
@@ -191,6 +220,23 @@ export interface RenderPipelineBuildContext<FrameCtx extends RenderPipelineFrame
|
|
|
191
220
|
* inferring rgba16float support from the selected surface format.
|
|
192
221
|
*/
|
|
193
222
|
readonly capabilities?: Pick<RhiCaps, 'rgba16floatRenderable'>;
|
|
223
|
+
/** Prepared typed graph resources owned by RenderSystem/RenderFrameState. */
|
|
224
|
+
readonly standardOutput?: {
|
|
225
|
+
readonly autoExposure?: {
|
|
226
|
+
readonly histogram: GraphBuffer;
|
|
227
|
+
readonly state: GraphBuffer;
|
|
228
|
+
readonly candidate: GraphBuffer;
|
|
229
|
+
/** Authored camera/time parameters consumed by the GPU adapt stage. */
|
|
230
|
+
readonly parameters: GraphBuffer;
|
|
231
|
+
};
|
|
232
|
+
readonly colorLut?: {
|
|
233
|
+
readonly view: GraphTextureView;
|
|
234
|
+
readonly sampler: import('@forgeax/engine-rhi').Sampler;
|
|
235
|
+
readonly strength: number;
|
|
236
|
+
readonly bindGroupLayout: import('@forgeax/engine-rhi').BindGroupLayout;
|
|
237
|
+
readonly bindGroup: BindGroup;
|
|
238
|
+
};
|
|
239
|
+
};
|
|
194
240
|
/**
|
|
195
241
|
* Renderer-owned TAA history targets. The graph sees only imported typed
|
|
196
242
|
* targets; opaque RHI handles remain inside RenderFrameState.
|
|
@@ -200,6 +246,16 @@ export interface RenderPipelineBuildContext<FrameCtx extends RenderPipelineFrame
|
|
|
200
246
|
readonly previousColor: RenderPipelineTarget;
|
|
201
247
|
readonly currentTemporal: RenderPipelineTarget;
|
|
202
248
|
readonly previousTemporal: RenderPipelineTarget;
|
|
249
|
+
readonly currentStability: RenderPipelineTarget;
|
|
250
|
+
readonly previousStability: RenderPipelineTarget;
|
|
251
|
+
};
|
|
252
|
+
/** Renderer-owned SSR temporal history targets for the admitted spatial chain. */
|
|
253
|
+
readonly ssrHistory?: {
|
|
254
|
+
readonly previous: RenderPipelineTarget;
|
|
255
|
+
readonly output: RenderPipelineTarget;
|
|
256
|
+
readonly previousSurface: RenderPipelineTarget;
|
|
257
|
+
readonly outputSurface: RenderPipelineTarget;
|
|
258
|
+
readonly params: GraphBuffer;
|
|
203
259
|
};
|
|
204
260
|
/** Renderer-owned, prewarmed encoder for one graph mip level. */
|
|
205
261
|
readonly encodeTransmissionMip?: (input: {
|
|
@@ -216,7 +272,10 @@ export interface RenderPipelineBuildContext<FrameCtx extends RenderPipelineFrame
|
|
|
216
272
|
readonly format: TextureFormat;
|
|
217
273
|
readonly sampleCount: 1 | 4;
|
|
218
274
|
}): Result<RenderPipelineGpuDrivenProjection | undefined, RenderPipelineBuildError>;
|
|
219
|
-
|
|
275
|
+
projectGpuDrivenShadow?(identity: ShadowViewIdentity): Result<ShadowViewProjection | undefined, RenderGraphError>;
|
|
276
|
+
contributeFeatures(targets: readonly RenderPipelineFeatureTarget[], semanticTargets?: readonly RenderPipelineTarget[], namedTargets?: Readonly<Record<string, RenderPipelineTarget>>, standardSurfaceAccesses?: readonly GraphAccess[]): Result<void, RenderPipelineBuildError>;
|
|
277
|
+
/** Prepare feature-owned shadow draws and their early compute producers once. */
|
|
278
|
+
contributeShadowFeatures?(): Result<import('./features/render-graph-raster').RenderFeatureShadowDraws<FrameCtx> | undefined, RenderPipelineBuildError>;
|
|
220
279
|
/** Add renderer-owned cube capture work to the active pipeline graph. */
|
|
221
280
|
contributeCubeCaptures?(): Result<void, RenderPipelineBuildError>;
|
|
222
281
|
/** Whether a producer-owned feature is installed for this graph build. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-pipeline.d.ts","sourceRoot":"","sources":["../src/render-pipeline.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACrB,YAAY,EACZ,sBAAsB,EACtB,gBAAgB,EAChB,0BAA0B,EAC1B,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACV,SAAS,EACT,OAAO,EACP,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAC3F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"render-pipeline.d.ts","sourceRoot":"","sources":["../src/render-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,16 +2,18 @@ import type { AssetRegistry } from '@forgeax/engine-assets-runtime';
|
|
|
2
2
|
import type { World } from '@forgeax/engine-ecs';
|
|
3
3
|
import type { MaterialCookProgramContext } from '@forgeax/engine-pack/material-cook';
|
|
4
4
|
import type { MaterialShaderArtifact } from '@forgeax/engine-shader';
|
|
5
|
-
import type
|
|
5
|
+
import { type InstanceCollectionStore } from './instances';
|
|
6
6
|
import type { ExtractedFrame, ExtractFramesOwner, ExtractPipelineSurface, MaterialSnapshot, MaterialSnapshotCachesByWorld, PreparedExtractContext } from './render-system-extract';
|
|
7
7
|
export declare function extractFrames(worlds: readonly World[], owner: number | ExtractFramesOwner, assets?: AssetRegistry | null, pipelineState?: ExtractPipelineSurface | null, materialSnapshotCachesByWorld?: MaterialSnapshotCachesByWorld, options?: {
|
|
8
8
|
readonly materialContext?: MaterialCookProgramContext;
|
|
9
9
|
readonly cull?: 'normal' | 'none';
|
|
10
|
-
readonly renderables?: 'full' | 'none'
|
|
11
|
-
|
|
10
|
+
readonly renderables?: 'full' | 'none' | {
|
|
11
|
+
readonly kind: 'partial';
|
|
12
|
+
readonly entitiesByWorld: readonly (ReadonlySet<number> | undefined)[];
|
|
13
|
+
};
|
|
12
14
|
readonly retainHidden?: boolean;
|
|
13
|
-
readonly getMaterialShaderArtifact?: (materialShaderId: string) => MaterialShaderArtifact | undefined;
|
|
14
|
-
readonly instanceCollections?:
|
|
15
|
+
readonly getMaterialShaderArtifact?: (materialShaderId: string, vertexColorAvailable?: boolean) => MaterialShaderArtifact | undefined;
|
|
16
|
+
readonly instanceCollections?: InstanceCollectionStore;
|
|
15
17
|
}): ExtractedFrame;
|
|
16
18
|
export declare function extractFrame(world: World, context: PreparedExtractContext): ExtractedFrame;
|
|
17
19
|
export declare function defaultMaterialSnapshot(materialHandle?: number): MaterialSnapshot;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-system-extract-tail.d.ts","sourceRoot":"","sources":["../src/render-system-extract-tail.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAKpE,OAAO,KAAK,EAAgB,KAAK,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"render-system-extract-tail.d.ts","sourceRoot":"","sources":["../src/render-system-extract-tail.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAKpE,OAAO,KAAK,EAAgB,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAU/D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAGrF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AA2ErE,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,aAAa,CAAC;AAcrB,OAAO,KAAK,EAKV,cAAc,EAEd,kBAAkB,EAClB,sBAAsB,EAGtB,gBAAgB,EAEhB,6BAA6B,EAM7B,sBAAsB,EASvB,MAAM,yBAAyB,CAAC;AAqDjC,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,KAAK,EAAE,MAAM,GAAG,kBAAkB,EAClC,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI,EAC7B,aAAa,CAAC,EAAE,sBAAsB,GAAG,IAAI,EAC7C,6BAA6B,CAAC,EAAE,6BAA6B,EAC7D,OAAO,GAAE;IACP,QAAQ,CAAC,eAAe,CAAC,EAAE,0BAA0B,CAAC;IACtD,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EACjB,MAAM,GACN,MAAM,GACN;QACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;QACzB,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC;KACxE,CAAC;IACN,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CACnC,gBAAgB,EAAE,MAAM,EACxB,oBAAoB,CAAC,EAAE,OAAO,KAC3B,sBAAsB,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;CACnD,GACL,cAAc,CA8ahB;AAsED,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,sBAAsB,GAAG,cAAc,CA8hF1F;AAUD,wBAAgB,uBAAuB,CAAC,cAAc,SAAI,GAAG,gBAAgB,CAI5E"}
|
|
@@ -4,19 +4,20 @@ import type { Component, ComponentSchema, EntityHandle, World } from '@forgeax/e
|
|
|
4
4
|
import { type Mat4, type Vec3 } from '@forgeax/engine-math';
|
|
5
5
|
import { type AssetGuid as AssetGuidBytes } from '@forgeax/engine-pack/guid';
|
|
6
6
|
import { type MaterialShaderArtifact } from '@forgeax/engine-shader';
|
|
7
|
-
import type { Handle, MaterialAsset, MaterialColorParameterSchema, MaterialParameter, MaterialPass, MaterialRenderState, MaterialTextureCoordinates, MaterialTextureValue, MeshLodLevel, ParamSchemaEntry,
|
|
7
|
+
import type { Handle, MaterialAsset, MaterialColorParameterSchema, MaterialParameter, MaterialPass, MaterialRenderState, MaterialTextureCoordinates, MaterialTextureValue, MeshLodLevel, ParamSchemaEntry, TextureAsset } from '@forgeax/engine-types';
|
|
8
8
|
import type { DirectionalShadowQuality } from './components/directional-shadow-filter';
|
|
9
9
|
import type { LightValidationError } from './components/light-helpers';
|
|
10
10
|
import type { EnvironmentFrame, FogFrame, FogSelectionFailure } from './extract/environment';
|
|
11
|
+
import type { GpuDrivenDrawSnapshot } from './extract/gpu-driven';
|
|
11
12
|
import { type VisibilitySnapshot } from './extract/visibility';
|
|
12
13
|
import type { RenderFeatureHiddenEntityReport, RenderFeatureWorldVisibilitySnapshot } from './features/types';
|
|
13
|
-
import type { InstanceCollectionId,
|
|
14
|
+
import type { InstanceCollectionId, InstanceCollectionStore } from './instances';
|
|
14
15
|
import type { MeshMaterialBindingDiagnostic, MeshMaterialBindingSource } from './mesh-material-bindings';
|
|
15
16
|
import type { PointsLinesRetainedSnapshot } from './points-lines/snapshot';
|
|
16
17
|
import type { ReflectionProbeFact } from './reflection/projection';
|
|
17
18
|
import type { CameraSnapshot, CubeCameraSnapshot } from './render-contract';
|
|
18
19
|
import type { SkinPaletteAllocator } from './systems/skin-palette-allocator';
|
|
19
|
-
import type {
|
|
20
|
+
import type { SkinPaletteReceipt } from './systems/skin-palette-types';
|
|
20
21
|
import type { RenderTarget, RenderTargetTextureSource } from './targets/contracts';
|
|
21
22
|
import { type ValidatedVolumetricFog } from './volume/component';
|
|
22
23
|
import type { VolumeProjectorTuple } from './volume/temporal';
|
|
@@ -45,6 +46,8 @@ export interface DirectionalLightSnapshot {
|
|
|
45
46
|
export interface PointLightSnapshot {
|
|
46
47
|
readonly kind: 'point';
|
|
47
48
|
readonly entity?: EntityHandle | number;
|
|
49
|
+
/** World identity stamped by the composited extract owner. */
|
|
50
|
+
readonly worldId?: number;
|
|
48
51
|
readonly position: Vec3;
|
|
49
52
|
readonly color: Vec3;
|
|
50
53
|
readonly intensity: number;
|
|
@@ -97,12 +100,16 @@ export interface PointLightSnapshot {
|
|
|
97
100
|
export interface PointShadowSnapshot {
|
|
98
101
|
/** Spawning entity index (joins PointLight + PointLightShadow + Transform). */
|
|
99
102
|
readonly entity: number;
|
|
103
|
+
/** World identity stamped by the composited extract owner. */
|
|
104
|
+
readonly worldId?: number;
|
|
100
105
|
/** World-space light position (sourced from companion Transform). */
|
|
101
106
|
readonly position: Vec3;
|
|
102
107
|
/** PointLightShadow.mapSize (per-face cube square dimension; 512 default). */
|
|
103
108
|
readonly mapSize: number;
|
|
104
109
|
readonly nearPlane: number;
|
|
105
110
|
readonly farPlane: number;
|
|
111
|
+
readonly depthBias: number;
|
|
112
|
+
readonly normalBias: number;
|
|
106
113
|
/**
|
|
107
114
|
* Atlas layer assigned by extract in spawn order while capacity remains.
|
|
108
115
|
* Sentinel -1 is used for a request that cannot be admitted and is
|
|
@@ -137,6 +144,8 @@ export interface SpotLightSnapshot {
|
|
|
137
144
|
readonly kind: 'spot';
|
|
138
145
|
/** Entity identity is branded in extracted frames; numeric fixtures remain compatible. */
|
|
139
146
|
readonly entity?: EntityHandle | number;
|
|
147
|
+
/** World identity stamped by the composited extract owner. */
|
|
148
|
+
readonly worldId?: number;
|
|
140
149
|
readonly position: Vec3;
|
|
141
150
|
readonly direction: Vec3;
|
|
142
151
|
readonly color: Vec3;
|
|
@@ -357,6 +366,8 @@ export interface SkylightSnapshot {
|
|
|
357
366
|
/** Local diffuse probe facts; specular remains owned by Skylight/ReflectionProbe. */
|
|
358
367
|
export interface LightProbeSnapshot {
|
|
359
368
|
readonly identity: string;
|
|
369
|
+
/** World identity stamped by the composited extract owner. */
|
|
370
|
+
readonly worldId?: number;
|
|
360
371
|
readonly position: readonly [number, number, number];
|
|
361
372
|
readonly radius: number;
|
|
362
373
|
readonly irradiance: Float32Array;
|
|
@@ -411,6 +422,8 @@ export interface ExtractedVolumetricFog {
|
|
|
411
422
|
readonly projectorAsset?: TextureAsset;
|
|
412
423
|
}
|
|
413
424
|
export interface RenderableSnapshot {
|
|
425
|
+
/** Authored hierarchical visibility; retained hidden rows remain addressable. */
|
|
426
|
+
readonly authorVisible?: boolean;
|
|
414
427
|
readonly assetHandle: number;
|
|
415
428
|
readonly transform: TransformSnapshot;
|
|
416
429
|
/** Producer-authored lower-detail references projected from MeshAsset. */
|
|
@@ -448,8 +461,6 @@ export interface RenderableSnapshot {
|
|
|
448
461
|
readonly materialBindingSources: readonly MeshMaterialBindingSource[];
|
|
449
462
|
/** Active structured override diagnostics for this renderable. */
|
|
450
463
|
readonly materialBindingDiagnostics?: readonly MeshMaterialBindingDiagnostic[];
|
|
451
|
-
/** Effective authored visibility retained by the persistent scene owner. */
|
|
452
|
-
readonly authorVisible?: boolean;
|
|
453
464
|
/**
|
|
454
465
|
* feat-20260708-composited-multi-world-rendering M1 / D-1: the worldId
|
|
455
466
|
* of the world this renderable was extracted from. Defaults to 0 in
|
|
@@ -514,9 +525,11 @@ export interface RenderableSnapshot {
|
|
|
514
525
|
* draw to `forgeax::pbr-skin` pipeline + set the palette dynamic offset.
|
|
515
526
|
* Absent (`undefined`) means the entity is not skinned.
|
|
516
527
|
*/
|
|
517
|
-
readonly skin?:
|
|
518
|
-
/** Joint
|
|
528
|
+
readonly skin?: SkinPaletteReceipt;
|
|
529
|
+
/** Joint identities consumed by the retained scene dependency index. */
|
|
519
530
|
readonly skinJointEntities?: readonly number[];
|
|
531
|
+
/** Source pass ownership retained with the scene record across view changes. */
|
|
532
|
+
readonly shadowCasterPasses?: readonly Omit<ShadowCasterMembership, 'worldEntity' | 'renderableIndex'>[];
|
|
520
533
|
/**
|
|
521
534
|
* ECS-owned morph weights. Presence selects the Standard Pipeline CPU
|
|
522
535
|
* specialized deformation lane; the asset remains the source of target
|
|
@@ -539,33 +552,14 @@ export interface RenderableTemporalSnapshot {
|
|
|
539
552
|
readonly reactiveReasons: readonly RenderableReactiveReason[];
|
|
540
553
|
readonly previousTransform: TransformSnapshot;
|
|
541
554
|
readonly previousInstances: InstancesSnapshot | undefined;
|
|
542
|
-
readonly previousSkin:
|
|
555
|
+
readonly previousSkin: SkinPaletteReceipt | undefined;
|
|
543
556
|
readonly previousMorphWeights: Float32Array | undefined;
|
|
544
557
|
}
|
|
545
558
|
export interface MorphSnapshot {
|
|
546
559
|
readonly weights: Float32Array;
|
|
547
560
|
readonly targetCount: number;
|
|
548
561
|
}
|
|
549
|
-
export
|
|
550
|
-
readonly kind: 'indexed' | 'non-indexed';
|
|
551
|
-
readonly first: number;
|
|
552
|
-
readonly count: number;
|
|
553
|
-
readonly baseVertex: number;
|
|
554
|
-
readonly materialSlot: number;
|
|
555
|
-
readonly topology: PrimitiveTopology;
|
|
556
|
-
readonly pipelineClass: string;
|
|
557
|
-
readonly materialResourceClass: string;
|
|
558
|
-
/** Producer-owned prepared ABI facts used by the Standard PBR GPU lane. */
|
|
559
|
-
readonly prepared?: import('./gpu-driven/prepared-draw').PreparedGpuDrivenDraw;
|
|
560
|
-
/** Optional projected height supplied by direct GPU-view evidence/tests. */
|
|
561
|
-
readonly projectedHeight?: number;
|
|
562
|
-
/** Root plus lower-detail index/vertex ranges, in LOD order. */
|
|
563
|
-
readonly lodRanges?: readonly {
|
|
564
|
-
readonly first: number;
|
|
565
|
-
readonly count: number;
|
|
566
|
-
readonly baseVertex: number;
|
|
567
|
-
}[];
|
|
568
|
-
}
|
|
562
|
+
export type { GpuDrivenDrawSnapshot } from './extract/gpu-driven';
|
|
569
563
|
export interface InstancesSnapshot {
|
|
570
564
|
/** Renderer-owned collection identity. */
|
|
571
565
|
readonly collectionId?: InstanceCollectionId;
|
|
@@ -575,6 +569,13 @@ export interface InstancesSnapshot {
|
|
|
575
569
|
readonly instanceCount: number;
|
|
576
570
|
/** Collection revision captured by this detached frame snapshot. */
|
|
577
571
|
readonly revision?: number;
|
|
572
|
+
/** Logical collection capacity at snapshot time. */
|
|
573
|
+
readonly capacity?: number;
|
|
574
|
+
/** Coalesced matrix ordinals dirtied since the previous authoring update. */
|
|
575
|
+
readonly dirtyRanges?: readonly {
|
|
576
|
+
readonly start: number;
|
|
577
|
+
readonly end: number;
|
|
578
|
+
}[];
|
|
578
579
|
/** Stable per-entity GPU buffer cache key (the packed Entity u32). */
|
|
579
580
|
readonly cacheKey: number;
|
|
580
581
|
/**
|
|
@@ -686,6 +687,8 @@ export interface MaterialSnapshot {
|
|
|
686
687
|
readonly paramSnapshot?: Readonly<Record<string, number | number[] | string>> | undefined;
|
|
687
688
|
/** Effective MaterialAsset parameter contract used to lay out this snapshot. */
|
|
688
689
|
readonly materialParamSchema?: readonly ParamSchemaEntry[] | undefined;
|
|
690
|
+
/** Authored texture presence, separate from the shared GPU layout schema. */
|
|
691
|
+
readonly standardTextureMask?: number | undefined;
|
|
689
692
|
/** Authored per-slot UV set and KHR texture transform metadata. */
|
|
690
693
|
readonly textureCoordinates?: ReadonlyMap<string, MaterialTextureCoordinates> | undefined;
|
|
691
694
|
/**
|
|
@@ -705,6 +708,8 @@ export interface MaterialSnapshot {
|
|
|
705
708
|
* them in a lightmap injection region.
|
|
706
709
|
*/
|
|
707
710
|
readonly textureHandles?: ReadonlyMap<string, Handle<'TextureAsset', 'shared'>> | undefined;
|
|
711
|
+
/** Explicitly authored texture fields that must resolve before GPU admission. */
|
|
712
|
+
readonly authoredTextureFields?: ReadonlySet<string> | undefined;
|
|
708
713
|
/** Renderer-local target sources; never projected as TextureAsset handles. */
|
|
709
714
|
readonly textureSources?: ReadonlyMap<string, RenderTargetTextureSource> | undefined;
|
|
710
715
|
/**
|
|
@@ -725,6 +730,8 @@ export interface MaterialSnapshot {
|
|
|
725
730
|
readonly videoTextureFields?: ReadonlyMap<string, Handle<'VideoAsset', 'shared'>> | undefined;
|
|
726
731
|
/** Authored sampler handles keyed by their matching texture parameter. */
|
|
727
732
|
readonly samplerHandles?: ReadonlyMap<string, Handle<'SamplerAsset', 'shared'>> | undefined;
|
|
733
|
+
/** Explicitly authored sampler fields that must resolve before GPU admission. */
|
|
734
|
+
readonly authoredSamplerFields?: ReadonlySet<string> | undefined;
|
|
728
735
|
readonly baseColorTexture?: Handle<'TextureAsset', 'shared'> | undefined;
|
|
729
736
|
/**
|
|
730
737
|
* PBR metallic-roughness texture handle (present for PBR/sprite/skin
|
|
@@ -857,6 +864,11 @@ export interface ExtractedFrame {
|
|
|
857
864
|
* three-bucket model per plan-strategy D-3.
|
|
858
865
|
*/
|
|
859
866
|
readonly dispatch: DispatchEntry[];
|
|
867
|
+
readonly shadowCasterEntityKeys: ReadonlySet<number>;
|
|
868
|
+
/** ShadowCaster ownership keyed by concrete draw item and pass. */
|
|
869
|
+
readonly shadowCasterDrawKeys: ReadonlySet<string>;
|
|
870
|
+
/** Structured ShadowCaster ownership facts retained for exact residual routing. */
|
|
871
|
+
readonly shadowCasterMembership?: readonly ShadowCasterMembership[];
|
|
860
872
|
readonly skylight: SkylightSnapshot | undefined;
|
|
861
873
|
readonly skylightCount: number;
|
|
862
874
|
/** World-local diffuse probe candidates; never a direct-light slot. */
|
|
@@ -881,6 +893,8 @@ export interface ExtractedFrame {
|
|
|
881
893
|
readonly visibilityStats: {
|
|
882
894
|
readonly explicitlyHidden: number;
|
|
883
895
|
};
|
|
896
|
+
/** Detached material-source probe accounting for this extraction. */
|
|
897
|
+
readonly materialTextureSources?: MaterialTextureSourceStats;
|
|
884
898
|
/**
|
|
885
899
|
* Per-frame post-process params snapshot collected from PostProcessParams
|
|
886
900
|
* entities (D-1: data-driven params channel). Maps shader id to the
|
|
@@ -896,6 +910,19 @@ export interface ExtractedFrame {
|
|
|
896
910
|
/** Built-in hidden candidates, retained for host-side producer deduplication. */
|
|
897
911
|
readonly hiddenEntityReports: readonly RenderFeatureHiddenEntityReport[];
|
|
898
912
|
}
|
|
913
|
+
/** Extracted ownership fact for one concrete ShadowCaster pass. */
|
|
914
|
+
export interface ShadowCasterMembership {
|
|
915
|
+
readonly worldEntity: number;
|
|
916
|
+
readonly renderableIndex: number;
|
|
917
|
+
readonly drawItemIndex: number;
|
|
918
|
+
readonly materialHandle: number;
|
|
919
|
+
readonly passIndex: number;
|
|
920
|
+
readonly materialShaderId?: string;
|
|
921
|
+
readonly renderState?: MaterialRenderState;
|
|
922
|
+
readonly cpuReason?: ShadowCasterCpuReason;
|
|
923
|
+
}
|
|
924
|
+
/** Producer evidence for a concrete ShadowCaster pass that remains on CPU. */
|
|
925
|
+
export type ShadowCasterCpuReason = 'transparent' | 'morph' | 'unsupported-shader' | 'unsupported-render-state' | 'missing-skin-bounds' | 'missing-gpu-draw' | 'unprepared' | 'prepared-contract' | 'multi-pass';
|
|
899
926
|
export type CameraTargetUpdate = 'once' | 'on-demand' | 'continuous';
|
|
900
927
|
export interface CameraTargetCandidate {
|
|
901
928
|
readonly worldId: number;
|
|
@@ -953,6 +980,10 @@ export declare function resolveCameraTarget(world: World, raw: number | undefine
|
|
|
953
980
|
*/
|
|
954
981
|
export declare const BUILTIN_USER_REGION_TEXTURE_FIELDS: readonly string[];
|
|
955
982
|
export declare function materialTextureFields(shaderId: string | undefined, fields: ReadonlySet<string> | undefined): ReadonlySet<string> | undefined;
|
|
983
|
+
/** Preserve authored-vs-default intent for the GPU resource readiness gate. */
|
|
984
|
+
export declare function collectAuthoredMaterialTextureFields(values: Readonly<Record<string, unknown>>, shaderId: string | undefined, paramSchema: readonly ParamSchemaEntry[] | undefined, assets: AssetRegistry): ReadonlySet<string> | undefined;
|
|
985
|
+
/** Preserve explicit sampler intent; omitted samplers use the default sampler. */
|
|
986
|
+
export declare function collectAuthoredMaterialSamplerFields(values: Readonly<Record<string, unknown>>, textureFields: ReadonlySet<string> | undefined): ReadonlySet<string> | undefined;
|
|
956
987
|
/**
|
|
957
988
|
* The authored material surface uses the module IDs declared by built-in WGSL
|
|
958
989
|
* sources. Runtime pipeline caches still use the existing engine registration
|
|
@@ -972,6 +1003,7 @@ export declare function pipelineRenderState(renderState: (MaterialRenderState &
|
|
|
972
1003
|
readonly queue?: number;
|
|
973
1004
|
readonly stencilReference?: number;
|
|
974
1005
|
}) | undefined): MaterialRenderState | undefined;
|
|
1006
|
+
export declare function shadowCasterCpuReason(material: MaterialSnapshot, draw: GpuDrivenDrawSnapshot | undefined, shadowEntries: readonly DispatchEntry[], morph: MorphSnapshot | undefined, skin: SkinPaletteReceipt | undefined): ShadowCasterCpuReason | undefined;
|
|
975
1007
|
export declare function internSharedRefFromGuid<B extends string>(world: World, assetsRef: AssetRegistry, guid: string, brand: B): Handle<B, 'shared'> | undefined;
|
|
976
1008
|
/**
|
|
977
1009
|
* feat-20260623-world-space-video-asset M4 / w14 (D-5): if a user-region
|
|
@@ -998,7 +1030,27 @@ export declare function isAssetGuidBytes(value: Uint8Array): value is AssetGuidB
|
|
|
998
1030
|
export declare function materialNormalScale(values: Readonly<Record<string, unknown>>): number;
|
|
999
1031
|
export declare function materialTextureRef(value: unknown): unknown;
|
|
1000
1032
|
export declare function collectMaterialTextureCoordinates(values: Readonly<Record<string, unknown>>): Map<string, MaterialTextureCoordinates>;
|
|
1001
|
-
|
|
1033
|
+
/**
|
|
1034
|
+
* Return the schema-owned fields that may carry a texture source handle.
|
|
1035
|
+
* Numeric material values are otherwise scalar parameters (roughness,
|
|
1036
|
+
* metallic, custom steps, ...), so probing them through SharedRefStore is
|
|
1037
|
+
* both wasted work and an accidental dependency on slot-number collisions.
|
|
1038
|
+
*/
|
|
1039
|
+
export declare function materialTextureSourceFields(schema: readonly ParamSchemaEntry[] | undefined): ReadonlySet<string> | undefined;
|
|
1040
|
+
export interface MaterialTextureSourceStats {
|
|
1041
|
+
sourceFieldsVisited: number;
|
|
1042
|
+
numericSharedRefProbes: number;
|
|
1043
|
+
sourceCacheHits: number;
|
|
1044
|
+
sourceCacheMisses: number;
|
|
1045
|
+
producerRoutes: Record<string, number>;
|
|
1046
|
+
}
|
|
1047
|
+
/**
|
|
1048
|
+
* Extract-local cache for numeric shared references. `null` is a deliberate
|
|
1049
|
+
* negative entry: a handle that is not a render-target source must not be
|
|
1050
|
+
* resolved repeatedly for every material field in the same frame.
|
|
1051
|
+
*/
|
|
1052
|
+
export type MaterialTextureSourceCache = Map<number, RenderTargetTextureSource | null>;
|
|
1053
|
+
export declare function collectMaterialTextureSources(values: Readonly<Record<string, unknown>>, world: World, textureFields?: ReadonlySet<string>, stats?: MaterialTextureSourceStats, cache?: MaterialTextureSourceCache): Map<string, RenderTargetTextureSource>;
|
|
1002
1054
|
export declare function collectMaterialTextureSamplers(values: Readonly<Record<string, unknown>>, resolveSampler: (value: unknown) => Handle<'SamplerAsset', 'shared'> | undefined): Map<string, Handle<'SamplerAsset', 'shared'>>;
|
|
1003
1055
|
/**
|
|
1004
1056
|
* feat-20260621-learn-render-5-5-parallax M2 / w7 (D-3): collect the
|
|
@@ -1023,6 +1075,7 @@ export declare function collectMaterialTextureSamplers(values: Readonly<Record<s
|
|
|
1023
1075
|
*/
|
|
1024
1076
|
export declare function collectUserRegionTextureHandles(pv: Readonly<Record<string, unknown>>, shaderId: string | undefined, paramSchema: readonly ParamSchemaEntry[] | undefined, assetsRef: AssetRegistry, world: World, resolveTex: (value: unknown, brand: 'TextureAsset') => Handle<'TextureAsset', 'shared'> | undefined, videoOut: Map<string, Handle<'VideoAsset', 'shared'>>): Map<string, Handle<'TextureAsset', 'shared'>>;
|
|
1025
1077
|
export declare function isEngineInjectedTextureField(shaderId: string | undefined, fieldName: string): boolean;
|
|
1078
|
+
export declare function materialStandardTextureMask(parameters: readonly MaterialParameter[] | undefined, shaderId: string | undefined, values: Readonly<Record<string, unknown>>): number | undefined;
|
|
1026
1079
|
/**
|
|
1027
1080
|
* Project one material's authoring parameters into the runtime ABI.
|
|
1028
1081
|
*
|
|
@@ -1078,7 +1131,7 @@ export declare function storeMaterialSnapshot(cache: MaterialSnapshotCache, hand
|
|
|
1078
1131
|
* the resolvable submeshes; the count-mismatch validator already filtered
|
|
1079
1132
|
* the count-disagreement case earlier).
|
|
1080
1133
|
*/
|
|
1081
|
-
export declare function resolveMaterialSnapshot(handleRaw: number, world: World, assetsRef: AssetRegistry, materialSnapshotCache?: MaterialSnapshotCache, persistentMaterialSnapshotCache?: MaterialSnapshotCache, materialContext?: MaterialCookProgramContext): MaterialSnapshot;
|
|
1134
|
+
export declare function resolveMaterialSnapshot(handleRaw: number, world: World, assetsRef: AssetRegistry, materialSnapshotCache?: MaterialSnapshotCache, persistentMaterialSnapshotCache?: MaterialSnapshotCache, materialContext?: MaterialCookProgramContext, materialTextureSourceStats?: MaterialTextureSourceStats, materialTextureSourceCache?: MaterialTextureSourceCache): MaterialSnapshot;
|
|
1082
1135
|
/**
|
|
1083
1136
|
* feat-20260612-skin-palette-per-frame-upload M2 / m2-6: narrow per-frame
|
|
1084
1137
|
* pipeline surface consumed by `extractFrame`. Today only `skinPaletteAllocator`
|
|
@@ -1095,11 +1148,12 @@ export declare function pssmSplit(nearPlane: number, farPlane: number, cascadeCo
|
|
|
1095
1148
|
/**
|
|
1096
1149
|
* Build 6 face view-proj matrices for an omnidirectional shadow caster
|
|
1097
1150
|
* (point-light cube map). Returns 6 mat4 (column-major 16-float each) in face
|
|
1098
|
-
* order [+X, -X, +Y, -Y, +Z, -Z] matching WebGPU cube layer
|
|
1151
|
+
* order [+X, -X, +Y, -Y, +Z, -Z] matching the WebGPU cube-camera layer
|
|
1152
|
+
* convention.
|
|
1099
1153
|
*
|
|
1100
|
-
*
|
|
1101
|
-
*
|
|
1102
|
-
*
|
|
1154
|
+
* Derive face directions from the shared CubeCamera owner, then reflect clip X
|
|
1155
|
+
* to match WebGPU cubemap texel orientation. The point-shadow raster lane
|
|
1156
|
+
* mirrors authored front-face winding when it uses these reflected matrices.
|
|
1103
1157
|
*
|
|
1104
1158
|
* The returned `Mat4[]` length is always exactly 6. Caller can flatten into a
|
|
1105
1159
|
* 96-float (6 mat4) Float32Array for UBO upload (T-M1-7).
|
|
@@ -1191,6 +1245,8 @@ export declare function computeDirectionalCsm(direction: Vec3, config: Direction
|
|
|
1191
1245
|
export interface ExtractFramesOwner {
|
|
1192
1246
|
readonly cameraOwner: number;
|
|
1193
1247
|
readonly resourceOwner: number;
|
|
1248
|
+
/** Explicit display-camera entity selected by the frame owner. */
|
|
1249
|
+
readonly cameraEntityKey?: number;
|
|
1194
1250
|
}
|
|
1195
1251
|
export interface PreparedExtractContext {
|
|
1196
1252
|
readonly materialContext?: MaterialCookProgramContext | undefined;
|
|
@@ -1202,16 +1258,18 @@ export interface PreparedExtractContext {
|
|
|
1202
1258
|
readonly resourceOwnerFog: FogFrame | null | undefined;
|
|
1203
1259
|
readonly cull: 'self' | 'none' | 'external';
|
|
1204
1260
|
readonly cullCameras: readonly CameraSnapshot[] | undefined;
|
|
1261
|
+
/** Explicit display-camera entity for this world's camera-owner extract. */
|
|
1262
|
+
readonly cameraEntityKey?: number;
|
|
1205
1263
|
readonly renderables: 'full' | 'none';
|
|
1206
|
-
/** Restrict renderable extraction to these entities while still reading frame resources. */
|
|
1207
1264
|
readonly renderableEntities: ReadonlySet<number> | undefined;
|
|
1208
|
-
/** Keep authored-hidden renderables in the persistent source projection. */
|
|
1209
1265
|
readonly retainHidden: boolean;
|
|
1266
|
+
/** World identity used to form cross-world producer ownership keys. */
|
|
1267
|
+
readonly worldId: number;
|
|
1210
1268
|
readonly visibility: VisibilitySnapshot;
|
|
1211
1269
|
/** Producer-owned artifact lookup; extraction only, never record-time asset reads. */
|
|
1212
|
-
readonly getMaterialShaderArtifact: ((materialShaderId: string) => MaterialShaderArtifact | undefined) | undefined;
|
|
1270
|
+
readonly getMaterialShaderArtifact: ((materialShaderId: string, vertexColorAvailable?: boolean) => MaterialShaderArtifact | undefined) | undefined;
|
|
1213
1271
|
/** Renderer-owned canonical source for explicit large instance collections. */
|
|
1214
|
-
readonly instanceCollections:
|
|
1272
|
+
readonly instanceCollections: InstanceCollectionStore | undefined;
|
|
1215
1273
|
}
|
|
1216
1274
|
export declare function collectCubeCameraSnapshots(world: World): CubeCameraSnapshot[];
|
|
1217
1275
|
export declare function collectReflectionProbeFacts(world: World): ReflectionProbeFact[];
|
|
@@ -1219,7 +1277,7 @@ interface CameraRoleSelection {
|
|
|
1219
1277
|
readonly display: readonly CameraSnapshot[];
|
|
1220
1278
|
readonly auxiliary: readonly CameraSnapshot[];
|
|
1221
1279
|
}
|
|
1222
|
-
export declare function selectCameraRoles(world: World): CameraRoleSelection;
|
|
1280
|
+
export declare function selectCameraRoles(world: World, requestedEntityKey?: number): CameraRoleSelection;
|
|
1223
1281
|
export declare function extractCameraSnapshots(world: World): CameraSnapshot[];
|
|
1224
1282
|
export declare function extractCameraTargetSnapshots(world: World): readonly CameraSnapshot[];
|
|
1225
1283
|
export declare function tonemapParams(camera: CameraSnapshot): Uint8Array;
|
|
@@ -1231,11 +1289,13 @@ export declare function prepareExtractContext(world: World, options?: {
|
|
|
1231
1289
|
readonly resourceOwnerFog?: FogFrame | null;
|
|
1232
1290
|
readonly cull?: 'self' | 'none' | 'external';
|
|
1233
1291
|
readonly cullCameras?: readonly CameraSnapshot[];
|
|
1292
|
+
readonly cameraEntityKey?: number;
|
|
1234
1293
|
readonly renderables?: 'full' | 'none';
|
|
1235
1294
|
readonly renderableEntities?: ReadonlySet<number>;
|
|
1236
1295
|
readonly retainHidden?: boolean;
|
|
1237
|
-
readonly
|
|
1238
|
-
readonly
|
|
1296
|
+
readonly worldId?: number;
|
|
1297
|
+
readonly getMaterialShaderArtifact?: (materialShaderId: string, vertexColorAvailable?: boolean) => MaterialShaderArtifact | undefined;
|
|
1298
|
+
readonly instanceCollections?: InstanceCollectionStore;
|
|
1239
1299
|
}): PreparedExtractContext;
|
|
1240
1300
|
export declare function fogState(world: World): {
|
|
1241
1301
|
lkg: FogFrame | undefined;
|