@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
|
@@ -6,7 +6,7 @@ import { derive } from '@forgeax/engine-types';
|
|
|
6
6
|
import type { GpuResidencyCache } from '../device/gpu-residency';
|
|
7
7
|
import { type SkylightBindGroupResources } from '../ibl/skylight-bind-group';
|
|
8
8
|
import type { PipelineGroup2Contract } from '../pbr-pipeline';
|
|
9
|
-
import type { MaterialSnapshot } from '../render-system-extract';
|
|
9
|
+
import type { MaterialSnapshot, SkylightSnapshot } from '../render-system-extract';
|
|
10
10
|
import { type RenderTargetMaterialSourceBinding } from '../targets/material-source';
|
|
11
11
|
import type { StandardReflectionProbeBinding } from './frame-lighting';
|
|
12
12
|
import type { BindGroupCounts, MaterialBgAssemblyCacheEntry, RenderFrameState } from './frame-snapshot';
|
|
@@ -179,6 +179,16 @@ export declare function writePbrMaterialUboPayload(buf: Uint8Array | Float32Arra
|
|
|
179
179
|
* record.test.ts; not part of the package's public surface).
|
|
180
180
|
*/
|
|
181
181
|
export declare function applyParamSnapshotToUbo(payload: MaterialUboPayload, paramSchema: readonly ParamSchemaEntry[] | undefined, paramSnapshot: Readonly<Record<string, number | readonly number[] | string | undefined>> | undefined): void;
|
|
182
|
+
/**
|
|
183
|
+
* Seed a schema-driven UBO with the defaults declared by its numeric contract.
|
|
184
|
+
*
|
|
185
|
+
* Prepared graphics (VFX and other feature-owned materials) do not pass
|
|
186
|
+
* through the extracted `MaterialSnapshot` writer, so their payload starts as
|
|
187
|
+
* zeroed storage. Applying the schema defaults first keeps that path
|
|
188
|
+
* byte-compatible with the ordinary material writer while preserving the
|
|
189
|
+
* snapshot writer's intentional overlay semantics.
|
|
190
|
+
*/
|
|
191
|
+
export declare function applyParamSchemaDefaultsToUbo(payload: MaterialUboPayload, paramSchema: readonly ParamSchemaEntry[] | undefined): void;
|
|
182
192
|
/**
|
|
183
193
|
* feat-20260704 M3/w19: shared per-submesh material bind-group assembly, hoisted
|
|
184
194
|
* from the `buildPerSubmeshMaterialBg` closure inside recordMainPass so both the
|
|
@@ -209,6 +219,8 @@ export interface PerSubmeshMaterialBgDeps {
|
|
|
209
219
|
readonly materialBgShared: Map<string, WeakMap<object, unknown>>;
|
|
210
220
|
/** Cross-frame final BG reuse keyed by the stable source material handle. */
|
|
211
221
|
readonly materialBgAssemblyCache: Map<string, MaterialBgAssemblyCacheEntry>;
|
|
222
|
+
/** Producer-owned numeric scene rows consumed by scene-index PBR draws. */
|
|
223
|
+
readonly sceneMaterialBuffer?: Buffer;
|
|
212
224
|
/** Active transmission backdrop; undefined/null means layout placeholder. */
|
|
213
225
|
readonly transmissionBackdropView?: TextureView | null;
|
|
214
226
|
readonly bindGroupCounts: BindGroupCounts;
|
|
@@ -218,6 +230,31 @@ export interface PerSubmeshMaterialBgDeps {
|
|
|
218
230
|
export declare function isMaterialBgAssemblyCacheHit(cached: MaterialBgAssemblyCacheEntry | undefined, material: MaterialSnapshot, materialBgl: BindGroupLayout, materialBuffer: Buffer, skylightResources: SkylightBindGroupResources, materialResourceEpoch: number, transmissionBackdropView?: TextureView | null): cached is MaterialBgAssemblyCacheEntry;
|
|
219
231
|
export declare function buildPerSubmeshMaterialBg(deps: PerSubmeshMaterialBgDeps, submeshMaterial: MaterialSnapshot, entityKey: number, materialWorld?: World, materialShaderId?: string | undefined): BindGroup;
|
|
220
232
|
/** The same scene resources back material bindings in depth and color passes. */
|
|
233
|
+
/**
|
|
234
|
+
* Resolve the renderer-owned Skylight bundle for both ordinary geometry and
|
|
235
|
+
* prepared RenderFeature materials. Feature preparation runs before the
|
|
236
|
+
* main pass is encoded, so it cannot rely on the geometry pass to initialize
|
|
237
|
+
* the intensity buffer or to select the current IBL views. Keeping this
|
|
238
|
+
* small argument-based helper as the single resolver makes the two paths use
|
|
239
|
+
* identical resources while retaining the existing frame-local write.
|
|
240
|
+
*/
|
|
241
|
+
export declare function resolveMaterialSkylight(runtime: Pick<RenderSystemRuntime, 'device' | 'deviceScope'>, pipelineState: Pick<PipelineState, 'skylightFallback'>, skylight: SkylightSnapshot | undefined, skylightCount: number): {
|
|
242
|
+
skylightResources: {
|
|
243
|
+
irradianceView: TextureView;
|
|
244
|
+
irradianceSampler: Sampler;
|
|
245
|
+
prefilterView: TextureView;
|
|
246
|
+
prefilterSampler: Sampler;
|
|
247
|
+
brdfLutView: TextureView;
|
|
248
|
+
brdfLutSampler: Sampler;
|
|
249
|
+
intensityBuffer: Buffer;
|
|
250
|
+
};
|
|
251
|
+
activeViews: {
|
|
252
|
+
irr: TextureView;
|
|
253
|
+
pref: TextureView;
|
|
254
|
+
brdf: TextureView;
|
|
255
|
+
} | undefined;
|
|
256
|
+
};
|
|
257
|
+
/** The same scene resources back material bindings in depth and color passes. */
|
|
221
258
|
export declare function prepareMaterialSkylight(c: _InternalRenderPipelineContext): {
|
|
222
259
|
skylightResources: {
|
|
223
260
|
irradianceView: TextureView;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main-pass-material.d.ts","sourceRoot":"","sources":["../../src/record/main-pass-material.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAKvE,OAAO,KAAK,EAAgB,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAK/D,OAAO,EACL,KAAK,SAAS,EAEd,KAAK,eAAe,EACpB,KAAK,MAAM,EACX,KAAK,cAAc,EAEnB,KAAK,OAAO,EACZ,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"main-pass-material.d.ts","sourceRoot":"","sources":["../../src/record/main-pass-material.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,9 @@
|
|
|
1
1
|
import type { World } from '@forgeax/engine-ecs';
|
|
2
|
-
import { type BindGroup, type
|
|
3
|
-
import { type SkylightBindGroupResources } from '../ibl/skylight-bind-group';
|
|
2
|
+
import { type BindGroup, type RhiRenderPassEncoder } from '@forgeax/engine-rhi';
|
|
4
3
|
import type { InstanceBufferCacheEntry } from '../instance-buffer-cache';
|
|
5
4
|
import type { DispatchEntry, MaterialSnapshot, SpriteInstancesSnapshot } from '../render-system-extract';
|
|
6
5
|
import type { _InternalRenderPipelineContext } from './render-context';
|
|
7
6
|
export type { SpriteInstancesSnapshot };
|
|
8
|
-
/**
|
|
9
|
-
* Build the sprite material's Standard user-region from the shared field-order
|
|
10
|
-
* owner. The sprite shader uses the same Standard material bind-group layout;
|
|
11
|
-
* keeping this projection derived from the shared list prevents IBL injection
|
|
12
|
-
* from moving ahead of newly added material texture pairs.
|
|
13
|
-
*/
|
|
14
|
-
export declare function buildSpritePassBaseMaterialEntries(pipelineState: _InternalRenderPipelineContext['pipelineState'], spriteTexView: TextureView): BindGroupEntry[];
|
|
15
7
|
/**
|
|
16
8
|
* Build the interleaved sprite instance payload consumed by this record owner.
|
|
17
9
|
* The extract stage validates the two packed arrays before they reach this
|
|
@@ -46,5 +38,5 @@ export declare function computeSplitLdrSprite(validatedOrdered: readonly ({
|
|
|
46
38
|
*
|
|
47
39
|
* @internal
|
|
48
40
|
*/
|
|
49
|
-
export declare function recordSpritePass(c: _InternalRenderPipelineContext, pass: RhiRenderPassEncoder, matchedIndices: Set<number> | null, materialSlotIndices: readonly (readonly number[])[], sampleCount: number, resolveMaterialBindGroup: (materialSlot: number, submeshMaterial: MaterialSnapshot, entityKey: number, materialWorld: World, materialShaderId?: string) => BindGroup,
|
|
41
|
+
export declare function recordSpritePass(c: _InternalRenderPipelineContext, pass: RhiRenderPassEncoder, matchedIndices: Set<number> | null, materialSlotIndices: readonly (readonly number[])[], sampleCount: number, resolveMaterialBindGroup: (materialSlot: number, submeshMaterial: MaterialSnapshot, entityKey: number, materialWorld: World, materialShaderId?: string) => BindGroup, graphPass?: RhiRenderPassEncoder, selectedDispatch?: readonly DispatchEntry[]): boolean;
|
|
50
42
|
//# sourceMappingURL=main-pass-sprite-draws.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main-pass-sprite-draws.d.ts","sourceRoot":"","sources":["../../src/record/main-pass-sprite-draws.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EACL,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"main-pass-sprite-draws.d.ts","sourceRoot":"","sources":["../../src/record/main-pass-sprite-draws.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EACL,KAAK,SAAS,EAId,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAIzE,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAQlC,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAGvE,YAAY,EAAE,uBAAuB,EAAE,CAAC;AAExC;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,YAAY,EACxB,OAAO,EAAE,YAAY,EACrB,eAAe,UAAQ,GACtB,YAAY,CAoBd;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,wBAAwB,GAAG,SAAS,EAC3C,QAAQ,EAAE,uBAAuB,EACjC,cAAc,EAAE,MAAM,GACrB,OAAO,CAMT;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,SAAS,CACvB;IACE,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;QACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;KAClD,CAAC;CACH,GACD,SAAS,CACZ,EAAE,EACH,aAAa,EAAE,OAAO,EACtB,QAAQ,CAAC,EAAE,SAAS,aAAa,EAAE,GAClC,OAAO,CAiBT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,8BAA8B,EACjC,IAAI,EAAE,oBAAoB,EAC1B,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,EAClC,mBAAmB,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,EACnD,WAAW,EAAE,MAAM,EACnB,wBAAwB,EAAE,CACxB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,gBAAgB,EACjC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,KAAK,EACpB,gBAAgB,CAAC,EAAE,MAAM,KACtB,SAAS,EACd,SAAS,CAAC,EAAE,oBAAoB,EAChC,gBAAgB,CAAC,EAAE,SAAS,aAAa,EAAE,GAC1C,OAAO,CA4NT"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import type { GraphResourceResolver } from '@forgeax/engine-render-graph';
|
|
1
2
|
import { type RhiRenderPassEncoder, type TextureView } from '@forgeax/engine-rhi';
|
|
2
3
|
import type { PassKind, PassSelector } from '@forgeax/engine-types';
|
|
3
4
|
import type { ReflectionProbeSelectionResult } from '../reflection/projection';
|
|
5
|
+
import type { GpuDrivenStandardPbrFrameResources, RenderPipelineGpuDrivenProjection } from '../render-pipeline';
|
|
4
6
|
import type { _InternalRenderPipelineContext } from './render-context';
|
|
5
7
|
export declare function standardReflectionProbeIndex(selection: ReflectionProbeSelectionResult): number | undefined;
|
|
6
8
|
export type MainPassOptions = {
|
|
@@ -10,7 +12,15 @@ export type MainPassOptions = {
|
|
|
10
12
|
readonly passKind?: PassKind;
|
|
11
13
|
readonly clearColor?: readonly [number, number, number, number];
|
|
12
14
|
readonly recordMode?: 'opaque' | 'transmission' | 'transparent';
|
|
15
|
+
/** Exclude material/pass pairs already consumed by an earlier graph lane. */
|
|
16
|
+
readonly excludeSelector?: PassSelector;
|
|
17
|
+
/** Require the same material to contribute to another graph lane. */
|
|
18
|
+
readonly includeSelector?: PassSelector;
|
|
13
19
|
readonly transmissionBackdropView?: TextureView | null;
|
|
20
|
+
readonly gpuDriven?: {
|
|
21
|
+
readonly projection: RenderPipelineGpuDrivenProjection;
|
|
22
|
+
readonly resources: GraphResourceResolver;
|
|
23
|
+
};
|
|
14
24
|
};
|
|
15
25
|
/**
|
|
16
26
|
* feat-20260529-rendergraph-pass-abstraction M4 / w13b: main forward
|
|
@@ -19,6 +29,6 @@ export type MainPassOptions = {
|
|
|
19
29
|
* sub-pass write into geometryColorView (HDR target or swap-chain view).
|
|
20
30
|
* Driven by the render-graph 'main' pass execute closure.
|
|
21
31
|
*/
|
|
22
|
-
export declare function recordMainPass(c: _InternalRenderPipelineContext, selector?: PassSelector, options?: MainPassOptions, graphPass?: RhiRenderPassEncoder):
|
|
23
|
-
export declare function encodeMainPass(c: _InternalRenderPipelineContext, pass: RhiRenderPassEncoder, selector?: PassSelector, options?: MainPassOptions):
|
|
32
|
+
export declare function recordMainPass(c: _InternalRenderPipelineContext, selector?: PassSelector, options?: MainPassOptions, graphPass?: RhiRenderPassEncoder): GpuDrivenStandardPbrFrameResources | undefined;
|
|
33
|
+
export declare function encodeMainPass(c: _InternalRenderPipelineContext, pass: RhiRenderPassEncoder, selector?: PassSelector, options?: MainPassOptions): GpuDrivenStandardPbrFrameResources | undefined;
|
|
24
34
|
//# sourceMappingURL=main-pass.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main-pass.d.ts","sourceRoot":"","sources":["../../src/record/main-pass.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAMpE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"main-pass.d.ts","sourceRoot":"","sources":["../../src/record/main-pass.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAMpE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAE/E,OAAO,KAAK,EACV,kCAAkC,EAClC,iCAAiC,EAClC,MAAM,oBAAoB,CAAC;AAW5B,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAQvE,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,8BAA8B,GACxC,MAAM,GAAG,SAAS,CAEpB;AAcD,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC;IACtD,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAChE,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,GAAG,cAAc,GAAG,aAAa,CAAC;IAChE,6EAA6E;IAC7E,QAAQ,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC;IACxC,qEAAqE;IACrE,QAAQ,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC;IACxC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACvD,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnB,QAAQ,CAAC,UAAU,EAAE,iCAAiC,CAAC;QACvD,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;KAC3C,CAAC;CACH,CAAC;AA+CF;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,CAAC,EAAE,8BAA8B,EACjC,QAAQ,CAAC,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE,eAAe,EACzB,SAAS,CAAC,EAAE,oBAAoB,GAC/B,kCAAkC,GAAG,SAAS,CAqhBhD;AAED,wBAAgB,cAAc,CAC5B,CAAC,EAAE,8BAA8B,EACjC,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,CAAC,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE,eAAe,GACxB,kCAAkC,GAAG,SAAS,CAEhD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type BindGroup, type Buffer, RhiError, type RhiQueue } from '@forgeax/engine-rhi';
|
|
2
|
+
import { type Result } from '@forgeax/engine-types';
|
|
2
3
|
import type { DispatchEntry } from '../render-system-extract';
|
|
3
4
|
import { type TransparentSortConfig } from '../systems/transparent-sort-config';
|
|
4
5
|
import type { ValidatedRenderable } from './frame-snapshot';
|
|
@@ -53,6 +54,15 @@ export declare function getOrCreateFromChain(root: WeakMap<object, unknown>, han
|
|
|
53
54
|
createBindGroup: number;
|
|
54
55
|
keys: string[];
|
|
55
56
|
}): BindGroup;
|
|
57
|
+
/**
|
|
58
|
+
* Result-preserving sibling of `getOrCreateFromChain`. RHI creation can fail
|
|
59
|
+
* transiently during recovery or capability probing; a failed attempt must
|
|
60
|
+
* not enter the cache and must remain a structured Result for the caller.
|
|
61
|
+
*/
|
|
62
|
+
export declare function getOrCreateFromChainResult<E>(root: WeakMap<object, unknown>, handles: readonly object[], variant: string, factory: () => Result<BindGroup, E>, counts: {
|
|
63
|
+
createBindGroup: number;
|
|
64
|
+
keys: string[];
|
|
65
|
+
}): Result<BindGroup, E>;
|
|
56
66
|
/**
|
|
57
67
|
* Read a cached bind group using the same variable-depth chain contract as
|
|
58
68
|
* `getOrCreateFromChain`. Readers must traverse the terminal marker instead
|
|
@@ -188,7 +198,7 @@ export declare function isMeshSsboDevMode(): boolean;
|
|
|
188
198
|
*/
|
|
189
199
|
export declare function uploadMeshSsboBatch(queue: RhiQueue, meshStorageBuffer: {
|
|
190
200
|
readonly buffer: Buffer;
|
|
191
|
-
}, validatedOrdered: readonly ValidatedRenderable[], foldDispatchPlan: FoldDispatchPlan | null): void;
|
|
201
|
+
}, validatedOrdered: readonly ValidatedRenderable[], foldDispatchPlan: FoldDispatchPlan | null, startSlot?: number): void;
|
|
192
202
|
/**
|
|
193
203
|
* Per-bucket descriptor produced by {@link foldDispatchBuckets}.
|
|
194
204
|
*
|
|
@@ -240,11 +250,10 @@ export interface FoldBucket {
|
|
|
240
250
|
* minimal shape. The gate read inside the helper uses `=== true` /
|
|
241
251
|
* `!== true` so both `false` and `undefined` enter the singleton branch.
|
|
242
252
|
*
|
|
243
|
-
* feat-20260625-refactor-sprite-as-transparent-mesh R2 fix-up:
|
|
244
|
-
*
|
|
245
|
-
*
|
|
246
|
-
*
|
|
247
|
-
* `splitLdrSprite` filter at render-system-record.ts:4826/5612 uses).
|
|
253
|
+
* feat-20260625-refactor-sprite-as-transparent-mesh R2 fix-up: the
|
|
254
|
+
* transparent flag identifies the LDR split sub-pass, while the shader id
|
|
255
|
+
* identifies the sprite owner that is safe to fold. Standard PBR Alpha Blend
|
|
256
|
+
* remains singleton so its geometry pass keeps one projection row per draw.
|
|
248
257
|
*/
|
|
249
258
|
export interface FoldRenderableLike {
|
|
250
259
|
readonly transform: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh-ssbo.d.ts","sourceRoot":"","sources":["../../src/record/mesh-ssbo.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mesh-ssbo.d.ts","sourceRoot":"","sources":["../../src/record/mesh-ssbo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { World } from '@forgeax/engine-ecs';
|
|
2
|
+
import type { BindGroupLayout } from '@forgeax/engine-rhi';
|
|
3
|
+
import type { SkylightBindGroupResources } from '../ibl/skylight-bind-group';
|
|
4
|
+
import type { RenderSystemInternals } from './render-context';
|
|
5
|
+
export type PreparedResolverCaches = {
|
|
6
|
+
readonly preparedPipelineIds: WeakMap<object, string>;
|
|
7
|
+
readonly preparedMaterialPipelineShaders: WeakMap<object, string>;
|
|
8
|
+
readonly preparedGroup0Pipelines: WeakSet<object>;
|
|
9
|
+
readonly preparedViewOnlyPipelines: WeakSet<object>;
|
|
10
|
+
readonly preparedRenderMaterialPipelines: WeakSet<object>;
|
|
11
|
+
readonly preparedAssetHandles: WeakMap<World, Map<string, number>>;
|
|
12
|
+
};
|
|
13
|
+
export declare function createPreparedResolverCaches(): PreparedResolverCaches;
|
|
14
|
+
export declare function preparedMaterialBindings(runtime: RenderSystemInternals, caches: PreparedResolverCaches, worlds: readonly World[], materialShaderId: string, worldIndex: number, materialGuid: string, layout: BindGroupLayout, skylightResources?: SkylightBindGroupResources): import("@forgeax/engine-types").ResultOk<import("@forgeax/engine-rhi").BindGroup> | import("@forgeax/engine-types").ResultErr<Error> | import("@forgeax/engine-types").ResultOk<{
|
|
15
|
+
handle: import("@forgeax/engine-rhi").BindGroup;
|
|
16
|
+
dynamicOffsets: number[];
|
|
17
|
+
release: () => import("@forgeax/engine-types").Result<void, import("@forgeax/engine-rhi").RhiError>;
|
|
18
|
+
}>;
|
|
19
|
+
//# sourceMappingURL=prepared-material-bindings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepared-material-bindings.d.ts","sourceRoot":"","sources":["../../src/record/prepared-material-bindings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAkB,eAAe,EAAU,MAAM,qBAAqB,CAAC;AAWnF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAQ7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE9D,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,+BAA+B,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClE,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,QAAQ,CAAC,yBAAyB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,QAAQ,CAAC,+BAA+B,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACpE,CAAC;AAEF,wBAAgB,4BAA4B,IAAI,sBAAsB,CASrE;AAwBD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,eAAe,EACvB,iBAAiB,CAAC,EAAE,0BAA0B;;;;GAgK/C"}
|
|
@@ -3,19 +3,12 @@ import { type PipelineSpec } from '../pipeline-spec';
|
|
|
3
3
|
import type { CameraSnapshot } from '../render-contract';
|
|
4
4
|
import type { DispatchEntry } from '../render-system-extract';
|
|
5
5
|
import type { ValidatedRenderable } from './frame-snapshot';
|
|
6
|
-
import type { PipelineState,
|
|
6
|
+
import type { PipelineState, RenderSystemInternals } from './render-context';
|
|
7
7
|
export interface RecoveryPipelineReadiness {
|
|
8
8
|
readonly pipelineSpecs: readonly PipelineSpec[];
|
|
9
9
|
/** Re-resolve every candidate request and assert a stable cache hit. */
|
|
10
|
-
readonly
|
|
10
|
+
readonly assertPreparedCache: () => void;
|
|
11
11
|
}
|
|
12
|
-
/**
|
|
13
|
-
* Create the one-shot assertion used by the first frame after publication.
|
|
14
|
-
* Recording a miss is a failure at the owner seam; the draw path never gets a
|
|
15
|
-
* chance to submit a frame that hides a shader/pipeline or static-residency
|
|
16
|
-
* cold build behind an apparently successful receipt.
|
|
17
|
-
*/
|
|
18
|
-
export declare function createRecoveryColdWorkGuard(): RecoveryColdWorkGuard;
|
|
19
12
|
export declare function prepareRecoveryPipelineReadiness(input: {
|
|
20
13
|
readonly internals: RenderSystemInternals;
|
|
21
14
|
readonly pipelineState: PipelineState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery-pipeline.d.ts","sourceRoot":"","sources":["../../src/record/recovery-pipeline.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"recovery-pipeline.d.ts","sourceRoot":"","sources":["../../src/record/recovery-pipeline.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACzF,OAAO,EAGL,KAAK,YAAY,EAKlB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAoB,MAAM,0BAA0B,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,OAAO,KAAK,EAEV,aAAa,EACb,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;IAChD,wEAAwE;IACxE,QAAQ,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAC;CAC1C;AA6eD,wBAAgB,gCAAgC,CAAC,KAAK,EAAE;IACtD,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,0BAA0B,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,SAAS,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,2BAA2B,EAAE,OAAO,CAAC;CAC/C,GAAG,yBAAyB,CA0E5B"}
|
|
@@ -3,7 +3,7 @@ import type { World } from '@forgeax/engine-ecs';
|
|
|
3
3
|
import type { VertexLayoutProjection } from '@forgeax/engine-geometry';
|
|
4
4
|
import type { Profiler } from '@forgeax/engine-profiler';
|
|
5
5
|
import type { CompiledRenderGraphInfo } from '@forgeax/engine-render-graph';
|
|
6
|
-
import type { BindGroup, BindGroupLayout, Buffer, ComputePipeline, PipelineLayout, Result, RhiCanvasContext, RhiCommandEncoder, RhiDevice, RenderPipeline as RhiRenderPipeline, Sampler, Texture, TextureFormat, TextureView } from '@forgeax/engine-rhi';
|
|
6
|
+
import type { BindGroup, BindGroupLayout, Buffer, ComputePipeline, PipelineLayout, Result, RhiCanvasContext, RhiCommandEncoder, RhiDevice, RenderPipeline as RhiRenderPipeline, Sampler, ShaderModule, Texture, TextureFormat, TextureView } from '@forgeax/engine-rhi';
|
|
7
7
|
import { RhiError } from '@forgeax/engine-rhi';
|
|
8
8
|
import { type MaterialRuntimeArtifact, type MaterialShaderArtifact } from '@forgeax/engine-shader';
|
|
9
9
|
import type { MaterialAsset, MaterialRenderState, ParamSchemaEntry, PassKind, PrimitiveTopology, VertexAttributeMap } from '@forgeax/engine-types';
|
|
@@ -13,6 +13,9 @@ import type { MeshGpuHandles } from '../device/gpu-residency';
|
|
|
13
13
|
import type { EngineMetrics } from '../engine-metrics';
|
|
14
14
|
import type { RenderFeatureHost } from '../features/host';
|
|
15
15
|
import type { RenderFeatureShaderModuleMode } from '../features/types';
|
|
16
|
+
import type { GpuDrivenPbrProgram } from '../gpu-driven/pbr-program';
|
|
17
|
+
import type { GpuDrivenShadowBatchProjection } from '../gpu-driven/production-raster';
|
|
18
|
+
import type { ShadowViewStatePool } from '../gpu-driven/shadow-views';
|
|
16
19
|
import type { SkylightFallback } from '../ibl/skylight-bind-group';
|
|
17
20
|
import type { BloomInspection } from '../inspection-types';
|
|
18
21
|
import type { HealthListenerRegistry, RhiErrorListenerRegistry } from '../lifecycle';
|
|
@@ -24,7 +27,9 @@ import type { PointsLinesInspection } from '../points-lines/inspection';
|
|
|
24
27
|
import type { PointsLinesRecordPlan } from '../points-lines/record';
|
|
25
28
|
import type { ReflectionProbeTable } from '../reflection/gpu-table';
|
|
26
29
|
import type { ReflectionProbeSelectionResult } from '../reflection/projection';
|
|
30
|
+
import type { FrameObservationDomain } from '../render-contract';
|
|
27
31
|
import type { SsrAdmissionIdentity } from '../ssr/identity';
|
|
32
|
+
import type { TypedFrameObservationCapture } from '../typed-render-graph-primitives';
|
|
28
33
|
import type { GpuPassTimingReason } from './gpu-pass-timing/errors';
|
|
29
34
|
import type { GpuPassTimingCapture, GpuPassTimingFrameIdentity, GpuPassTimingSession } from './gpu-pass-timing/session';
|
|
30
35
|
export interface PointsLinesRecordSubmission {
|
|
@@ -64,19 +69,9 @@ export interface MaterialShaderPipelineEntry {
|
|
|
64
69
|
readonly pipeline: RhiRenderPipeline;
|
|
65
70
|
readonly group2Contract: PipelineGroup2Contract;
|
|
66
71
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
* guard is armed; a miss is a hard failure before queue submission.
|
|
71
|
-
*/
|
|
72
|
-
export interface RecoveryColdWorkGuard {
|
|
73
|
-
arm(): void;
|
|
74
|
-
notePipelineColdWork(): void;
|
|
75
|
-
noteUploadColdWork(): void;
|
|
76
|
-
finish(): void;
|
|
77
|
-
}
|
|
78
|
-
import type { RenderDebugOverlay, RenderPipelineContext, RenderRecordPhase, VolumetricFogShaderSources } from '../render-contract';
|
|
79
|
-
import type { DispatchEntry, MaterialSnapshot, SkyboxSnapshot, SkylightSnapshot } from '../render-system-extract';
|
|
72
|
+
import type { AtmosphereShaderSources, RenderDebugOverlay, RenderPipelineContext, RenderRecordPhase, SsrShaderSources, VolumetricFogShaderSources } from '../render-contract';
|
|
73
|
+
import type { GpuDrivenStandardPbrFrameResources } from '../render-pipeline';
|
|
74
|
+
import type { DispatchEntry, MaterialSnapshot, ShadowCasterMembership, SkyboxSnapshot, SkylightSnapshot } from '../render-system-extract';
|
|
80
75
|
import type { SkinPaletteAllocator } from '../systems/skin-palette-allocator';
|
|
81
76
|
import type { RenderTarget } from '../targets/contracts';
|
|
82
77
|
import type { RenderTargetPhysical } from '../targets/physical';
|
|
@@ -84,9 +79,23 @@ import type { BindGroupCounts, BloomFrameReceipts, DispatchCounts, MaterialBgAss
|
|
|
84
79
|
import type { FoldDispatchPlan } from './mesh-ssbo';
|
|
85
80
|
export interface RenderSystemRuntime {
|
|
86
81
|
readonly device: RhiDevice;
|
|
82
|
+
/** Current renderer device generation used to fence receipt-bound captures. */
|
|
83
|
+
readonly deviceGeneration?: number;
|
|
84
|
+
/** Public receipt identity reserved before graph encoding. */
|
|
85
|
+
readonly observationFrameId?: number | undefined;
|
|
86
|
+
/** Graph identity written by the typed graph for the current receipt. */
|
|
87
|
+
observationGraphGeneration?: number | undefined;
|
|
88
|
+
/** Renderer-owned capture bridge consumed after queue submission. */
|
|
89
|
+
readonly observationCaptureOwner?: {
|
|
90
|
+
register(capture: TypedFrameObservationCapture): void;
|
|
91
|
+
consume(frameNumber: number): readonly TypedFrameObservationCapture[];
|
|
92
|
+
drain(): readonly TypedFrameObservationCapture[];
|
|
93
|
+
} | undefined;
|
|
87
94
|
/** Internal backend-fixture hook evaluated at the submit transaction edge. */
|
|
88
95
|
readonly beforeSubmit?: ((device: RhiDevice) => RhiError | undefined) | undefined;
|
|
89
96
|
readonly deviceScope: DeviceScope;
|
|
97
|
+
/** Domains explicitly armed for the frame being encoded. */
|
|
98
|
+
readonly observationCaptureDomains?: readonly FrameObservationDomain[] | undefined;
|
|
90
99
|
/** Resolve a recorder/backend wrapper before configuring the native surface. */
|
|
91
100
|
readonly resolveSurfaceDevice?: (device: RhiDevice) => Result<RhiDevice, RhiError>;
|
|
92
101
|
readonly errorRegistry: RhiErrorListenerRegistry;
|
|
@@ -96,19 +105,24 @@ export interface RenderSystemRuntime {
|
|
|
96
105
|
readonly getMaterialProjection?: (materialGuid: string) => MaterialRenderProjection | undefined;
|
|
97
106
|
readonly getMaterialArtifact?: (specializationKey: string) => MaterialRuntimeArtifact | undefined;
|
|
98
107
|
/** Producer-owned cooked Standard PBR artifact used by GPU-driven projection. */
|
|
99
|
-
readonly getMaterialShaderArtifact?: (materialShaderId: string) => MaterialShaderArtifact | undefined;
|
|
100
|
-
readonly getMaterialShaderPipeline?: (materialShaderId: string, isHdr: boolean, renderState?: MaterialRenderState, topology?: PrimitiveTopology, indexFormat?: 'uint16' | 'uint32', variantSet?: string, passKind?: PassKind, meshAttributes?: VertexAttributeMap, sampleCount?: number, colorFormatOverride?: GPUTextureFormat, shaderUvSetCount?: number, depthFormatOverride?: GPUTextureFormat | null, vertexLayout?: string, vertexLayoutProjection?: VertexLayoutProjection, shaderModuleMode?: RenderFeatureShaderModuleMode, layoutKindOverride?: 'pbr' | 'pbr-skin'
|
|
101
|
-
|
|
108
|
+
readonly getMaterialShaderArtifact?: (materialShaderId: string, vertexColorAvailable?: boolean) => MaterialShaderArtifact | undefined;
|
|
109
|
+
readonly getMaterialShaderPipeline?: (materialShaderId: string, isHdr: boolean, renderState?: MaterialRenderState, topology?: PrimitiveTopology, indexFormat?: 'uint16' | 'uint32', variantSet?: string, passKind?: PassKind, meshAttributes?: VertexAttributeMap, sampleCount?: number, colorFormatOverride?: GPUTextureFormat, shaderUvSetCount?: number, depthFormatOverride?: GPUTextureFormat | null, vertexLayout?: string, vertexLayoutProjection?: VertexLayoutProjection, shaderModuleMode?: RenderFeatureShaderModuleMode, layoutKindOverride?: 'pbr' | 'pbr-skin' | 'gpu-driven-pbr' | 'gpu-driven-skin',
|
|
110
|
+
/** Optional vertex entry override for receipt-owned scene-index passes. */
|
|
111
|
+
vertexEntryPoint?: string, additionalColorFormats?: readonly GPUTextureFormat[], vertexEntry?: string, fragmentEntry?: string, particleInputLanes?: number, fragmentConstants?: Readonly<Record<string, number>>) => RhiRenderPipeline | null;
|
|
112
|
+
readonly getMaterialShaderPipelineEntry?: (materialShaderId: string, isHdr: boolean, renderState?: MaterialRenderState, topology?: PrimitiveTopology, indexFormat?: 'uint16' | 'uint32', variantSet?: string, passKind?: PassKind, meshAttributes?: VertexAttributeMap, sampleCount?: number, colorFormatOverride?: GPUTextureFormat, shaderUvSetCount?: number, depthFormatOverride?: GPUTextureFormat | null, vertexLayout?: string, vertexLayoutProjection?: VertexLayoutProjection, shaderModuleMode?: RenderFeatureShaderModuleMode, layoutKindOverride?: 'pbr' | 'pbr-skin',
|
|
113
|
+
/** Optional vertex entry override for receipt-owned scene-index passes. */
|
|
114
|
+
vertexEntryPoint?: string, additionalColorFormats?: readonly GPUTextureFormat[], vertexEntry?: string, fragmentEntry?: string, particleInputLanes?: number, fragmentConstants?: Readonly<Record<string, number>>) => MaterialShaderPipelineEntry | null;
|
|
102
115
|
/** Reflection-derived UV count included in the material PipelineSpec cache key. */
|
|
103
116
|
readonly getMaterialShaderUvSetCount?: (materialShaderId: string) => number | undefined;
|
|
104
|
-
readonly getMaterialShaderBindingContract?: (materialShaderId: string) => 'group-0' | 'group-0-resource' | 'view-only' | 'view-and-scene-depth' | 'render-material';
|
|
117
|
+
readonly getMaterialShaderBindingContract?: (materialShaderId: string) => 'group-0' | 'group-0-resource' | 'view-only' | 'view-and-scene-depth' | 'render-material-with-scene-depth' | 'render-material-and-scene-depth' | 'render-material';
|
|
105
118
|
readonly getParamSchema?: (materialShaderId: string) => readonly ParamSchemaEntry[] | undefined;
|
|
106
119
|
readonly getMaterialBindGroupLayout?: (materialShaderId: string, materialParamSchema?: readonly ParamSchemaEntry[]) => BindGroupLayout | undefined;
|
|
107
|
-
|
|
120
|
+
/** Handle-first factory for built-in same-frame GPU producers. */
|
|
121
|
+
readonly immediateShaderModuleFactory?: PipelineBuilderShaderModuleFactory;
|
|
108
122
|
readonly metrics: EngineMetrics;
|
|
109
123
|
readonly lookupPostProcess?: (id: string) => import('../fullscreen-post-process-pass').PostProcessShaderEntry | undefined;
|
|
110
124
|
readonly getPostProcessParamsBuffer?: (id: string) => Buffer | undefined;
|
|
111
|
-
readonly getPostProcessPipeline?: (id: string, bgl: BindGroupLayout,
|
|
125
|
+
readonly getPostProcessPipeline?: (id: string, bgl: BindGroupLayout, colorFormats: readonly GPUTextureFormat[], entry?: import('../fullscreen-post-process-pass').PostProcessShaderEntry) => RhiRenderPipeline | null;
|
|
112
126
|
/** Candidate-owned post-process pipelines transferred at publication. */
|
|
113
127
|
readonly getRecoveryPostProcessPipelines?: () => ReadonlyMap<string, RhiRenderPipeline>;
|
|
114
128
|
readonly clearPostProcessPipelineCache?: (id: string) => void;
|
|
@@ -251,13 +265,24 @@ export interface PipelineState {
|
|
|
251
265
|
readonly probeInstancesBindGroupLayout?: BindGroupLayout;
|
|
252
266
|
readonly identityInstanceBuffer: Buffer;
|
|
253
267
|
readonly defaultSampler: Sampler;
|
|
254
|
-
readonly nearestSampler: Sampler;
|
|
255
268
|
readonly fallbackTextureView: TextureView;
|
|
256
269
|
readonly unlitPipeline: RhiRenderPipeline | null;
|
|
257
270
|
readonly standardPipeline: RhiRenderPipeline | null;
|
|
271
|
+
/** Producer-owned Standard PBR module for this device generation. */
|
|
272
|
+
readonly standardPbrShaderModule: ShaderModule | null;
|
|
273
|
+
/** Producer-owned skinned Standard PBR module for this device generation. */
|
|
274
|
+
readonly pbrSkinShaderModule: ShaderModule | null;
|
|
275
|
+
/** Producer-resolved Standard PBR UV ABI count for geometry projection. */
|
|
276
|
+
readonly standardPbrShaderUvSetCount: number;
|
|
258
277
|
readonly unlitPipelineMsaa: RhiRenderPipeline | null;
|
|
259
278
|
readonly unlitPipelineHdrMsaa: RhiRenderPipeline | null;
|
|
260
279
|
readonly pbrPipelineLayout: PipelineLayout | null;
|
|
280
|
+
/** Dedicated slot-3 layout for scene-index GPU-driven Standard PBR draws. */
|
|
281
|
+
readonly gpuDrivenInstancesBindGroupLayout?: BindGroupLayout | null;
|
|
282
|
+
readonly gpuDrivenPbrPipelineLayout?: PipelineLayout | null;
|
|
283
|
+
/** Device-owned shader modules paired with their exact Standard PBR receipts. */
|
|
284
|
+
readonly gpuDrivenPbrPrograms?: ReadonlyMap<string, GpuDrivenPbrProgram>;
|
|
285
|
+
readonly gpuDrivenPbrSkinPipelineLayout?: PipelineLayout | null;
|
|
261
286
|
readonly pbrProbePipelineLayout?: PipelineLayout | null;
|
|
262
287
|
readonly hdrpPbrPipelineLayout: PipelineLayout | null;
|
|
263
288
|
readonly hdrpProbePbrPipelineLayout?: PipelineLayout | null;
|
|
@@ -326,7 +351,7 @@ export interface RenderSystemInternals extends RenderSystemRuntime {
|
|
|
326
351
|
readonly meshSsboState?: {
|
|
327
352
|
readonly slotCount: number;
|
|
328
353
|
} | undefined;
|
|
329
|
-
readonly buildPostProcessPipeline?: ((entry: import('../fullscreen-post-process-pass').PostProcessShaderEntry, bgl: BindGroupLayout,
|
|
354
|
+
readonly buildPostProcessPipeline?: ((entry: import('../fullscreen-post-process-pass').PostProcessShaderEntry, bgl: BindGroupLayout, colorFormats: readonly GPUTextureFormat[], label: string) => RhiRenderPipeline | null) | undefined;
|
|
330
355
|
gpuPassTimingSession?: GpuPassTimingSession | undefined;
|
|
331
356
|
gpuPassTimingCapture?: GpuPassTimingCapture | undefined;
|
|
332
357
|
gpuPassTimingSubmittedWork?: Promise<void> | undefined;
|
|
@@ -336,6 +361,10 @@ export interface RenderSystemInternals extends RenderSystemRuntime {
|
|
|
336
361
|
readonly encodeRenderTargetReadbacks?: (encoder: RhiCommandEncoder, faces?: readonly number[]) => void;
|
|
337
362
|
/** Composed renderer utility sources installed atomically at build-ready. */
|
|
338
363
|
volumetricFogShaders?: VolumetricFogShaderSources | undefined;
|
|
364
|
+
/** Composed renderer utility sources installed atomically at build-ready. */
|
|
365
|
+
ssrShaders?: SsrShaderSources | undefined;
|
|
366
|
+
/** Composed renderer utility sources installed atomically at build-ready. */
|
|
367
|
+
atmosphereShaders?: AtmosphereShaderSources | undefined;
|
|
339
368
|
}
|
|
340
369
|
export interface _StandardForwardSceneView {
|
|
341
370
|
readonly assets: AssetRegistry;
|
|
@@ -358,9 +387,6 @@ export interface _StandardForwardSceneView {
|
|
|
358
387
|
readonly profilePhase?: <T>(phase: RenderRecordPhase, action: () => T) => T;
|
|
359
388
|
readonly directionalShadowCacheReuse: boolean;
|
|
360
389
|
readonly world: World;
|
|
361
|
-
readonly gpuDrivenEntityKeys: ReadonlySet<number>;
|
|
362
|
-
/** Renderer-local world namespace paired with gpuDrivenEntityKeys. */
|
|
363
|
-
readonly gpuDrivenWorldKeys?: readonly number[];
|
|
364
390
|
readonly tonemapActive: boolean;
|
|
365
391
|
readonly geometryColorView: TextureView | null;
|
|
366
392
|
readonly geometryDepthView: TextureView | null;
|
|
@@ -379,10 +405,34 @@ export interface _StandardForwardSceneView {
|
|
|
379
405
|
readonly foldDispatchPlan: FoldDispatchPlan | null;
|
|
380
406
|
readonly materialSlotIndices: readonly (readonly number[])[];
|
|
381
407
|
readonly materialSlots: readonly MaterialSnapshot[];
|
|
382
|
-
readonly materialSlotOwners: readonly
|
|
408
|
+
readonly materialSlotOwners: readonly ValidatedRenderable[];
|
|
383
409
|
readonly materialSlotCount: number;
|
|
410
|
+
/** Filled by main-pass material producers before the GPU-driven raster tail. */
|
|
411
|
+
readonly gpuDrivenStandardPbrFrameResources?: GpuDrivenStandardPbrFrameResources;
|
|
412
|
+
/** Scene table retained by the renderer even when no draw is GPU-admitted. */
|
|
413
|
+
readonly gpuDrivenSceneMaterialBuffer?: Buffer;
|
|
414
|
+
/** Concrete main-pass draw identities already claimed by the capable GPU lane. */
|
|
415
|
+
readonly gpuDrivenDrawKeys?: ReadonlySet<string>;
|
|
416
|
+
readonly gpuDrivenShadowViews?: ShadowViewStatePool;
|
|
417
|
+
readonly gpuDrivenShadowBatchProjections?: ReadonlyMap<string, ReadonlyMap<number, GpuDrivenShadowBatchProjection>>;
|
|
418
|
+
/** Concrete ShadowCaster keys already claimed by the capable GPU subset. */
|
|
419
|
+
readonly gpuDrivenShadowDrawKeys?: ReadonlySet<string>;
|
|
420
|
+
/** View-scoped ShadowCaster claims for exact CPU residual routing. */
|
|
421
|
+
readonly gpuDrivenShadowDrawKeysByView?: ReadonlyMap<string, ReadonlySet<string>>;
|
|
422
|
+
/** Extracted structured ShadowCaster ownership facts. */
|
|
423
|
+
readonly shadowCasterMembership?: readonly ShadowCasterMembership[];
|
|
424
|
+
/** Complete retained ShadowCaster rows, including camera-culled casters. */
|
|
425
|
+
readonly shadowValidatedOrdered?: readonly ValidatedRenderable[];
|
|
426
|
+
/** Dispatch entries remapped to the complete retained ShadowCaster rows. */
|
|
427
|
+
readonly shadowDispatch?: readonly DispatchEntry[];
|
|
428
|
+
/** Mesh-SSBO slot base reserved for the retained ShadowCaster rows. */
|
|
429
|
+
readonly shadowMeshSsboBase?: number;
|
|
430
|
+
/** Renderer-stable world keys used by ShadowCaster ownership identities. */
|
|
431
|
+
readonly shadowCasterWorldKeys?: readonly number[];
|
|
384
432
|
readonly pointsLines: PointsLinesRecordOwner | undefined;
|
|
385
433
|
readonly materialBgAssemblyCache: Map<string, MaterialBgAssemblyCacheEntry>;
|
|
434
|
+
/** Record-stage proof callback; invoked only after a real draw command is encoded. */
|
|
435
|
+
readonly onRenderableDraw?: (entry: ValidatedRenderable) => void;
|
|
386
436
|
readonly reflectionProbes?: ReflectionProbeRecordState;
|
|
387
437
|
materialUboPayloadCache?: {
|
|
388
438
|
readonly materialSlots: readonly MaterialSnapshot[];
|