@forgeax/engine-render 0.1.3 → 0.1.6
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 +130 -641
- package/dist/.tsbuildinfo +1 -1
- package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts +2 -0
- package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts.map +1 -0
- package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts +2 -0
- package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts.map +1 -0
- package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts +2 -0
- package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts.map +1 -1
- package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts +6 -0
- package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts.map +1 -1
- package/dist/{gpu-driven/view-reference.d.ts → __tests__/gpu-driven-view-reference.d.ts} +4 -4
- package/dist/__tests__/gpu-driven-view-reference.d.ts.map +1 -0
- package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts.map +1 -1
- package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts +2 -0
- package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts.map +1 -0
- package/dist/__tests__/morph-feature-plan.unit.test.d.ts +2 -0
- package/dist/__tests__/morph-feature-plan.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-plan.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-plan.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-plan.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-plan.unit.test.d.ts.map +1 -0
- package/dist/__tests__/ssao-config.unit.test.d.ts +2 -0
- package/dist/__tests__/ssao-config.unit.test.d.ts.map +1 -0
- package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts +2 -0
- package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts.map +1 -0
- package/dist/__tests__/standard-descriptors.test-d.d.ts +2 -0
- package/dist/__tests__/standard-descriptors.test-d.d.ts.map +1 -0
- package/dist/__tests__/standard-pipeline.dawn.test.d.ts +2 -0
- package/dist/__tests__/standard-pipeline.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/standard-pipeline.integration.test.d.ts +2 -0
- package/dist/__tests__/standard-pipeline.integration.test.d.ts.map +1 -0
- package/dist/__tests__/standard-profile-oracle.unit.test.d.ts +2 -0
- package/dist/__tests__/standard-profile-oracle.unit.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts +2 -0
- package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts.map +1 -0
- package/dist/{renderer/backend-selection.d.ts → assembly/backend-contract.d.ts} +15 -4
- package/dist/assembly/backend-contract.d.ts.map +1 -0
- package/dist/assembly/factory.d.ts +207 -0
- package/dist/assembly/factory.d.ts.map +1 -0
- package/dist/assembly/host-contract.d.ts +84 -0
- package/dist/assembly/host-contract.d.ts.map +1 -0
- package/dist/{renderer → assembly}/material/assembly.d.ts +1 -2
- package/dist/{renderer → assembly}/material/assembly.d.ts.map +1 -1
- package/dist/assembly/material/pipeline-projection.d.ts +30 -0
- package/dist/assembly/material/pipeline-projection.d.ts.map +1 -0
- package/dist/authoring.d.ts +10 -11
- package/dist/authoring.d.ts.map +1 -1
- package/dist/authoring.mjs +25 -3
- package/dist/authoring.mjs.map +1 -1
- package/dist/chunk-CQXZC5XI.mjs +182 -0
- package/dist/chunk-CQXZC5XI.mjs.map +1 -0
- package/dist/chunk-QC4VW3XJ.mjs +79 -0
- package/dist/chunk-QC4VW3XJ.mjs.map +1 -0
- package/dist/chunk-SCRSAK5B.mjs +480 -0
- package/dist/chunk-SCRSAK5B.mjs.map +1 -0
- package/dist/components/__tests__/schema-contract.unit.test.d.ts +2 -0
- package/dist/components/__tests__/schema-contract.unit.test.d.ts.map +1 -0
- package/dist/components/glyph-text.d.ts +1 -1
- package/dist/components/glyph-text.d.ts.map +1 -1
- package/dist/components/index.d.ts +2 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/instances.d.ts +1 -1
- package/dist/components/instances.d.ts.map +1 -1
- package/dist/components/light-helpers.d.ts +1 -1
- package/dist/components/light-helpers.d.ts.map +1 -1
- package/dist/components/mesh-filter.d.ts +7 -7
- package/dist/components/mesh-filter.d.ts.map +1 -1
- package/dist/components/scene-instance.d.ts +11 -11
- package/dist/components/skybox-background.d.ts +56 -0
- package/dist/components/skybox-background.d.ts.map +1 -0
- package/dist/components/skylight.d.ts +55 -0
- package/dist/components/skylight.d.ts.map +1 -0
- package/dist/components/sprite-animation.d.ts +2 -3
- package/dist/components/sprite-animation.d.ts.map +1 -1
- package/dist/components/sprite-instances.d.ts +1 -1
- package/dist/components/sprite-playback-mode.d.ts +6 -1
- package/dist/components/sprite-playback-mode.d.ts.map +1 -1
- package/dist/components/sprite-region-override.d.ts +2 -3
- package/dist/components/sprite-region-override.d.ts.map +1 -1
- package/dist/components/tile-layer.d.ts +5 -0
- package/dist/components/tile-layer.d.ts.map +1 -1
- package/dist/construct-renderer.d.ts +18 -1
- package/dist/construct-renderer.d.ts.map +1 -1
- package/dist/construct-renderer.mjs +27008 -4
- package/dist/construct-renderer.mjs.map +1 -1
- package/dist/debug-draw-glue.d.ts +2 -53
- package/dist/debug-draw-glue.d.ts.map +1 -1
- package/dist/device/device-scope.d.ts +83 -0
- package/dist/device/device-scope.d.ts.map +1 -0
- package/dist/{gpu-resource-store.d.ts → device/gpu-residency.d.ts} +91 -48
- package/dist/device/gpu-residency.d.ts.map +1 -0
- package/dist/device/resource-types.d.ts +8 -0
- package/dist/device/resource-types.d.ts.map +1 -0
- package/dist/engine-metrics.d.ts +2 -2
- package/dist/engine-metrics.d.ts.map +1 -1
- package/dist/errors/recover.d.ts +28 -1
- package/dist/errors/recover.d.ts.map +1 -1
- package/dist/errors/render.d.ts +249 -258
- package/dist/errors/render.d.ts.map +1 -1
- package/dist/features/fullscreen.d.ts +19 -0
- package/dist/features/fullscreen.d.ts.map +1 -0
- package/dist/features/host.d.ts +32 -26
- package/dist/features/host.d.ts.map +1 -1
- package/dist/features/morph/morph-feature.d.ts +39 -5
- package/dist/features/morph/morph-feature.d.ts.map +1 -1
- package/dist/features/plan.d.ts +182 -0
- package/dist/features/plan.d.ts.map +1 -0
- package/dist/features/prepared-gpu-work.d.ts +21 -17
- package/dist/features/prepared-gpu-work.d.ts.map +1 -1
- package/dist/features/prepared-graphics-store.d.ts +2 -1
- package/dist/features/prepared-graphics-store.d.ts.map +1 -1
- package/dist/features/prepared-graphics.d.ts +11 -21
- package/dist/features/prepared-graphics.d.ts.map +1 -1
- package/dist/features/render-graph-compute.d.ts +2 -2
- package/dist/features/render-graph-compute.d.ts.map +1 -1
- package/dist/features/render-graph-contribution.d.ts +4 -7
- package/dist/features/render-graph-contribution.d.ts.map +1 -1
- package/dist/features/render-graph-raster.d.ts +2 -2
- package/dist/features/render-graph-raster.d.ts.map +1 -1
- package/dist/features/render-graph-resources.d.ts +6 -6
- package/dist/features/render-graph-resources.d.ts.map +1 -1
- package/dist/features/targets.d.ts +5 -5
- package/dist/features/targets.d.ts.map +1 -1
- package/dist/features/types.d.ts +11 -190
- package/dist/features/types.d.ts.map +1 -1
- package/dist/features/vocabulary.d.ts +14 -0
- package/dist/features/vocabulary.d.ts.map +1 -0
- package/dist/fullscreen-post-process-pass.d.ts +4 -25
- package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
- package/dist/glyph-text-layout-system.d.ts +3 -2
- package/dist/glyph-text-layout-system.d.ts.map +1 -1
- package/dist/gpu-driven/batch-topology.d.ts +6 -75
- package/dist/gpu-driven/batch-topology.d.ts.map +1 -1
- package/dist/gpu-driven/production-raster.d.ts +13 -112
- package/dist/gpu-driven/production-raster.d.ts.map +1 -1
- package/dist/gpu-driven/view-gpu.d.ts +10 -66
- package/dist/gpu-driven/view-gpu.d.ts.map +1 -1
- package/dist/gpu-resource.d.ts +3 -3
- package/dist/gpu-scene-schema.d.ts +1 -94
- package/dist/gpu-scene-schema.d.ts.map +1 -1
- package/dist/gpu-scene.d.ts +7 -33
- package/dist/gpu-scene.d.ts.map +1 -1
- package/dist/hdrp-buffers.d.ts +3 -53
- package/dist/hdrp-buffers.d.ts.map +1 -1
- package/dist/ibl/IblPipelineCache.d.ts +74 -180
- package/dist/ibl/IblPipelineCache.d.ts.map +1 -1
- package/dist/ibl/skylight-bind-group.d.ts +1 -1
- package/dist/index.d.ts +13 -43
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +165 -3
- package/dist/index.mjs.map +1 -1
- package/dist/inspection-types.d.ts +69 -0
- package/dist/inspection-types.d.ts.map +1 -0
- package/dist/instance-buffer-cache.d.ts +1 -4
- package/dist/instance-buffer-cache.d.ts.map +1 -1
- package/dist/internal.d.ts +1 -73
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.mjs +1 -43
- package/dist/internal.mjs.map +1 -1
- package/dist/lifecycle.d.ts +36 -2
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/materials.d.ts +0 -3
- package/dist/materials.d.ts.map +1 -1
- package/dist/mesh-material-bindings.d.ts +0 -1
- package/dist/mesh-material-bindings.d.ts.map +1 -1
- package/dist/pbr-pipeline.d.ts +75 -29
- package/dist/pbr-pipeline.d.ts.map +1 -1
- package/dist/pipeline/standard-forward-lane.d.ts +5 -0
- package/dist/pipeline/standard-forward-lane.d.ts.map +1 -0
- package/dist/pipeline/standard-pipeline.d.ts +31 -0
- package/dist/pipeline/standard-pipeline.d.ts.map +1 -0
- package/dist/pipeline/standard-profile.d.ts +40 -0
- package/dist/pipeline/standard-profile.d.ts.map +1 -0
- package/dist/pipeline-builder.d.ts +3 -3
- package/dist/pipeline-builder.d.ts.map +1 -1
- package/dist/pipeline-spec-types.d.ts +24 -0
- package/dist/pipeline-spec-types.d.ts.map +1 -0
- package/dist/pipeline-spec.d.ts +16 -155
- package/dist/pipeline-spec.d.ts.map +1 -1
- package/dist/plugin.d.ts +1 -14
- package/dist/plugin.d.ts.map +1 -1
- package/dist/post-process-errors.d.ts +18 -18
- package/dist/post-process-errors.d.ts.map +1 -1
- package/dist/prepare/prepared-graphics-resolver.d.ts +2 -5
- package/dist/prepare/prepared-graphics-resolver.d.ts.map +1 -1
- package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts +2 -0
- package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts.map +1 -0
- package/dist/record/frame-lighting.d.ts +7 -73
- package/dist/record/frame-lighting.d.ts.map +1 -1
- package/dist/record/frame-snapshot.d.ts +44 -44
- package/dist/record/frame-snapshot.d.ts.map +1 -1
- package/dist/record/frame-targets.d.ts +5 -38
- package/dist/record/frame-targets.d.ts.map +1 -1
- package/dist/record/frame.d.ts +64 -52
- package/dist/record/frame.d.ts.map +1 -1
- package/dist/record/helpers.d.ts +3 -2
- package/dist/record/helpers.d.ts.map +1 -1
- package/dist/record/main-pass-geometry.d.ts +5 -4
- package/dist/record/main-pass-geometry.d.ts.map +1 -1
- package/dist/record/main-pass-material.d.ts +90 -59
- package/dist/record/main-pass-material.d.ts.map +1 -1
- package/dist/record/main-pass-sprite-draws.d.ts +28 -3
- package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
- package/dist/record/main-pass.d.ts +1 -1
- package/dist/record/main-pass.d.ts.map +1 -1
- package/dist/record/mesh-ssbo.d.ts +276 -3
- package/dist/record/mesh-ssbo.d.ts.map +1 -1
- package/dist/record/render-context.d.ts +235 -0
- package/dist/record/render-context.d.ts.map +1 -0
- package/dist/record/shadow-pass.d.ts +15 -88
- 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 +29 -7
- package/dist/record/typed-frame-graph.d.ts.map +1 -1
- package/dist/record/view-ubo.d.ts +3 -3
- package/dist/record/view-ubo.d.ts.map +1 -1
- package/dist/render-contract.d.ts +416 -0
- package/dist/render-contract.d.ts.map +1 -0
- package/dist/render-data.d.ts.map +1 -1
- package/dist/render-graph-primitives.d.ts +14 -362
- package/dist/render-graph-primitives.d.ts.map +1 -1
- package/dist/render-pipeline.d.ts +25 -64
- package/dist/render-pipeline.d.ts.map +1 -1
- package/dist/render-system-extract.d.ts +107 -338
- package/dist/render-system-extract.d.ts.map +1 -1
- package/dist/render-system.d.ts +21 -713
- package/dist/render-system.d.ts.map +1 -1
- package/dist/scene/render-scene-types.d.ts +58 -0
- package/dist/scene/render-scene-types.d.ts.map +1 -0
- package/dist/scene/render-scene.d.ts +105 -0
- package/dist/scene/render-scene.d.ts.map +1 -0
- package/dist/scene-instances/post-spawn-resolve-joints.d.ts +2 -5
- package/dist/scene-instances/post-spawn-resolve-joints.d.ts.map +1 -1
- package/dist/ssao-buffers.d.ts +22 -3
- package/dist/ssao-buffers.d.ts.map +1 -1
- package/dist/systems/skin-palette-allocator.d.ts +2 -4
- package/dist/systems/skin-palette-allocator.d.ts.map +1 -1
- package/dist/systems/skin-palette-types.d.ts +14 -0
- package/dist/systems/skin-palette-types.d.ts.map +1 -0
- package/dist/systems/transparent-sort-config.d.ts +23 -2
- package/dist/systems/transparent-sort-config.d.ts.map +1 -1
- package/dist/tilemap-chunk-extract-system.d.ts +4 -3
- package/dist/tilemap-chunk-extract-system.d.ts.map +1 -1
- package/dist/typed-render-graph-primitives.d.ts +2 -4
- package/dist/typed-render-graph-primitives.d.ts.map +1 -1
- package/dist/typed-shadow-passes.d.ts +3 -3
- package/dist/typed-shadow-passes.d.ts.map +1 -1
- package/package.json +23 -23
- package/src/__tests__/backend-selection-rhi-capture.test-d.ts +1 -1
- package/src/__tests__/callback-inference.test-d.ts +6 -3
- package/src/__tests__/cluster-grid-default-surface.unit.test.ts +7 -4
- package/src/__tests__/construct-renderer-identity.unit.test.ts +15 -2
- package/src/__tests__/device-scope-lifecycle.unit.test.ts +151 -0
- package/src/__tests__/device-scope-stale-matrix.unit.test.ts +42 -0
- package/src/__tests__/direct-extract-consumer-contract.test-d.ts +8 -19
- package/src/__tests__/direct-light-snapshot.unit.test.ts +3 -13
- package/src/__tests__/factory-contract.integration.test.ts +158 -209
- package/src/__tests__/fallback-row-stride-surface.unit.test.ts +1 -4
- package/src/__tests__/frame-observation.contract.test.ts +17 -8
- package/src/__tests__/fullscreen-feature-plan.unit.test.ts +32 -0
- package/src/__tests__/glyph-text-layout-recovery.unit.test.ts +6 -11
- package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +9 -16
- package/src/__tests__/gpu-driven-production.integration.test.ts +32 -205
- package/src/__tests__/gpu-driven-scaling.unit.test.ts +4 -7
- package/src/__tests__/gpu-driven-view-gpu-evidence.ts +87 -8
- package/src/__tests__/gpu-driven-view-graph.integration.test.ts +170 -8
- package/src/{gpu-driven/view-reference.ts → __tests__/gpu-driven-view-reference.ts} +4 -3
- package/src/__tests__/gpu-driven-view.browser.test.ts +12 -1
- package/src/__tests__/gpu-driven-view.dawn.test.ts +12 -1
- package/src/__tests__/gpu-driven-view.unit.test.ts +11 -267
- package/src/__tests__/gpu-resource-store-stride.unit.test.ts +3 -3
- package/src/__tests__/gpu-scene-render-graph-gpu.ts +2 -3
- package/src/__tests__/gpu-scene.dawn.test.ts +2 -6
- package/src/__tests__/gpu-scene.unit.test.ts +10 -24
- package/src/__tests__/ibl/face-uniforms.unit.test.ts +46 -0
- package/src/__tests__/infinite-grid-no-vertex-probe.unit.test.ts +34 -66
- package/src/__tests__/ktx2-basis-gpu-consumer.dawn.test.ts +14 -5
- package/src/__tests__/light-buffer-layout.unit.test.ts +4 -49
- package/src/__tests__/material-cooked-projection.unit.test.ts +2 -51
- package/src/__tests__/material-snapshot-mutation.integration.test.ts +10 -15
- package/src/__tests__/material-static-dynamic-route.unit.test.ts +4 -23
- package/src/__tests__/material-stride-surface.unit.test.ts +2 -2
- package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +7 -8
- package/src/__tests__/morph-culling-reentry.dawn.test.ts +29 -38
- package/src/__tests__/morph-feature-gpu-work.integration.test.ts +45 -43
- package/src/__tests__/morph-feature-plan.unit.test.ts +53 -0
- package/src/__tests__/morph-visual-evidence.integration.test.ts +47 -33
- package/src/__tests__/nineslice-handle-surface.unit.test.ts +11 -6
- package/src/__tests__/post-process-error-policy-owner.unit.test.ts +6 -13
- package/src/__tests__/prepared-graphics-capability.unit.test.ts +6 -81
- package/src/__tests__/prepared-graphics-generation.unit.test.ts +3 -17
- package/src/__tests__/prepared-graphics-lifecycle.unit.test.ts +6 -74
- package/src/__tests__/prepared-graphics-resolver.unit.test.ts +1 -3
- package/src/__tests__/prepared-graphics-snapshot.unit.test.ts +2 -2
- package/src/__tests__/profiler-default-off.test.ts +1 -1
- package/src/__tests__/profiler-phase-catalog.test.ts +2 -2
- package/src/__tests__/profiler-phase-integration.test.ts +5 -13
- package/src/__tests__/profiler-phase-token.test.ts +3 -8
- package/src/__tests__/public-surface.test-d.ts +65 -3
- package/src/__tests__/recover-error-policy-owner.unit.test.ts +1 -21
- package/src/__tests__/render-error-code-owner.test-d.ts +18 -23
- package/src/__tests__/render-error-detail-ssot.test-d.ts +0 -95
- package/src/__tests__/render-error-exhaustive.test-d.ts +8 -1
- package/src/__tests__/render-feature-assembly.test-d.ts +8 -16
- package/src/__tests__/render-feature-context.test-d.ts +16 -40
- package/src/__tests__/render-feature-contract.test-d.ts +9 -18
- package/src/__tests__/render-feature-diagnostics.unit.test.ts +6 -8
- package/src/__tests__/render-feature-docs.unit.test.ts +8 -7
- package/src/__tests__/render-feature-gpu-work.integration.test.ts +14 -75
- package/src/__tests__/render-feature-plan.test-d.ts +161 -0
- package/src/__tests__/render-feature-plan.unit.test.ts +170 -0
- package/src/__tests__/render-feature-prepared-diagnostics.unit.test.ts +8 -19
- package/src/__tests__/render-feature-prepared-errors.test-d.ts +3 -6
- package/src/__tests__/render-feature-prepared-graphics-docs.unit.test.ts +10 -71
- package/src/__tests__/render-feature-prepared-graphics-isolation.unit.test.ts +11 -61
- package/src/__tests__/render-feature-prepared-graphics-negative.test-d.ts +20 -43
- package/src/__tests__/render-feature-prepared-graphics.test-d.ts +56 -78
- package/src/__tests__/render-feature-public-surface.test-d.ts +6 -24
- package/src/__tests__/render-feature-retry.unit.test.ts +7 -48
- package/src/__tests__/render-feature-scheduling.unit.test.ts +15 -27
- package/src/__tests__/render-feature-stage-failed-policy-owner.unit.test.ts +0 -9
- package/src/__tests__/render-feature-stage-fault-recovery.unit.test.ts +19 -109
- package/src/__tests__/render-feature-visibility-context.test-d.ts +1 -6
- package/src/__tests__/render-feature-visibility-context.unit.test.ts +1 -2
- package/src/__tests__/render-feature-zero-work.unit.test.ts +14 -20
- package/src/__tests__/render-scene-projection.unit.test.ts +73 -111
- package/src/__tests__/renderer-factory-material-contract.unit.test.ts +46 -50
- package/src/__tests__/renderer-lifecycle.integration.test.ts +49 -1
- package/src/__tests__/shader-stage-surface.unit.test.ts +14 -9
- package/src/__tests__/ssao-config.unit.test.ts +36 -0
- package/src/__tests__/ssao-kernel-surface.unit.test.ts +4 -5
- package/src/__tests__/standard-clustered-pipeline.unit.test.ts +28 -0
- package/src/__tests__/standard-descriptors.test-d.ts +22 -0
- package/src/__tests__/standard-pipeline.dawn.test.ts +61 -0
- package/src/__tests__/standard-pipeline.integration.test.ts +124 -0
- package/src/__tests__/standard-profile-oracle.unit.test.ts +62 -0
- package/src/__tests__/surface-configuration.unit.test.ts +1 -2
- package/src/__tests__/texture-usage-surface.unit.test.ts +3 -6
- package/src/__tests__/typed-pipeline-topology.unit.test.ts +40 -206
- package/src/__tests__/urp-pipeline-targets.unit.test.ts +1 -11
- package/src/__tests__/urp-pipeline.unit.test.ts +2 -2
- package/src/__tests__/vertex-color-pipeline.unit.test.ts +10 -2
- package/src/__tests__/vertex-layout-consumer.unit.test.ts +1 -1
- package/src/__tests__/visibility-diagnostics.integration.test.ts +7 -11
- package/src/__tests__/visibility-extract.integration.test.ts +20 -11
- package/src/__tests__/visibility-extract.perf.test.ts +66 -32
- package/src/__tests__/visibility-feature-dedup.integration.test.ts +2 -4
- package/src/__tests__/visibility-hidden-report.unit.test.ts +1 -2
- package/src/__tests__/visibility-instances.integration.test.ts +7 -11
- package/src/__tests__/visibility-multi-world.integration.test.ts +38 -6
- package/src/__tests__/visibility-producer-matrix.integration.test.ts +18 -41
- package/src/__tests__/visibility-public-surface.test-d.ts +10 -9
- package/src/__tests__/visibility-resolver.unit.test.ts +2 -1
- package/src/__tests__/visibility-resource-short-circuit.unit.test.ts +80 -0
- package/src/__tests__/visibility-snapshot-contract.unit.test.ts +2 -1
- package/src/__tests__/vocabulary.unit.test.ts +1 -1
- package/src/assembly/backend-contract.ts +57 -0
- package/src/{renderer/renderer-factory.ts → assembly/factory.ts} +1709 -2693
- package/src/assembly/host-contract.ts +101 -0
- package/src/{renderer → assembly}/material/assembly.ts +1 -3
- package/src/assembly/material/pipeline-projection.ts +63 -0
- package/src/authoring.ts +14 -22
- package/src/components/__tests__/schema-contract.unit.test.ts +10 -0
- package/src/components/glyph-text.ts +3 -2
- package/src/components/index.ts +7 -9
- package/src/components/instances.ts +4 -5
- package/src/components/light-helpers.ts +1 -1
- package/src/components/mesh-filter.ts +11 -10
- package/src/components/post-process-params.ts +3 -3
- package/src/components/scene-instance.ts +12 -12
- package/src/components/skybox-background.ts +103 -0
- package/src/components/{environment.ts → skylight.ts} +2 -111
- package/src/components/sprite-animation.ts +3 -4
- package/src/components/sprite-instances.ts +2 -2
- package/src/components/sprite-playback-mode.ts +7 -1
- package/src/components/sprite-region-override.ts +2 -3
- package/src/components/tile-layer.ts +8 -2
- package/src/construct-renderer.ts +67 -4
- package/src/debug-draw-glue.ts +8 -129
- package/src/device/device-scope.ts +306 -0
- package/src/{gpu-resource-store.ts → device/gpu-residency.ts} +540 -639
- package/src/device/resource-types.ts +20 -0
- package/src/engine-metrics.ts +12 -19
- package/src/errors/recover.ts +45 -3
- package/src/errors/render.ts +357 -460
- package/src/features/fullscreen.ts +46 -0
- package/src/features/host.ts +575 -309
- package/src/features/morph/morph-feature.ts +195 -105
- package/src/features/plan.ts +447 -0
- package/src/features/prepared-gpu-work.ts +72 -15
- package/src/features/prepared-graphics-store.ts +20 -6
- package/src/features/prepared-graphics.ts +12 -71
- package/src/features/render-graph-compute.ts +14 -5
- package/src/features/render-graph-contribution.ts +43 -63
- package/src/features/render-graph-raster.ts +11 -6
- package/src/features/render-graph-resources.ts +25 -23
- package/src/features/targets.ts +8 -21
- package/src/features/types.ts +39 -227
- package/src/features/vocabulary.ts +24 -0
- package/src/fullscreen-post-process-pass.ts +14 -57
- package/src/glyph-text-layout-system.ts +70 -96
- package/src/gpu-driven/batch-topology.ts +24 -202
- package/src/gpu-driven/production-raster.ts +93 -1108
- package/src/gpu-driven/view-gpu.ts +46 -192
- package/src/gpu-resource.ts +4 -4
- package/src/gpu-scene-schema.ts +11 -99
- package/src/gpu-scene.ts +231 -364
- package/src/hdrp-buffers.ts +12 -221
- package/src/ibl/IblPipelineCache.ts +471 -711
- package/src/ibl/skylight-bind-group.ts +4 -4
- package/src/index.ts +58 -217
- package/src/inspection-types.ts +76 -0
- package/src/instance-buffer-cache.ts +1 -29
- package/src/internal.ts +6 -85
- package/src/lifecycle.ts +64 -19
- package/src/materials.ts +7 -29
- package/src/mesh-material-bindings.ts +0 -1
- package/src/pbr-pipeline.ts +434 -53
- package/src/{urp-pipeline.ts → pipeline/standard-forward-lane.ts} +38 -149
- package/src/{hdrp-pipeline.ts → pipeline/standard-pipeline.ts} +221 -191
- package/src/pipeline/standard-profile.ts +65 -0
- package/src/pipeline-builder.ts +60 -64
- package/src/pipeline-spec-types.ts +28 -0
- package/src/pipeline-spec.ts +72 -609
- package/src/plugin.ts +3 -75
- package/src/post-process-errors.ts +31 -33
- package/src/prepare/prepared-graphics-resolver.ts +5 -4
- package/src/record/__tests__/material-slot-plan.unit.test.ts +1 -33
- package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +41 -0
- package/src/record/__tests__/video-texture-view.unit.test.ts +1 -1
- package/src/record/frame-lighting.ts +74 -195
- package/src/record/frame-snapshot.ts +45 -60
- package/src/record/frame-targets.ts +8 -243
- package/src/record/frame.ts +509 -796
- package/src/record/helpers.ts +6 -11
- package/src/record/main-pass-geometry.ts +106 -147
- package/src/record/main-pass-material.ts +517 -190
- package/src/record/main-pass-sprite-draws.ts +198 -117
- package/src/record/main-pass.ts +162 -143
- package/src/record/mesh-ssbo.ts +517 -38
- package/src/record/render-context.ts +364 -0
- package/src/record/shadow-pass.ts +138 -1838
- package/src/record/skybox-post-pass.ts +12 -14
- package/src/record/typed-frame-graph.ts +215 -254
- package/src/record/view-ubo.ts +6 -37
- package/src/render-contract.ts +571 -0
- package/src/render-data.ts +3 -3
- package/src/render-graph-primitives.ts +76 -851
- package/src/render-pipeline.ts +104 -188
- package/src/render-system-extract.ts +1048 -1729
- package/src/render-system.ts +330 -1957
- package/src/scene/render-scene-types.ts +64 -0
- package/src/scene/render-scene.ts +1032 -0
- package/src/scene-instances/post-spawn-resolve-joints.ts +4 -7
- package/src/ssao-buffers.ts +167 -8
- package/src/systems/skin-palette-allocator.ts +21 -64
- package/src/systems/skin-palette-types.ts +14 -0
- package/src/systems/transparent-sort-config.ts +25 -3
- package/src/tilemap-chunk-extract-system.ts +53 -70
- package/src/typed-render-graph-primitives.ts +35 -24
- package/src/typed-shadow-passes.ts +26 -56
- package/dist/__tests__/analytic-sky-contract.test.d.ts +0 -2
- package/dist/__tests__/analytic-sky-contract.test.d.ts.map +0 -1
- package/dist/__tests__/analytic-sky-falsify.test.d.ts +0 -2
- package/dist/__tests__/analytic-sky-falsify.test.d.ts.map +0 -1
- package/dist/__tests__/assets-runtime-handoff.integration.test.d.ts +0 -2
- package/dist/__tests__/assets-runtime-handoff.integration.test.d.ts.map +0 -1
- package/dist/__tests__/backend-selection.integration.test.d.ts +0 -2
- package/dist/__tests__/backend-selection.integration.test.d.ts.map +0 -1
- package/dist/__tests__/camera-temporal.test-d.d.ts +0 -2
- package/dist/__tests__/camera-temporal.test-d.d.ts.map +0 -1
- package/dist/__tests__/camera-temporal.test.d.ts +0 -2
- package/dist/__tests__/camera-temporal.test.d.ts.map +0 -1
- package/dist/__tests__/directional-shadow-probe-atlas-layout.unit.test.d.ts +0 -2
- package/dist/__tests__/directional-shadow-probe-atlas-layout.unit.test.d.ts.map +0 -1
- package/dist/__tests__/environment-inspection.test.d.ts +0 -2
- package/dist/__tests__/environment-inspection.test.d.ts.map +0 -1
- package/dist/__tests__/fog-ai-user.fixture.d.ts +0 -2
- package/dist/__tests__/fog-ai-user.fixture.d.ts.map +0 -1
- package/dist/__tests__/fog-custom-render-feature.fixture.d.ts +0 -16
- package/dist/__tests__/fog-custom-render-feature.fixture.d.ts.map +0 -1
- package/dist/__tests__/fog-custom-render-feature.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-custom-render-feature.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fog-inspection.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-inspection.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fog-owner-state.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-owner-state.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fog-pipeline-topology.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-pipeline-topology.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fog-public-surface.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-public-surface.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fog-ray-contract.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-ray-contract.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fog-source-absence.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-source-absence.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fog-temporal.integration.test.d.ts +0 -2
- package/dist/__tests__/fog-temporal.integration.test.d.ts.map +0 -1
- package/dist/__tests__/frame-chain.unit.test.d.ts +0 -2
- package/dist/__tests__/frame-chain.unit.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-scene-field-type-owner.test-d.d.ts +0 -2
- package/dist/__tests__/gpu-scene-field-type-owner.test-d.d.ts.map +0 -1
- package/dist/__tests__/hdrp-pipeline.unit.test.d.ts +0 -2
- package/dist/__tests__/hdrp-pipeline.unit.test.d.ts.map +0 -1
- package/dist/__tests__/ibl/ibl-fallback.unit.test.d.ts +0 -2
- package/dist/__tests__/ibl/ibl-fallback.unit.test.d.ts.map +0 -1
- package/dist/__tests__/material-derived-error-stop-draw.integration.test.d.ts +0 -2
- package/dist/__tests__/material-derived-error-stop-draw.integration.test.d.ts.map +0 -1
- package/dist/__tests__/material-derived-payload.integration.test.d.ts +0 -2
- package/dist/__tests__/material-derived-payload.integration.test.d.ts.map +0 -1
- package/dist/__tests__/materials.unit.test.d.ts +0 -2
- package/dist/__tests__/materials.unit.test.d.ts.map +0 -1
- package/dist/__tests__/param-schema-projection-census.unit.test.d.ts +0 -2
- package/dist/__tests__/param-schema-projection-census.unit.test.d.ts.map +0 -1
- package/dist/__tests__/persistent-render-scene.unit.test.d.ts +0 -2
- package/dist/__tests__/persistent-render-scene.unit.test.d.ts.map +0 -1
- package/dist/__tests__/pipeline-error-policy-owner.unit.test.d.ts +0 -2
- package/dist/__tests__/pipeline-error-policy-owner.unit.test.d.ts.map +0 -1
- package/dist/__tests__/pipeline-pass-trace.test.d.ts +0 -2
- package/dist/__tests__/pipeline-pass-trace.test.d.ts.map +0 -1
- package/dist/__tests__/pipeline-stage-owner.test-d.d.ts +0 -2
- package/dist/__tests__/pipeline-stage-owner.test-d.d.ts.map +0 -1
- package/dist/__tests__/plugin.test.d.ts +0 -2
- package/dist/__tests__/plugin.test.d.ts.map +0 -1
- package/dist/__tests__/prepared-graphics-backend-matrix.unit.test.d.ts +0 -2
- package/dist/__tests__/prepared-graphics-backend-matrix.unit.test.d.ts.map +0 -1
- package/dist/__tests__/prepared-graphics-resolver-recording.unit.test.d.ts +0 -2
- package/dist/__tests__/prepared-graphics-resolver-recording.unit.test.d.ts.map +0 -1
- package/dist/__tests__/public-pipeline-id.test-d.d.ts +0 -2
- package/dist/__tests__/public-pipeline-id.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-dispatch-membership.unit.test.d.ts +0 -2
- package/dist/__tests__/render-dispatch-membership.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-construction.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-construction.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-error-code-owner.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-error-code-owner.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-gpu-buffer-usage-owner.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-gpu-buffer-usage-owner.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-graph.integration.test.d.ts +0 -2
- package/dist/__tests__/render-feature-graph.integration.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-graphics-staging.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-graphics-staging.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-order.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-order.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-prepared-graphics-recording.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-prepared-graphics-recording.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-staging.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-staging.unit.test.d.ts.map +0 -1
- package/dist/__tests__/renderer-render-scene-public.test-d.d.ts +0 -2
- package/dist/__tests__/renderer-render-scene-public.test-d.d.ts.map +0 -1
- package/dist/__tests__/scene-temporal-coverage.unit.test.d.ts +0 -2
- package/dist/__tests__/scene-temporal-coverage.unit.test.d.ts.map +0 -1
- package/dist/__tests__/sun-snapshot-consumers.test.d.ts +0 -2
- package/dist/__tests__/sun-snapshot-consumers.test.d.ts.map +0 -1
- package/dist/__tests__/surface-backend-kind-owner.test-d.d.ts +0 -2
- package/dist/__tests__/surface-backend-kind-owner.test-d.d.ts.map +0 -1
- package/dist/__tests__/taa-history-store.unit.test.d.ts +0 -2
- package/dist/__tests__/taa-history-store.unit.test.d.ts.map +0 -1
- package/dist/__tests__/temporal-frame-transaction.integration.test.d.ts +0 -2
- package/dist/__tests__/temporal-frame-transaction.integration.test.d.ts.map +0 -1
- package/dist/__tests__/temporal-inspection.unit.test.d.ts +0 -2
- package/dist/__tests__/temporal-inspection.unit.test.d.ts.map +0 -1
- package/dist/assets/__tests__/asset-decoders.unit.test.d.ts +0 -2
- package/dist/assets/__tests__/asset-decoders.unit.test.d.ts.map +0 -1
- package/dist/assets/__tests__/mipmap-generator.unit.test.d.ts +0 -2
- package/dist/assets/__tests__/mipmap-generator.unit.test.d.ts.map +0 -1
- package/dist/assets/__tests__/render-asset-port.unit.test.d.ts +0 -2
- package/dist/assets/__tests__/render-asset-port.unit.test.d.ts.map +0 -1
- package/dist/assets/__tests__/resolve-render-asset.unit.test.d.ts +0 -2
- package/dist/assets/__tests__/resolve-render-asset.unit.test.d.ts.map +0 -1
- package/dist/chunk-33UF5SAO.mjs +0 -7397
- package/dist/chunk-33UF5SAO.mjs.map +0 -1
- package/dist/chunk-A5QCJSNL.mjs +0 -29913
- package/dist/chunk-A5QCJSNL.mjs.map +0 -1
- package/dist/chunk-JMSB7AR4.mjs +0 -3
- package/dist/chunk-JMSB7AR4.mjs.map +0 -1
- package/dist/chunk-LXNGO6AO.mjs +0 -569
- package/dist/chunk-LXNGO6AO.mjs.map +0 -1
- package/dist/chunk-QRXPSX4X.mjs +0 -659
- package/dist/chunk-QRXPSX4X.mjs.map +0 -1
- package/dist/chunk-YAKEQPWO.mjs +0 -1439
- package/dist/chunk-YAKEQPWO.mjs.map +0 -1
- package/dist/components/__tests__/atmosphere-red.test.d.ts +0 -2
- package/dist/components/__tests__/atmosphere-red.test.d.ts.map +0 -1
- package/dist/components/__tests__/atmosphere.test.d.ts +0 -2
- package/dist/components/__tests__/atmosphere.test.d.ts.map +0 -1
- package/dist/components/__tests__/fog.test-d.d.ts +0 -2
- package/dist/components/__tests__/fog.test-d.d.ts.map +0 -1
- package/dist/components/__tests__/fog.test.d.ts +0 -2
- package/dist/components/__tests__/fog.test.d.ts.map +0 -1
- package/dist/components/atmosphere.d.ts +0 -18
- package/dist/components/atmosphere.d.ts.map +0 -1
- package/dist/components/environment.d.ts +0 -116
- package/dist/components/environment.d.ts.map +0 -1
- package/dist/deferred-lighting.d.ts +0 -13
- package/dist/deferred-lighting.d.ts.map +0 -1
- package/dist/dynamic-texture-store.d.ts +0 -42
- package/dist/dynamic-texture-store.d.ts.map +0 -1
- package/dist/environment/__tests__/failure-injection.test.d.ts +0 -2
- package/dist/environment/__tests__/failure-injection.test.d.ts.map +0 -1
- package/dist/environment/__tests__/generation-red.test.d.ts +0 -2
- package/dist/environment/__tests__/generation-red.test.d.ts.map +0 -1
- package/dist/environment/__tests__/generation.test.d.ts +0 -2
- package/dist/environment/__tests__/generation.test.d.ts.map +0 -1
- package/dist/environment/__tests__/graph-transaction.test.d.ts +0 -2
- package/dist/environment/__tests__/graph-transaction.test.d.ts.map +0 -1
- package/dist/environment/__tests__/inspection-red.test.d.ts +0 -2
- package/dist/environment/__tests__/inspection-red.test.d.ts.map +0 -1
- package/dist/environment/__tests__/lifecycle-evidence.test.d.ts +0 -2
- package/dist/environment/__tests__/lifecycle-evidence.test.d.ts.map +0 -1
- package/dist/environment/__tests__/pipeline-topology.test.d.ts +0 -2
- package/dist/environment/__tests__/pipeline-topology.test.d.ts.map +0 -1
- package/dist/environment/__tests__/readiness.test.d.ts +0 -2
- package/dist/environment/__tests__/readiness.test.d.ts.map +0 -1
- package/dist/environment/__tests__/recovery.test.d.ts +0 -2
- package/dist/environment/__tests__/recovery.test.d.ts.map +0 -1
- package/dist/environment/__tests__/resize-dispose.test.d.ts +0 -2
- package/dist/environment/__tests__/resize-dispose.test.d.ts.map +0 -1
- package/dist/environment/__tests__/signature-red.test.d.ts +0 -2
- package/dist/environment/__tests__/signature-red.test.d.ts.map +0 -1
- package/dist/environment/__tests__/signature.test.d.ts +0 -2
- package/dist/environment/__tests__/signature.test.d.ts.map +0 -1
- package/dist/environment/descriptors.d.ts +0 -2
- package/dist/environment/descriptors.d.ts.map +0 -1
- package/dist/environment/extracted-environment.d.ts +0 -53
- package/dist/environment/extracted-environment.d.ts.map +0 -1
- package/dist/environment/generation.d.ts +0 -62
- package/dist/environment/generation.d.ts.map +0 -1
- package/dist/environment/gpu-bundle.d.ts +0 -23
- package/dist/environment/gpu-bundle.d.ts.map +0 -1
- package/dist/environment/graph.d.ts +0 -108
- package/dist/environment/graph.d.ts.map +0 -1
- package/dist/environment/inspection.d.ts +0 -48
- package/dist/environment/inspection.d.ts.map +0 -1
- package/dist/environment/lifecycle.d.ts +0 -22
- package/dist/environment/lifecycle.d.ts.map +0 -1
- package/dist/environment/readiness.d.ts +0 -29
- package/dist/environment/readiness.d.ts.map +0 -1
- package/dist/environment/signature.d.ts +0 -70
- package/dist/environment/signature.d.ts.map +0 -1
- package/dist/extract/__tests__/directional-csm-domain.unit.test.d.ts +0 -2
- package/dist/extract/__tests__/directional-csm-domain.unit.test.d.ts.map +0 -1
- package/dist/extract/__tests__/environment-source.test.d.ts +0 -2
- package/dist/extract/__tests__/environment-source.test.d.ts.map +0 -1
- package/dist/extract/__tests__/schema-readers.unit.test.d.ts +0 -2
- package/dist/extract/__tests__/schema-readers.unit.test.d.ts.map +0 -1
- package/dist/extract/directional-csm.d.ts +0 -129
- package/dist/extract/directional-csm.d.ts.map +0 -1
- package/dist/extract/index.d.ts +0 -5
- package/dist/extract/index.d.ts.map +0 -1
- package/dist/extract/material-interface.d.ts +0 -56
- package/dist/extract/material-interface.d.ts.map +0 -1
- package/dist/extract/schema-readers.d.ts +0 -20
- package/dist/extract/schema-readers.d.ts.map +0 -1
- package/dist/features/graph-contribution.d.ts +0 -64
- package/dist/features/graph-contribution.d.ts.map +0 -1
- package/dist/features/index.d.ts +0 -21
- package/dist/features/index.d.ts.map +0 -1
- package/dist/features/morph/index.d.ts +0 -3
- package/dist/features/morph/index.d.ts.map +0 -1
- package/dist/features/morph/morph-bounds.d.ts +0 -42
- package/dist/features/morph/morph-bounds.d.ts.map +0 -1
- package/dist/features/scene-temporal.d.ts +0 -45
- package/dist/features/scene-temporal.d.ts.map +0 -1
- package/dist/features/taa-resolve.d.ts +0 -21
- package/dist/features/taa-resolve.d.ts.map +0 -1
- package/dist/frame-chain.d.ts +0 -14
- package/dist/frame-chain.d.ts.map +0 -1
- package/dist/gpu-driven/view-reference.d.ts.map +0 -1
- package/dist/gpu-resource-store.d.ts.map +0 -1
- package/dist/hdrp-cluster-membership.d.ts +0 -2
- package/dist/hdrp-cluster-membership.d.ts.map +0 -1
- package/dist/hdrp-pipeline.d.ts +0 -36
- package/dist/hdrp-pipeline.d.ts.map +0 -1
- package/dist/ibl/cubemap-projection.d.ts +0 -23
- package/dist/ibl/cubemap-projection.d.ts.map +0 -1
- package/dist/ibl/face-uniforms.d.ts +0 -65
- package/dist/ibl/face-uniforms.d.ts.map +0 -1
- package/dist/mesh-update-errors.d.ts +0 -71
- package/dist/mesh-update-errors.d.ts.map +0 -1
- package/dist/mipmap-generator.d.ts +0 -39
- package/dist/mipmap-generator.d.ts.map +0 -1
- package/dist/param-schema-projection-census.d.ts +0 -18
- package/dist/param-schema-projection-census.d.ts.map +0 -1
- package/dist/persistent-render-scene.d.ts +0 -158
- package/dist/persistent-render-scene.d.ts.map +0 -1
- package/dist/pipeline/index.d.ts +0 -11
- package/dist/pipeline/index.d.ts.map +0 -1
- package/dist/pipeline-errors.d.ts +0 -110
- package/dist/pipeline-errors.d.ts.map +0 -1
- package/dist/prepare/__tests__/schema-readers.unit.test.d.ts +0 -2
- package/dist/prepare/__tests__/schema-readers.unit.test.d.ts.map +0 -1
- package/dist/prepare/index.d.ts +0 -4
- package/dist/prepare/index.d.ts.map +0 -1
- package/dist/prepare/schema-readers.d.ts +0 -11
- package/dist/prepare/schema-readers.d.ts.map +0 -1
- package/dist/record/__tests__/environment-record.test.d.ts +0 -2
- package/dist/record/__tests__/environment-record.test.d.ts.map +0 -1
- package/dist/record/__tests__/frame-targets.unit.test.d.ts +0 -2
- package/dist/record/__tests__/frame-targets.unit.test.d.ts.map +0 -1
- package/dist/record/__tests__/membership-timing.unit.test.d.ts +0 -2
- package/dist/record/__tests__/membership-timing.unit.test.d.ts.map +0 -1
- package/dist/record/__tests__/render-submission.integration.test.d.ts +0 -2
- package/dist/record/__tests__/render-submission.integration.test.d.ts.map +0 -1
- package/dist/record/__tests__/render-submission.perf.test.d.ts +0 -2
- package/dist/record/__tests__/render-submission.perf.test.d.ts.map +0 -1
- package/dist/record/__tests__/shadow-submit-mode.unit.test.d.ts +0 -2
- package/dist/record/__tests__/shadow-submit-mode.unit.test.d.ts.map +0 -1
- package/dist/record/__tests__/view-ubo-layout.unit.test.d.ts +0 -2
- package/dist/record/__tests__/view-ubo-layout.unit.test.d.ts.map +0 -1
- package/dist/record/frame-observation.d.ts +0 -38
- package/dist/record/frame-observation.d.ts.map +0 -1
- package/dist/record/index.d.ts +0 -15
- package/dist/record/index.d.ts.map +0 -1
- package/dist/record/main-pass-skin.d.ts +0 -46
- package/dist/record/main-pass-skin.d.ts.map +0 -1
- package/dist/record/main-pass-sprite.d.ts +0 -69
- package/dist/record/main-pass-sprite.d.ts.map +0 -1
- package/dist/record/material-payload.d.ts +0 -43
- package/dist/record/material-payload.d.ts.map +0 -1
- package/dist/record/material-slot-plan.d.ts +0 -26
- package/dist/record/material-slot-plan.d.ts.map +0 -1
- package/dist/record/membership-timing.d.ts +0 -232
- package/dist/record/membership-timing.d.ts.map +0 -1
- package/dist/record/shadow-caster-uniform.d.ts +0 -8
- package/dist/record/shadow-caster-uniform.d.ts.map +0 -1
- package/dist/record/shadow-submit-mode.d.ts +0 -66
- package/dist/record/shadow-submit-mode.d.ts.map +0 -1
- package/dist/render-dispatch-membership.d.ts +0 -47
- package/dist/render-dispatch-membership.d.ts.map +0 -1
- package/dist/render-pipeline-context.d.ts +0 -289
- package/dist/render-pipeline-context.d.ts.map +0 -1
- package/dist/render-pipeline-target.d.ts +0 -16
- package/dist/render-pipeline-target.d.ts.map +0 -1
- package/dist/render-scene-projection.d.ts +0 -174
- package/dist/render-scene-projection.d.ts.map +0 -1
- package/dist/render-system-fold.d.ts +0 -266
- package/dist/render-system-fold.d.ts.map +0 -1
- package/dist/renderer/asset-service.d.ts +0 -10
- package/dist/renderer/asset-service.d.ts.map +0 -1
- package/dist/renderer/backend-selection.d.ts.map +0 -1
- package/dist/renderer/environment-classify.d.ts +0 -6
- package/dist/renderer/environment-classify.d.ts.map +0 -1
- package/dist/renderer/environment-error.d.ts +0 -13
- package/dist/renderer/environment-error.d.ts.map +0 -1
- package/dist/renderer/material/pipeline-projection.d.ts +0 -91
- package/dist/renderer/material/pipeline-projection.d.ts.map +0 -1
- package/dist/renderer/renderer-factory.d.ts +0 -283
- package/dist/renderer/renderer-factory.d.ts.map +0 -1
- package/dist/renderer.d.ts +0 -771
- package/dist/renderer.d.ts.map +0 -1
- package/dist/scene-utils/collect-subtree.d.ts +0 -11
- package/dist/scene-utils/collect-subtree.d.ts.map +0 -1
- package/dist/ssao-data.d.ts +0 -34
- package/dist/ssao-data.d.ts.map +0 -1
- package/dist/surface-format.d.ts +0 -10
- package/dist/surface-format.d.ts.map +0 -1
- package/dist/taa-history-store.d.ts +0 -88
- package/dist/taa-history-store.d.ts.map +0 -1
- package/dist/temporal-coverage.d.ts +0 -35
- package/dist/temporal-coverage.d.ts.map +0 -1
- package/dist/temporal-frame-transaction.d.ts +0 -92
- package/dist/temporal-frame-transaction.d.ts.map +0 -1
- package/dist/temporal-inspection.d.ts +0 -57
- package/dist/temporal-inspection.d.ts.map +0 -1
- package/dist/temporal-view.d.ts +0 -43
- package/dist/temporal-view.d.ts.map +0 -1
- package/dist/tilemap/resolve-tileset-runtime.d.ts +0 -23
- package/dist/tilemap/resolve-tileset-runtime.d.ts.map +0 -1
- package/dist/urp-pipeline.d.ts +0 -4
- package/dist/urp-pipeline.d.ts.map +0 -1
- package/src/__tests__/analytic-sky-contract.test.ts +0 -27
- package/src/__tests__/analytic-sky-falsify-carriers.mjs +0 -43
- package/src/__tests__/analytic-sky-falsify.test.ts +0 -94
- package/src/__tests__/assets-runtime-handoff.integration.test.ts +0 -36
- package/src/__tests__/backend-selection.integration.test.ts +0 -11
- package/src/__tests__/camera-temporal.test-d.ts +0 -8
- package/src/__tests__/camera-temporal.test.ts +0 -188
- package/src/__tests__/directional-shadow-probe-atlas-layout.unit.test.ts +0 -18
- package/src/__tests__/environment-inspection.test.ts +0 -45
- package/src/__tests__/fog-ai-user.fixture.ts +0 -350
- package/src/__tests__/fog-custom-render-feature.fixture.ts +0 -33
- package/src/__tests__/fog-custom-render-feature.integration.test.ts +0 -76
- package/src/__tests__/fog-inspection.integration.test.ts +0 -127
- package/src/__tests__/fog-owner-state.integration.test.ts +0 -112
- package/src/__tests__/fog-pipeline-topology.integration.test.ts +0 -93
- package/src/__tests__/fog-public-surface.integration.test.ts +0 -60
- package/src/__tests__/fog-ray-contract.integration.test.ts +0 -73
- package/src/__tests__/fog-source-absence.integration.test.ts +0 -51
- package/src/__tests__/fog-temporal.integration.test.ts +0 -115
- package/src/__tests__/frame-chain.unit.test.ts +0 -26
- package/src/__tests__/gpu-scene-field-type-owner.test-d.ts +0 -27
- package/src/__tests__/hdrp-pipeline.unit.test.ts +0 -100
- package/src/__tests__/ibl/ibl-fallback.unit.test.ts +0 -23
- package/src/__tests__/material-derived-error-stop-draw.integration.test.ts +0 -69
- package/src/__tests__/material-derived-payload.integration.test.ts +0 -164
- package/src/__tests__/materials.unit.test.ts +0 -25
- package/src/__tests__/param-schema-projection-census.unit.test.ts +0 -40
- package/src/__tests__/persistent-render-scene.unit.test.ts +0 -1311
- package/src/__tests__/pipeline-error-policy-owner.unit.test.ts +0 -167
- package/src/__tests__/pipeline-pass-trace.test.ts +0 -92
- package/src/__tests__/pipeline-stage-owner.test-d.ts +0 -13
- package/src/__tests__/plugin.test.ts +0 -25
- package/src/__tests__/prepared-graphics-backend-matrix.unit.test.ts +0 -129
- package/src/__tests__/prepared-graphics-resolver-recording.unit.test.ts +0 -180
- package/src/__tests__/public-pipeline-id.test-d.ts +0 -6
- package/src/__tests__/render-dispatch-membership.unit.test.ts +0 -117
- package/src/__tests__/render-feature-construction.unit.test.ts +0 -124
- package/src/__tests__/render-feature-error-code-owner.test-d.ts +0 -27
- package/src/__tests__/render-feature-gpu-buffer-usage-owner.test-d.ts +0 -46
- package/src/__tests__/render-feature-graph.integration.test.ts +0 -205
- package/src/__tests__/render-feature-graphics-staging.unit.test.ts +0 -200
- package/src/__tests__/render-feature-order.unit.test.ts +0 -66
- package/src/__tests__/render-feature-prepared-graphics-recording.unit.test.ts +0 -107
- package/src/__tests__/render-feature-staging.unit.test.ts +0 -94
- package/src/__tests__/renderer-render-scene-public.test-d.ts +0 -27
- package/src/__tests__/scene-temporal-coverage.unit.test.ts +0 -259
- package/src/__tests__/sun-snapshot-consumers.test.ts +0 -35
- package/src/__tests__/surface-backend-kind-owner.test-d.ts +0 -42
- package/src/__tests__/taa-history-store.unit.test.ts +0 -196
- package/src/__tests__/temporal-frame-transaction.integration.test.ts +0 -537
- package/src/__tests__/temporal-inspection.unit.test.ts +0 -138
- package/src/assets/__tests__/asset-decoders.unit.test.ts +0 -92
- package/src/assets/__tests__/mipmap-generator.unit.test.ts +0 -52
- package/src/assets/__tests__/render-asset-port.unit.test.ts +0 -54
- package/src/assets/__tests__/resolve-render-asset.unit.test.ts +0 -47
- package/src/components/__tests__/atmosphere-red.test.ts +0 -51
- package/src/components/__tests__/atmosphere.test.ts +0 -79
- package/src/components/__tests__/fog.test-d.ts +0 -49
- package/src/components/__tests__/fog.test.ts +0 -60
- package/src/components/atmosphere.ts +0 -64
- package/src/deferred-lighting.ts +0 -92
- package/src/dynamic-texture-store.ts +0 -111
- package/src/environment/README.md +0 -76
- package/src/environment/__tests__/failure-injection.test.ts +0 -50
- package/src/environment/__tests__/generation-red.test.ts +0 -64
- package/src/environment/__tests__/generation.test.ts +0 -37
- package/src/environment/__tests__/graph-transaction.test.ts +0 -85
- package/src/environment/__tests__/inspection-red.test.ts +0 -53
- package/src/environment/__tests__/lifecycle-evidence.test.ts +0 -40
- package/src/environment/__tests__/pipeline-topology.test.ts +0 -33
- package/src/environment/__tests__/readiness.test.ts +0 -42
- package/src/environment/__tests__/recovery.test.ts +0 -62
- package/src/environment/__tests__/resize-dispose.test.ts +0 -30
- package/src/environment/__tests__/signature-red.test.ts +0 -45
- package/src/environment/__tests__/signature.test.ts +0 -60
- package/src/environment/descriptors.ts +0 -7
- package/src/environment/extracted-environment.ts +0 -239
- package/src/environment/generation.ts +0 -158
- package/src/environment/gpu-bundle.ts +0 -144
- package/src/environment/graph.ts +0 -588
- package/src/environment/inspection.ts +0 -107
- package/src/environment/lifecycle.ts +0 -124
- package/src/environment/readiness.ts +0 -76
- package/src/environment/signature.ts +0 -185
- package/src/extract/__tests__/directional-csm-domain.unit.test.ts +0 -391
- package/src/extract/__tests__/environment-source.test.ts +0 -105
- package/src/extract/__tests__/schema-readers.unit.test.ts +0 -16
- package/src/extract/directional-csm.ts +0 -959
- package/src/extract/index.ts +0 -10
- package/src/extract/material-interface.ts +0 -604
- package/src/extract/schema-readers.ts +0 -27
- package/src/features/graph-contribution.ts +0 -577
- package/src/features/index.ts +0 -100
- package/src/features/morph/index.ts +0 -24
- package/src/features/morph/morph-bounds.ts +0 -123
- package/src/features/scene-temporal.ts +0 -274
- package/src/features/taa-resolve.ts +0 -244
- package/src/frame-chain.ts +0 -21
- package/src/hdrp-cluster-membership.ts +0 -70
- package/src/ibl/cubemap-projection.ts +0 -60
- package/src/ibl/face-uniforms.ts +0 -150
- package/src/mesh-update-errors.ts +0 -113
- package/src/mipmap-generator.ts +0 -244
- package/src/param-schema-projection-census.ts +0 -73
- package/src/persistent-render-scene.ts +0 -1752
- package/src/pipeline/index.ts +0 -40
- package/src/pipeline-errors.ts +0 -172
- package/src/prepare/__tests__/schema-readers.unit.test.ts +0 -16
- package/src/prepare/index.ts +0 -8
- package/src/prepare/schema-readers.ts +0 -20
- package/src/record/__tests__/environment-record.test.ts +0 -35
- package/src/record/__tests__/frame-targets.unit.test.ts +0 -54
- package/src/record/__tests__/membership-timing.unit.test.ts +0 -524
- package/src/record/__tests__/render-submission.integration.test.ts +0 -76
- package/src/record/__tests__/render-submission.perf.test.ts +0 -141
- package/src/record/__tests__/shadow-submit-mode.unit.test.ts +0 -88
- package/src/record/__tests__/view-ubo-layout.unit.test.ts +0 -101
- package/src/record/frame-observation.ts +0 -122
- package/src/record/index.ts +0 -15
- package/src/record/main-pass-skin.ts +0 -51
- package/src/record/main-pass-sprite.ts +0 -166
- package/src/record/material-payload.ts +0 -292
- package/src/record/material-slot-plan.ts +0 -68
- package/src/record/membership-timing.ts +0 -1012
- package/src/record/shadow-caster-uniform.ts +0 -37
- package/src/record/shadow-submit-mode.ts +0 -277
- package/src/render-dispatch-membership.ts +0 -155
- package/src/render-pipeline-context.ts +0 -332
- package/src/render-pipeline-target.ts +0 -96
- package/src/render-scene-projection.ts +0 -1738
- package/src/render-system-fold.ts +0 -531
- package/src/renderer/asset-service.ts +0 -32
- package/src/renderer/backend-selection.ts +0 -121
- package/src/renderer/environment-classify.ts +0 -30
- package/src/renderer/environment-error.ts +0 -19
- package/src/renderer/material/pipeline-projection.ts +0 -140
- package/src/renderer.ts +0 -940
- package/src/scene-utils/collect-subtree.ts +0 -40
- package/src/ssao-data.ts +0 -106
- package/src/surface-format.ts +0 -37
- package/src/taa-history-store.ts +0 -429
- package/src/temporal-coverage.ts +0 -106
- package/src/temporal-frame-transaction.ts +0 -301
- package/src/temporal-inspection.ts +0 -194
- package/src/temporal-view.ts +0 -174
- package/src/tilemap/resolve-tileset-runtime.ts +0 -72
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import type { World } from '@forgeax/engine-ecs';
|
|
2
|
-
import { type BindGroup, type BindGroupLayout, type Buffer, type RenderPipeline, type
|
|
3
|
-
import type {
|
|
4
|
-
import
|
|
5
|
-
import type {
|
|
2
|
+
import { type BindGroup, type BindGroupLayout, type Buffer, type RenderPipeline, type TextureView } from '@forgeax/engine-rhi';
|
|
3
|
+
import type { Handle, MaterialRenderState, ParamSchemaEntry, PrimitiveTopology, TextureAsset } from '@forgeax/engine-types';
|
|
4
|
+
import { derive } from '@forgeax/engine-types';
|
|
5
|
+
import type { GpuResidencyCache } from '../device/gpu-residency';
|
|
6
6
|
import { type SkylightBindGroupResources } from '../ibl/skylight-bind-group';
|
|
7
|
-
import type { PipelineState, RenderSystemRuntime } from '../render-system';
|
|
8
7
|
import type { MaterialSnapshot } from '../render-system-extract';
|
|
9
|
-
import type { MaterialRenderProjection } from '../renderer/material/assembly.js';
|
|
10
|
-
import { type MaterialDrawRoute, type MaterialPipelineMiss, type MaterialPipelineReady, type MaterialReadiness, type MaterialRenderReady } from '../renderer/material/pipeline-projection.js';
|
|
11
8
|
import type { BindGroupCounts, MaterialBgAssemblyCacheEntry } from './frame-snapshot';
|
|
12
|
-
|
|
9
|
+
import { type PipelineState, type RenderSystemRuntime } from './render-context';
|
|
10
|
+
/**
|
|
11
|
+
* Keep line primitives visible when they share a depth plane with filled
|
|
12
|
+
* geometry. The same topology policy is consumed by the CPU and GPU-driven
|
|
13
|
+
* raster lanes so a mixed mesh does not change appearance when ownership
|
|
14
|
+
* moves between them.
|
|
15
|
+
*/
|
|
16
|
+
export declare function geometryRenderStateForTopology(topology: PrimitiveTopology, renderState: MaterialRenderState | undefined): MaterialRenderState | undefined;
|
|
13
17
|
/**
|
|
14
18
|
* feat-20260604-learn-render-4.10-anti-aliasing-msaa M2 / w9: pick the static
|
|
15
19
|
* unlit geometry pipeline handle for a (tonemapActive x msaaActive)
|
|
@@ -22,23 +26,6 @@ export { applyParamSnapshotToUbo, writeMaterialSnapshotPayload, } from './materi
|
|
|
22
26
|
* a structured `shader-compile-failed` on the null-narrow.
|
|
23
27
|
*/
|
|
24
28
|
export declare function selectGeometryPipeline(pipelineState: PipelineState, tonemapActive: boolean, msaaActive: boolean): RenderPipeline | null;
|
|
25
|
-
/**
|
|
26
|
-
* Resolve a cooked material projection for record. The record stage receives
|
|
27
|
-
* the already-resolved projection and an immutable artifact lookup; it never
|
|
28
|
-
* follows parent GUIDs, reads authored material state, or invokes a compiler.
|
|
29
|
-
* A missing or mismatched artifact is an explicit route miss so callers cannot
|
|
30
|
-
* silently substitute a default shader.
|
|
31
|
-
*/
|
|
32
|
-
export declare function selectCookedMaterialPipelineForRender(args: {
|
|
33
|
-
readonly projection: MaterialRenderProjection;
|
|
34
|
-
readonly lookupArtifact: (key: string) => import('@forgeax/engine-shader').MaterialRuntimeArtifact | undefined;
|
|
35
|
-
}): MaterialPipelineReady | MaterialPipelineMiss;
|
|
36
|
-
/** Route a record-stage draw through the canonical readiness result. */
|
|
37
|
-
export declare function selectMaterialDrawForRender<TPipeline>(args: {
|
|
38
|
-
readonly readiness: MaterialReadiness;
|
|
39
|
-
readonly buildPipeline: (ready: MaterialRenderReady) => TPipeline;
|
|
40
|
-
readonly reportedDiagnosticKeys: Set<string>;
|
|
41
|
-
}): MaterialDrawRoute<TPipeline>;
|
|
42
29
|
/**
|
|
43
30
|
* feat-city-glb Bug 5 (per-submesh transparency): true when EVERY submesh
|
|
44
31
|
* material of the entity is transparent (blend). Used by the geometry pass to
|
|
@@ -69,49 +56,34 @@ export declare function entityHasTransparentSubmesh(source: {
|
|
|
69
56
|
readonly material: MaterialSnapshot;
|
|
70
57
|
readonly materials?: readonly MaterialSnapshot[];
|
|
71
58
|
}): boolean;
|
|
59
|
+
export declare function residentTextureView(world: World, store: GpuResidencyCache, runtime: RenderSystemRuntime, handle: Handle<'TextureAsset', 'shared'>, worldId?: World | number): TextureView | undefined;
|
|
60
|
+
type DynamicTextureStore = import('@forgeax/engine-assets-runtime').DynamicTextureStore;
|
|
61
|
+
export declare function videoTextureView(world: World, store: DynamicTextureStore | undefined, runtime: RenderSystemRuntime, entityKey: number, clip: Handle<'VideoAsset', 'shared'>, highPerfAvailable: boolean): TextureView | undefined;
|
|
62
|
+
export declare const BUILTIN_USER_REGION_TEXTURE_FIELDS: readonly string[];
|
|
63
|
+
/** Derives the logical-content UV scale for an uploaded material texture. */
|
|
64
|
+
export declare function materialTextureUvScale(texture: Pick<TextureAsset, 'width' | 'height' | 'format'> | undefined): readonly [number, number];
|
|
72
65
|
/**
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
* surface this via the error registry rather than substituting a silent
|
|
77
|
-
* fallback (charter P3 explicit failure).
|
|
78
|
-
*
|
|
79
|
-
* The `getMaterialShaderPipeline` argument mirrors
|
|
80
|
-
* {@link RenderSystemRuntime.getMaterialShaderPipeline}'s 9-arg signature
|
|
81
|
-
* but is injected so the helper is unit-testable with a plain
|
|
82
|
-
* `() => null` stand-in. The helper threads only the inputs the caller
|
|
83
|
-
* already has on the dispatch entry -- it never reads from
|
|
84
|
-
* MaterialAsset internals (plan-strategy section 5.6 gate R-H).
|
|
85
|
-
*
|
|
86
|
-
* @internal
|
|
66
|
+
* Appends the engine-owned scale for every built-in material texture binding.
|
|
67
|
+
* Asset dimensions remain logical; this is the sole record-stage projection
|
|
68
|
+
* from a bound texture asset to its shader sampling coordinates.
|
|
87
69
|
*/
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
readonly isHdr: boolean;
|
|
91
|
-
readonly renderState?: MaterialRenderState | undefined;
|
|
92
|
-
readonly topology?: PrimitiveTopology | undefined;
|
|
93
|
-
readonly indexFormat?: 'uint16' | 'uint32' | undefined;
|
|
94
|
-
readonly variantSet?: string | undefined;
|
|
95
|
-
readonly sampleCount?: number | undefined;
|
|
96
|
-
readonly getMaterialShaderPipeline: ((materialShaderId: string, isHdr: boolean, renderState?: MaterialRenderState, topology?: PrimitiveTopology, indexFormat?: 'uint16' | 'uint32', variantSet?: string, passKind?: PassKind, meshAttributes?: import('@forgeax/engine-types').VertexAttributeMap, sampleCount?: number) => RenderPipeline | null) | undefined;
|
|
97
|
-
}): Result<RenderPipeline, RhiError>;
|
|
98
|
-
export declare function residentTextureView(world: World, store: GpuResourceStore, runtime: RenderSystemRuntime, handle: Handle<'TextureAsset', 'shared'>, worldId?: number): any | undefined;
|
|
99
|
-
export declare function videoTextureView(world: World, store: DynamicTextureStore | undefined, runtime: RenderSystemRuntime, entityKey: number, clip: Handle<'VideoAsset', 'shared'>, highPerfAvailable: boolean): any | undefined;
|
|
70
|
+
type MaterialUboPayload = ArrayBuffer | Uint8Array | Float32Array;
|
|
71
|
+
export declare function applyMaterialTextureUvScales(payload: MaterialUboPayload, material: MaterialSnapshot, world: World): void;
|
|
100
72
|
/**
|
|
101
73
|
* feat-20260621-learn-render-5-5-parallax M2 / w8 (D-3): ordered user-region
|
|
102
74
|
* texture field names for a material's bind-group assembly, derived from the
|
|
103
75
|
* shader's paramSchema via the `derive()` SSOT (insertion order = sampler/
|
|
104
|
-
* texture pair order in derive().bglEntries).
|
|
105
|
-
*
|
|
76
|
+
* texture pair order in derive().bglEntries). Falls back to the built-in 4
|
|
77
|
+
* fields when the schema is unavailable.
|
|
106
78
|
*/
|
|
107
|
-
export declare function userRegionTextureFieldOrder(
|
|
79
|
+
export declare function userRegionTextureFieldOrder(schema: Parameters<typeof derive>[0] | undefined): readonly string[];
|
|
108
80
|
/**
|
|
109
81
|
* feat-20260621-learn-render-5-5-parallax M2 / w8: the fallback texture view
|
|
110
82
|
* for a user-region field when no handle is provided (graceful, charter P3).
|
|
111
83
|
* normalTexture decodes to a flat tangent normal; everything else (baseColor,
|
|
112
84
|
* MR, height, ...) uses the 1x1 white default (height white -> zero displacement).
|
|
113
85
|
*/
|
|
114
|
-
export declare function defaultViewForUserRegionField(field: string, pipelineState: PipelineState):
|
|
86
|
+
export declare function defaultViewForUserRegionField(field: string, pipelineState: PipelineState): TextureView;
|
|
115
87
|
/**
|
|
116
88
|
* feat-20260527-sprite-nineslice M4 / w17 (AC-16): once-per-renderable
|
|
117
89
|
* detection of "Transform.scale below the four 9-slice corner anchors". Pure
|
|
@@ -131,12 +103,70 @@ export declare function defaultViewForUserRegionField(field: string, pipelineSta
|
|
|
131
103
|
* (sentinel `bottom < 0` for tile mode is consumed via abs()).
|
|
132
104
|
* @param renderableIndex The entity index into the validated renderables list.
|
|
133
105
|
* @param seenIndices The per-frame-state guard Set; entries are added on increment.
|
|
134
|
-
* @param metrics The
|
|
106
|
+
* @param metrics The owner-provided EngineMetrics counter.
|
|
135
107
|
* @internal — exported for unit-test access (w17).
|
|
136
108
|
*/
|
|
137
109
|
export declare function detectNineSliceScaleTooSmall(transformWorld: Float32Array, slices: readonly [number, number, number, number], renderableIndex: number, seenIndices: Set<number>, metrics: {
|
|
138
110
|
increment(name: string): void;
|
|
139
111
|
}): void;
|
|
112
|
+
/**
|
|
113
|
+
* Build the 128-byte Material UBO payload for a PBR / unlit material entry
|
|
114
|
+
* (feat-20260527-sprite-nineslice M2 / w11; D-7 regression-net helper).
|
|
115
|
+
*
|
|
116
|
+
* Byte-for-byte equivalent to the legacy hard-coded PBR write path; each
|
|
117
|
+
* deviation is caught by `render-system-record-pbr-ubo-stable.test.ts`.
|
|
118
|
+
* The schema-driven paramSnapshot overlay (feat-20260523 M9-T05; AC-14)
|
|
119
|
+
* positions vec4 / f32 slots onto std140 [slot0 vec4, slot1 f32 metallic,
|
|
120
|
+
* slot1 f32 roughness] mirroring the engine-shipped default-standard-pbr
|
|
121
|
+
* Material struct.
|
|
122
|
+
*/
|
|
123
|
+
export declare function buildPbrMaterialUboPayload(material: MaterialSnapshot): Uint8Array;
|
|
124
|
+
/**
|
|
125
|
+
* Write the standard material payload into caller-owned storage.
|
|
126
|
+
*
|
|
127
|
+
* The allocating wrapper above remains the byte-stable test/helper surface,
|
|
128
|
+
* while the frame recorder reuses one scratch slot for all materials. A
|
|
129
|
+
* scene with thousands of submeshes otherwise allocates one 304-byte
|
|
130
|
+
* Uint8Array per material per frame, creating avoidable GC pressure without
|
|
131
|
+
* changing GPU-visible bytes.
|
|
132
|
+
*/
|
|
133
|
+
export declare function writePbrMaterialUboPayload(buf: Uint8Array | Float32Array, material: MaterialSnapshot): void;
|
|
134
|
+
/**
|
|
135
|
+
* Generic std140 UBO writer driven by `derive(paramSchema).uboLayout.entries`
|
|
136
|
+
* (feat-20260625-refactor-sprite-as-transparent-mesh M1 / w3, plan-strategy
|
|
137
|
+
* section 2 D-2).
|
|
138
|
+
*
|
|
139
|
+
* For each numeric entry in the schema, looks up the matching value in
|
|
140
|
+
* `paramSnapshot` and writes it at the std140 offset `derive` computed.
|
|
141
|
+
* Vec / color entries pull from `paramSnapshot[name]` as a `readonly number[]`
|
|
142
|
+
* (writes `min(size/4, value.length)` floats, padding with 0 if shorter for
|
|
143
|
+
* the field's declared width); scalar entries pull a single number.
|
|
144
|
+
*
|
|
145
|
+
* Behaviour:
|
|
146
|
+
* - schema or snapshot `undefined` -> no writes (caller may keep payload
|
|
147
|
+
* baseline).
|
|
148
|
+
* - missing snapshot field -> that field's bytes are left untouched
|
|
149
|
+
* (overlay semantics; same shape the legacy inline overlay had).
|
|
150
|
+
* - field type the writer cannot interpret (texture / sampler / storage_
|
|
151
|
+
* buffer / value-type mismatch) -> skipped silently; `derive` strips
|
|
152
|
+
* non-numeric entries from `uboLayout.entries` so the loop only iterates
|
|
153
|
+
* numeric fields.
|
|
154
|
+
*
|
|
155
|
+
* The writer reads `paramSnapshot` only -- it does NOT call
|
|
156
|
+
* `runtime.assets.get<MaterialAsset>` or cast `firstMaterial`. Gate R-H
|
|
157
|
+
* (plan-strategy section 5.6) bans those paths through
|
|
158
|
+
* `scripts/forgeax/check-render-record-no-material-asset-get.mjs`.
|
|
159
|
+
*
|
|
160
|
+
* standard-pbr remains byte-identical to `buildPbrMaterialUboPayload`: the
|
|
161
|
+
* engine's stock PBR material ships `paramSnapshot: undefined`, so this
|
|
162
|
+
* writer is a no-op on that path; the explicit field writes in the helper
|
|
163
|
+
* above cover every byte. User shaders (sprite-shaped 4 x vec4 or another
|
|
164
|
+
* paramSchema) get their fields written at the offsets declared by derive.
|
|
165
|
+
*
|
|
166
|
+
* @internal export-for-test (consumed inside `recordFrame` + render-system-
|
|
167
|
+
* record.test.ts; not part of the package's public surface).
|
|
168
|
+
*/
|
|
169
|
+
export declare function applyParamSnapshotToUbo(payload: MaterialUboPayload, paramSchema: readonly ParamSchemaEntry[] | undefined, paramSnapshot: Readonly<Record<string, number | readonly number[] | string | undefined>> | undefined): void;
|
|
140
170
|
/**
|
|
141
171
|
* feat-20260704 M3/w19: shared per-submesh material bind-group assembly, hoisted
|
|
142
172
|
* from the `buildPerSubmeshMaterialBg` closure inside recordMainPass so both the
|
|
@@ -158,16 +188,17 @@ export interface PerSubmeshMaterialBgDeps {
|
|
|
158
188
|
readonly runtime: RenderSystemRuntime;
|
|
159
189
|
readonly pipelineState: PipelineState;
|
|
160
190
|
readonly world: World;
|
|
161
|
-
readonly store:
|
|
191
|
+
readonly store: GpuResidencyCache;
|
|
162
192
|
readonly materialSlice: number;
|
|
163
193
|
readonly videoHighPerfAvailable: boolean;
|
|
164
194
|
readonly skylightResources: SkylightBindGroupResources;
|
|
165
195
|
readonly materialBgShared: Map<string, WeakMap<object, unknown>>;
|
|
166
196
|
/** Cross-frame final BG reuse keyed by the stable source material handle. */
|
|
167
|
-
readonly materialBgAssemblyCache: Map<
|
|
197
|
+
readonly materialBgAssemblyCache: Map<string, MaterialBgAssemblyCacheEntry>;
|
|
168
198
|
readonly bindGroupCounts: BindGroupCounts;
|
|
169
199
|
}
|
|
170
200
|
/** @internal Exported only so buffer-generation invalidation stays regression-tested. */
|
|
171
201
|
export declare function isMaterialBgAssemblyCacheHit(cached: MaterialBgAssemblyCacheEntry | undefined, material: MaterialSnapshot, materialBgl: BindGroupLayout, materialBuffer: Buffer, skylightResources: SkylightBindGroupResources, materialResourceEpoch: number): cached is MaterialBgAssemblyCacheEntry;
|
|
172
|
-
export declare function buildPerSubmeshMaterialBg(deps: PerSubmeshMaterialBgDeps, submeshMaterial: MaterialSnapshot, entityKey: number): BindGroup;
|
|
202
|
+
export declare function buildPerSubmeshMaterialBg(deps: PerSubmeshMaterialBgDeps, submeshMaterial: MaterialSnapshot, entityKey: number, materialWorld?: World): BindGroup;
|
|
203
|
+
export {};
|
|
173
204
|
//# sourceMappingURL=main-pass-material.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main-pass-material.d.ts","sourceRoot":"","sources":["../../src/record/main-pass-material.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"main-pass-material.d.ts","sourceRoot":"","sources":["../../src/record/main-pass-material.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,32 @@
|
|
|
1
|
+
import type { World } from '@forgeax/engine-ecs';
|
|
1
2
|
import { type BindGroup, type RhiRenderPassEncoder } from '@forgeax/engine-rhi';
|
|
2
3
|
import { type SkylightBindGroupResources } from '../ibl/skylight-bind-group';
|
|
3
|
-
import type {
|
|
4
|
-
import type { MaterialSnapshot } from '../render-system-extract';
|
|
4
|
+
import type { InstanceBufferCacheEntry } from '../instance-buffer-cache';
|
|
5
|
+
import type { MaterialSnapshot, SpriteInstancesSnapshot } from '../render-system-extract';
|
|
6
|
+
import type { _InternalRenderPipelineContext } from './render-context';
|
|
7
|
+
export type { SpriteInstancesSnapshot };
|
|
8
|
+
/**
|
|
9
|
+
* Build the interleaved sprite instance payload consumed by this record owner.
|
|
10
|
+
* The extract stage validates the two packed arrays before they reach this
|
|
11
|
+
* function, so the record path has one source of count-mismatch errors.
|
|
12
|
+
*/
|
|
13
|
+
export declare function interleaveSpriteInstanceBuffer(transforms: Float32Array, regions: Float32Array, includePrevious?: boolean): Float32Array;
|
|
14
|
+
/**
|
|
15
|
+
* Check whether the existing per-entity sprite buffer still matches the
|
|
16
|
+
* extract snapshot and interleaved byte count.
|
|
17
|
+
*/
|
|
18
|
+
export declare function spriteInstancesCacheHit(entry: InstanceBufferCacheEntry | undefined, snapshot: SpriteInstancesSnapshot, requestedBytes: number): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Decide whether the LDR record needs the transparent sprite sub-pass. This
|
|
21
|
+
* remains beside the sprite record owner so the frame stage and draw stage
|
|
22
|
+
* share the same transparent-material rule.
|
|
23
|
+
*/
|
|
24
|
+
export declare function computeSplitLdrSprite(validatedOrdered: readonly ({
|
|
25
|
+
readonly source: {
|
|
26
|
+
readonly material: MaterialSnapshot;
|
|
27
|
+
readonly materials?: readonly MaterialSnapshot[];
|
|
28
|
+
};
|
|
29
|
+
} | undefined)[], tonemapActive: boolean): boolean;
|
|
5
30
|
/**
|
|
6
31
|
* feat-20260704 M3/w19: LDR sprite split sub-pass, extracted verbatim from
|
|
7
32
|
* recordMainPass. Runs after the geometry pass when there are sprite / LDR
|
|
@@ -14,5 +39,5 @@ import type { MaterialSnapshot } from '../render-system-extract';
|
|
|
14
39
|
*
|
|
15
40
|
* @internal
|
|
16
41
|
*/
|
|
17
|
-
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) => BindGroup, skylightResources: SkylightBindGroupResources, graphPass?: RhiRenderPassEncoder): boolean;
|
|
42
|
+
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) => BindGroup, skylightResources: SkylightBindGroupResources, graphPass?: RhiRenderPassEncoder): boolean;
|
|
18
43
|
//# 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,EACL,KAAK,SAAS,EAId,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,
|
|
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,EAGL,KAAK,0BAA0B,EAChC,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAOzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAU1F,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,GACrB,OAAO,CAYT;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,KACjB,SAAS,EACd,iBAAiB,EAAE,0BAA0B,EAC7C,SAAS,CAAC,EAAE,oBAAoB,GAC/B,OAAO,CA4NT"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type RhiRenderPassEncoder, type TextureView } from '@forgeax/engine-rhi';
|
|
2
2
|
import type { PassKind, PassSelector } from '@forgeax/engine-types';
|
|
3
|
-
import type { _InternalRenderPipelineContext } from '
|
|
3
|
+
import type { _InternalRenderPipelineContext } from './render-context';
|
|
4
4
|
export type MainPassOptions = {
|
|
5
5
|
readonly colorViews?: readonly (TextureView | null)[];
|
|
6
6
|
readonly colorFormats?: readonly GPUTextureFormat[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main-pass.d.ts","sourceRoot":"","sources":["../../src/record/main-pass.ts"],"names":[],"mappings":"
|
|
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,EAAU,QAAQ,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAiB5E,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AASvE,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;CACjE,CAAC;AAEF;;;;;;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,IAAI,CA+hBN;AAED,wBAAgB,cAAc,CAC5B,CAAC,EAAE,8BAA8B,EACjC,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,CAAC,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE,eAAe,GACxB,IAAI,CAEN"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type {
|
|
1
|
+
import { type BindGroup, type Buffer, RhiError, type RhiQueue } from '@forgeax/engine-rhi';
|
|
2
|
+
import type { DispatchEntry } from '../render-system-extract';
|
|
3
|
+
import { type TransparentSortConfig } from '../systems/transparent-sort-config';
|
|
3
4
|
import type { ValidatedRenderable } from './frame-snapshot';
|
|
4
5
|
/**
|
|
5
6
|
* Stride between per-renderable `entity_world` mat4 slots inside the
|
|
@@ -13,6 +14,16 @@ export declare const MESH_SSBO_BYTES = 192;
|
|
|
13
14
|
export declare const MESH_UBO_FULL_ARRAY_BYTES: number;
|
|
14
15
|
export declare const INSTANCE_UBO_FULL_ARRAY_BYTES: number;
|
|
15
16
|
export declare const MAX_UNIFORM_INSTANCES = 128;
|
|
17
|
+
/** The storage-backed InstanceData layout is current + previous mat4. */
|
|
18
|
+
export declare const INSTANCE_STORAGE_STRIDE_FLOATS = 32;
|
|
19
|
+
/**
|
|
20
|
+
* Project the ECS transform snapshot into the storage-backed InstanceData
|
|
21
|
+
* layout. The extract contract carries one current mat4 per instance; until
|
|
22
|
+
* the ECS snapshot owns a previous-instance column, current is the honest
|
|
23
|
+
* previous value as well. Uniform-backed variants keep the compact 16-float
|
|
24
|
+
* payload and do not use this projection.
|
|
25
|
+
*/
|
|
26
|
+
export declare function packInstanceStorageBuffer(transforms: Float32Array): Float32Array;
|
|
16
27
|
/**
|
|
17
28
|
* M3 / w12: extracts the underlying GPU resource object from a bind
|
|
18
29
|
* group entry descriptor. Returns the raw object reference (Buffer,
|
|
@@ -169,5 +180,267 @@ export declare function isMeshSsboDevMode(): boolean;
|
|
|
169
180
|
*/
|
|
170
181
|
export declare function uploadMeshSsboBatch(queue: RhiQueue, meshStorageBuffer: {
|
|
171
182
|
readonly buffer: Buffer;
|
|
172
|
-
}, validatedOrdered: readonly ValidatedRenderable[], foldDispatchPlan: FoldDispatchPlan | null
|
|
183
|
+
}, validatedOrdered: readonly ValidatedRenderable[], foldDispatchPlan: FoldDispatchPlan | null): void;
|
|
184
|
+
/**
|
|
185
|
+
* Per-bucket descriptor produced by {@link foldDispatchBuckets}.
|
|
186
|
+
*
|
|
187
|
+
* One bucket = one fold-eligible run of consecutive DispatchEntry whose
|
|
188
|
+
* `(layer, sortKey, materialHandle)` triple is equal. Singleton buckets
|
|
189
|
+
* (bucketSize=1) appear when the mode bypasses fold (D-5 mode 2/3) or
|
|
190
|
+
* when consecutive entries differ in one of the three keys.
|
|
191
|
+
*
|
|
192
|
+
* Fields:
|
|
193
|
+
* - `entries` — original DispatchEntry slice for this bucket (preserves
|
|
194
|
+
* the input ordering); the consumer uses these to look up per-entity
|
|
195
|
+
* material BG handles, mesh handles (which are bucket-uniform by
|
|
196
|
+
* construction since materialHandle key is included), etc.
|
|
197
|
+
* - `bucketSize` — `entries.length`. Surfaced as a top-level field so
|
|
198
|
+
* the consumer can pass it directly as `instanceCount` to
|
|
199
|
+
* `drawIndexed`.
|
|
200
|
+
* - `transforms` — assembled Float32Array of bucketSize world mat4s,
|
|
201
|
+
* stride=16 floats per instance, column-major. Suitable for direct
|
|
202
|
+
* `device.queue.writeBuffer` into an instance buffer used at @group(3).
|
|
203
|
+
* - `materialHandle` / `layer` / `sortKey` — the three-tuple key for this
|
|
204
|
+
* bucket. `sortKey` is mode-dependent: posZ (world[14]) for mode 0
|
|
205
|
+
* (LAYER_Z), posY (world[13]) for mode 1 (LAYER_Y). Consumed by the
|
|
206
|
+
* dispatch loop for bind-group selection / sort-stability invariants.
|
|
207
|
+
*/
|
|
208
|
+
export interface FoldBucket {
|
|
209
|
+
readonly entries: readonly DispatchEntry[];
|
|
210
|
+
readonly bucketSize: number;
|
|
211
|
+
readonly transforms: Float32Array;
|
|
212
|
+
readonly materialHandle: number;
|
|
213
|
+
readonly layer: number;
|
|
214
|
+
readonly sortKey: number;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Minimal renderable shape consumed by the helper. The real
|
|
218
|
+
* `RenderableSnapshot` carries many more fields; the helper only reads
|
|
219
|
+
* `transform.world` (a Float32Array of 16 column-major floats) and
|
|
220
|
+
* `material.transparent` (the LDR-split-sub-pass fold gate, see PR #502
|
|
221
|
+
* fix + feat-20260625 R2 fix-up: geometry-pass entities — non-transparent
|
|
222
|
+
* materials — MUST stay singleton because the sprite-pass dispatch path
|
|
223
|
+
* that consumes `headBuckets` does not run for them; folding them would
|
|
224
|
+
* overwrite their mesh-SSBO slot with identity and collapse 3D geometry
|
|
225
|
+
* to origin).
|
|
226
|
+
*
|
|
227
|
+
* Production callers pass `RenderableSnapshot[]` straight through —
|
|
228
|
+
* `RenderableSnapshot.material.transparent` is `boolean | undefined`
|
|
229
|
+
* (derived by the extract stage from `passes[0].renderState.blend !==
|
|
230
|
+
* undefined`, the post-feat-20260626-collapse SSOT; see
|
|
231
|
+
* `MaterialSnapshot.transparent`), structurally compatible with this
|
|
232
|
+
* minimal shape. The gate read inside the helper uses `=== true` /
|
|
233
|
+
* `!== true` so both `false` and `undefined` enter the singleton branch.
|
|
234
|
+
*
|
|
235
|
+
* feat-20260625-refactor-sprite-as-transparent-mesh R2 fix-up: gate
|
|
236
|
+
* migrated from `shadingModel === 'sprite'` (the union member was
|
|
237
|
+
* removed in M3 / w15) to `transparent === true` (the new SSOT for
|
|
238
|
+
* "routes through the LDR split sub-pass" — same predicate the
|
|
239
|
+
* `splitLdrSprite` filter at render-system-record.ts:4826/5612 uses).
|
|
240
|
+
*/
|
|
241
|
+
export interface FoldRenderableLike {
|
|
242
|
+
readonly transform: {
|
|
243
|
+
readonly world: Float32Array;
|
|
244
|
+
};
|
|
245
|
+
readonly material: {
|
|
246
|
+
readonly transparent?: boolean | undefined;
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Linear-scan fold operator (plan-strategy D-1).
|
|
251
|
+
*
|
|
252
|
+
* Walks `orderedEntries` (must be transparent-sort-ordered when mode=0;
|
|
253
|
+
* the helper trusts the input ordering and only checks adjacent equality
|
|
254
|
+
* — non-consecutive entries with equal keys are NOT merged, preserving
|
|
255
|
+
* stable-sort semantics).
|
|
256
|
+
*
|
|
257
|
+
* @param orderedEntries — DispatchEntry[] in transparent-sort order. Empty
|
|
258
|
+
* array yields zero buckets (defensive empty-bucket suppression).
|
|
259
|
+
* @param mode — current `TransparentSortConfig.mode`. Modes 0 (LAYER_Z)
|
|
260
|
+
* and 1 (LAYER_Y) enable fold using the appropriate sort-axis coordinate
|
|
261
|
+
* (posZ / posY respectively). Modes 2 and 3 produce singleton buckets
|
|
262
|
+
* per entry (D-5 bypass).
|
|
263
|
+
* @param renderables — parallel snapshot array indexed by
|
|
264
|
+
* `DispatchEntry.renderableIndex`. The helper reads `transform.world`
|
|
265
|
+
* to (a) extract the sort-axis coordinate for the bucket key (posZ
|
|
266
|
+
* world[14] for mode 0, posY world[13] for mode 1), and (b) copy 16
|
|
267
|
+
* floats per entry into the assembled transforms buffer. Out-of-range /
|
|
268
|
+
* missing renderables defensively contribute a zero mat4 slot.
|
|
269
|
+
* @returns Array of FoldBucket descriptors in input order.
|
|
270
|
+
*/
|
|
271
|
+
export declare function foldDispatchBuckets(orderedEntries: readonly DispatchEntry[], mode: TransparentSortConfig['mode'], renderables: readonly FoldRenderableLike[]): readonly FoldBucket[];
|
|
272
|
+
/**
|
|
273
|
+
* Per-validatedOrdered-index fold metadata consumed by the record-stage
|
|
274
|
+
* dispatch loops. Built from {@link foldDispatchBuckets} output by
|
|
275
|
+
* {@link buildFoldDispatchPlan}; see plan-strategy §3.2 sequence diagram.
|
|
276
|
+
*
|
|
277
|
+
* Field semantics (consumer contract, w4-record-swap):
|
|
278
|
+
* - `headBuckets[i]` is non-null when validatedOrdered index `i` is the
|
|
279
|
+
* **bucket head** of a non-singleton (bucketSize > 1) fold bucket. The
|
|
280
|
+
* dispatch loop overrides @group(3) instances BG to a transient buffer
|
|
281
|
+
* holding `bucket.transforms` and emits `drawIndexed(idxCount,
|
|
282
|
+
* bucket.bucketSize)` instead of per-entity drawIndexed.
|
|
283
|
+
* - `skipIndices.has(i)` is true when index `i` is a non-head member of
|
|
284
|
+
* a non-singleton fold bucket; the dispatch loop emits `continue`.
|
|
285
|
+
* - Singleton buckets (bucketSize === 1) leave both arrays empty for
|
|
286
|
+
* that index — dispatch falls through to the existing per-entity path
|
|
287
|
+
* byte-identically (mode-bypass / non-foldable head / fold-disabled).
|
|
288
|
+
*
|
|
289
|
+
* Note: the maps are keyed on `validatedOrderedIndex`, NOT
|
|
290
|
+
* `renderableIndex`. The dispatch loops iterate `validatedOrdered` by
|
|
291
|
+
* positional index `i`, and that index drives mesh SSBO slot offset
|
|
292
|
+
* (`i * MESH_PER_ENTITY_STRIDE`), material UBO slot, and per-entity bind
|
|
293
|
+
* group cache keys, all of which the swap must coordinate with.
|
|
294
|
+
*/
|
|
295
|
+
export interface FoldDispatchPlan {
|
|
296
|
+
readonly headBuckets: ReadonlyMap<number, FoldBucket>;
|
|
297
|
+
readonly skipIndices: ReadonlySet<number>;
|
|
298
|
+
readonly foldedBucketCount: number;
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Build the per-validatedOrdered-index fold metadata from a
|
|
302
|
+
* {@link foldDispatchBuckets} output.
|
|
303
|
+
*
|
|
304
|
+
* @param buckets — output of {@link foldDispatchBuckets}; ordered by
|
|
305
|
+
* transparent-sort scan order.
|
|
306
|
+
* @param renderableIndexToValidatedIndex — map from `DispatchEntry.renderableIndex`
|
|
307
|
+
* to the validated-ordered index `i` (the loop counter the dispatch
|
|
308
|
+
* loops use). Caller builds this once per frame from `validatedOrdered`.
|
|
309
|
+
* @returns FoldDispatchPlan keyed by validated-ordered index.
|
|
310
|
+
*
|
|
311
|
+
* Empty / all-singleton input yields empty maps + `foldedBucketCount=0`,
|
|
312
|
+
* which the dispatch loops treat as "no fold this frame" — byte-identical
|
|
313
|
+
* to pre-feat behavior.
|
|
314
|
+
*/
|
|
315
|
+
export declare function buildFoldDispatchPlan(buckets: readonly FoldBucket[], renderableIndexToValidatedIndex: ReadonlyMap<number, number>): FoldDispatchPlan;
|
|
316
|
+
/**
|
|
317
|
+
* WebGL2 uniform-fallback per-bucket instance-count ceiling
|
|
318
|
+
* (feat-20260622-chunk-gpu-instancing-sprite-tilemap M2 / D-2 +
|
|
319
|
+
* research N-1).
|
|
320
|
+
*
|
|
321
|
+
* 128 instances * 64 B/mat4 stride = 8192 B, comfortably below the WebGL2
|
|
322
|
+
* minimum 16384 B UBO size, leaving headroom for the per-frame material
|
|
323
|
+
* UBO slice. Locked at the type level via `RhiInstancingExceedsUniformCapDetail.limit`
|
|
324
|
+
* (literal 128) — a future cap change would be a major evolution, not a
|
|
325
|
+
* runtime knob.
|
|
326
|
+
*/
|
|
327
|
+
export declare const FOLD_UNIFORM_INSTANCE_CAP = 128;
|
|
328
|
+
/**
|
|
329
|
+
* Minimal `RhiCapabilities` shape consumed by the cap-fallback helper.
|
|
330
|
+
*
|
|
331
|
+
* The real `RhiDevice.caps` carries many feature flags; the helper only
|
|
332
|
+
* reads `storageBuffer` (the WebGL2 / WebGPU split signal — true on
|
|
333
|
+
* WebGPU + dawn / wgpu native paths, false on the WebGL2 uniform-only
|
|
334
|
+
* fallback path). Mirrors the field name on the production `RhiCaps`
|
|
335
|
+
* type so the dispatch site can pass `runtime.device.caps` straight in.
|
|
336
|
+
*/
|
|
337
|
+
export interface FoldCapsLike {
|
|
338
|
+
readonly storageBuffer: boolean;
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Decision POD returned by {@link evaluateFoldBucketUniformCap}.
|
|
342
|
+
*
|
|
343
|
+
* Fields:
|
|
344
|
+
* - `fallback` — `true` when the bucket must NOT fold and the dispatch
|
|
345
|
+
* site must route it through the per-entity drawIndexed exit (the
|
|
346
|
+
* same exit the mode-gate bypass uses, plan-strategy D-9 "shared
|
|
347
|
+
* fallback exit"). `false` when the bucket can fold normally.
|
|
348
|
+
* - `error` — the structured RhiError to fire alongside the fallback.
|
|
349
|
+
* Always populated when `fallback === true`; always `undefined` when
|
|
350
|
+
* `fallback === false` (charter proposition 4: explicit failure on
|
|
351
|
+
* the failure path; silent success on the success path).
|
|
352
|
+
*
|
|
353
|
+
* Caller contract: when `fallback === true`, fire the error via the
|
|
354
|
+
* runtime error registry AND draw the bucket's entries individually
|
|
355
|
+
* (each as a 1-instance drawIndexed). Skipping the fallback while still
|
|
356
|
+
* firing the error would leave the frame visually wrong (uniform buffer
|
|
357
|
+
* write would clip at 128 entries).
|
|
358
|
+
*/
|
|
359
|
+
export interface FoldBucketCapDecision {
|
|
360
|
+
readonly fallback: boolean;
|
|
361
|
+
readonly error: RhiError | undefined;
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Decide whether a fold bucket fits the WebGL2 uniform-fallback per-bucket
|
|
365
|
+
* instance-count ceiling, returning the structured RhiError + fallback
|
|
366
|
+
* intent the dispatch site needs to act on
|
|
367
|
+
* (feat-20260622-chunk-gpu-instancing-sprite-tilemap M2 / w11 +
|
|
368
|
+
* plan-strategy D-2 + D-9 + AC-05).
|
|
369
|
+
*
|
|
370
|
+
* Decision matrix:
|
|
371
|
+
*
|
|
372
|
+
* | caps.storageBuffer | bucketSize | fallback | error |
|
|
373
|
+
* |:--|:--|:--|:--|
|
|
374
|
+
* | `true` | every | `false` | `undefined` (WebGPU has no per-binding instance cap inside the storage buffer's `maxStorageBufferBindingSize`; the byte-cap path emits `'limit-exceeded'` separately) |
|
|
375
|
+
* | `false` | `<= 128` | `false` | `undefined` (fits inside the WebGL2 minimum 16384 B UBO with headroom) |
|
|
376
|
+
* | `false` | `> 128` | `true` | `RhiError({ code: 'instancing-exceeds-uniform-cap', detail: { requested, limit: 128, scope } })` |
|
|
377
|
+
*
|
|
378
|
+
* Singleton buckets (`bucketSize === 1`) always pass — they are the
|
|
379
|
+
* mode-gate bypass output and never need the cap check (the cap is
|
|
380
|
+
* about *folded* bucket arity, not about per-entity per-frame work).
|
|
381
|
+
*
|
|
382
|
+
* @param bucket — the FoldBucket whose `bucketSize` is the sole input
|
|
383
|
+
* (instance count = bucketSize); other fields are not consulted.
|
|
384
|
+
* @param caps — the runtime's RHI capability flags
|
|
385
|
+
* (`runtime.device.caps`); only `storageBuffer` is read.
|
|
386
|
+
* @param scope — closed `'sprite' | 'tilemap-chunk'` discriminator the
|
|
387
|
+
* dispatch site picks based on the call site (sprite-pass primary
|
|
388
|
+
* sprite entry vs tilemap-chunk-derived entry). Surfaced verbatim on
|
|
389
|
+
* the error's `.detail.scope` so AI users can branch their recovery
|
|
390
|
+
* on which dispatch site overflowed.
|
|
391
|
+
* @returns a {@link FoldBucketCapDecision} POD; never throws.
|
|
392
|
+
*/
|
|
393
|
+
export declare function evaluateFoldBucketUniformCap(bucket: FoldBucket, caps: FoldCapsLike, scope: 'sprite' | 'tilemap-chunk'): FoldBucketCapDecision;
|
|
394
|
+
/**
|
|
395
|
+
* Closed metric key for the AC-06 fold counter
|
|
396
|
+
* (feat-20260622-chunk-gpu-instancing-sprite-tilemap M3 / D-3).
|
|
397
|
+
*
|
|
398
|
+
* Semantics — count of instanced `drawIndexed` calls the fold operator
|
|
399
|
+
* emits this frame; one increment per non-singleton head bucket retained
|
|
400
|
+
* after the M2 / w11 cap-fallback filter. NOT entity count, NOT pre-
|
|
401
|
+
* filter bucket count — cap-overrun buckets that the dispatch site
|
|
402
|
+
* routed through the per-entity fallback exit do not count.
|
|
403
|
+
*
|
|
404
|
+
* Naming follows the EngineMetrics dot-namespace convention
|
|
405
|
+
* (`<feature>.<event>`); `render.instancing.*` covers both sprite and
|
|
406
|
+
* tilemap-chunk dispatch sites without scope ambiguity (research F-5,
|
|
407
|
+
* plan-strategy §8.2). The owning host evidence reads
|
|
408
|
+
* `ownerMetrics.snapshot()['render.instancing.foldedDraws']`.
|
|
409
|
+
*/
|
|
410
|
+
export declare const FOLDED_DRAWS_METRIC_KEY = "render.instancing.foldedDraws";
|
|
411
|
+
/**
|
|
412
|
+
* Minimal `EngineMetrics` shape consumed by {@link incrementFoldedDrawsMetric}.
|
|
413
|
+
*
|
|
414
|
+
* The real `EngineMetrics` carries `snapshot()` + `reset()` too; the
|
|
415
|
+
* helper only writes, so the consumed surface narrows to a single
|
|
416
|
+
* method. Lets the unit test inject a `vi.fn()` mock without faking the
|
|
417
|
+
* read APIs.
|
|
418
|
+
*/
|
|
419
|
+
export interface FoldMetricsLike {
|
|
420
|
+
increment(name: string): void;
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Bump the AC-06 `render.instancing.foldedDraws` counter once per fold-
|
|
424
|
+
* eligible head bucket in `plan` (M3 / w13, plan-strategy D-3).
|
|
425
|
+
*
|
|
426
|
+
* Single counter-write site for the metric — the record-stage consumer
|
|
427
|
+
* calls this once per `recordFrame` after the cap-fallback filter
|
|
428
|
+
* (M2 / w11) so cap-overrun buckets do not contribute (their members
|
|
429
|
+
* fall through to per-entity drawIndexed, which is not an instanced
|
|
430
|
+
* draw). `plan.foldedBucketCount` is the SSOT for "how many instanced
|
|
431
|
+
* drawIndexed will this frame emit"; passing the same plan to this
|
|
432
|
+
* helper keeps the metric and the actual dispatch in lockstep.
|
|
433
|
+
*
|
|
434
|
+
* Mode-bypass plans (D-5: mode != 0 yields singleton-only buckets which
|
|
435
|
+
* `buildFoldDispatchPlan` filters out) carry `foldedBucketCount === 0`
|
|
436
|
+
* and produce no increments — per-entity drawIndexed is not folded so
|
|
437
|
+
* the metric correctly stays at 0.
|
|
438
|
+
*
|
|
439
|
+
* @param plan — output of {@link buildFoldDispatchPlan} after possible
|
|
440
|
+
* cap-fallback filtering by the record-stage consumer.
|
|
441
|
+
* @param metrics — the owner-provided EngineMetrics counter; only
|
|
442
|
+
* `increment(name)` is called. Empty `plan.foldedBucketCount === 0`
|
|
443
|
+
* produces zero calls (no metric churn for fold-disabled frames).
|
|
444
|
+
*/
|
|
445
|
+
export declare function incrementFoldedDrawsMetric(plan: FoldDispatchPlan, metrics: FoldMetricsLike): void;
|
|
173
446
|
//# sourceMappingURL=mesh-ssbo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh-ssbo.d.ts","sourceRoot":"","sources":["../../src/record/mesh-ssbo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"mesh-ssbo.d.ts","sourceRoot":"","sources":["../../src/record/mesh-ssbo.ts"],"names":[],"mappings":"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"}
|