@forgeax/engine-render 0.1.2
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/LICENSE +202 -0
- package/README.md +1019 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/__tests__/analytic-sky-contract.test.d.ts +2 -0
- package/dist/__tests__/analytic-sky-contract.test.d.ts.map +1 -0
- package/dist/__tests__/analytic-sky-falsify.test.d.ts +2 -0
- package/dist/__tests__/analytic-sky-falsify.test.d.ts.map +1 -0
- package/dist/__tests__/assets-runtime-handoff.integration.test.d.ts +2 -0
- package/dist/__tests__/assets-runtime-handoff.integration.test.d.ts.map +1 -0
- package/dist/__tests__/authoring-path.unit.test.d.ts +2 -0
- package/dist/__tests__/authoring-path.unit.test.d.ts.map +1 -0
- package/dist/__tests__/backend-selection-rhi-capture.test-d.d.ts +2 -0
- package/dist/__tests__/backend-selection-rhi-capture.test-d.d.ts.map +1 -0
- package/dist/__tests__/backend-selection.integration.test.d.ts +2 -0
- package/dist/__tests__/backend-selection.integration.test.d.ts.map +1 -0
- package/dist/__tests__/callback-inference.test-d.d.ts +2 -0
- package/dist/__tests__/callback-inference.test-d.d.ts.map +1 -0
- package/dist/__tests__/camera-temporal.test-d.d.ts +2 -0
- package/dist/__tests__/camera-temporal.test-d.d.ts.map +1 -0
- package/dist/__tests__/camera-temporal.test.d.ts +2 -0
- package/dist/__tests__/camera-temporal.test.d.ts.map +1 -0
- package/dist/__tests__/cluster-binner.test.d.ts +2 -0
- package/dist/__tests__/cluster-binner.test.d.ts.map +1 -0
- package/dist/__tests__/cluster-grid-default-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/cluster-grid-default-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/construct-renderer-identity.unit.test.d.ts +2 -0
- package/dist/__tests__/construct-renderer-identity.unit.test.d.ts.map +1 -0
- package/dist/__tests__/direct-extract-consumer-contract.test-d.d.ts +2 -0
- package/dist/__tests__/direct-extract-consumer-contract.test-d.d.ts.map +1 -0
- package/dist/__tests__/direct-light-snapshot.unit.test.d.ts +2 -0
- package/dist/__tests__/direct-light-snapshot.unit.test.d.ts.map +1 -0
- package/dist/__tests__/directional-shadow-probe-atlas-layout.unit.test.d.ts +2 -0
- package/dist/__tests__/directional-shadow-probe-atlas-layout.unit.test.d.ts.map +1 -0
- package/dist/__tests__/environment-inspection.test.d.ts +2 -0
- package/dist/__tests__/environment-inspection.test.d.ts.map +1 -0
- package/dist/__tests__/factory-contract.integration.test.d.ts +2 -0
- package/dist/__tests__/factory-contract.integration.test.d.ts.map +1 -0
- package/dist/__tests__/fallback-row-stride-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/fallback-row-stride-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/fog-ai-user.fixture.d.ts +2 -0
- package/dist/__tests__/fog-ai-user.fixture.d.ts.map +1 -0
- package/dist/__tests__/fog-custom-render-feature.fixture.d.ts +16 -0
- package/dist/__tests__/fog-custom-render-feature.fixture.d.ts.map +1 -0
- package/dist/__tests__/fog-custom-render-feature.integration.test.d.ts +2 -0
- package/dist/__tests__/fog-custom-render-feature.integration.test.d.ts.map +1 -0
- package/dist/__tests__/fog-inspection.integration.test.d.ts +2 -0
- package/dist/__tests__/fog-inspection.integration.test.d.ts.map +1 -0
- package/dist/__tests__/fog-owner-state.integration.test.d.ts +2 -0
- package/dist/__tests__/fog-owner-state.integration.test.d.ts.map +1 -0
- package/dist/__tests__/fog-pipeline-topology.integration.test.d.ts +2 -0
- package/dist/__tests__/fog-pipeline-topology.integration.test.d.ts.map +1 -0
- package/dist/__tests__/fog-public-surface.integration.test.d.ts +2 -0
- package/dist/__tests__/fog-public-surface.integration.test.d.ts.map +1 -0
- package/dist/__tests__/fog-ray-contract.integration.test.d.ts +2 -0
- package/dist/__tests__/fog-ray-contract.integration.test.d.ts.map +1 -0
- package/dist/__tests__/fog-source-absence.integration.test.d.ts +2 -0
- package/dist/__tests__/fog-source-absence.integration.test.d.ts.map +1 -0
- package/dist/__tests__/fog-temporal.integration.test.d.ts +2 -0
- package/dist/__tests__/fog-temporal.integration.test.d.ts.map +1 -0
- package/dist/__tests__/frame-chain.unit.test.d.ts +2 -0
- package/dist/__tests__/frame-chain.unit.test.d.ts.map +1 -0
- package/dist/__tests__/frame-observation.contract.test.d.ts +2 -0
- package/dist/__tests__/frame-observation.contract.test.d.ts.map +1 -0
- package/dist/__tests__/glyph-text-layout-recovery.unit.test.d.ts +2 -0
- package/dist/__tests__/glyph-text-layout-recovery.unit.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts +6 -0
- package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-indirect-raster.browser.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-indirect-raster.browser.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-indirect-raster.dawn.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-indirect-raster.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-production.integration.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-production.integration.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-scaling.unit.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-scaling.unit.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts +12 -0
- package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-view-graph.integration.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-view-graph.integration.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-view.browser.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-view.browser.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-view.dawn.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-view.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-driven-view.unit.test.d.ts +2 -0
- package/dist/__tests__/gpu-driven-view.unit.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-resource-store-stride.unit.test.d.ts +2 -0
- package/dist/__tests__/gpu-resource-store-stride.unit.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-scene-field-type-owner.test-d.d.ts +2 -0
- package/dist/__tests__/gpu-scene-field-type-owner.test-d.d.ts.map +1 -0
- package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts +7 -0
- package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts.map +1 -0
- package/dist/__tests__/gpu-scene-render-graph.browser.test.d.ts +2 -0
- package/dist/__tests__/gpu-scene-render-graph.browser.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-scene-render-graph.dawn.test.d.ts +2 -0
- package/dist/__tests__/gpu-scene-render-graph.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-scene-schema.unit.test.d.ts +2 -0
- package/dist/__tests__/gpu-scene-schema.unit.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-scene.dawn.test.d.ts +2 -0
- package/dist/__tests__/gpu-scene.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/gpu-scene.unit.test.d.ts +2 -0
- package/dist/__tests__/gpu-scene.unit.test.d.ts.map +1 -0
- package/dist/__tests__/hdrp-pipeline.unit.test.d.ts +2 -0
- package/dist/__tests__/hdrp-pipeline.unit.test.d.ts.map +1 -0
- package/dist/__tests__/ibl/ibl-fallback.unit.test.d.ts +2 -0
- package/dist/__tests__/ibl/ibl-fallback.unit.test.d.ts.map +1 -0
- package/dist/__tests__/infinite-grid-no-vertex-probe.unit.test.d.ts +2 -0
- package/dist/__tests__/infinite-grid-no-vertex-probe.unit.test.d.ts.map +1 -0
- package/dist/__tests__/injection-kind-owner.test-d.d.ts +2 -0
- package/dist/__tests__/injection-kind-owner.test-d.d.ts.map +1 -0
- package/dist/__tests__/ktx2-basis-gpu-consumer.dawn.test.d.ts +2 -0
- package/dist/__tests__/ktx2-basis-gpu-consumer.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/light-buffer-layout.unit.test.d.ts +2 -0
- package/dist/__tests__/light-buffer-layout.unit.test.d.ts.map +1 -0
- package/dist/__tests__/material-contract-inventory.unit.test.d.ts +2 -0
- package/dist/__tests__/material-contract-inventory.unit.test.d.ts.map +1 -0
- package/dist/__tests__/material-cooked-projection.unit.test.d.ts +2 -0
- package/dist/__tests__/material-cooked-projection.unit.test.d.ts.map +1 -0
- package/dist/__tests__/material-derived-error-stop-draw.integration.test.d.ts +2 -0
- package/dist/__tests__/material-derived-error-stop-draw.integration.test.d.ts.map +1 -0
- package/dist/__tests__/material-derived-payload.integration.test.d.ts +2 -0
- package/dist/__tests__/material-derived-payload.integration.test.d.ts.map +1 -0
- package/dist/__tests__/material-snapshot-mutation.integration.test.d.ts +2 -0
- package/dist/__tests__/material-snapshot-mutation.integration.test.d.ts.map +1 -0
- package/dist/__tests__/material-static-dynamic-route.unit.test.d.ts +2 -0
- package/dist/__tests__/material-static-dynamic-route.unit.test.d.ts.map +1 -0
- package/dist/__tests__/material-stride-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/material-stride-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/materials.unit.test.d.ts +2 -0
- package/dist/__tests__/materials.unit.test.d.ts.map +1 -0
- package/dist/__tests__/mesh-buffer-usage-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/mesh-buffer-usage-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/mesh-material-bindings.unit.test.d.ts +2 -0
- package/dist/__tests__/mesh-material-bindings.unit.test.d.ts.map +1 -0
- package/dist/__tests__/mesh-stride-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/mesh-stride-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/morph-culling-reentry.dawn.test.d.ts +2 -0
- package/dist/__tests__/morph-culling-reentry.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/morph-feature-gpu-work.integration.test.d.ts +2 -0
- package/dist/__tests__/morph-feature-gpu-work.integration.test.d.ts.map +1 -0
- package/dist/__tests__/morph-visual-evidence.integration.test.d.ts +2 -0
- package/dist/__tests__/morph-visual-evidence.integration.test.d.ts.map +1 -0
- package/dist/__tests__/nineslice-handle-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/nineslice-handle-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/param-schema-projection-census.unit.test.d.ts +2 -0
- package/dist/__tests__/param-schema-projection-census.unit.test.d.ts.map +1 -0
- package/dist/__tests__/persistent-render-scene.unit.test.d.ts +2 -0
- package/dist/__tests__/persistent-render-scene.unit.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline-error-policy-owner.unit.test.d.ts +2 -0
- package/dist/__tests__/pipeline-error-policy-owner.unit.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline-pass-trace.test.d.ts +2 -0
- package/dist/__tests__/pipeline-pass-trace.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline-stage-owner.test-d.d.ts +2 -0
- package/dist/__tests__/pipeline-stage-owner.test-d.d.ts.map +1 -0
- package/dist/__tests__/plugin.test.d.ts +2 -0
- package/dist/__tests__/plugin.test.d.ts.map +1 -0
- package/dist/__tests__/post-process-error-policy-owner.unit.test.d.ts +2 -0
- package/dist/__tests__/post-process-error-policy-owner.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-buffer-kind-owner.test-d.d.ts +2 -0
- package/dist/__tests__/prepared-buffer-kind-owner.test-d.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-backend-matrix.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-backend-matrix.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-capability.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-capability.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-generation.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-generation.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-lifecycle.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-lifecycle.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-pipeline-warmup.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-pipeline-warmup.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-resolver-recording.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-resolver-recording.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-resolver.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-resolver.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-snapshot.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-snapshot.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-store.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-store.unit.test.d.ts.map +1 -0
- package/dist/__tests__/prepared-graphics-validation.unit.test.d.ts +2 -0
- package/dist/__tests__/prepared-graphics-validation.unit.test.d.ts.map +1 -0
- package/dist/__tests__/profiler-default-off.test.d.ts +2 -0
- package/dist/__tests__/profiler-default-off.test.d.ts.map +1 -0
- package/dist/__tests__/profiler-phase-catalog.test.d.ts +2 -0
- package/dist/__tests__/profiler-phase-catalog.test.d.ts.map +1 -0
- package/dist/__tests__/profiler-phase-integration.test.d.ts +2 -0
- package/dist/__tests__/profiler-phase-integration.test.d.ts.map +1 -0
- package/dist/__tests__/profiler-phase-token.test.d.ts +2 -0
- package/dist/__tests__/profiler-phase-token.test.d.ts.map +1 -0
- package/dist/__tests__/public-pipeline-id.test-d.d.ts +2 -0
- package/dist/__tests__/public-pipeline-id.test-d.d.ts.map +1 -0
- package/dist/__tests__/public-surface.test-d.d.ts +2 -0
- package/dist/__tests__/public-surface.test-d.d.ts.map +1 -0
- package/dist/__tests__/recover-error-policy-owner.unit.test.d.ts +2 -0
- package/dist/__tests__/recover-error-policy-owner.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-dispatch-membership.unit.test.d.ts +2 -0
- package/dist/__tests__/render-dispatch-membership.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-error-code-owner.test-d.d.ts +2 -0
- package/dist/__tests__/render-error-code-owner.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-error-detail-ssot.test-d.d.ts +2 -0
- package/dist/__tests__/render-error-detail-ssot.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-error-exhaustive.test-d.d.ts +2 -0
- package/dist/__tests__/render-error-exhaustive.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-assembly.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-assembly.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-construction.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-construction.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-context.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-context.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-contract.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-contract.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-diagnostics.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-diagnostics.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-docs.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-docs.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-error-code-owner.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-error-code-owner.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-errors.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-errors.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-gpu-buffer-usage-owner.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-gpu-buffer-usage-owner.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-gpu-work.integration.test.d.ts +2 -0
- package/dist/__tests__/render-feature-gpu-work.integration.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-graph.integration.test.d.ts +2 -0
- package/dist/__tests__/render-feature-graph.integration.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-graphics-staging.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-graphics-staging.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-order.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-order.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-prepared-diagnostics.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-diagnostics.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-prepared-errors.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-errors.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-prepared-graphics-isolation.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-graphics-isolation.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-prepared-graphics-negative.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-graphics-negative.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-prepared-graphics-recording.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-graphics-recording.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-prepared-graphics.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-graphics.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-prepared-graphics.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-prepared-graphics.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-public-surface.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-public-surface.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-retry.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-retry.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-scheduling.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-scheduling.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-stage-failed-policy-owner.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-stage-failed-policy-owner.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-stage-fault-recovery.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-stage-fault-recovery.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-staging.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-staging.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-visibility-context.test-d.d.ts +2 -0
- package/dist/__tests__/render-feature-visibility-context.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-feature-visibility-context.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-visibility-context.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-feature-zero-work.unit.test.d.ts +2 -0
- package/dist/__tests__/render-feature-zero-work.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-compute-raster-gpu.d.ts +7 -0
- package/dist/__tests__/render-graph-compute-raster-gpu.d.ts.map +1 -0
- package/dist/__tests__/render-graph-compute-raster.browser.test.d.ts +2 -0
- package/dist/__tests__/render-graph-compute-raster.browser.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-compute-raster.dawn.test.d.ts +2 -0
- package/dist/__tests__/render-graph-compute-raster.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-hzb-gpu.d.ts +7 -0
- package/dist/__tests__/render-graph-hzb-gpu.d.ts.map +1 -0
- package/dist/__tests__/render-graph-hzb.browser.test.d.ts +2 -0
- package/dist/__tests__/render-graph-hzb.browser.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-hzb.dawn.test.d.ts +2 -0
- package/dist/__tests__/render-graph-hzb.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-primitives.unit.test.d.ts +2 -0
- package/dist/__tests__/render-graph-primitives.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-storage-indirect-gpu.d.ts +12 -0
- package/dist/__tests__/render-graph-storage-indirect-gpu.d.ts.map +1 -0
- package/dist/__tests__/render-graph-storage-indirect.browser.test.d.ts +2 -0
- package/dist/__tests__/render-graph-storage-indirect.browser.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-storage-indirect.dawn.test.d.ts +2 -0
- package/dist/__tests__/render-graph-storage-indirect.dawn.test.d.ts.map +1 -0
- package/dist/__tests__/render-scene-projection.unit.test.d.ts +2 -0
- package/dist/__tests__/render-scene-projection.unit.test.d.ts.map +1 -0
- package/dist/__tests__/renderer-factory-material-contract.unit.test.d.ts +2 -0
- package/dist/__tests__/renderer-factory-material-contract.unit.test.d.ts.map +1 -0
- package/dist/__tests__/renderer-lifecycle.integration.test.d.ts +2 -0
- package/dist/__tests__/renderer-lifecycle.integration.test.d.ts.map +1 -0
- package/dist/__tests__/renderer-render-scene-public.test-d.d.ts +2 -0
- package/dist/__tests__/renderer-render-scene-public.test-d.d.ts.map +1 -0
- package/dist/__tests__/rhi-backend-package-boundary.unit.test.d.ts +2 -0
- package/dist/__tests__/rhi-backend-package-boundary.unit.test.d.ts.map +1 -0
- package/dist/__tests__/scene-temporal-coverage.unit.test.d.ts +2 -0
- package/dist/__tests__/scene-temporal-coverage.unit.test.d.ts.map +1 -0
- package/dist/__tests__/scriptable-pack-consumer.test-d.d.ts +2 -0
- package/dist/__tests__/scriptable-pack-consumer.test-d.d.ts.map +1 -0
- package/dist/__tests__/shader-stage-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/shader-stage-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/ssao-kernel-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/ssao-kernel-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/sun-snapshot-consumers.test.d.ts +2 -0
- package/dist/__tests__/sun-snapshot-consumers.test.d.ts.map +1 -0
- package/dist/__tests__/surface-backend-kind-owner.test-d.d.ts +2 -0
- package/dist/__tests__/surface-backend-kind-owner.test-d.d.ts.map +1 -0
- package/dist/__tests__/surface-configuration.unit.test.d.ts +2 -0
- package/dist/__tests__/surface-configuration.unit.test.d.ts.map +1 -0
- package/dist/__tests__/taa-history-store.unit.test.d.ts +2 -0
- package/dist/__tests__/taa-history-store.unit.test.d.ts.map +1 -0
- package/dist/__tests__/temporal-frame-transaction.integration.test.d.ts +2 -0
- package/dist/__tests__/temporal-frame-transaction.integration.test.d.ts.map +1 -0
- package/dist/__tests__/temporal-inspection.unit.test.d.ts +2 -0
- package/dist/__tests__/temporal-inspection.unit.test.d.ts.map +1 -0
- package/dist/__tests__/texture-usage-surface.unit.test.d.ts +2 -0
- package/dist/__tests__/texture-usage-surface.unit.test.d.ts.map +1 -0
- package/dist/__tests__/typed-pipeline-topology.unit.test.d.ts +2 -0
- package/dist/__tests__/typed-pipeline-topology.unit.test.d.ts.map +1 -0
- package/dist/__tests__/urp-pipeline-targets.unit.test.d.ts +2 -0
- package/dist/__tests__/urp-pipeline-targets.unit.test.d.ts.map +1 -0
- package/dist/__tests__/urp-pipeline.unit.test.d.ts +2 -0
- package/dist/__tests__/urp-pipeline.unit.test.d.ts.map +1 -0
- package/dist/__tests__/vertex-color-pipeline.unit.test.d.ts +2 -0
- package/dist/__tests__/vertex-color-pipeline.unit.test.d.ts.map +1 -0
- package/dist/__tests__/vertex-layout-consumer.unit.test.d.ts +2 -0
- package/dist/__tests__/vertex-layout-consumer.unit.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-diagnostics.integration.test.d.ts +2 -0
- package/dist/__tests__/visibility-diagnostics.integration.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-extract.integration.test.d.ts +2 -0
- package/dist/__tests__/visibility-extract.integration.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-extract.perf.test.d.ts +2 -0
- package/dist/__tests__/visibility-extract.perf.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-feature-dedup.integration.test.d.ts +2 -0
- package/dist/__tests__/visibility-feature-dedup.integration.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-hidden-report.unit.test.d.ts +2 -0
- package/dist/__tests__/visibility-hidden-report.unit.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-instances.integration.test.d.ts +2 -0
- package/dist/__tests__/visibility-instances.integration.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-multi-world.integration.test.d.ts +2 -0
- package/dist/__tests__/visibility-multi-world.integration.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-producer-matrix.integration.test.d.ts +2 -0
- package/dist/__tests__/visibility-producer-matrix.integration.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-producer-matrix.unit.test.d.ts +2 -0
- package/dist/__tests__/visibility-producer-matrix.unit.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-public-surface.test-d.d.ts +2 -0
- package/dist/__tests__/visibility-public-surface.test-d.d.ts.map +1 -0
- package/dist/__tests__/visibility-resolver.unit.test.d.ts +2 -0
- package/dist/__tests__/visibility-resolver.unit.test.d.ts.map +1 -0
- package/dist/__tests__/visibility-snapshot-contract.unit.test.d.ts +2 -0
- package/dist/__tests__/visibility-snapshot-contract.unit.test.d.ts.map +1 -0
- package/dist/__tests__/vocabulary.unit.test.d.ts +2 -0
- package/dist/__tests__/vocabulary.unit.test.d.ts.map +1 -0
- package/dist/assets/__tests__/asset-decoders.unit.test.d.ts +2 -0
- package/dist/assets/__tests__/asset-decoders.unit.test.d.ts.map +1 -0
- package/dist/assets/__tests__/mipmap-generator.unit.test.d.ts +2 -0
- package/dist/assets/__tests__/mipmap-generator.unit.test.d.ts.map +1 -0
- package/dist/assets/__tests__/render-asset-port.unit.test.d.ts +2 -0
- package/dist/assets/__tests__/render-asset-port.unit.test.d.ts.map +1 -0
- package/dist/assets/__tests__/resolve-render-asset.unit.test.d.ts +2 -0
- package/dist/assets/__tests__/resolve-render-asset.unit.test.d.ts.map +1 -0
- package/dist/assets/asset-decoders.d.ts +5 -0
- package/dist/assets/asset-decoders.d.ts.map +1 -0
- package/dist/assets/render-asset-port.d.ts +17 -0
- package/dist/assets/render-asset-port.d.ts.map +1 -0
- package/dist/assets/resolve-render-asset.d.ts +6 -0
- package/dist/assets/resolve-render-asset.d.ts.map +1 -0
- package/dist/authoring.d.ts +12 -0
- package/dist/authoring.d.ts.map +1 -0
- package/dist/authoring.mjs +5 -0
- package/dist/authoring.mjs.map +1 -0
- package/dist/chunk-33UF5SAO.mjs +7397 -0
- package/dist/chunk-33UF5SAO.mjs.map +1 -0
- package/dist/chunk-A5QCJSNL.mjs +29913 -0
- package/dist/chunk-A5QCJSNL.mjs.map +1 -0
- package/dist/chunk-JMSB7AR4.mjs +3 -0
- package/dist/chunk-JMSB7AR4.mjs.map +1 -0
- package/dist/chunk-LXNGO6AO.mjs +569 -0
- package/dist/chunk-LXNGO6AO.mjs.map +1 -0
- package/dist/chunk-QRXPSX4X.mjs +659 -0
- package/dist/chunk-QRXPSX4X.mjs.map +1 -0
- package/dist/chunk-YAKEQPWO.mjs +1439 -0
- package/dist/chunk-YAKEQPWO.mjs.map +1 -0
- package/dist/cluster-binner.d.ts +152 -0
- package/dist/cluster-binner.d.ts.map +1 -0
- package/dist/components/__tests__/atmosphere-red.test.d.ts +2 -0
- package/dist/components/__tests__/atmosphere-red.test.d.ts.map +1 -0
- package/dist/components/__tests__/atmosphere.test.d.ts +2 -0
- package/dist/components/__tests__/atmosphere.test.d.ts.map +1 -0
- package/dist/components/__tests__/fog.test-d.d.ts +2 -0
- package/dist/components/__tests__/fog.test-d.d.ts.map +1 -0
- package/dist/components/__tests__/fog.test.d.ts +2 -0
- package/dist/components/__tests__/fog.test.d.ts.map +1 -0
- package/dist/components/__tests__/schema-parity.unit.test.d.ts +2 -0
- package/dist/components/__tests__/schema-parity.unit.test.d.ts.map +1 -0
- package/dist/components/__tests__/visibility-schema.unit.test.d.ts +2 -0
- package/dist/components/__tests__/visibility-schema.unit.test.d.ts.map +1 -0
- package/dist/components/atmosphere.d.ts +18 -0
- package/dist/components/atmosphere.d.ts.map +1 -0
- package/dist/components/camera.d.ts +311 -0
- package/dist/components/camera.d.ts.map +1 -0
- package/dist/components/directional-light.d.ts +76 -0
- package/dist/components/directional-light.d.ts.map +1 -0
- package/dist/components/environment.d.ts +116 -0
- package/dist/components/environment.d.ts.map +1 -0
- package/dist/components/glyph-text.d.ts +26 -0
- package/dist/components/glyph-text.d.ts.map +1 -0
- package/dist/components/index.d.ts +22 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/instances.d.ts +41 -0
- package/dist/components/instances.d.ts.map +1 -0
- package/dist/components/layer.d.ts +34 -0
- package/dist/components/layer.d.ts.map +1 -0
- package/dist/components/light-helpers.d.ts +53 -0
- package/dist/components/light-helpers.d.ts.map +1 -0
- package/dist/components/mesh-filter.d.ts +24 -0
- package/dist/components/mesh-filter.d.ts.map +1 -0
- package/dist/components/mesh-renderer.d.ts +33 -0
- package/dist/components/mesh-renderer.d.ts.map +1 -0
- package/dist/components/point-light-shadow.d.ts +27 -0
- package/dist/components/point-light-shadow.d.ts.map +1 -0
- package/dist/components/point-light.d.ts +35 -0
- package/dist/components/point-light.d.ts.map +1 -0
- package/dist/components/post-process-params.d.ts +5 -0
- package/dist/components/post-process-params.d.ts.map +1 -0
- package/dist/components/scene-instance.d.ts +140 -0
- package/dist/components/scene-instance.d.ts.map +1 -0
- package/dist/components/sort-key.d.ts +44 -0
- package/dist/components/sort-key.d.ts.map +1 -0
- package/dist/components/spot-light.d.ts +81 -0
- package/dist/components/spot-light.d.ts.map +1 -0
- package/dist/components/sprite-animation.d.ts +75 -0
- package/dist/components/sprite-animation.d.ts.map +1 -0
- package/dist/components/sprite-instances.d.ts +51 -0
- package/dist/components/sprite-instances.d.ts.map +1 -0
- package/dist/components/sprite-playback-mode.d.ts +37 -0
- package/dist/components/sprite-playback-mode.d.ts.map +1 -0
- package/dist/components/sprite-region-override.d.ts +47 -0
- package/dist/components/sprite-region-override.d.ts.map +1 -0
- package/dist/components/tile-layer.d.ts +101 -0
- package/dist/components/tile-layer.d.ts.map +1 -0
- package/dist/components/tilemap.d.ts +25 -0
- package/dist/components/tilemap.d.ts.map +1 -0
- package/dist/components/visibility.d.ts +22 -0
- package/dist/components/visibility.d.ts.map +1 -0
- package/dist/construct-renderer.d.ts +2 -0
- package/dist/construct-renderer.d.ts.map +1 -0
- package/dist/construct-renderer.mjs +6 -0
- package/dist/construct-renderer.mjs.map +1 -0
- package/dist/debug-draw-glue.d.ts +56 -0
- package/dist/debug-draw-glue.d.ts.map +1 -0
- package/dist/deferred-lighting.d.ts +13 -0
- package/dist/deferred-lighting.d.ts.map +1 -0
- package/dist/dynamic-texture-store.d.ts +42 -0
- package/dist/dynamic-texture-store.d.ts.map +1 -0
- package/dist/engine-metrics.d.ts +23 -0
- package/dist/engine-metrics.d.ts.map +1 -0
- package/dist/environment/__tests__/failure-injection.test.d.ts +2 -0
- package/dist/environment/__tests__/failure-injection.test.d.ts.map +1 -0
- package/dist/environment/__tests__/generation-red.test.d.ts +2 -0
- package/dist/environment/__tests__/generation-red.test.d.ts.map +1 -0
- package/dist/environment/__tests__/generation.test.d.ts +2 -0
- package/dist/environment/__tests__/generation.test.d.ts.map +1 -0
- package/dist/environment/__tests__/graph-transaction.test.d.ts +2 -0
- package/dist/environment/__tests__/graph-transaction.test.d.ts.map +1 -0
- package/dist/environment/__tests__/inspection-red.test.d.ts +2 -0
- package/dist/environment/__tests__/inspection-red.test.d.ts.map +1 -0
- package/dist/environment/__tests__/lifecycle-evidence.test.d.ts +2 -0
- package/dist/environment/__tests__/lifecycle-evidence.test.d.ts.map +1 -0
- package/dist/environment/__tests__/pipeline-topology.test.d.ts +2 -0
- package/dist/environment/__tests__/pipeline-topology.test.d.ts.map +1 -0
- package/dist/environment/__tests__/readiness.test.d.ts +2 -0
- package/dist/environment/__tests__/readiness.test.d.ts.map +1 -0
- package/dist/environment/__tests__/recovery.test.d.ts +2 -0
- package/dist/environment/__tests__/recovery.test.d.ts.map +1 -0
- package/dist/environment/__tests__/resize-dispose.test.d.ts +2 -0
- package/dist/environment/__tests__/resize-dispose.test.d.ts.map +1 -0
- package/dist/environment/__tests__/signature-red.test.d.ts +2 -0
- package/dist/environment/__tests__/signature-red.test.d.ts.map +1 -0
- package/dist/environment/__tests__/signature.test.d.ts +2 -0
- package/dist/environment/__tests__/signature.test.d.ts.map +1 -0
- package/dist/environment/descriptors.d.ts +2 -0
- package/dist/environment/descriptors.d.ts.map +1 -0
- package/dist/environment/extracted-environment.d.ts +53 -0
- package/dist/environment/extracted-environment.d.ts.map +1 -0
- package/dist/environment/generation.d.ts +62 -0
- package/dist/environment/generation.d.ts.map +1 -0
- package/dist/environment/gpu-bundle.d.ts +23 -0
- package/dist/environment/gpu-bundle.d.ts.map +1 -0
- package/dist/environment/graph.d.ts +108 -0
- package/dist/environment/graph.d.ts.map +1 -0
- package/dist/environment/inspection.d.ts +48 -0
- package/dist/environment/inspection.d.ts.map +1 -0
- package/dist/environment/lifecycle.d.ts +22 -0
- package/dist/environment/lifecycle.d.ts.map +1 -0
- package/dist/environment/readiness.d.ts +29 -0
- package/dist/environment/readiness.d.ts.map +1 -0
- package/dist/environment/signature.d.ts +70 -0
- package/dist/environment/signature.d.ts.map +1 -0
- package/dist/errors/ecs-validation.d.ts +3 -0
- package/dist/errors/ecs-validation.d.ts.map +1 -0
- package/dist/errors/index.d.ts +4 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/recover.d.ts +78 -0
- package/dist/errors/recover.d.ts.map +1 -0
- package/dist/errors/render.d.ts +633 -0
- package/dist/errors/render.d.ts.map +1 -0
- package/dist/extract/__tests__/directional-csm-domain.unit.test.d.ts +2 -0
- package/dist/extract/__tests__/directional-csm-domain.unit.test.d.ts.map +1 -0
- package/dist/extract/__tests__/environment-source.test.d.ts +2 -0
- package/dist/extract/__tests__/environment-source.test.d.ts.map +1 -0
- package/dist/extract/__tests__/schema-readers.unit.test.d.ts +2 -0
- package/dist/extract/__tests__/schema-readers.unit.test.d.ts.map +1 -0
- package/dist/extract/directional-csm.d.ts +129 -0
- package/dist/extract/directional-csm.d.ts.map +1 -0
- package/dist/extract/index.d.ts +5 -0
- package/dist/extract/index.d.ts.map +1 -0
- package/dist/extract/material-interface.d.ts +56 -0
- package/dist/extract/material-interface.d.ts.map +1 -0
- package/dist/extract/schema-readers.d.ts +20 -0
- package/dist/extract/schema-readers.d.ts.map +1 -0
- package/dist/extract/visibility.d.ts +26 -0
- package/dist/extract/visibility.d.ts.map +1 -0
- package/dist/features/graph-contribution.d.ts +64 -0
- package/dist/features/graph-contribution.d.ts.map +1 -0
- package/dist/features/host.d.ts +100 -0
- package/dist/features/host.d.ts.map +1 -0
- package/dist/features/index.d.ts +21 -0
- package/dist/features/index.d.ts.map +1 -0
- package/dist/features/morph/index.d.ts +3 -0
- package/dist/features/morph/index.d.ts.map +1 -0
- package/dist/features/morph/morph-bounds.d.ts +42 -0
- package/dist/features/morph/morph-bounds.d.ts.map +1 -0
- package/dist/features/morph/morph-feature.d.ts +45 -0
- package/dist/features/morph/morph-feature.d.ts.map +1 -0
- package/dist/features/prepared-gpu-work.d.ts +113 -0
- package/dist/features/prepared-gpu-work.d.ts.map +1 -0
- package/dist/features/prepared-graphics-store.d.ts +65 -0
- package/dist/features/prepared-graphics-store.d.ts.map +1 -0
- package/dist/features/prepared-graphics.d.ts +225 -0
- package/dist/features/prepared-graphics.d.ts.map +1 -0
- package/dist/features/render-graph-compute.d.ts +13 -0
- package/dist/features/render-graph-compute.d.ts.map +1 -0
- package/dist/features/render-graph-contribution.d.ts +15 -0
- package/dist/features/render-graph-contribution.d.ts.map +1 -0
- package/dist/features/render-graph-raster.d.ts +34 -0
- package/dist/features/render-graph-raster.d.ts.map +1 -0
- package/dist/features/render-graph-resources.d.ts +11 -0
- package/dist/features/render-graph-resources.d.ts.map +1 -0
- package/dist/features/scene-temporal.d.ts +45 -0
- package/dist/features/scene-temporal.d.ts.map +1 -0
- package/dist/features/taa-resolve.d.ts +21 -0
- package/dist/features/taa-resolve.d.ts.map +1 -0
- package/dist/features/targets.d.ts +32 -0
- package/dist/features/targets.d.ts.map +1 -0
- package/dist/features/types.d.ts +247 -0
- package/dist/features/types.d.ts.map +1 -0
- package/dist/frame-chain.d.ts +14 -0
- package/dist/frame-chain.d.ts.map +1 -0
- package/dist/fullscreen-post-process-pass.d.ts +178 -0
- package/dist/fullscreen-post-process-pass.d.ts.map +1 -0
- package/dist/glyph-text-layout-system.d.ts +18 -0
- package/dist/glyph-text-layout-system.d.ts.map +1 -0
- package/dist/gpu-driven/batch-topology.d.ts +124 -0
- package/dist/gpu-driven/batch-topology.d.ts.map +1 -0
- package/dist/gpu-driven/production-raster.d.ts +150 -0
- package/dist/gpu-driven/production-raster.d.ts.map +1 -0
- package/dist/gpu-driven/view-gpu.d.ts +141 -0
- package/dist/gpu-driven/view-gpu.d.ts.map +1 -0
- package/dist/gpu-driven/view-reference.d.ts +15 -0
- package/dist/gpu-driven/view-reference.d.ts.map +1 -0
- package/dist/gpu-resource-store.d.ts +294 -0
- package/dist/gpu-resource-store.d.ts.map +1 -0
- package/dist/gpu-resource.d.ts +73 -0
- package/dist/gpu-resource.d.ts.map +1 -0
- package/dist/gpu-scene-schema.d.ts +171 -0
- package/dist/gpu-scene-schema.d.ts.map +1 -0
- package/dist/gpu-scene.d.ts +81 -0
- package/dist/gpu-scene.d.ts.map +1 -0
- package/dist/gpu-stage.d.ts +4 -0
- package/dist/gpu-stage.d.ts.map +1 -0
- package/dist/gpu-texture-usage.d.ts +6 -0
- package/dist/gpu-texture-usage.d.ts.map +1 -0
- package/dist/gpu-usage.d.ts +9 -0
- package/dist/gpu-usage.d.ts.map +1 -0
- package/dist/hdrp-buffers.d.ts +213 -0
- package/dist/hdrp-buffers.d.ts.map +1 -0
- package/dist/hdrp-cluster-membership.d.ts +2 -0
- package/dist/hdrp-cluster-membership.d.ts.map +1 -0
- package/dist/hdrp-pipeline.d.ts +36 -0
- package/dist/hdrp-pipeline.d.ts.map +1 -0
- package/dist/ibl/IblPipelineCache.d.ts +274 -0
- package/dist/ibl/IblPipelineCache.d.ts.map +1 -0
- package/dist/ibl/cubemap-projection.d.ts +23 -0
- package/dist/ibl/cubemap-projection.d.ts.map +1 -0
- package/dist/ibl/face-uniforms.d.ts +65 -0
- package/dist/ibl/face-uniforms.d.ts.map +1 -0
- package/dist/ibl/skylight-bind-group.d.ts +130 -0
- package/dist/ibl/skylight-bind-group.d.ts.map +1 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +5 -0
- package/dist/index.mjs.map +1 -0
- package/dist/instance-buffer-cache.d.ts +59 -0
- package/dist/instance-buffer-cache.d.ts.map +1 -0
- package/dist/internal.d.ts +74 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.mjs +45 -0
- package/dist/internal.mjs.map +1 -0
- package/dist/lifecycle.d.ts +28 -0
- package/dist/lifecycle.d.ts.map +1 -0
- package/dist/light-buffer-layout.d.ts +164 -0
- package/dist/light-buffer-layout.d.ts.map +1 -0
- package/dist/materials.d.ts +50 -0
- package/dist/materials.d.ts.map +1 -0
- package/dist/mesh-material-bindings.d.ts +44 -0
- package/dist/mesh-material-bindings.d.ts.map +1 -0
- package/dist/mesh-update-errors.d.ts +71 -0
- package/dist/mesh-update-errors.d.ts.map +1 -0
- package/dist/mipmap-generator.d.ts +39 -0
- package/dist/mipmap-generator.d.ts.map +1 -0
- package/dist/param-schema-projection-census.d.ts +18 -0
- package/dist/param-schema-projection-census.d.ts.map +1 -0
- package/dist/pbr-pipeline.d.ts +253 -0
- package/dist/pbr-pipeline.d.ts.map +1 -0
- package/dist/persistent-render-scene.d.ts +158 -0
- package/dist/persistent-render-scene.d.ts.map +1 -0
- package/dist/pipeline/index.d.ts +11 -0
- package/dist/pipeline/index.d.ts.map +1 -0
- package/dist/pipeline-builder.d.ts +122 -0
- package/dist/pipeline-builder.d.ts.map +1 -0
- package/dist/pipeline-errors.d.ts +110 -0
- package/dist/pipeline-errors.d.ts.map +1 -0
- package/dist/pipeline-spec.d.ts +506 -0
- package/dist/pipeline-spec.d.ts.map +1 -0
- package/dist/plugin.d.ts +17 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/post-process-errors.d.ts +182 -0
- package/dist/post-process-errors.d.ts.map +1 -0
- package/dist/prepare/__tests__/schema-readers.unit.test.d.ts +2 -0
- package/dist/prepare/__tests__/schema-readers.unit.test.d.ts.map +1 -0
- package/dist/prepare/index.d.ts +4 -0
- package/dist/prepare/index.d.ts.map +1 -0
- package/dist/prepare/prepared-graphics-resolver.d.ts +62 -0
- package/dist/prepare/prepared-graphics-resolver.d.ts.map +1 -0
- package/dist/prepare/schema-readers.d.ts +11 -0
- package/dist/prepare/schema-readers.d.ts.map +1 -0
- package/dist/record/__tests__/environment-record.test.d.ts +2 -0
- package/dist/record/__tests__/environment-record.test.d.ts.map +1 -0
- package/dist/record/__tests__/frame-targets.unit.test.d.ts +2 -0
- package/dist/record/__tests__/frame-targets.unit.test.d.ts.map +1 -0
- package/dist/record/__tests__/material-bg-cache.unit.test.d.ts +2 -0
- package/dist/record/__tests__/material-bg-cache.unit.test.d.ts.map +1 -0
- package/dist/record/__tests__/material-slot-plan.unit.test.d.ts +2 -0
- package/dist/record/__tests__/material-slot-plan.unit.test.d.ts.map +1 -0
- package/dist/record/__tests__/membership-timing.unit.test.d.ts +2 -0
- package/dist/record/__tests__/membership-timing.unit.test.d.ts.map +1 -0
- package/dist/record/__tests__/render-submission.integration.test.d.ts +2 -0
- package/dist/record/__tests__/render-submission.integration.test.d.ts.map +1 -0
- package/dist/record/__tests__/render-submission.perf.test.d.ts +2 -0
- package/dist/record/__tests__/render-submission.perf.test.d.ts.map +1 -0
- package/dist/record/__tests__/shadow-submit-mode.unit.test.d.ts +2 -0
- package/dist/record/__tests__/shadow-submit-mode.unit.test.d.ts.map +1 -0
- package/dist/record/__tests__/video-texture-view.unit.test.d.ts +2 -0
- package/dist/record/__tests__/video-texture-view.unit.test.d.ts.map +1 -0
- package/dist/record/__tests__/view-ubo-layout.unit.test.d.ts +2 -0
- package/dist/record/__tests__/view-ubo-layout.unit.test.d.ts.map +1 -0
- package/dist/record/frame-lighting.d.ts +187 -0
- package/dist/record/frame-lighting.d.ts.map +1 -0
- package/dist/record/frame-observation.d.ts +38 -0
- package/dist/record/frame-observation.d.ts.map +1 -0
- package/dist/record/frame-snapshot.d.ts +429 -0
- package/dist/record/frame-snapshot.d.ts.map +1 -0
- package/dist/record/frame-targets.d.ts +53 -0
- package/dist/record/frame-targets.d.ts.map +1 -0
- package/dist/record/frame.d.ts +59 -0
- package/dist/record/frame.d.ts.map +1 -0
- package/dist/record/helpers.d.ts +101 -0
- package/dist/record/helpers.d.ts.map +1 -0
- package/dist/record/index.d.ts +15 -0
- package/dist/record/index.d.ts.map +1 -0
- package/dist/record/main-pass-geometry.d.ts +20 -0
- package/dist/record/main-pass-geometry.d.ts.map +1 -0
- package/dist/record/main-pass-material.d.ts +173 -0
- package/dist/record/main-pass-material.d.ts.map +1 -0
- package/dist/record/main-pass-skin.d.ts +46 -0
- package/dist/record/main-pass-skin.d.ts.map +1 -0
- package/dist/record/main-pass-sprite-draws.d.ts +18 -0
- package/dist/record/main-pass-sprite-draws.d.ts.map +1 -0
- package/dist/record/main-pass-sprite.d.ts +69 -0
- package/dist/record/main-pass-sprite.d.ts.map +1 -0
- package/dist/record/main-pass.d.ts +20 -0
- package/dist/record/main-pass.d.ts.map +1 -0
- package/dist/record/material-payload.d.ts +43 -0
- package/dist/record/material-payload.d.ts.map +1 -0
- package/dist/record/material-slot-plan.d.ts +26 -0
- package/dist/record/material-slot-plan.d.ts.map +1 -0
- package/dist/record/membership-timing.d.ts +232 -0
- package/dist/record/membership-timing.d.ts.map +1 -0
- package/dist/record/mesh-ssbo.d.ts +173 -0
- package/dist/record/mesh-ssbo.d.ts.map +1 -0
- package/dist/record/shadow-caster-uniform.d.ts +8 -0
- package/dist/record/shadow-caster-uniform.d.ts.map +1 -0
- package/dist/record/shadow-pass.d.ts +125 -0
- package/dist/record/shadow-pass.d.ts.map +1 -0
- package/dist/record/shadow-submit-mode.d.ts +66 -0
- package/dist/record/shadow-submit-mode.d.ts.map +1 -0
- package/dist/record/skybox-post-pass.d.ts +33 -0
- package/dist/record/skybox-post-pass.d.ts.map +1 -0
- package/dist/record/typed-frame-graph.d.ts +13 -0
- package/dist/record/typed-frame-graph.d.ts.map +1 -0
- package/dist/record/view-ubo.d.ts +39 -0
- package/dist/record/view-ubo.d.ts.map +1 -0
- package/dist/render-data.d.ts +143 -0
- package/dist/render-data.d.ts.map +1 -0
- package/dist/render-dispatch-membership.d.ts +47 -0
- package/dist/render-dispatch-membership.d.ts.map +1 -0
- package/dist/render-graph-primitives.d.ts +424 -0
- package/dist/render-graph-primitives.d.ts.map +1 -0
- package/dist/render-pipeline-context.d.ts +289 -0
- package/dist/render-pipeline-context.d.ts.map +1 -0
- package/dist/render-pipeline-target.d.ts +16 -0
- package/dist/render-pipeline-target.d.ts.map +1 -0
- package/dist/render-pipeline.d.ts +149 -0
- package/dist/render-pipeline.d.ts.map +1 -0
- package/dist/render-scene-projection.d.ts +174 -0
- package/dist/render-scene-projection.d.ts.map +1 -0
- package/dist/render-system-extract.d.ts +1096 -0
- package/dist/render-system-extract.d.ts.map +1 -0
- package/dist/render-system-fold.d.ts +266 -0
- package/dist/render-system-fold.d.ts.map +1 -0
- package/dist/render-system.d.ts +814 -0
- package/dist/render-system.d.ts.map +1 -0
- package/dist/renderer/asset-service.d.ts +10 -0
- package/dist/renderer/asset-service.d.ts.map +1 -0
- package/dist/renderer/backend-selection.d.ts +26 -0
- package/dist/renderer/backend-selection.d.ts.map +1 -0
- package/dist/renderer/environment-classify.d.ts +6 -0
- package/dist/renderer/environment-classify.d.ts.map +1 -0
- package/dist/renderer/environment-error.d.ts +13 -0
- package/dist/renderer/environment-error.d.ts.map +1 -0
- package/dist/renderer/material/assembly.d.ts +22 -0
- package/dist/renderer/material/assembly.d.ts.map +1 -0
- package/dist/renderer/material/pipeline-projection.d.ts +91 -0
- package/dist/renderer/material/pipeline-projection.d.ts.map +1 -0
- package/dist/renderer/renderer-factory.d.ts +283 -0
- package/dist/renderer/renderer-factory.d.ts.map +1 -0
- package/dist/renderer.d.ts +771 -0
- package/dist/renderer.d.ts.map +1 -0
- package/dist/scene-instances/post-spawn-resolve-joints.d.ts +33 -0
- package/dist/scene-instances/post-spawn-resolve-joints.d.ts.map +1 -0
- package/dist/scene-utils/collect-subtree.d.ts +11 -0
- package/dist/scene-utils/collect-subtree.d.ts.map +1 -0
- package/dist/shadow-atlas.d.ts +117 -0
- package/dist/shadow-atlas.d.ts.map +1 -0
- package/dist/ssao-buffers.d.ts +31 -0
- package/dist/ssao-buffers.d.ts.map +1 -0
- package/dist/ssao-config.d.ts +28 -0
- package/dist/ssao-config.d.ts.map +1 -0
- package/dist/ssao-data.d.ts +34 -0
- package/dist/ssao-data.d.ts.map +1 -0
- package/dist/surface-format.d.ts +10 -0
- package/dist/surface-format.d.ts.map +1 -0
- package/dist/systems/active-camera.d.ts +53 -0
- package/dist/systems/active-camera.d.ts.map +1 -0
- package/dist/systems/pass-selector.d.ts +24 -0
- package/dist/systems/pass-selector.d.ts.map +1 -0
- package/dist/systems/skin-palette-allocator.d.ts +51 -0
- package/dist/systems/skin-palette-allocator.d.ts.map +1 -0
- package/dist/systems/transparent-sort-config.d.ts +91 -0
- package/dist/systems/transparent-sort-config.d.ts.map +1 -0
- package/dist/taa-history-store.d.ts +88 -0
- package/dist/taa-history-store.d.ts.map +1 -0
- package/dist/temporal-coverage.d.ts +35 -0
- package/dist/temporal-coverage.d.ts.map +1 -0
- package/dist/temporal-frame-transaction.d.ts +92 -0
- package/dist/temporal-frame-transaction.d.ts.map +1 -0
- package/dist/temporal-inspection.d.ts +57 -0
- package/dist/temporal-inspection.d.ts.map +1 -0
- package/dist/temporal-view.d.ts +43 -0
- package/dist/temporal-view.d.ts.map +1 -0
- package/dist/tilemap/resolve-tileset-runtime.d.ts +23 -0
- package/dist/tilemap/resolve-tileset-runtime.d.ts.map +1 -0
- package/dist/tilemap-chunk-extract-system.d.ts +142 -0
- package/dist/tilemap-chunk-extract-system.d.ts.map +1 -0
- package/dist/typed-render-graph-primitives.d.ts +59 -0
- package/dist/typed-render-graph-primitives.d.ts.map +1 -0
- package/dist/typed-shadow-passes.d.ts +11 -0
- package/dist/typed-shadow-passes.d.ts.map +1 -0
- package/dist/urp-pipeline.d.ts +4 -0
- package/dist/urp-pipeline.d.ts.map +1 -0
- package/package.json +94 -0
- package/src/__tests__/analytic-sky-contract.test.ts +27 -0
- package/src/__tests__/analytic-sky-falsify-carriers.mjs +43 -0
- package/src/__tests__/analytic-sky-falsify.test.ts +94 -0
- package/src/__tests__/assets-runtime-handoff.integration.test.ts +36 -0
- package/src/__tests__/authoring-path.unit.test.ts +14 -0
- package/src/__tests__/backend-selection-rhi-capture.test-d.ts +21 -0
- package/src/__tests__/backend-selection.integration.test.ts +11 -0
- package/src/__tests__/callback-inference.test-d.ts +5 -0
- package/src/__tests__/camera-temporal.test-d.ts +8 -0
- package/src/__tests__/camera-temporal.test.ts +188 -0
- package/src/__tests__/cluster-binner.test.ts +272 -0
- package/src/__tests__/cluster-grid-default-surface.unit.test.ts +17 -0
- package/src/__tests__/construct-renderer-identity.unit.test.ts +10 -0
- package/src/__tests__/direct-extract-consumer-contract.test-d.ts +34 -0
- package/src/__tests__/direct-light-snapshot.unit.test.ts +71 -0
- package/src/__tests__/directional-shadow-probe-atlas-layout.unit.test.ts +18 -0
- package/src/__tests__/environment-inspection.test.ts +45 -0
- package/src/__tests__/factory-contract.integration.test.ts +331 -0
- package/src/__tests__/fallback-row-stride-surface.unit.test.ts +18 -0
- package/src/__tests__/fog-ai-user.fixture.ts +350 -0
- package/src/__tests__/fog-custom-render-feature.fixture.ts +33 -0
- package/src/__tests__/fog-custom-render-feature.integration.test.ts +76 -0
- package/src/__tests__/fog-inspection.integration.test.ts +127 -0
- package/src/__tests__/fog-owner-state.integration.test.ts +112 -0
- package/src/__tests__/fog-pipeline-topology.integration.test.ts +93 -0
- package/src/__tests__/fog-public-surface.integration.test.ts +60 -0
- package/src/__tests__/fog-ray-contract.integration.test.ts +73 -0
- package/src/__tests__/fog-source-absence.integration.test.ts +51 -0
- package/src/__tests__/fog-temporal.integration.test.ts +115 -0
- package/src/__tests__/frame-chain.unit.test.ts +26 -0
- package/src/__tests__/frame-observation.contract.test.ts +103 -0
- package/src/__tests__/glyph-text-layout-recovery.unit.test.ts +172 -0
- package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +347 -0
- package/src/__tests__/gpu-driven-indirect-raster.browser.test.ts +12 -0
- package/src/__tests__/gpu-driven-indirect-raster.dawn.test.ts +16 -0
- package/src/__tests__/gpu-driven-production.integration.test.ts +609 -0
- package/src/__tests__/gpu-driven-scaling.unit.test.ts +90 -0
- package/src/__tests__/gpu-driven-view-gpu-evidence.ts +192 -0
- package/src/__tests__/gpu-driven-view-graph.integration.test.ts +128 -0
- package/src/__tests__/gpu-driven-view.browser.test.ts +19 -0
- package/src/__tests__/gpu-driven-view.dawn.test.ts +17 -0
- package/src/__tests__/gpu-driven-view.unit.test.ts +455 -0
- package/src/__tests__/gpu-resource-store-stride.unit.test.ts +59 -0
- package/src/__tests__/gpu-scene-field-type-owner.test-d.ts +27 -0
- package/src/__tests__/gpu-scene-render-graph-gpu.ts +309 -0
- package/src/__tests__/gpu-scene-render-graph.browser.test.ts +19 -0
- package/src/__tests__/gpu-scene-render-graph.dawn.test.ts +19 -0
- package/src/__tests__/gpu-scene-schema.unit.test.ts +16 -0
- package/src/__tests__/gpu-scene.dawn.test.ts +209 -0
- package/src/__tests__/gpu-scene.unit.test.ts +161 -0
- package/src/__tests__/hdrp-pipeline.unit.test.ts +100 -0
- package/src/__tests__/ibl/ibl-fallback.unit.test.ts +23 -0
- package/src/__tests__/infinite-grid-no-vertex-probe.unit.test.ts +124 -0
- package/src/__tests__/injection-kind-owner.test-d.ts +14 -0
- package/src/__tests__/ktx2-basis-gpu-consumer.dawn.test.ts +719 -0
- package/src/__tests__/light-buffer-layout.unit.test.ts +85 -0
- package/src/__tests__/material-contract-inventory.unit.test.ts +24 -0
- package/src/__tests__/material-cooked-projection.unit.test.ts +177 -0
- package/src/__tests__/material-derived-error-stop-draw.integration.test.ts +69 -0
- package/src/__tests__/material-derived-payload.integration.test.ts +164 -0
- package/src/__tests__/material-snapshot-mutation.integration.test.ts +58 -0
- package/src/__tests__/material-static-dynamic-route.unit.test.ts +113 -0
- package/src/__tests__/material-stride-surface.unit.test.ts +32 -0
- package/src/__tests__/materials.unit.test.ts +25 -0
- package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +107 -0
- package/src/__tests__/mesh-material-bindings.unit.test.ts +89 -0
- package/src/__tests__/mesh-stride-surface.unit.test.ts +16 -0
- package/src/__tests__/morph-culling-reentry.dawn.test.ts +166 -0
- package/src/__tests__/morph-feature-gpu-work.integration.test.ts +78 -0
- package/src/__tests__/morph-visual-evidence.integration.test.ts +66 -0
- package/src/__tests__/nineslice-handle-surface.unit.test.ts +14 -0
- package/src/__tests__/param-schema-projection-census.unit.test.ts +40 -0
- package/src/__tests__/persistent-render-scene.unit.test.ts +1311 -0
- package/src/__tests__/pipeline-error-policy-owner.unit.test.ts +167 -0
- package/src/__tests__/pipeline-pass-trace.test.ts +92 -0
- package/src/__tests__/pipeline-stage-owner.test-d.ts +13 -0
- package/src/__tests__/plugin.test.ts +25 -0
- package/src/__tests__/post-process-error-policy-owner.unit.test.ts +208 -0
- package/src/__tests__/prepared-buffer-kind-owner.test-d.ts +29 -0
- package/src/__tests__/prepared-graphics-backend-matrix.unit.test.ts +129 -0
- package/src/__tests__/prepared-graphics-capability.unit.test.ts +140 -0
- package/src/__tests__/prepared-graphics-generation.unit.test.ts +175 -0
- package/src/__tests__/prepared-graphics-lifecycle.unit.test.ts +206 -0
- package/src/__tests__/prepared-graphics-pipeline-warmup.unit.test.ts +29 -0
- package/src/__tests__/prepared-graphics-resolver-recording.unit.test.ts +180 -0
- package/src/__tests__/prepared-graphics-resolver.unit.test.ts +287 -0
- package/src/__tests__/prepared-graphics-snapshot.unit.test.ts +105 -0
- package/src/__tests__/prepared-graphics-store.unit.test.ts +154 -0
- package/src/__tests__/prepared-graphics-validation.unit.test.ts +176 -0
- package/src/__tests__/profiler-default-off.test.ts +22 -0
- package/src/__tests__/profiler-phase-catalog.test.ts +66 -0
- package/src/__tests__/profiler-phase-integration.test.ts +70 -0
- package/src/__tests__/profiler-phase-token.test.ts +84 -0
- package/src/__tests__/public-pipeline-id.test-d.ts +6 -0
- package/src/__tests__/public-surface.test-d.ts +32 -0
- package/src/__tests__/recover-error-policy-owner.unit.test.ts +127 -0
- package/src/__tests__/render-dispatch-membership.unit.test.ts +117 -0
- package/src/__tests__/render-error-code-owner.test-d.ts +115 -0
- package/src/__tests__/render-error-detail-ssot.test-d.ts +234 -0
- package/src/__tests__/render-error-exhaustive.test-d.ts +84 -0
- package/src/__tests__/render-feature-assembly.test-d.ts +51 -0
- package/src/__tests__/render-feature-construction.unit.test.ts +124 -0
- package/src/__tests__/render-feature-context.test-d.ts +81 -0
- package/src/__tests__/render-feature-contract.test-d.ts +58 -0
- package/src/__tests__/render-feature-diagnostics.unit.test.ts +151 -0
- package/src/__tests__/render-feature-docs.unit.test.ts +88 -0
- package/src/__tests__/render-feature-error-code-owner.test-d.ts +27 -0
- package/src/__tests__/render-feature-errors.unit.test.ts +47 -0
- package/src/__tests__/render-feature-gpu-buffer-usage-owner.test-d.ts +46 -0
- package/src/__tests__/render-feature-gpu-work.integration.test.ts +377 -0
- package/src/__tests__/render-feature-graph.integration.test.ts +205 -0
- package/src/__tests__/render-feature-graphics-staging.unit.test.ts +200 -0
- package/src/__tests__/render-feature-order.unit.test.ts +66 -0
- package/src/__tests__/render-feature-prepared-diagnostics.unit.test.ts +101 -0
- package/src/__tests__/render-feature-prepared-errors.test-d.ts +82 -0
- package/src/__tests__/render-feature-prepared-graphics-docs.unit.test.ts +141 -0
- package/src/__tests__/render-feature-prepared-graphics-isolation.unit.test.ts +122 -0
- package/src/__tests__/render-feature-prepared-graphics-negative.test-d.ts +59 -0
- package/src/__tests__/render-feature-prepared-graphics-recording.unit.test.ts +107 -0
- package/src/__tests__/render-feature-prepared-graphics.test-d.ts +96 -0
- package/src/__tests__/render-feature-prepared-graphics.unit.test.ts +121 -0
- package/src/__tests__/render-feature-public-surface.test-d.ts +75 -0
- package/src/__tests__/render-feature-retry.unit.test.ts +128 -0
- package/src/__tests__/render-feature-scheduling.unit.test.ts +122 -0
- package/src/__tests__/render-feature-stage-failed-policy-owner.unit.test.ts +146 -0
- package/src/__tests__/render-feature-stage-fault-recovery.unit.test.ts +236 -0
- package/src/__tests__/render-feature-staging.unit.test.ts +94 -0
- package/src/__tests__/render-feature-visibility-context.test-d.ts +38 -0
- package/src/__tests__/render-feature-visibility-context.unit.test.ts +38 -0
- package/src/__tests__/render-feature-zero-work.unit.test.ts +82 -0
- package/src/__tests__/render-graph-compute-raster-gpu.ts +342 -0
- package/src/__tests__/render-graph-compute-raster.browser.test.ts +16 -0
- package/src/__tests__/render-graph-compute-raster.dawn.test.ts +22 -0
- package/src/__tests__/render-graph-hzb-gpu.ts +239 -0
- package/src/__tests__/render-graph-hzb.browser.test.ts +16 -0
- package/src/__tests__/render-graph-hzb.dawn.test.ts +23 -0
- package/src/__tests__/render-graph-primitives.unit.test.ts +22 -0
- package/src/__tests__/render-graph-storage-indirect-gpu.ts +162 -0
- package/src/__tests__/render-graph-storage-indirect.browser.test.ts +21 -0
- package/src/__tests__/render-graph-storage-indirect.dawn.test.ts +28 -0
- package/src/__tests__/render-scene-projection.unit.test.ts +206 -0
- package/src/__tests__/renderer-factory-material-contract.unit.test.ts +125 -0
- package/src/__tests__/renderer-lifecycle.integration.test.ts +10 -0
- package/src/__tests__/renderer-render-scene-public.test-d.ts +27 -0
- package/src/__tests__/rhi-backend-package-boundary.unit.test.ts +11 -0
- package/src/__tests__/scene-temporal-coverage.unit.test.ts +259 -0
- package/src/__tests__/scriptable-pack-consumer.test-d.ts +14 -0
- package/src/__tests__/shader-stage-surface.unit.test.ts +38 -0
- package/src/__tests__/ssao-kernel-surface.unit.test.ts +15 -0
- package/src/__tests__/sun-snapshot-consumers.test.ts +35 -0
- package/src/__tests__/surface-backend-kind-owner.test-d.ts +42 -0
- package/src/__tests__/surface-configuration.unit.test.ts +92 -0
- package/src/__tests__/taa-history-store.unit.test.ts +196 -0
- package/src/__tests__/temporal-frame-transaction.integration.test.ts +537 -0
- package/src/__tests__/temporal-inspection.unit.test.ts +138 -0
- package/src/__tests__/texture-usage-surface.unit.test.ts +61 -0
- package/src/__tests__/typed-pipeline-topology.unit.test.ts +389 -0
- package/src/__tests__/urp-pipeline-targets.unit.test.ts +52 -0
- package/src/__tests__/urp-pipeline.unit.test.ts +14 -0
- package/src/__tests__/vertex-color-pipeline.unit.test.ts +124 -0
- package/src/__tests__/vertex-layout-consumer.unit.test.ts +25 -0
- package/src/__tests__/visibility-diagnostics.integration.test.ts +66 -0
- package/src/__tests__/visibility-extract.integration.test.ts +89 -0
- package/src/__tests__/visibility-extract.perf.test.ts +96 -0
- package/src/__tests__/visibility-feature-dedup.integration.test.ts +57 -0
- package/src/__tests__/visibility-hidden-report.unit.test.ts +37 -0
- package/src/__tests__/visibility-instances.integration.test.ts +50 -0
- package/src/__tests__/visibility-multi-world.integration.test.ts +54 -0
- package/src/__tests__/visibility-producer-matrix.integration.test.ts +191 -0
- package/src/__tests__/visibility-producer-matrix.unit.test.ts +96 -0
- package/src/__tests__/visibility-public-surface.test-d.ts +26 -0
- package/src/__tests__/visibility-resolver.unit.test.ts +84 -0
- package/src/__tests__/visibility-snapshot-contract.unit.test.ts +59 -0
- package/src/__tests__/vocabulary.unit.test.ts +21 -0
- package/src/assets/__tests__/asset-decoders.unit.test.ts +92 -0
- package/src/assets/__tests__/mipmap-generator.unit.test.ts +52 -0
- package/src/assets/__tests__/render-asset-port.unit.test.ts +54 -0
- package/src/assets/__tests__/resolve-render-asset.unit.test.ts +47 -0
- package/src/assets/asset-decoders.ts +158 -0
- package/src/assets/render-asset-port.ts +44 -0
- package/src/assets/resolve-render-asset.ts +13 -0
- package/src/authoring.ts +24 -0
- package/src/cluster-binner.ts +700 -0
- package/src/components/__tests__/atmosphere-red.test.ts +51 -0
- package/src/components/__tests__/atmosphere.test.ts +79 -0
- package/src/components/__tests__/fog.test-d.ts +49 -0
- package/src/components/__tests__/fog.test.ts +60 -0
- package/src/components/__tests__/schema-parity.unit.test.ts +25 -0
- package/src/components/__tests__/visibility-schema.unit.test.ts +35 -0
- package/src/components/atmosphere.ts +64 -0
- package/src/components/camera.ts +512 -0
- package/src/components/directional-light.ts +120 -0
- package/src/components/environment.ts +206 -0
- package/src/components/glyph-text.ts +63 -0
- package/src/components/index.ts +49 -0
- package/src/components/instances.ts +207 -0
- package/src/components/layer.ts +69 -0
- package/src/components/light-helpers.ts +188 -0
- package/src/components/mesh-filter.ts +59 -0
- package/src/components/mesh-renderer.ts +61 -0
- package/src/components/point-light-shadow.ts +43 -0
- package/src/components/point-light.ts +65 -0
- package/src/components/post-process-params.ts +35 -0
- package/src/components/scene-instance.ts +193 -0
- package/src/components/sort-key.ts +75 -0
- package/src/components/spot-light.ts +124 -0
- package/src/components/sprite-animation.ts +169 -0
- package/src/components/sprite-instances.ts +179 -0
- package/src/components/sprite-playback-mode.ts +73 -0
- package/src/components/sprite-region-override.ts +106 -0
- package/src/components/tile-layer.ts +161 -0
- package/src/components/tilemap.ts +48 -0
- package/src/components/visibility.ts +53 -0
- package/src/construct-renderer.ts +4 -0
- package/src/debug-draw-glue.ts +169 -0
- package/src/deferred-lighting.ts +92 -0
- package/src/dynamic-texture-store.ts +111 -0
- package/src/engine-metrics.ts +89 -0
- package/src/environment/README.md +76 -0
- package/src/environment/__tests__/failure-injection.test.ts +50 -0
- package/src/environment/__tests__/generation-red.test.ts +64 -0
- package/src/environment/__tests__/generation.test.ts +37 -0
- package/src/environment/__tests__/graph-transaction.test.ts +85 -0
- package/src/environment/__tests__/inspection-red.test.ts +53 -0
- package/src/environment/__tests__/lifecycle-evidence.test.ts +40 -0
- package/src/environment/__tests__/pipeline-topology.test.ts +33 -0
- package/src/environment/__tests__/readiness.test.ts +42 -0
- package/src/environment/__tests__/recovery.test.ts +62 -0
- package/src/environment/__tests__/resize-dispose.test.ts +30 -0
- package/src/environment/__tests__/signature-red.test.ts +45 -0
- package/src/environment/__tests__/signature.test.ts +60 -0
- package/src/environment/descriptors.ts +7 -0
- package/src/environment/extracted-environment.ts +239 -0
- package/src/environment/generation.ts +158 -0
- package/src/environment/gpu-bundle.ts +144 -0
- package/src/environment/graph.ts +588 -0
- package/src/environment/inspection.ts +107 -0
- package/src/environment/lifecycle.ts +124 -0
- package/src/environment/readiness.ts +76 -0
- package/src/environment/signature.ts +185 -0
- package/src/errors/ecs-validation.ts +16 -0
- package/src/errors/index.ts +3 -0
- package/src/errors/recover.ts +119 -0
- package/src/errors/render.ts +1244 -0
- package/src/extract/__tests__/directional-csm-domain.unit.test.ts +391 -0
- package/src/extract/__tests__/environment-source.test.ts +105 -0
- package/src/extract/__tests__/schema-readers.unit.test.ts +16 -0
- package/src/extract/directional-csm.ts +959 -0
- package/src/extract/index.ts +10 -0
- package/src/extract/material-interface.ts +604 -0
- package/src/extract/schema-readers.ts +27 -0
- package/src/extract/visibility.ts +120 -0
- package/src/features/graph-contribution.ts +577 -0
- package/src/features/host.ts +1097 -0
- package/src/features/index.ts +100 -0
- package/src/features/morph/index.ts +24 -0
- package/src/features/morph/morph-bounds.ts +123 -0
- package/src/features/morph/morph-feature.ts +287 -0
- package/src/features/prepared-gpu-work.ts +902 -0
- package/src/features/prepared-graphics-store.ts +435 -0
- package/src/features/prepared-graphics.ts +479 -0
- package/src/features/render-graph-compute.ts +60 -0
- package/src/features/render-graph-contribution.ts +95 -0
- package/src/features/render-graph-raster.ts +308 -0
- package/src/features/render-graph-resources.ts +36 -0
- package/src/features/scene-temporal.ts +274 -0
- package/src/features/taa-resolve.ts +244 -0
- package/src/features/targets.ts +83 -0
- package/src/features/types.ts +291 -0
- package/src/frame-chain.ts +21 -0
- package/src/fullscreen-post-process-pass.ts +406 -0
- package/src/glyph-text-layout-system.ts +447 -0
- package/src/gpu-driven/batch-topology.ts +423 -0
- package/src/gpu-driven/production-raster.ts +1705 -0
- package/src/gpu-driven/view-gpu.ts +849 -0
- package/src/gpu-driven/view-reference.ts +110 -0
- package/src/gpu-resource-store.ts +1921 -0
- package/src/gpu-resource.ts +159 -0
- package/src/gpu-scene-schema.ts +224 -0
- package/src/gpu-scene.ts +855 -0
- package/src/gpu-stage.ts +9 -0
- package/src/gpu-texture-usage.ts +12 -0
- package/src/gpu-usage.ts +14 -0
- package/src/hdrp-buffers.ts +689 -0
- package/src/hdrp-cluster-membership.ts +70 -0
- package/src/hdrp-pipeline.ts +525 -0
- package/src/ibl/IblPipelineCache.ts +1246 -0
- package/src/ibl/cubemap-projection.ts +60 -0
- package/src/ibl/face-uniforms.ts +150 -0
- package/src/ibl/skylight-bind-group.ts +513 -0
- package/src/index.ts +271 -0
- package/src/instance-buffer-cache.ts +123 -0
- package/src/internal.ts +88 -0
- package/src/lifecycle.ts +123 -0
- package/src/light-buffer-layout.ts +346 -0
- package/src/materials.ts +236 -0
- package/src/mesh-material-bindings.ts +104 -0
- package/src/mesh-update-errors.ts +113 -0
- package/src/mipmap-generator.ts +244 -0
- package/src/param-schema-projection-census.ts +73 -0
- package/src/pbr-pipeline.ts +749 -0
- package/src/persistent-render-scene.ts +1752 -0
- package/src/pipeline/index.ts +40 -0
- package/src/pipeline-builder.ts +386 -0
- package/src/pipeline-errors.ts +172 -0
- package/src/pipeline-spec.ts +1768 -0
- package/src/plugin.ts +137 -0
- package/src/post-process-errors.ts +304 -0
- package/src/prepare/__tests__/schema-readers.unit.test.ts +16 -0
- package/src/prepare/index.ts +8 -0
- package/src/prepare/prepared-graphics-resolver.ts +455 -0
- package/src/prepare/schema-readers.ts +20 -0
- package/src/record/__tests__/environment-record.test.ts +35 -0
- package/src/record/__tests__/frame-targets.unit.test.ts +54 -0
- package/src/record/__tests__/material-bg-cache.unit.test.ts +41 -0
- package/src/record/__tests__/material-slot-plan.unit.test.ts +76 -0
- package/src/record/__tests__/membership-timing.unit.test.ts +524 -0
- package/src/record/__tests__/render-submission.integration.test.ts +76 -0
- package/src/record/__tests__/render-submission.perf.test.ts +141 -0
- package/src/record/__tests__/shadow-submit-mode.unit.test.ts +88 -0
- package/src/record/__tests__/video-texture-view.unit.test.ts +90 -0
- package/src/record/__tests__/view-ubo-layout.unit.test.ts +101 -0
- package/src/record/frame-lighting.ts +1183 -0
- package/src/record/frame-observation.ts +122 -0
- package/src/record/frame-snapshot.ts +515 -0
- package/src/record/frame-targets.ts +372 -0
- package/src/record/frame.ts +1874 -0
- package/src/record/helpers.ts +289 -0
- package/src/record/index.ts +15 -0
- package/src/record/main-pass-geometry.ts +1014 -0
- package/src/record/main-pass-material.ts +716 -0
- package/src/record/main-pass-skin.ts +51 -0
- package/src/record/main-pass-sprite-draws.ts +1056 -0
- package/src/record/main-pass-sprite.ts +166 -0
- package/src/record/main-pass.ts +588 -0
- package/src/record/material-payload.ts +292 -0
- package/src/record/material-slot-plan.ts +68 -0
- package/src/record/membership-timing.ts +1012 -0
- package/src/record/mesh-ssbo.ts +406 -0
- package/src/record/shadow-caster-uniform.ts +37 -0
- package/src/record/shadow-pass.ts +2387 -0
- package/src/record/shadow-submit-mode.ts +277 -0
- package/src/record/skybox-post-pass.ts +594 -0
- package/src/record/typed-frame-graph.ts +499 -0
- package/src/record/view-ubo.ts +206 -0
- package/src/render-data.ts +385 -0
- package/src/render-dispatch-membership.ts +155 -0
- package/src/render-graph-primitives.ts +1586 -0
- package/src/render-pipeline-context.ts +332 -0
- package/src/render-pipeline-target.ts +96 -0
- package/src/render-pipeline.ts +343 -0
- package/src/render-scene-projection.ts +1738 -0
- package/src/render-system-extract.ts +5203 -0
- package/src/render-system-fold.ts +531 -0
- package/src/render-system.ts +3258 -0
- package/src/renderer/asset-service.ts +32 -0
- package/src/renderer/backend-selection.ts +121 -0
- package/src/renderer/environment-classify.ts +30 -0
- package/src/renderer/environment-error.ts +19 -0
- package/src/renderer/material/assembly.ts +53 -0
- package/src/renderer/material/pipeline-projection.ts +140 -0
- package/src/renderer/renderer-factory.ts +9062 -0
- package/src/renderer.ts +940 -0
- package/src/scene-instances/post-spawn-resolve-joints.ts +168 -0
- package/src/scene-utils/collect-subtree.ts +40 -0
- package/src/shadow-atlas.ts +244 -0
- package/src/ssao-buffers.ts +175 -0
- package/src/ssao-config.ts +61 -0
- package/src/ssao-data.ts +106 -0
- package/src/surface-format.ts +37 -0
- package/src/systems/active-camera.ts +116 -0
- package/src/systems/pass-selector.ts +49 -0
- package/src/systems/skin-palette-allocator.ts +294 -0
- package/src/systems/transparent-sort-config.ts +211 -0
- package/src/taa-history-store.ts +429 -0
- package/src/temporal-coverage.ts +106 -0
- package/src/temporal-frame-transaction.ts +301 -0
- package/src/temporal-inspection.ts +194 -0
- package/src/temporal-view.ts +174 -0
- package/src/tilemap/resolve-tileset-runtime.ts +72 -0
- package/src/tilemap-chunk-extract-system.ts +1307 -0
- package/src/typed-render-graph-primitives.ts +530 -0
- package/src/typed-shadow-passes.ts +195 -0
- package/src/urp-pipeline.ts +340 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type Result, RhiError } from '@forgeax/engine-rhi';
|
|
2
|
+
export type MipmapDevice = {
|
|
3
|
+
createSampler(desc?: any): Result<any, any>;
|
|
4
|
+
createBindGroupLayout(desc: any): Result<any, any>;
|
|
5
|
+
createPipelineLayout(desc: any): Result<any, any>;
|
|
6
|
+
createRenderPipeline(desc: any): Result<any, any>;
|
|
7
|
+
};
|
|
8
|
+
export type MipmapShaderModuleFactory = (device: MipmapDevice, desc: {
|
|
9
|
+
code: string;
|
|
10
|
+
label?: string;
|
|
11
|
+
}) => Promise<Result<unknown, RhiError>>;
|
|
12
|
+
export declare function numMipLevels(size: {
|
|
13
|
+
width: number;
|
|
14
|
+
height: number;
|
|
15
|
+
}): number;
|
|
16
|
+
export declare function mipmapCacheSize(device: MipmapDevice): number;
|
|
17
|
+
export declare function getOrCreateMipmapPipeline(device: MipmapDevice, format: GPUTextureFormat, asyncCreateShaderModule: MipmapShaderModuleFactory): Promise<Result<any, unknown>>;
|
|
18
|
+
export type MipmapBlitDevice = MipmapDevice & {
|
|
19
|
+
createTexture(desc: any): Result<any, any>;
|
|
20
|
+
createBindGroup(desc: any): Result<any, any>;
|
|
21
|
+
createTextureView(texture: any, desc: any): Result<any, any>;
|
|
22
|
+
createCommandEncoder(desc?: any): Result<any, any>;
|
|
23
|
+
readonly queue: {
|
|
24
|
+
submit(buffers: ReadonlyArray<unknown>): Result<void, unknown>;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export declare function generateMipmaps(device: MipmapBlitDevice, texture: any, descriptor: {
|
|
28
|
+
readonly format: GPUTextureFormat;
|
|
29
|
+
readonly width: number;
|
|
30
|
+
readonly height: number;
|
|
31
|
+
readonly levels?: number;
|
|
32
|
+
}, asyncCreateShaderModule: MipmapShaderModuleFactory): Promise<Result<void, unknown>>;
|
|
33
|
+
export declare function blitMipmapsSync(device: MipmapBlitDevice, texture: any, descriptor: {
|
|
34
|
+
readonly format: GPUTextureFormat;
|
|
35
|
+
readonly width: number;
|
|
36
|
+
readonly height: number;
|
|
37
|
+
readonly levels?: number;
|
|
38
|
+
}): Result<void, RhiError>;
|
|
39
|
+
//# sourceMappingURL=mipmap-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mipmap-generator.d.ts","sourceRoot":"","sources":["../src/mipmap-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAErE,MAAM,MAAM,YAAY,GAAG;IAEzB,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAE5C,qBAAqB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEnD,oBAAoB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAElD,oBAAoB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;CACnD,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,CACtC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KACnC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AA6BxC,wBAAgB,YAAY,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAG5E;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAE5D;AAED,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,gBAAgB,EACxB,uBAAuB,EAAE,yBAAyB,GAEjD,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAoB/B;AAqCD,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG;IAE5C,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAE3C,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAE7C,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAE7D,oBAAoB,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE;QAAE,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CACpF,CAAC;AAyDF,wBAAsB,eAAe,CACnC,MAAM,EAAE,gBAAgB,EAExB,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE;IACV,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,EACD,uBAAuB,EAAE,yBAAyB,GACjD,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAahC;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,gBAAgB,EAExB,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE;IACV,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,GACA,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAwBxB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { DerivedMaterialInterface, EngineMetrics, ParamSchemaDeriveObservationKind, ParamSchemaDeriveObserver, ParamSchemaEntry } from '@forgeax/engine-types';
|
|
2
|
+
export type ParamSchemaProjectionCensusSite = 'entity-extract' | 'submesh' | 'prepared-material' | 'record-payload' | 'pipeline-bgl';
|
|
3
|
+
export type ParamSchemaProjectionCensusKind = ParamSchemaDeriveObservationKind | 'registered-projection-read' | 'empty-schema-legacy-inference';
|
|
4
|
+
export interface ParamSchemaProjectionCensus extends ParamSchemaDeriveObserver {
|
|
5
|
+
readonly record: (kind: ParamSchemaProjectionCensusKind, site: ParamSchemaProjectionCensusSite) => void;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Create the renderer-scoped, debug-only ParamSchema compatibility observer.
|
|
9
|
+
*
|
|
10
|
+
* The observer writes only to the existing per-Renderer EngineMetrics map.
|
|
11
|
+
* When `enabled` is false, both `observe` and `record` are no-ops; callers
|
|
12
|
+
* continue through the original derive/projection path without a new cache or
|
|
13
|
+
* content hash. Counter names are intentionally stable so a browser probe can
|
|
14
|
+
* subtract before/after snapshots without retaining renderer objects.
|
|
15
|
+
*/
|
|
16
|
+
export declare function createParamSchemaProjectionCensus(metrics: EngineMetrics, enabled: boolean): ParamSchemaProjectionCensus;
|
|
17
|
+
export declare function deriveParamSchemaForCensus(schema: readonly ParamSchemaEntry[], census: ParamSchemaProjectionCensus | undefined, site: ParamSchemaProjectionCensusSite): DerivedMaterialInterface;
|
|
18
|
+
//# sourceMappingURL=param-schema-projection-census.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"param-schema-projection-census.d.ts","sourceRoot":"","sources":["../src/param-schema-projection-census.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,aAAa,EACb,gCAAgC,EAChC,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAG/B,MAAM,MAAM,+BAA+B,GACvC,gBAAgB,GAChB,SAAS,GACT,mBAAmB,GACnB,gBAAgB,GAChB,cAAc,CAAC;AAEnB,MAAM,MAAM,+BAA+B,GACvC,gCAAgC,GAChC,4BAA4B,GAC5B,+BAA+B,CAAC;AAEpC,MAAM,WAAW,2BAA4B,SAAQ,yBAAyB;IAC5E,QAAQ,CAAC,MAAM,EAAE,CACf,IAAI,EAAE,+BAA+B,EACrC,IAAI,EAAE,+BAA+B,KAClC,IAAI,CAAC;CACX;AAED;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,OAAO,GACf,2BAA2B,CAW7B;AAeD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,gBAAgB,EAAE,EACnC,MAAM,EAAE,2BAA2B,GAAG,SAAS,EAC/C,IAAI,EAAE,+BAA+B,GACpC,wBAAwB,CAE1B"}
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
import type { BindGroup, BindGroupEntry, BindGroupLayout, Buffer, PipelineLayout, Result, RhiError, Sampler, TextureView } from '@forgeax/engine-rhi';
|
|
2
|
+
import { type DerivedMaterialInterface } from '@forgeax/engine-types';
|
|
3
|
+
export interface PbrPipelineDevice {
|
|
4
|
+
createBindGroupLayout(desc: {
|
|
5
|
+
label: string | undefined;
|
|
6
|
+
entries: readonly GPUBindGroupLayoutEntry[];
|
|
7
|
+
}): Result<BindGroupLayout, RhiError>;
|
|
8
|
+
createPipelineLayout(desc: {
|
|
9
|
+
label?: string;
|
|
10
|
+
bindGroupLayouts: readonly BindGroupLayout[];
|
|
11
|
+
}): Result<PipelineLayout, RhiError>;
|
|
12
|
+
}
|
|
13
|
+
export interface PbrPipelineLayoutBundle {
|
|
14
|
+
/** Pipeline layout passed to `createRenderPipeline({ layout })`. */
|
|
15
|
+
readonly pipelineLayout: PipelineLayout;
|
|
16
|
+
/** view BindGroupLayout (slot 0). */
|
|
17
|
+
readonly viewBgl: BindGroupLayout;
|
|
18
|
+
/**
|
|
19
|
+
* PBR material BindGroupLayout (slot 1) -- derived user-region entries plus
|
|
20
|
+
* Skylight and lightmap injection.
|
|
21
|
+
*/
|
|
22
|
+
readonly materialBgl: BindGroupLayout;
|
|
23
|
+
/** Per-entity mesh BindGroupLayout (slot 2). */
|
|
24
|
+
readonly meshArrayBgl: BindGroupLayout;
|
|
25
|
+
/** Per-instance storage BindGroupLayout (slot 3). */
|
|
26
|
+
readonly instancesBgl: BindGroupLayout;
|
|
27
|
+
/**
|
|
28
|
+
* Same 4 layouts in slot order. Useful for assertion sites that check the
|
|
29
|
+
* pipeline-layout `bindGroupLayouts` array shape (t57 (a) + (d)).
|
|
30
|
+
*/
|
|
31
|
+
readonly bindGroupLayouts: readonly [
|
|
32
|
+
BindGroupLayout,
|
|
33
|
+
BindGroupLayout,
|
|
34
|
+
BindGroupLayout,
|
|
35
|
+
BindGroupLayout
|
|
36
|
+
];
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The built-in standard-PBR material paramSchema's texture/user-region shape,
|
|
40
|
+
* used as the fallback when the material BGL is built without a registry
|
|
41
|
+
* (the caps-driven `buildPbrPipelineLayouts` seam). Declares the 3 standard
|
|
42
|
+
* user-region textures + a numeric UBO run; `derive()` collapses the numerics
|
|
43
|
+
* into binding 0 and emits sampler/texture pairs at 1..6 — byte-equivalent to
|
|
44
|
+
* the legacy fixed base-7. The shared PBR parameter contract comes from the
|
|
45
|
+
* shader package; this module only derives the GPU layout.
|
|
46
|
+
*/
|
|
47
|
+
/**
|
|
48
|
+
* Build the PBR material BGL **user-region** from a paramSchema via the
|
|
49
|
+
* `derive()` SSOT (D-1). The user-region is binding 0 (the run-merged material
|
|
50
|
+
* UBO) followed by one sampler/texture pair per declared texture. Engine
|
|
51
|
+
* injection (IBL + lightmap) is appended AFTER this region by the caller via
|
|
52
|
+
* `appendInjection`, with start binding = `userRegion.length` — so a 4-texture
|
|
53
|
+
* custom schema (e.g. parallax + heightTexture) shifts the injection region by
|
|
54
|
+
* one sampler/texture pair automatically.
|
|
55
|
+
*
|
|
56
|
+
* The built-in `default-standard-pbr` paramSchema declares exactly 4 textures,
|
|
57
|
+
* so this derives to binding 0 UBO + 4 pairs = 9 entries. Injection is appended
|
|
58
|
+
* after that derived region.
|
|
59
|
+
*
|
|
60
|
+
* One material-UBO convention is layered on top of the pure `derive()` output:
|
|
61
|
+
* binding 0 is patched to `{ type: 'uniform', hasDynamicOffset: true }` with
|
|
62
|
+
* `VERTEX | FRAGMENT` visibility. The material UBO is bound with a per-submesh
|
|
63
|
+
* dynamic offset (`render-system-record.ts setBindGroup(1, bg, [offset])`) and
|
|
64
|
+
* the vertex stage reads material params, so this is required for GPU
|
|
65
|
+
* validation. `derive()` stays FRAGMENT-only / no-dynamic-offset for its other
|
|
66
|
+
* consumers (it is the generic SSOT, not the material-UBO authority).
|
|
67
|
+
*
|
|
68
|
+
* @param paramSchema - the material shader's paramSchema (defaults to the
|
|
69
|
+
* built-in standard-PBR shape when omitted, for the caps-driven seam).
|
|
70
|
+
*/
|
|
71
|
+
export declare function buildPbrMaterialUserRegionEntries(derived?: DerivedMaterialInterface): GPUBindGroupLayoutEntry[];
|
|
72
|
+
export type InjectionKind = keyof typeof INJECTION_KIND_LENGTHS;
|
|
73
|
+
/**
|
|
74
|
+
* Append the engine-injection BGL entries for the given `kind` after the
|
|
75
|
+
* user-region BGL entries, with binding numbers starting at `bgl.length`.
|
|
76
|
+
*
|
|
77
|
+
* The function reads `bgl.length` (NOT a hardcoded constant) so any
|
|
78
|
+
* user-region size — derived from `derive(schema).userRegionBindingEnd` or
|
|
79
|
+
* computed manually — flows through to the injection start binding without
|
|
80
|
+
* a coupled edit.
|
|
81
|
+
*
|
|
82
|
+
* Returns ONLY the injected entries; the caller spreads them after `bgl`:
|
|
83
|
+
*
|
|
84
|
+
* ```ts
|
|
85
|
+
* const merged = [...userBgl, ...appendInjection(userBgl, 'ibl')];
|
|
86
|
+
* device.createBindGroupLayout({ entries: merged });
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
export declare function appendInjection(bgl: readonly GPUBindGroupLayoutEntry[], kind: InjectionKind): GPUBindGroupLayoutEntry[];
|
|
90
|
+
export declare const INJECTION_KIND_LENGTHS: {
|
|
91
|
+
shadow: number;
|
|
92
|
+
ibl: number;
|
|
93
|
+
lightmap: number;
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Caps shape consumed by the BGL factory functions for storage-buffer vs
|
|
97
|
+
* uniform-buffer branching. Mirrors the two fields the engine reads from
|
|
98
|
+
* `RhiCaps` (plan D-4 + D-5).
|
|
99
|
+
*/
|
|
100
|
+
export interface PbrCaps {
|
|
101
|
+
readonly storageBuffer: boolean;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* The view BGL entry list. binding 0 = view UBO (vertex + fragment);
|
|
105
|
+
* binding 1 = pointLights (storage or uniform, per caps);
|
|
106
|
+
* binding 2 = spotLights (storage or uniform, per caps);
|
|
107
|
+
* binding 3 = directional shadowMap atlas (texture_depth_2d, vertex+fragment).
|
|
108
|
+
* feat-20260613-csm-cascaded-shadow-maps: this is the CSM atlas — N
|
|
109
|
+
* cascades tiled into one 2D depth texture, sampled via per-cascade UV
|
|
110
|
+
* mapping in `lighting-directional.wgsl`. Single binding survives N=1..4
|
|
111
|
+
* (no array-layer form; cascades live in viewport offsets per the
|
|
112
|
+
* check-csm-unique-shadow-path grep gate).
|
|
113
|
+
* binding 4 = shadow comparison sampler (shared by directional + point);
|
|
114
|
+
* binding 5 = point shadow cube_array depth atlas (texture_depth_cube_array;
|
|
115
|
+
* fragment-only). feat-20260612-point-light-shadows-urp-hdrp Round-2 F-1.
|
|
116
|
+
* binding 6 = point shadow params UBO (`array<vec4<f32>, 4>`, 64 B;
|
|
117
|
+
* fragment-only). One lane per shadow-casting point light slot
|
|
118
|
+
* (shadowAtlasLayer in [0, 4)) carrying `(near, far, 1/(far-near), 0)`.
|
|
119
|
+
* binding 7 = shadowCasterCascade UBO (16 B; vertex + fragment). Per-pass
|
|
120
|
+
* cascade-index uniform consumed exclusively by `shadow_caster.wgsl` to
|
|
121
|
+
* pick `view.lightViewProj_X` for the cascade currently being rasterized
|
|
122
|
+
* (feat-20260613-csm-cascaded-shadow-maps M5 / w28). Forward PBR shaders
|
|
123
|
+
* declare the binding via `common.wgsl` but do not reference it; WebGPU
|
|
124
|
+
* still requires a populated entry on every view BG so the host writes a
|
|
125
|
+
* stable singleton buffer.
|
|
126
|
+
* binding 8 = spot shadow atlas (texture_depth_2d; fragment-only).
|
|
127
|
+
* feat-20260625-spot-light-shadow-mapping M3 / w14 (D-5). A single 2D depth
|
|
128
|
+
* texture holding up to 4 spot shadows in a 2x2 tile grid. ALWAYS-ON (no caps
|
|
129
|
+
* gate — `texture_depth_2d` is compat-safe everywhere), matching the
|
|
130
|
+
* unconditional `spotShadowMap` WGSL declaration in common.wgsl. Reuses the
|
|
131
|
+
* comparison sampler at binding 4 (no binding 9). Every view BG must populate
|
|
132
|
+
* binding 8 (real spotShadowDepth view when spot shadows run, else a 1x1
|
|
133
|
+
* fallback depth view cleared to fully-lit).
|
|
134
|
+
*
|
|
135
|
+
* Mirrors feat-20260519-light-casters M3 D-S1 layout +
|
|
136
|
+
* feat-20260520-directional-light-shadow-mapping M2 / w14 (D-1) shadow
|
|
137
|
+
* map binding +
|
|
138
|
+
* feat-20260612-point-light-shadows-urp-hdrp Round-2 F-1 BGL hookup
|
|
139
|
+
* (always-on bindings 5/6 paired with the unconditional `POINT_SHADOW_AVAILABLE`
|
|
140
|
+
* define registered in vite-plugin-shader) +
|
|
141
|
+
* feat-20260613-csm-cascaded-shadow-maps M5 / w28 (binding 7 cascade UBO).
|
|
142
|
+
* Isolated here so M4 round-4 tests can recreate the layout.
|
|
143
|
+
*
|
|
144
|
+
* feat-20260526-pbr-uniform-fallback-no-storage-buffer M3 / w9:
|
|
145
|
+
* caps.storageBuffer===false switches bindings 1+2 from
|
|
146
|
+
* 'read-only-storage' to 'uniform'.
|
|
147
|
+
*/
|
|
148
|
+
export declare function buildPbrViewBglEntries(caps: PbrCaps): GPUBindGroupLayoutEntry[];
|
|
149
|
+
/**
|
|
150
|
+
* Build the PBR pipeline layout under D-5 round-4: 4 slots `[view,
|
|
151
|
+
* material, mesh-array, instances]`; the material BGL is derived from the
|
|
152
|
+
* standard material schema and engine injection chain.
|
|
153
|
+
*
|
|
154
|
+
* `caps.storageBuffer===false` switches every storage-buffer BGL entry
|
|
155
|
+
* (view bindings 1+2, mesh-array, instances) to `uniform`.
|
|
156
|
+
*
|
|
157
|
+
* Throws on any `createBindGroupLayout` / `createPipelineLayout` Result
|
|
158
|
+
* failure -- the engine bootstrap path (createRenderer) wraps the call in
|
|
159
|
+
* `runShimSyncStep` to fold the throw into the structured error pipe.
|
|
160
|
+
*/
|
|
161
|
+
export declare function buildPbrPipelineLayouts(device: PbrPipelineDevice, caps: PbrCaps): PbrPipelineLayoutBundle;
|
|
162
|
+
/**
|
|
163
|
+
* SSOT for the skin material shader's registered identifier. The shader
|
|
164
|
+
* package registers under this string (see register-default-standard-pbr-skin.ts
|
|
165
|
+
* `RESERVED_ID`); runtime dispatch sites import this constant rather than
|
|
166
|
+
* carrying a literal so a future rename is a one-line change. AC-09 grep
|
|
167
|
+
* gate: the body of `selectPipelineLayoutForVariant` MUST NOT contain a
|
|
168
|
+
* literal `'forgeax::pbr-skin'` -- callers map this constant to
|
|
169
|
+
* `LayoutKind = 'pbr-skin'` upstream.
|
|
170
|
+
*/
|
|
171
|
+
export declare const SKIN_MATERIAL_SHADER_ID: "forgeax::pbr-skin";
|
|
172
|
+
/** Returns true for the engine-shipped standard-PBR material shader family. */
|
|
173
|
+
export declare function isStandardPbrMaterialShader(shaderId: string | undefined): boolean;
|
|
174
|
+
/**
|
|
175
|
+
* Build the PBR skin pipeline layout (4 slots `[view, material,
|
|
176
|
+
* mesh-array(3-entry), instances]`). View / material / instances BGLs are
|
|
177
|
+
* shared with the standard-PBR layout (passed in via `pbr` bundle); the only
|
|
178
|
+
* new BGL is the 3-entry mesh-array slot for `meshes` plus current and
|
|
179
|
+
* previous palettes.
|
|
180
|
+
*
|
|
181
|
+
* Throws on any `createBindGroupLayout` / `createPipelineLayout` Result
|
|
182
|
+
* failure -- the engine bootstrap path wraps the call in `runShimSyncStep`
|
|
183
|
+
* to fold the throw into the structured error pipe.
|
|
184
|
+
*/
|
|
185
|
+
export declare function buildPbrSkinLayouts(device: PbrPipelineDevice, caps: PbrCaps, pbr: PbrPipelineLayoutBundle): PbrPipelineLayoutBundle;
|
|
186
|
+
/**
|
|
187
|
+
* Build a stand-alone 7-entry unlit material BGL. Round-4 D-5 keeps unlit
|
|
188
|
+
* material BG isolated from Skylight binding 7..13 -- unlit demos do not
|
|
189
|
+
* pay for IBL state. The unlit pipeline still binds material at slot 1,
|
|
190
|
+
* just with a 7-entry layout.
|
|
191
|
+
*
|
|
192
|
+
* Note: at the moment the runtime still routes both unlit + standard
|
|
193
|
+
* through a single 14-entry pipeline layout; the unlit material BG
|
|
194
|
+
* carries fallback identity resources at binding 7..13. This factory is
|
|
195
|
+
* exported as a future-proof seam for the moment when unlit demos own
|
|
196
|
+
* their own pipeline layout (t57 (e) test pins the contract today so the
|
|
197
|
+
* eventual split has a green target).
|
|
198
|
+
*/
|
|
199
|
+
export declare function buildUnlitMaterialBgl(device: PbrPipelineDevice): BindGroupLayout;
|
|
200
|
+
/**
|
|
201
|
+
* Inputs for `buildUnlitMaterialBindGroupEntries`. The fields mirror the
|
|
202
|
+
* record-stage's local variables; isolating the assembler here lets t58
|
|
203
|
+
* (e) test exercise the contract without recreating the entire record
|
|
204
|
+
* stage.
|
|
205
|
+
*/
|
|
206
|
+
export interface UnlitMaterialBindGroupEntryInputs {
|
|
207
|
+
readonly materialUniform: Buffer;
|
|
208
|
+
readonly materialOffset: number;
|
|
209
|
+
readonly materialSize: number;
|
|
210
|
+
readonly defaultSampler: Sampler;
|
|
211
|
+
readonly baseColorView: TextureView;
|
|
212
|
+
readonly defaultWhiteView: TextureView;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Build the 7 BindGroupEntry values for the unlit material BG (binding
|
|
216
|
+
* 0..6). Output flows into `device.createBindGroup({ layout:
|
|
217
|
+
* unlitMaterialBgl, entries })`.
|
|
218
|
+
*/
|
|
219
|
+
export declare function buildUnlitMaterialBindGroupEntries(inputs: UnlitMaterialBindGroupEntryInputs): BindGroupEntry[];
|
|
220
|
+
export type { BindGroup };
|
|
221
|
+
/**
|
|
222
|
+
* variantSet string fired into the sprite-pass pipeline cache when the
|
|
223
|
+
* entity carries `SpriteInstances` (plan-strategy D-1 interleaved single
|
|
224
|
+
* buffer + D-4 axis on `sprite.wgsl`).
|
|
225
|
+
*
|
|
226
|
+
* bug-20260708 M2 (c): aligned with the canonical all-true variant key
|
|
227
|
+
* `''` — sprite's manifest emits `{PIR:true, SBA:true}` under the empty-
|
|
228
|
+
* string key (all variant axes true → canonical). The runtime's
|
|
229
|
+
* `getMaterialShaderPipeline` variant-substitution branch
|
|
230
|
+
* (`createRenderer.ts:1730`) resolves this via
|
|
231
|
+
* `findVariantByKey(msEntry, '')` returning the 5653B PIR=true variant.
|
|
232
|
+
* Combined with the `cacheKeyOf` sentinel `~` (bug-20260708 M2 (b)) this
|
|
233
|
+
* value produces a cache key distinct from the `variantSet=undefined`
|
|
234
|
+
* character/default path (which now resolves to the PIR=false 5575B boot-
|
|
235
|
+
* registered variant). Sprite pipeline layout routing is anchored via
|
|
236
|
+
* `LayoutKind='sprite-urp'` so `variantSet=''` here does NOT trigger the
|
|
237
|
+
* HDRP-layout branch of `selectPipelineLayoutForVariant` (research R-12
|
|
238
|
+
* flow; plan-strategy §4 R-1' guard).
|
|
239
|
+
*/
|
|
240
|
+
export declare const SPRITE_PASS_PER_INSTANCE_REGION_VARIANT_SET = "";
|
|
241
|
+
/**
|
|
242
|
+
* Pick the sprite-pass variant set for the current sprite entry. Returns
|
|
243
|
+
* `''` (canonical all-true variant key, per bug-20260708 M2 (c)) when
|
|
244
|
+
* `hasSpriteInstances` is true (the extract stage has populated
|
|
245
|
+
* `RenderableSnapshot.spriteInstances`), otherwise `undefined` so the
|
|
246
|
+
* existing sprite path stays byte-identical for non-SpriteInstances callers
|
|
247
|
+
* (plan-strategy D-4 reverse-falsifier).
|
|
248
|
+
*
|
|
249
|
+
* @param hasSpriteInstances — true when the renderable carries a
|
|
250
|
+
* `SpriteInstancesSnapshot` (extracted by render-system-extract M3 w10).
|
|
251
|
+
*/
|
|
252
|
+
export declare function selectSpritePassVariantSet(hasSpriteInstances: boolean): string | undefined;
|
|
253
|
+
//# sourceMappingURL=pbr-pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbr-pipeline.d.ts","sourceRoot":"","sources":["../src/pbr-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import type { EntityHandle, World } from '@forgeax/engine-ecs';
|
|
2
|
+
import type { RhiDevice, RhiError } from '@forgeax/engine-rhi';
|
|
3
|
+
import { type BatchTopologyInspection, type SubmissionPlan } from './gpu-driven/batch-topology';
|
|
4
|
+
import { GpuScene, type GpuSceneInspection } from './gpu-scene';
|
|
5
|
+
import type { RenderSceneSubmissionDelta } from './render-scene-projection';
|
|
6
|
+
import { RenderSceneProjection } from './render-scene-projection';
|
|
7
|
+
import type { DispatchEntry, ExtractedFrame, FogSelection, FogSnapshot, RenderableSnapshot } from './render-system-extract';
|
|
8
|
+
export type RenderSceneResyncReason = 'attach' | 'asset-catalog-changed' | 'shared-ref-changed' | 'journal-overflow' | 'unsupported-change' | 'non-rigid-lane' | 'explicit-invalidate';
|
|
9
|
+
export type PersistentFogFailureCode = 'fog-owner-conflict' | 'fog-parameters-invalid';
|
|
10
|
+
export interface PersistentFogInspection {
|
|
11
|
+
readonly enabled: boolean;
|
|
12
|
+
readonly resourceOwner: number | undefined;
|
|
13
|
+
readonly entity: number | undefined;
|
|
14
|
+
readonly revision: number | undefined;
|
|
15
|
+
readonly reactive: boolean;
|
|
16
|
+
readonly failure: PersistentFogFailureCode | undefined;
|
|
17
|
+
}
|
|
18
|
+
export interface PersistentFogFailure {
|
|
19
|
+
readonly code: PersistentFogFailureCode;
|
|
20
|
+
readonly resourceOwner: number;
|
|
21
|
+
}
|
|
22
|
+
export interface PersistentRenderSceneInspection {
|
|
23
|
+
readonly worldEntitiesScanned: number;
|
|
24
|
+
readonly fullRebuilds: number;
|
|
25
|
+
readonly noChangeFrames: number;
|
|
26
|
+
readonly deltaFrames: number;
|
|
27
|
+
readonly transformUpdates: number;
|
|
28
|
+
readonly materialUpdates: number;
|
|
29
|
+
readonly instanceUpdates: number;
|
|
30
|
+
readonly cameraUpdates: number;
|
|
31
|
+
readonly resourceUpdates: number;
|
|
32
|
+
/** Number of journal entities admitted to the local topology reconciler. */
|
|
33
|
+
readonly topologyEntitiesReconciled: number;
|
|
34
|
+
/** Number of identity-addressed production render extractions requested. */
|
|
35
|
+
readonly singleEntityExtractions: number;
|
|
36
|
+
readonly removals: number;
|
|
37
|
+
readonly lastResyncReason: RenderSceneResyncReason | undefined;
|
|
38
|
+
/** @internal M0 attribution for a rebuild that otherwise only says unsupported-change. */
|
|
39
|
+
readonly lastResyncDetail: string | undefined;
|
|
40
|
+
readonly cursor: number | undefined;
|
|
41
|
+
readonly projectionRecords: number;
|
|
42
|
+
readonly spatialIndex: import('./render-scene-projection').SpatialIndexInspection | undefined;
|
|
43
|
+
readonly topology: BatchTopologyInspection;
|
|
44
|
+
readonly gpu: {
|
|
45
|
+
readonly status: 'inactive';
|
|
46
|
+
} | {
|
|
47
|
+
readonly status: 'unsupported';
|
|
48
|
+
readonly reason: 'storage-buffer-unavailable';
|
|
49
|
+
} | ({
|
|
50
|
+
readonly status: 'resident';
|
|
51
|
+
} & GpuSceneInspection) | {
|
|
52
|
+
readonly status: 'rebuild-pending';
|
|
53
|
+
} | {
|
|
54
|
+
readonly status: 'error';
|
|
55
|
+
};
|
|
56
|
+
readonly fog: PersistentFogInspection;
|
|
57
|
+
}
|
|
58
|
+
export interface PersistentRenderSceneOptions {
|
|
59
|
+
readonly getDevice?: (() => RhiDevice) | undefined;
|
|
60
|
+
readonly onGpuError?: ((error: RhiError) => void) | undefined;
|
|
61
|
+
/** @internal Collect complete per-candidate CSM decisions for debug capture. */
|
|
62
|
+
readonly collectShadowDebugCandidates?: (() => boolean) | undefined;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Complete facts produced by the render-domain admission owner for one ECS
|
|
66
|
+
* entity. Dispatch entries use the local candidate index from that extraction;
|
|
67
|
+
* PersistentRenderScene rebases them onto its slot-owned candidate domain.
|
|
68
|
+
*/
|
|
69
|
+
export interface PersistentRenderableExtraction {
|
|
70
|
+
readonly snapshot: RenderableSnapshot;
|
|
71
|
+
readonly candidateDispatch: readonly DispatchEntry[];
|
|
72
|
+
}
|
|
73
|
+
export interface PersistentGpuDrivenState {
|
|
74
|
+
readonly scene: GpuScene;
|
|
75
|
+
readonly plan: SubmissionPlan;
|
|
76
|
+
readonly slots: readonly import('./render-scene-projection').RenderSceneProjectionSlot[];
|
|
77
|
+
/**
|
|
78
|
+
* The same projection that owns `slots` and the spatial index. Visibility
|
|
79
|
+
* must query this owner; a revision number copied into GpuScene is only
|
|
80
|
+
* diagnostic metadata and cannot select a candidate domain by itself.
|
|
81
|
+
*/
|
|
82
|
+
/** Present for the production owner; optional keeps older test doubles honest. */
|
|
83
|
+
readonly projection?: RenderSceneProjection;
|
|
84
|
+
}
|
|
85
|
+
/** Persistent single-World rigid scene used by the renderer's ordinary path. */
|
|
86
|
+
export declare class PersistentRenderScene {
|
|
87
|
+
private readonly options;
|
|
88
|
+
private readonly entries;
|
|
89
|
+
private readonly worldIds;
|
|
90
|
+
private readonly worldsById;
|
|
91
|
+
private nextWorldId;
|
|
92
|
+
private fullRebuilds;
|
|
93
|
+
private worldEntitiesScanned;
|
|
94
|
+
private noChangeFrames;
|
|
95
|
+
private deltaFrames;
|
|
96
|
+
private transformUpdates;
|
|
97
|
+
private materialUpdates;
|
|
98
|
+
private instanceUpdates;
|
|
99
|
+
private cameraUpdates;
|
|
100
|
+
private resourceUpdates;
|
|
101
|
+
private topologyEntitiesReconciled;
|
|
102
|
+
private singleEntityExtractions;
|
|
103
|
+
private removals;
|
|
104
|
+
private lastResyncReason;
|
|
105
|
+
private lastResyncDetail;
|
|
106
|
+
private lastWorld;
|
|
107
|
+
private composition;
|
|
108
|
+
private gpuScene;
|
|
109
|
+
private gpuOwner;
|
|
110
|
+
private gpuDevice;
|
|
111
|
+
private gpuStatus;
|
|
112
|
+
private fogCandidate;
|
|
113
|
+
private fogLastKnownGood;
|
|
114
|
+
private fogFailure;
|
|
115
|
+
private fogFailureOwner;
|
|
116
|
+
private fogReactive;
|
|
117
|
+
constructor(options?: PersistentRenderSceneOptions);
|
|
118
|
+
readonly worldForRenderId: (worldId: number) => World | undefined;
|
|
119
|
+
extract(world: World, catalogEpoch: number, buildCandidateFrame: () => ExtractedFrame, refreshMaterial?: (snapshot: RenderableSnapshot, materialHandle: number) => RenderableSnapshot | undefined, refreshCameras?: (frame: ExtractedFrame) => ExtractedFrame, gpuDrivenCoverageKey?: string, refreshPostProcessParams?: (frame: ExtractedFrame) => ExtractedFrame, refreshLights?: (frame: ExtractedFrame) => ExtractedFrame, refreshRenderable?: (entity: EntityHandle, currentFrame: ExtractedFrame) => PersistentRenderableExtraction | undefined): ExtractedFrame;
|
|
120
|
+
extractComposition(worlds: readonly World[], owner: {
|
|
121
|
+
readonly cameraOwner: number;
|
|
122
|
+
readonly resourceOwner: number;
|
|
123
|
+
}, catalogEpoch: number, buildCandidateFrame: () => ExtractedFrame, refreshRenderable?: (world: World, worldId: number, entity: EntityHandle, currentFrame: ExtractedFrame) => PersistentRenderableExtraction | undefined): ExtractedFrame;
|
|
124
|
+
invalidate(world?: World): void;
|
|
125
|
+
setGpuDrivenCoverage(world: World, key: string, ownsAll: boolean): void;
|
|
126
|
+
setCompositionGpuDrivenCoverage(key: string, ownsAll: boolean): void;
|
|
127
|
+
detach(world: World): void;
|
|
128
|
+
/** Drop only device-owned tables; the CPU projection remains the recovery authority. */
|
|
129
|
+
resetGpuForRecover(): void;
|
|
130
|
+
dispose(): void;
|
|
131
|
+
inspect(world?: World | undefined): PersistentRenderSceneInspection;
|
|
132
|
+
/** Stage a resource-owner Fog candidate; publication waits for submit. */
|
|
133
|
+
stageFogCandidate(candidate: FogSelection): void;
|
|
134
|
+
/** Return the accepted Fog payload for failed-candidate frame reuse. */
|
|
135
|
+
fogSnapshot(): FogSnapshot | undefined;
|
|
136
|
+
/** Retain the previous accepted Fog when extraction or validation fails. */
|
|
137
|
+
stageFogFailure(failure: PersistentFogFailure): void;
|
|
138
|
+
/** Drop an unsubmitted candidate without mutating the accepted snapshot. */
|
|
139
|
+
discardFogCandidate(): void;
|
|
140
|
+
/** Commit the staged Fog candidate at the existing successful-submit seam. */
|
|
141
|
+
stageFogSubmission(): void;
|
|
142
|
+
private inspectFog;
|
|
143
|
+
gpuDrivenState(world?: World | undefined): PersistentGpuDrivenState | undefined;
|
|
144
|
+
compositionGpuDrivenState(): PersistentGpuDrivenState | undefined;
|
|
145
|
+
temporalProjection(worlds: readonly World[]): RenderSceneProjection | undefined;
|
|
146
|
+
stageTemporalSubmission(delta: RenderSceneSubmissionDelta): void;
|
|
147
|
+
private inspectGpu;
|
|
148
|
+
private rebuild;
|
|
149
|
+
private rebuildComposition;
|
|
150
|
+
private syncGpu;
|
|
151
|
+
private syncGpuOwner;
|
|
152
|
+
private acquireGpuScene;
|
|
153
|
+
private failGpu;
|
|
154
|
+
private cameraEntities;
|
|
155
|
+
private attachWorld;
|
|
156
|
+
private remapWorldIds;
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=persistent-render-scene.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistent-render-scene.d.ts","sourceRoot":"","sources":["../src/persistent-render-scene.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { VertexLayoutProjection } from '@forgeax/engine-geometry';
|
|
2
|
+
import { type Result } from '@forgeax/engine-types';
|
|
3
|
+
import { PipelineError } from '../pipeline-errors';
|
|
4
|
+
export declare const pipelineStages: readonly ["extract", "prepare", "record"];
|
|
5
|
+
export type PipelineStage = (typeof pipelineStages)[number];
|
|
6
|
+
/**
|
|
7
|
+
* Compose the renderer-owned vertex-color axis from geometry projection facts.
|
|
8
|
+
* Authored material definitions never participate in this decision.
|
|
9
|
+
*/
|
|
10
|
+
export declare function variantSetFromVertexLayoutProjection(projection: VertexLayoutProjection | undefined, variantSet: string | undefined): Result<string | undefined, PipelineError>;
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pipeline/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,eAAO,MAAM,cAAc,2CAA4C,CAAC;AACxE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D;;;GAGG;AACH,wBAAgB,oCAAoC,CAClD,UAAU,EAAE,sBAAsB,GAAG,SAAS,EAC9C,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,aAAa,CAAC,CAyB3C"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { type PipelineLayout, type RenderPipeline, type Result, type RhiDevice, RhiError, type ShaderModule } from '@forgeax/engine-rhi';
|
|
2
|
+
import type { MaterialShaderEntry } from '@forgeax/engine-shader';
|
|
3
|
+
import { type MaterialRenderState, type PassKind, type PrimitiveTopology } from '@forgeax/engine-types';
|
|
4
|
+
/**
|
|
5
|
+
* feat-20260604-mesh-topology-debug-draw M3 / w8: per-mesh geometry facts that
|
|
6
|
+
* are baked into the immutable GPURenderPipeline `primitive` block. Distinct
|
|
7
|
+
* from {@link MaterialRenderState} (material-authored state); these are
|
|
8
|
+
* geometry properties of the mesh being drawn (requirements D-2 / D-A3).
|
|
9
|
+
*/
|
|
10
|
+
export interface PipelineGeometry {
|
|
11
|
+
/** Primitive topology baked into `primitive.topology`. Defaults to 'triangle-list'. */
|
|
12
|
+
readonly topology?: PrimitiveTopology;
|
|
13
|
+
/**
|
|
14
|
+
* Index format for strip topologies (`line-strip` / `triangle-strip`), baked
|
|
15
|
+
* into `primitive.stripIndexFormat`. WebGPU spec: only valid for strip
|
|
16
|
+
* topologies; ignored (left undefined in the descriptor) for list topologies.
|
|
17
|
+
*/
|
|
18
|
+
readonly stripIndexFormat?: 'uint16' | 'uint32';
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Sync shader-module factory consumed by `buildPipelineForMaterialShader`.
|
|
22
|
+
* Mirrors `ShaderRegistryDevice.createShaderModule` (sync Result shape) so
|
|
23
|
+
* the same `makeShaderDeviceAdapter` in `createRenderer.ts` can satisfy
|
|
24
|
+
* both surfaces (charter P4 consistent abstraction). The adapter caches
|
|
25
|
+
* the underlying async `pack.createShaderModule` so subsequent sync calls
|
|
26
|
+
* return cached modules; first call typically returns
|
|
27
|
+
* `Result.err('rhi-not-available')` while the async build is in flight,
|
|
28
|
+
* letting the caller fall back to the existing `standardPipeline` for
|
|
29
|
+
* one frame and retry on the next (matches `render-system-record`'s
|
|
30
|
+
* 1-frame-warmup idiom).
|
|
31
|
+
*/
|
|
32
|
+
export interface PipelineBuilderShaderModuleFactory {
|
|
33
|
+
createShaderModule(desc: {
|
|
34
|
+
readonly code: string;
|
|
35
|
+
readonly label?: string | undefined;
|
|
36
|
+
}): Result<ShaderModule, RhiError>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Build context for `buildPipelineForMaterialShader`. Caller (createRenderer
|
|
40
|
+
* + render-system-record) computes this once per renderer and reuses across
|
|
41
|
+
* cache misses; the values mirror the existing PBR pipeline construction
|
|
42
|
+
* (createRenderer.ts ~line 2712 standardPipelineResult) so user shaders
|
|
43
|
+
* land on the same 4-BindGroupLayout chain (charter P4 + plan-strategy
|
|
44
|
+
* R-H).
|
|
45
|
+
*/
|
|
46
|
+
export interface PipelineBuilderContext {
|
|
47
|
+
/** RHI device that owns the pipeline allocation. */
|
|
48
|
+
readonly device: RhiDevice;
|
|
49
|
+
/**
|
|
50
|
+
* Sync shader-module factory (see {@link PipelineBuilderShaderModuleFactory}).
|
|
51
|
+
* In production the engine wires the same `makeShaderDeviceAdapter` it
|
|
52
|
+
* already uses for `ShaderRegistry.get(hash)`; tests pass a
|
|
53
|
+
* `vi.fn`-based stub.
|
|
54
|
+
*/
|
|
55
|
+
readonly shaderModuleFactory: PipelineBuilderShaderModuleFactory;
|
|
56
|
+
/**
|
|
57
|
+
* Shared pipeline layout (4 BindGroupLayouts: view + material + mesh-array
|
|
58
|
+
* + instances). User shaders bind through the same slots as
|
|
59
|
+
* default-standard-pbr; D-5 round-4 SSOT.
|
|
60
|
+
*/
|
|
61
|
+
readonly pipelineLayout: PipelineLayout;
|
|
62
|
+
/**
|
|
63
|
+
* Color attachment format. The LDR / HDR variants pick `bgra8unorm-srgb` /
|
|
64
|
+
* `rgba16float` respectively; record-stage gate matches the camera's
|
|
65
|
+
* tonemap field (M9 keeps the LDR shape; HDR variants are OOS-M9).
|
|
66
|
+
*/
|
|
67
|
+
readonly colorFormat: GPUTextureFormat;
|
|
68
|
+
/** Depth attachment format, or `undefined` for a color-only pass. */
|
|
69
|
+
readonly depthFormat: GPUTextureFormat | undefined;
|
|
70
|
+
/**
|
|
71
|
+
* Vertex buffer layout descriptors. Procedural geometry uses the 12-floats
|
|
72
|
+
* stride (position + normal + uv + tangent); user shaders share this
|
|
73
|
+
* layout for v1 (OOS-9 leaves alternative vertex layouts for a follow-up
|
|
74
|
+
* feat).
|
|
75
|
+
*/
|
|
76
|
+
readonly vertexBuffers: readonly GPUVertexBufferLayout[];
|
|
77
|
+
/** Pipeline label (for GPU debug captures); defaults to `pbr-pipeline-${id}`. */
|
|
78
|
+
readonly label?: string | undefined;
|
|
79
|
+
/**
|
|
80
|
+
* feat-20260604-mesh-topology-debug-draw w16-b: the shader-MODULE cache
|
|
81
|
+
* identity, decoupled from the PSO `label` and the `id` arg. The WGSL module
|
|
82
|
+
* depends ONLY on (source + defines), NOT on topology / renderState / isHdr /
|
|
83
|
+
* indexFormat -- all of which WebGPU bakes into the immutable PSO, never the
|
|
84
|
+
* module. `makeShaderDeviceAdapter` keys its `moduleCache` on this label, so
|
|
85
|
+
* passing a stable per-(shader-source, defines) value here lets every
|
|
86
|
+
* topology / renderState / HDR pipeline variant of the same shader SHARE one
|
|
87
|
+
* compiled module: the first variant warms it, every later variant reuses it
|
|
88
|
+
* synchronously (no per-variant async recompile, no event-loop yield).
|
|
89
|
+
* Falls back to `shader-${id}` when omitted (pre-w16-b behaviour: the `id`
|
|
90
|
+
* arg doubled as both PSO cache key and module label). The defines dimension
|
|
91
|
+
* is NOT folded in here because the engine pre-resolves define variants into
|
|
92
|
+
* distinct registered `source` strings (createRenderer.ts variant
|
|
93
|
+
* resolution); callers that thread `defines` directly must include them in
|
|
94
|
+
* `moduleLabel` so two `#define` prefixes do not collide on one module.
|
|
95
|
+
*/
|
|
96
|
+
readonly moduleLabel?: string | undefined;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Build a render pipeline for a material shader entry. Returns
|
|
100
|
+
* `Result.err(RhiError)` on shader-module compile failure or pipeline
|
|
101
|
+
* descriptor rejection (closed union RhiErrorCode pattern; AGENTS.md
|
|
102
|
+
* "Errors are structured" + charter P3 explicit failure).
|
|
103
|
+
*
|
|
104
|
+
* Caller flow (M9-T03):
|
|
105
|
+
* ```ts
|
|
106
|
+
* let pipeline = pipelineCache.get(materialShaderId);
|
|
107
|
+
* if (pipeline === undefined) {
|
|
108
|
+
* const lookup = registry.findMaterialArtifact(materialShaderId);
|
|
109
|
+
* if (!lookup.ok) {
|
|
110
|
+
* // fallback to default-standard-pbr pipelineState.standardPipeline
|
|
111
|
+
* } else {
|
|
112
|
+
* const built = buildPipelineForMaterialShader(materialShaderId, lookup.value, ctx);
|
|
113
|
+
* if (built.ok) pipelineCache.set(materialShaderId, built.value);
|
|
114
|
+
* else if (built.error.code === 'rhi-not-available') {
|
|
115
|
+
* // shader module still compiling async; retry next frame.
|
|
116
|
+
* }
|
|
117
|
+
* }
|
|
118
|
+
* }
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
export declare function buildPipelineForMaterialShader(id: string, entry: MaterialShaderEntry, ctx: PipelineBuilderContext, renderState?: MaterialRenderState, geometry?: PipelineGeometry, vertexEntry?: string, fragmentEntry?: string, defines?: Record<string, string>, passKind?: PassKind, sampleCount?: number): Result<RenderPipeline, RhiError>;
|
|
122
|
+
//# sourceMappingURL=pipeline-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline-builder.d.ts","sourceRoot":"","sources":["../src/pipeline-builder.ts"],"names":[],"mappings":"AA2CA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,KAAK,SAAS,EACd,QAAQ,EACR,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAO/B;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uFAAuF;IACvF,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACjD;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,kCAAkC;IACjD,kBAAkB,CAAC,IAAI,EAAE;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACrC,GAAG,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;CACpC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,mBAAmB,EAAE,kCAAkC,CAAC;IACjE;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,qEAAqE;IACrE,QAAQ,CAAC,WAAW,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACnD;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACzD,iFAAiF;IACjF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,mBAAmB,EAC1B,GAAG,EAAE,sBAAsB,EAC3B,WAAW,CAAC,EAAE,mBAAmB,EACjC,QAAQ,CAAC,EAAE,gBAAgB,EAC3B,WAAW,CAAC,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,QAAQ,GAAE,QAAoB,EAO9B,WAAW,GAAE,MAAU,GACtB,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAuLlC"}
|