@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 @@
|
|
|
1
|
+
{"version":3,"file":"batch-topology.d.ts","sourceRoot":"","sources":["../../src/gpu-driven/batch-topology.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import type { RenderGraphBuilder, RenderGraphError } from '@forgeax/engine-render-graph';
|
|
2
|
+
import type { BindGroupLayout, Result, RhiDevice } from '@forgeax/engine-rhi';
|
|
3
|
+
import { RhiError } from '@forgeax/engine-rhi';
|
|
4
|
+
import type { PersistentGpuDrivenState } from '../persistent-render-scene';
|
|
5
|
+
import type { PipelineBuilderShaderModuleFactory } from '../pipeline-builder';
|
|
6
|
+
import { type RasterItemKey } from '../record';
|
|
7
|
+
import type { RenderPipelineFrame, RenderPipelineGpuDrivenProjection } from '../render-pipeline';
|
|
8
|
+
import type { MeshGpuHandles } from '../render-system';
|
|
9
|
+
import { type CameraSnapshot, type ExtractedFrame, type RenderableSnapshot } from '../render-system-extract';
|
|
10
|
+
import { type GpuDrivenBatch, type SubmissionPlan } from './batch-topology';
|
|
11
|
+
import { type CpuMultiViewVisibilityResult } from './view-gpu';
|
|
12
|
+
export declare const GPU_DRIVEN_RIGID_UNLIT_WGSL: string;
|
|
13
|
+
/**
|
|
14
|
+
* Depth-only shadow raster companion for the shared GPU Scene visibility
|
|
15
|
+
* buffers. It deliberately has no material-dependent fragment stage: alpha
|
|
16
|
+
* test and custom ShadowCaster variants stay on the CPU contract until their
|
|
17
|
+
* own batch shader is available. Opaque casters use the same primitive,
|
|
18
|
+
* instance, transform and compact-visible tables as the main view.
|
|
19
|
+
*/
|
|
20
|
+
export declare const GPU_DRIVEN_SHADOW_WGSL: string;
|
|
21
|
+
export type GpuDrivenRasterEligibilityReason = 'missing-local-bounds-capability-lane' | 'skinned-capability-lane' | 'sprite-capability-lane' | 'not-geometry-queue' | 'unsafe-ordering' | 'pbr-capability-lane' | 'alpha-test-capability-lane' | 'resource-bindings-capability-lane' | 'transparent';
|
|
22
|
+
export interface GpuDrivenRasterEligibility {
|
|
23
|
+
readonly eligible: boolean;
|
|
24
|
+
readonly reason: GpuDrivenRasterEligibilityReason | undefined;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The current shader remains a deliberately narrow capability lane. Semantic
|
|
28
|
+
* batch keys still retain PBR/alpha/resource/double-sided identity so those
|
|
29
|
+
* objects can share the CPU/shadow contract without being misreported as
|
|
30
|
+
* rigid-unlit GPU-owned raster work.
|
|
31
|
+
*/
|
|
32
|
+
export declare function gpuDrivenRasterEligibility(snapshot: RenderableSnapshot, batch: GpuDrivenBatch): GpuDrivenRasterEligibility;
|
|
33
|
+
export interface GpuDrivenProductionInspection {
|
|
34
|
+
readonly gpuOwnedSnapshotsMaterialized: number;
|
|
35
|
+
readonly filteredPlanBuilds: number;
|
|
36
|
+
readonly gpuOwnedItemCount: number;
|
|
37
|
+
readonly candidateUploadBytes: number;
|
|
38
|
+
readonly batchUploadBytes: number;
|
|
39
|
+
readonly viewConstantsUploadBytes: number;
|
|
40
|
+
readonly batchBindGroupCreates: number;
|
|
41
|
+
readonly viewBindGroupCreates: number;
|
|
42
|
+
readonly topologyRevision: number | undefined;
|
|
43
|
+
readonly validatedGpuOwnedRows: number;
|
|
44
|
+
readonly cpuFallbackDrawItems: number;
|
|
45
|
+
readonly cpuVisibility: CpuMultiViewVisibilityResult | undefined;
|
|
46
|
+
readonly shadowBatchCount: number;
|
|
47
|
+
readonly shadowCandidateCount: number;
|
|
48
|
+
readonly shadowDrawCount: number;
|
|
49
|
+
readonly faults: readonly GpuDrivenVisibilityFault[];
|
|
50
|
+
}
|
|
51
|
+
export type GpuDrivenVisibilityFaultCode = 'visibility-overflow' | 'gpu-capability-unavailable' | 'gpu-scene-fact-unavailable' | 'device-recovery-required' | 'gpu-resource-failed';
|
|
52
|
+
export interface GpuDrivenVisibilityFault {
|
|
53
|
+
readonly code: GpuDrivenVisibilityFaultCode;
|
|
54
|
+
readonly viewId: string;
|
|
55
|
+
readonly revision: number;
|
|
56
|
+
readonly fallback: 'cpu-batch-contract' | 'scene-rebuild';
|
|
57
|
+
readonly detail: string;
|
|
58
|
+
}
|
|
59
|
+
export interface PreparedGpuDrivenFrame {
|
|
60
|
+
readonly topologySignature: string;
|
|
61
|
+
readonly ownedItemKeys: ReadonlySet<RasterItemKey>;
|
|
62
|
+
readonly ownsAllForwardItems: boolean;
|
|
63
|
+
/** Batch-aligned ShadowCaster candidates from the same topology revision. */
|
|
64
|
+
readonly shadowSubmission: SubmissionPlan;
|
|
65
|
+
project(graph: RenderGraphBuilder<RenderPipelineFrame>, format: string, sampleCount: 1 | 4): Result<RenderPipelineGpuDrivenProjection, RenderGraphError | RhiError>;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Per-view production submission. The batch-aligned plan owns candidate
|
|
69
|
+
* membership; candidateIndexByStableId is a one-way adapter for the existing
|
|
70
|
+
* direct RHI draw encoder and must not be used to generate another view list.
|
|
71
|
+
*/
|
|
72
|
+
export interface MultiViewProductionSubmission {
|
|
73
|
+
readonly source: 'multi-view-indirect';
|
|
74
|
+
readonly viewId: string;
|
|
75
|
+
readonly kind: 'main' | 'cascade';
|
|
76
|
+
readonly cascadeIndex: number | undefined;
|
|
77
|
+
readonly volumeRevision: number | undefined;
|
|
78
|
+
readonly spatialIndexRevision: number | undefined;
|
|
79
|
+
readonly overflow: boolean;
|
|
80
|
+
readonly plan: SubmissionPlan;
|
|
81
|
+
readonly candidateIndexByStableId: ReadonlyMap<number, number>;
|
|
82
|
+
/** Immutable candidate membership adapter shared by CPU shadow fallback and observation. */
|
|
83
|
+
readonly candidateIndices: ReadonlySet<number>;
|
|
84
|
+
readonly faults: readonly GpuDrivenVisibilityFault[];
|
|
85
|
+
}
|
|
86
|
+
export declare class GpuDrivenProduction {
|
|
87
|
+
private readonly device;
|
|
88
|
+
private readonly shaderModuleFactory;
|
|
89
|
+
private view;
|
|
90
|
+
private raster;
|
|
91
|
+
private shadowRaster;
|
|
92
|
+
private readonly shadowViews;
|
|
93
|
+
private preparedShadowViews;
|
|
94
|
+
private readonly sceneIdentities;
|
|
95
|
+
private nextSceneIdentity;
|
|
96
|
+
private filteredCache;
|
|
97
|
+
private gpuOwnedSnapshotsMaterialized;
|
|
98
|
+
private filteredPlanBuilds;
|
|
99
|
+
private gpuOwnedItemCount;
|
|
100
|
+
private batchBindGroupCreates;
|
|
101
|
+
private validatedGpuOwnedRows;
|
|
102
|
+
private cpuFallbackDrawItems;
|
|
103
|
+
private cpuVisibility;
|
|
104
|
+
/** Candidate-domain ShadowCaster membership projected onto persistent slots. */
|
|
105
|
+
private shadowCasterSlotIndices;
|
|
106
|
+
private visibilityViews;
|
|
107
|
+
private shadowSubmission;
|
|
108
|
+
private readonly shadowPlanCache;
|
|
109
|
+
/**
|
|
110
|
+
* Reverse index for the immutable shadow topology. Cascade views provide
|
|
111
|
+
* stable slot ids, so rebuilding a view plan should walk the selected view
|
|
112
|
+
* domain instead of filtering every source candidate for every cascade.
|
|
113
|
+
*/
|
|
114
|
+
private shadowCandidateMembership;
|
|
115
|
+
private faults;
|
|
116
|
+
private signatureCache;
|
|
117
|
+
constructor(device: RhiDevice, shaderModuleFactory: PipelineBuilderShaderModuleFactory);
|
|
118
|
+
prepareCpuVisibility(input: {
|
|
119
|
+
readonly scene: PersistentGpuDrivenState | undefined;
|
|
120
|
+
readonly frame: ExtractedFrame;
|
|
121
|
+
readonly camera: CameraSnapshot | undefined;
|
|
122
|
+
}): CpuMultiViewVisibilityResult | undefined;
|
|
123
|
+
prepare(input: {
|
|
124
|
+
readonly scene: PersistentGpuDrivenState | undefined;
|
|
125
|
+
readonly camera: CameraSnapshot;
|
|
126
|
+
readonly meshes: ReadonlyMap<number, MeshGpuHandles>;
|
|
127
|
+
readonly viewBindGroupLayout: BindGroupLayout;
|
|
128
|
+
readonly materialBindGroupLayout?: BindGroupLayout;
|
|
129
|
+
readonly meshResidencyEpoch: number;
|
|
130
|
+
readonly hdrp: boolean;
|
|
131
|
+
}): Result<PreparedGpuDrivenFrame | undefined, RhiError>;
|
|
132
|
+
/**
|
|
133
|
+
* Intersect the four-view visibility result with the shared ShadowCaster
|
|
134
|
+
* topology. This is the only production candidate-to-submission join; CPU
|
|
135
|
+
* fallback devices consume the same immutable plans as indirect-capable
|
|
136
|
+
* devices.
|
|
137
|
+
*/
|
|
138
|
+
multiViewSubmissions(): readonly MultiViewProductionSubmission[];
|
|
139
|
+
private prepareShadowViews;
|
|
140
|
+
private shadowSubmissionForView;
|
|
141
|
+
dispose(): void;
|
|
142
|
+
inspect(): GpuDrivenProductionInspection;
|
|
143
|
+
recordCpuValidation(validated: readonly {
|
|
144
|
+
readonly source: RenderableSnapshot;
|
|
145
|
+
}[], gpuOwned: ReadonlySet<RasterItemKey>): void;
|
|
146
|
+
private sceneIdentity;
|
|
147
|
+
private addFault;
|
|
148
|
+
private addRhiFault;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=production-raster.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"production-raster.d.ts","sourceRoot":"","sources":["../../src/gpu-driven/production-raster.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import type { GraphBuffer, RenderGraphBuilder, RenderGraphFrame } from '@forgeax/engine-render-graph';
|
|
2
|
+
import { RenderGraphError } from '@forgeax/engine-render-graph';
|
|
3
|
+
import type { Buffer, Result, RhiDevice } from '@forgeax/engine-rhi';
|
|
4
|
+
import { RhiError } from '@forgeax/engine-rhi';
|
|
5
|
+
import type { GpuScene } from '../gpu-scene';
|
|
6
|
+
import type { PipelineBuilderShaderModuleFactory } from '../pipeline-builder';
|
|
7
|
+
import type { RenderVisibilityViewDescriptor, RenderVisibilityViewKind } from '../render-system-extract';
|
|
8
|
+
import type { SubmissionPlan } from './batch-topology';
|
|
9
|
+
export declare const GPU_DRIVEN_VIEW_WGSL = "\nstruct PrimitiveRecord {\n generation: u32,\n flags: u32,\n transformIndex: u32,\n materialIndex: u32,\n drawTemplateIndex: u32,\n instanceStart: u32,\n instanceCount: u32,\n assetHandle: u32,\n localBoundsMin: vec4<f32>,\n localBoundsMax: vec4<f32>,\n};\n\nstruct TransformRecord {\n currentWorld: mat4x4<f32>,\n previousWorld: mat4x4<f32>,\n};\n\nstruct CandidateRecord {\n primitiveIndex: u32,\n generation: u32,\n instanceOrdinal: u32,\n materialSlot: u32,\n batchIndex: u32,\n visibleBase: u32,\n visibleCapacity: u32,\n};\n\nstruct InstanceRecord {\n primitiveIndex: u32,\n transformIndex: u32,\n customDataStart: u32,\n flags: u32,\n};\n\nstruct BatchRecord {\n visibleBase: u32,\n visibleCapacity: u32,\n count: u32,\n first: u32,\n baseVertex: i32,\n indirectIndex: u32,\n indexed: u32,\n};\n\nstruct ViewConstants {\n planes: array<vec4<f32>, 6>,\n candidateCount: u32,\n batchCount: u32,\n pad0: u32,\n pad1: u32,\n};\n\n@group(0) @binding(0) var<storage, read> primitives: array<PrimitiveRecord>;\n@group(0) @binding(1) var<storage, read> instances: array<InstanceRecord>;\n@group(0) @binding(2) var<storage, read> transforms: array<TransformRecord>;\n@group(0) @binding(3) var<storage, read> candidates: array<CandidateRecord>;\n@group(0) @binding(4) var<storage, read> batches: array<BatchRecord>;\n@group(0) @binding(5) var<uniform> view: ViewConstants;\n@group(0) @binding(6) var<storage, read_write> counters: array<atomic<u32>>;\n@group(0) @binding(7) var<storage, read_write> visibleIndices: array<vec2<u32>>;\n@group(0) @binding(8) var<storage, read_write> indirectArgs: array<u32>;\n\nfn counterIndex(batchIndex: u32) -> u32 { return batchIndex * 2u; }\nfn overflowIndex(batchIndex: u32) -> u32 { return batchIndex * 2u + 1u; }\n\nfn isVisible(primitive: PrimitiveRecord, world: mat4x4<f32>) -> bool {\n if ((primitive.flags & 7u) != 7u) { return false; }\n let localCenter = (primitive.localBoundsMin.xyz + primitive.localBoundsMax.xyz) * 0.5;\n let localExtent = (primitive.localBoundsMax.xyz - primitive.localBoundsMin.xyz) * 0.5;\n let worldCenter = (world * vec4<f32>(localCenter, 1.0)).xyz;\n let worldExtent =\n abs(world[0].xyz) * localExtent.x +\n abs(world[1].xyz) * localExtent.y +\n abs(world[2].xyz) * localExtent.z;\n for (var planeIndex = 0u; planeIndex < 6u; planeIndex += 1u) {\n let plane = view.planes[planeIndex];\n let radius = dot(abs(plane.xyz), worldExtent);\n if (dot(plane.xyz, worldCenter) + plane.w < -radius) { return false; }\n }\n return true;\n}\n\n@compute @workgroup_size(64)\nfn resetView(@builtin(global_invocation_id) id: vec3<u32>) {\n let batchIndex = id.x;\n if (batchIndex >= view.batchCount) { return; }\n atomicStore(&counters[counterIndex(batchIndex)], 0u);\n atomicStore(&counters[overflowIndex(batchIndex)], 0u);\n}\n\n@compute @workgroup_size(64)\nfn cullView(@builtin(global_invocation_id) id: vec3<u32>) {\n let candidateIndex = id.x;\n if (candidateIndex >= view.candidateCount) { return; }\n let candidate = candidates[candidateIndex];\n let primitive = primitives[candidate.primitiveIndex];\n if (primitive.generation != candidate.generation) { return; }\n if (candidate.instanceOrdinal >= primitive.instanceCount) { return; }\n let instanceIndex = primitive.instanceStart + candidate.instanceOrdinal;\n let instance = instances[instanceIndex];\n let world = transforms[primitive.transformIndex].currentWorld * transforms[instance.transformIndex].currentWorld;\n if (!isVisible(primitive, world)) { return; }\n let localVisible = atomicAdd(&counters[counterIndex(candidate.batchIndex)], 1u);\n if (localVisible >= candidate.visibleCapacity) {\n atomicStore(&counters[overflowIndex(candidate.batchIndex)], 1u);\n return;\n }\n visibleIndices[candidate.visibleBase + localVisible] = vec2<u32>(\n instanceIndex,\n primitive.materialIndex + candidate.materialSlot,\n );\n}\n\n@compute @workgroup_size(64)\nfn finalizeView(@builtin(global_invocation_id) id: vec3<u32>) {\n let batchIndex = id.x;\n if (batchIndex >= view.batchCount) { return; }\n let batch = batches[batchIndex];\n let visibleCount = min(\n atomicLoad(&counters[counterIndex(batchIndex)]),\n batch.visibleCapacity,\n );\n let args = batch.indirectIndex * 5u;\n indirectArgs[args] = batch.count;\n indirectArgs[args + 1u] = visibleCount;\n indirectArgs[args + 2u] = batch.first;\n indirectArgs[args + 3u] = select(0u, bitcast<u32>(batch.baseVertex), batch.indexed != 0u);\n indirectArgs[args + 4u] = 0u;\n}\n";
|
|
10
|
+
export interface GpuDrivenViewGraphResources {
|
|
11
|
+
readonly primitive: GraphBuffer;
|
|
12
|
+
readonly instance: GraphBuffer;
|
|
13
|
+
readonly transform: GraphBuffer;
|
|
14
|
+
readonly material: GraphBuffer;
|
|
15
|
+
readonly visible: GraphBuffer;
|
|
16
|
+
readonly indirect: GraphBuffer;
|
|
17
|
+
readonly overflow: GraphBuffer;
|
|
18
|
+
}
|
|
19
|
+
export interface GpuDrivenViewInspection {
|
|
20
|
+
readonly topologyRevision: number | undefined;
|
|
21
|
+
readonly candidateCount: number;
|
|
22
|
+
readonly batchCount: number;
|
|
23
|
+
readonly visibleCapacity: number;
|
|
24
|
+
readonly candidateCapacity: number;
|
|
25
|
+
readonly batchCapacity: number;
|
|
26
|
+
readonly indirectCapacity: number;
|
|
27
|
+
readonly updateCount: number;
|
|
28
|
+
readonly uploadBytes: number;
|
|
29
|
+
readonly candidateUploadBytes: number;
|
|
30
|
+
readonly batchUploadBytes: number;
|
|
31
|
+
readonly viewConstantsUploadBytes: number;
|
|
32
|
+
readonly bindGroupCreates: number;
|
|
33
|
+
readonly bufferRebuilds: number;
|
|
34
|
+
readonly resourceGeneration: number;
|
|
35
|
+
}
|
|
36
|
+
export interface CpuVisibilityCandidate {
|
|
37
|
+
/** Stable projection slot; generation disambiguates slot reuse. */
|
|
38
|
+
readonly stableId: number;
|
|
39
|
+
readonly generation: number;
|
|
40
|
+
/** Candidate-domain index consumed by CascadeVolumeSet membership. */
|
|
41
|
+
readonly candidateIndex: number | undefined;
|
|
42
|
+
readonly worldAabb: Float32Array | undefined;
|
|
43
|
+
readonly casterEligible: boolean;
|
|
44
|
+
readonly batchId: number | undefined;
|
|
45
|
+
readonly instanceOrdinal: number | undefined;
|
|
46
|
+
}
|
|
47
|
+
export interface CpuVisibleItem {
|
|
48
|
+
readonly stableId: number;
|
|
49
|
+
readonly generation: number;
|
|
50
|
+
readonly candidateIndex: number | undefined;
|
|
51
|
+
readonly batchId: number | undefined;
|
|
52
|
+
readonly instanceOrdinal: number | undefined;
|
|
53
|
+
}
|
|
54
|
+
export interface CpuVisibilityBatchSpan {
|
|
55
|
+
readonly batchId: number;
|
|
56
|
+
readonly first: number;
|
|
57
|
+
readonly count: number;
|
|
58
|
+
readonly capacity: number;
|
|
59
|
+
readonly overflow: boolean;
|
|
60
|
+
}
|
|
61
|
+
export interface CpuVisibilityViewResult {
|
|
62
|
+
readonly viewId: string;
|
|
63
|
+
readonly kind: RenderVisibilityViewKind;
|
|
64
|
+
readonly cascadeIndex: number | undefined;
|
|
65
|
+
readonly stableIds: readonly number[];
|
|
66
|
+
readonly generations: readonly number[];
|
|
67
|
+
readonly compactVisible: readonly CpuVisibleItem[];
|
|
68
|
+
readonly batchSpans: readonly CpuVisibilityBatchSpan[];
|
|
69
|
+
readonly capacity: number;
|
|
70
|
+
readonly overflow: boolean;
|
|
71
|
+
readonly volumeRevision: number | undefined;
|
|
72
|
+
readonly spatialIndexRevision: number | undefined;
|
|
73
|
+
}
|
|
74
|
+
export interface CpuVisibilityCascadeMaskEntry {
|
|
75
|
+
readonly stableId: number;
|
|
76
|
+
readonly generation: number;
|
|
77
|
+
/** Bit 0..2 corresponds to cascade 0..2. */
|
|
78
|
+
readonly cascadeMask: number;
|
|
79
|
+
}
|
|
80
|
+
export interface CpuMultiViewVisibilityResult {
|
|
81
|
+
readonly views: readonly CpuVisibilityViewResult[];
|
|
82
|
+
readonly cascadeMasks: readonly CpuVisibilityCascadeMaskEntry[];
|
|
83
|
+
readonly spatialIndexRevision: number | undefined;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* CPU production executor for the shared main/CSM visibility contract.
|
|
87
|
+
*
|
|
88
|
+
* The executor consumes stable Scene Fact candidates and memberships already
|
|
89
|
+
* selected by CascadeVolumeSet. It deliberately keeps the main list separate
|
|
90
|
+
* from the caster domain, so a main-view cull cannot remove a shadow caster.
|
|
91
|
+
*/
|
|
92
|
+
export declare function executeCpuMultiViewVisibility(input: {
|
|
93
|
+
readonly views: readonly RenderVisibilityViewDescriptor[];
|
|
94
|
+
readonly candidates: readonly CpuVisibilityCandidate[];
|
|
95
|
+
/** Broadphase-selected domains keyed by view. */
|
|
96
|
+
readonly candidatesByView?: ReadonlyMap<string, readonly CpuVisibilityCandidate[]>;
|
|
97
|
+
readonly capacityByView?: ReadonlyMap<string, number>;
|
|
98
|
+
readonly capacityByBatch?: ReadonlyMap<number, number>;
|
|
99
|
+
}): CpuMultiViewVisibilityResult;
|
|
100
|
+
export declare class GpuDrivenView {
|
|
101
|
+
private readonly device;
|
|
102
|
+
private readonly bindGroupLayout;
|
|
103
|
+
private readonly pipelineLayout;
|
|
104
|
+
private readonly resetPipeline;
|
|
105
|
+
private readonly cullPipeline;
|
|
106
|
+
private readonly finalizePipeline;
|
|
107
|
+
private buffers;
|
|
108
|
+
private bindGroup;
|
|
109
|
+
private candidateCapacity;
|
|
110
|
+
private batchCapacity;
|
|
111
|
+
private indirectCapacity;
|
|
112
|
+
private plan;
|
|
113
|
+
private scenePrimitive;
|
|
114
|
+
private sceneInstance;
|
|
115
|
+
private sceneTransform;
|
|
116
|
+
private sceneMaterial;
|
|
117
|
+
private sceneCapacity;
|
|
118
|
+
private updateCount;
|
|
119
|
+
private uploadBytes;
|
|
120
|
+
private candidateUploadBytes;
|
|
121
|
+
private batchUploadBytes;
|
|
122
|
+
private viewConstantsUploadBytes;
|
|
123
|
+
private bindGroupCreates;
|
|
124
|
+
private bufferRebuilds;
|
|
125
|
+
private resourceGeneration;
|
|
126
|
+
private constructor();
|
|
127
|
+
static create(input: {
|
|
128
|
+
readonly device: RhiDevice;
|
|
129
|
+
readonly shaderModuleFactory: PipelineBuilderShaderModuleFactory;
|
|
130
|
+
}): Result<GpuDrivenView, RhiError>;
|
|
131
|
+
update(plan: SubmissionPlan, scene: GpuScene, planes: Float32Array): Result<void, RhiError>;
|
|
132
|
+
inspect(): GpuDrivenViewInspection;
|
|
133
|
+
get visibleBuffer(): Buffer | undefined;
|
|
134
|
+
get indirectBuffer(): Buffer | undefined;
|
|
135
|
+
get overflowBuffer(): Buffer | undefined;
|
|
136
|
+
get overflowByteOffset(): number;
|
|
137
|
+
addPasses<FrameCtx extends RenderGraphFrame>(builder: RenderGraphBuilder<FrameCtx>, labelPrefix?: string): Result<GpuDrivenViewGraphResources, RenderGraphError>;
|
|
138
|
+
dispose(): void;
|
|
139
|
+
private rebuildBuffers;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=view-gpu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-gpu.d.ts","sourceRoot":"","sources":["../../src/gpu-driven/view-gpu.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { RenderSceneProjectionSlot } from '../render-scene-projection';
|
|
2
|
+
import type { SubmissionPlan } from './batch-topology';
|
|
3
|
+
export declare const INDEXED_INDIRECT_STRIDE = 20;
|
|
4
|
+
export interface GpuDrivenViewReferenceResult {
|
|
5
|
+
readonly visibleInstanceIndices: Uint32Array;
|
|
6
|
+
readonly batchCounters: Uint32Array;
|
|
7
|
+
readonly indirectArgs: ArrayBuffer;
|
|
8
|
+
readonly candidateCount: number;
|
|
9
|
+
readonly rejectedCount: number;
|
|
10
|
+
readonly visibleCount: number;
|
|
11
|
+
readonly overflowedBatches: readonly number[];
|
|
12
|
+
}
|
|
13
|
+
/** CPU oracle for the storage-buffer compute protocol and WebGL2 fallback semantics. */
|
|
14
|
+
export declare function classifyGpuDrivenView(plan: SubmissionPlan, slots: readonly RenderSceneProjectionSlot[], planes: Float32Array, capacityByBatch?: ReadonlyMap<number, number>): GpuDrivenViewReferenceResult;
|
|
15
|
+
//# sourceMappingURL=view-reference.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-reference.d.ts","sourceRoot":"","sources":["../../src/gpu-driven/view-reference.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,sBAAsB,EAAE,WAAW,CAAC;IAC7C,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C;AAED,wFAAwF;AACxF,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,SAAS,yBAAyB,EAAE,EAC3C,MAAM,EAAE,YAAY,EACpB,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5C,4BAA4B,CAuF9B"}
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
import type { World } from '@forgeax/engine-ecs';
|
|
2
|
+
import type { VertexLayoutProjection } from '@forgeax/engine-geometry';
|
|
3
|
+
import { type Result, type RhiCaps, RhiError, type Sampler, type TextureView } from '@forgeax/engine-rhi';
|
|
4
|
+
import { type AssetError, type DecodedImage, type EquirectAsset, type Handle, type ImageError, type PrimitiveTopology, type SamplerAsset, type Submesh, type TextureAsset, type MeshAsset as TypesMeshAsset } from '@forgeax/engine-types';
|
|
5
|
+
import { GpuBuffer, GpuTexture } from './gpu-resource';
|
|
6
|
+
import type { RhiErrorListenerRegistry } from './lifecycle';
|
|
7
|
+
import { type MeshUpdateError as MeshUpdateErrorType } from './mesh-update-errors';
|
|
8
|
+
import { type MipmapBlitDevice, type MipmapShaderModuleFactory } from './mipmap-generator';
|
|
9
|
+
/** Cube-POD register-relay injected by the wire layer (D-3). */
|
|
10
|
+
type RegisterCube = (world: World, pod: EquirectAsset) => Result<Handle<'EquirectAsset', 'shared'>, AssetError>;
|
|
11
|
+
interface MeshGpuEntry {
|
|
12
|
+
readonly vertexBuffer: GpuBuffer;
|
|
13
|
+
/**
|
|
14
|
+
* Index buffer wrapper, or `null` for a vertex-only mesh
|
|
15
|
+
* (no `MeshAsset.indices`). When `null` the record stage takes the
|
|
16
|
+
* non-indexed `pass.draw(vertexCount)` path and never calls
|
|
17
|
+
* `setIndexBuffer`. Gated on `indexed` below.
|
|
18
|
+
*/
|
|
19
|
+
readonly indexBuffer: GpuBuffer | null;
|
|
20
|
+
/**
|
|
21
|
+
* Allocation byte sizes for the vbo / ibo (mirrors GPUBuffer.size). Used
|
|
22
|
+
* by `updateMeshById` to decide reuse vs reallocation; tracked here so
|
|
23
|
+
* the runtime never reads `.size` off the opaque RHI handle (which is
|
|
24
|
+
* not on the spec-aligned RHI Buffer interface; charter §RHI form rules).
|
|
25
|
+
*/
|
|
26
|
+
readonly vboBytes: number;
|
|
27
|
+
/** Allocation byte size for the ibo, or 0 when indexBuffer is null. */
|
|
28
|
+
readonly iboBytes: number;
|
|
29
|
+
/** Immutable geometry-owned layout projection used for all resident stride checks. */
|
|
30
|
+
readonly layoutProjection: VertexLayoutProjection;
|
|
31
|
+
readonly indexCount: number;
|
|
32
|
+
readonly indexFormat: 'uint16' | 'uint32';
|
|
33
|
+
/** Vertex count is derived from the geometry-owned projection stride. */
|
|
34
|
+
readonly vertexCount: number;
|
|
35
|
+
/** True when `MeshAsset.indices` is present (indexed draw path). */
|
|
36
|
+
readonly indexed: boolean;
|
|
37
|
+
/** Primitive topology (default 'triangle-list'). Mirrors MeshGpuHandles. */
|
|
38
|
+
readonly topology: PrimitiveTopology;
|
|
39
|
+
/**
|
|
40
|
+
* Submeshes from MeshAsset.submeshes, carried through to the record stage
|
|
41
|
+
* so per-submesh drawIndexed can iterate independently (feat-20260608 M4 / w16).
|
|
42
|
+
* For single-submesh meshes this is a 1-element array (byte-identical to pre-M4).
|
|
43
|
+
*/
|
|
44
|
+
readonly submeshes: readonly import('@forgeax/engine-types').Submesh[];
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* GPU residency store. Owns the per-handle GPU caches and the upload
|
|
48
|
+
* primitives that build them. Constructed once per renderer; wired with the
|
|
49
|
+
* GPU device via `configureGpuDevice` after `Renderer.ready` resolves.
|
|
50
|
+
*/
|
|
51
|
+
export declare class GpuResourceStore {
|
|
52
|
+
/** Monotonic token for mesh GPU residency or contents changes. */
|
|
53
|
+
meshResidencyEpoch: number;
|
|
54
|
+
/** Monotonic token for texture/sampler identities used by material bind groups. */
|
|
55
|
+
materialResourceEpoch: number;
|
|
56
|
+
private gpuDevice;
|
|
57
|
+
private asyncCreateShaderModule;
|
|
58
|
+
private registerCube;
|
|
59
|
+
private errorRegistry;
|
|
60
|
+
private caps;
|
|
61
|
+
private readonly textureGpuHandles;
|
|
62
|
+
private readonly samplerGpuHandles;
|
|
63
|
+
private readonly cubemapGpuHandles;
|
|
64
|
+
private readonly cubemapIdempotentMap;
|
|
65
|
+
private readonly meshGpuHandles;
|
|
66
|
+
/**
|
|
67
|
+
* feat-20260723-cross-world-gpu-cache-collision: compose a cache key from
|
|
68
|
+
* the raw handle slot and the worldId so two worlds that independently
|
|
69
|
+
* allocate assets at the same slot number never collide in the GPU store.
|
|
70
|
+
* worldId=0 produces the bare slot (backward compat with single-world path).
|
|
71
|
+
*/
|
|
72
|
+
private worldKey;
|
|
73
|
+
/**
|
|
74
|
+
* Wire the GPU device, shader-module factory, and cube-POD register relay.
|
|
75
|
+
* Called once by createRenderer after `Renderer.ready` resolves. This
|
|
76
|
+
* performs NO replay of CPU asset state:
|
|
77
|
+
* the pull model builds resources lazily at first `ensureResident` access.
|
|
78
|
+
*/
|
|
79
|
+
configureGpuDevice(device: MipmapBlitDevice, asyncCreateShaderModule: MipmapShaderModuleFactory | undefined, registerCube: RegisterCube, caps: RhiCaps): void;
|
|
80
|
+
/**
|
|
81
|
+
* Wrap a raw RHI Buffer handle into a GpuBuffer. The wrapper holds a
|
|
82
|
+
* reference to the device so `.destroy()` forwards to
|
|
83
|
+
* `device.destroyBuffer(handle)` (M-3 / w11; plan-strategy D-2).
|
|
84
|
+
*
|
|
85
|
+
* Pre: `configureGpuDevice` has been called. Callers that build a buffer
|
|
86
|
+
* via `device.createBuffer` already gate on a wired device, so this private
|
|
87
|
+
* helper trusts the caller; an unwired call is a programmer error and
|
|
88
|
+
* surfaces as a non-null assertion rather than a structured error.
|
|
89
|
+
*/
|
|
90
|
+
private wrapBuf;
|
|
91
|
+
private destroyMeshBuffer;
|
|
92
|
+
/** Wrap a raw RHI Texture handle into a GpuTexture (mirror of wrapBuf). */
|
|
93
|
+
private wrapTex;
|
|
94
|
+
/**
|
|
95
|
+
* Walk the three handle maps and destroy every GpuResource, then clear
|
|
96
|
+
* the maps. Called from `Renderer.dispose()` (M-5) as the first step of
|
|
97
|
+
* the dispose chain (plan-strategy D-2: dispose chain walks
|
|
98
|
+
* `gpuStore.destroyAll()` → `graph.drain()` → `instanceBuffers.clear()`
|
|
99
|
+
* → ...).
|
|
100
|
+
*
|
|
101
|
+
* Idempotent: a second call after the maps were cleared is a no-op
|
|
102
|
+
* (architecture-principles §6 idempotency). Each `.destroy()` call
|
|
103
|
+
* routes through the RHI shim's per-handle bookkeeping, so a stray
|
|
104
|
+
* second-destroy on a handle the runtime did not flip to destroyed
|
|
105
|
+
* surfaces as the structured `'destroy-after-destroy'` error from the
|
|
106
|
+
* RHI shim; that error is *not* re-thrown here -- destroyAll is a
|
|
107
|
+
* sweep that tolerates per-handle failures so the dispose chain can
|
|
108
|
+
* make progress (plan-strategy D-3 / D-8).
|
|
109
|
+
*/
|
|
110
|
+
destroyAll(): void;
|
|
111
|
+
/**
|
|
112
|
+
* Set the error registry channel (wired by createRenderer). evict /
|
|
113
|
+
* releaseUnreferenced fire structured errors here instead of throwing -
|
|
114
|
+
* sweeps continue past individual failures (feat-20260619 D-1/D-6).
|
|
115
|
+
*/
|
|
116
|
+
setErrorRegistry(registry: RhiErrorListenerRegistry): void;
|
|
117
|
+
/**
|
|
118
|
+
* evictTexture / evictMesh / evictCubemap — per-handle evict primitives.
|
|
119
|
+
*
|
|
120
|
+
* Reuses destroyAll's isDestroyed dedup logic + cubemap wrapper
|
|
121
|
+
* shared-dedup (feat-20260619 D-1). Returns {freed, errors} so callers
|
|
122
|
+
* can consume the aggregate result (D-3). Key not present -> no-op
|
|
123
|
+
* returning {freed:0, errors:[]}.
|
|
124
|
+
*/
|
|
125
|
+
evictTexture(handle: Handle<'TextureAsset', 'shared'>, worldId?: number): {
|
|
126
|
+
freed: number;
|
|
127
|
+
errors: RhiError[];
|
|
128
|
+
};
|
|
129
|
+
evictMesh(handle: Handle<'MeshAsset', 'shared'>, worldId?: number): {
|
|
130
|
+
freed: number;
|
|
131
|
+
errors: RhiError[];
|
|
132
|
+
};
|
|
133
|
+
evictCubemap(id: number): {
|
|
134
|
+
freed: number;
|
|
135
|
+
errors: RhiError[];
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* releaseUnreferenced — iterate the three handle maps and evict entries
|
|
139
|
+
* whose key is NOT in `liveSet`.
|
|
140
|
+
*
|
|
141
|
+
* Iterates Map keys (not liveSet — store has no reverse index, D-8).
|
|
142
|
+
* IDs in liveSet that don't exist in the store are naturally ignored.
|
|
143
|
+
* Empty liveSet -> full release; second call -> no-op (maps empty,
|
|
144
|
+
* evict primitives are key-not-present no-op).
|
|
145
|
+
*/
|
|
146
|
+
releaseUnreferenced(liveSet: Set<number>): {
|
|
147
|
+
freed: number;
|
|
148
|
+
errors: RhiError[];
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Prewarm the mipmap pipeline cache for the given texture formats (D-9).
|
|
152
|
+
* Called from `createRenderer.ready` (already async): builds the one-time
|
|
153
|
+
* mipmap shader module + per-format render pipeline into the mipmap-generator
|
|
154
|
+
* deviceCache so the per-texture mipmap blit at record-stage `ensureResident`
|
|
155
|
+
* is pure synchronous encoder work. A format absent from this list will make
|
|
156
|
+
* the sync `ensureResident` texture arm return a structured RhiError rather
|
|
157
|
+
* than lazily await a build (which would break the sync draw contract).
|
|
158
|
+
*/
|
|
159
|
+
prewarmMipmapPipeline(device: MipmapBlitDevice, formats: readonly GPUTextureFormat[]): Promise<Result<void, RhiError>>;
|
|
160
|
+
/**
|
|
161
|
+
* Return the GpuTexture wrapper for a `Handle<TextureAsset>` if it has been
|
|
162
|
+
* made resident, else `undefined`.
|
|
163
|
+
*
|
|
164
|
+
* @internal — test-only seam for cow-survivor / AC-02 integration tests; not
|
|
165
|
+
* part of the engine's public API surface.
|
|
166
|
+
*/
|
|
167
|
+
_getTextureGpuTexture(handle: Handle<'TextureAsset', 'shared'>, worldId?: number): GpuTexture | undefined;
|
|
168
|
+
/**
|
|
169
|
+
* Return the GPU texture-view for a `Handle<TextureAsset>` if it has been
|
|
170
|
+
* made resident, else `undefined`.
|
|
171
|
+
*/
|
|
172
|
+
getTextureGpuView(handle: Handle<'TextureAsset', 'shared'>, worldId?: number): TextureView | undefined;
|
|
173
|
+
/**
|
|
174
|
+
* Lazily materialise and cache a sampler descriptor for a material texture.
|
|
175
|
+
* Samplers are opaque, non-destroyable RHI handles, so disposal only drops
|
|
176
|
+
* this store's cache and lets the device own their lifetime.
|
|
177
|
+
*/
|
|
178
|
+
ensureSamplerResident(handle: Handle<'SamplerAsset', 'shared'>, pod: SamplerAsset, worldId?: number): Result<Sampler, RhiError>;
|
|
179
|
+
/**
|
|
180
|
+
* Return the GpuTexture wrapper for the cubemap, or `undefined` if not
|
|
181
|
+
* uploaded yet. Consumers that need the raw RHI Texture handle (e.g.
|
|
182
|
+
* `device.createTextureView` arguments) read `.handle` on the wrapper;
|
|
183
|
+
* `.destroy()` routes through the destroy chain (M-3 / w11).
|
|
184
|
+
*/
|
|
185
|
+
getCubemapGpuTexture(handle: Handle<'EquirectAsset', 'shared'>): GpuTexture | undefined;
|
|
186
|
+
/** Return the full-cube texture view, or `undefined` if not uploaded yet. */
|
|
187
|
+
getCubemapGpuView(handle: Handle<'EquirectAsset', 'shared'>): any | undefined;
|
|
188
|
+
/** Return per-face 2D views (6 faces), or `undefined` if not uploaded yet. */
|
|
189
|
+
getCubemapFaceViews(handle: Handle<'EquirectAsset', 'shared'>): readonly any[] | undefined;
|
|
190
|
+
/**
|
|
191
|
+
* Query the projection status for an equirect source handle (D-3 SSOT: the
|
|
192
|
+
* store's CubemapGpuEntry is the single authority). Returns `undefined` when
|
|
193
|
+
* no projection has been launched for this source yet (the record arm reads
|
|
194
|
+
* this to decide whether to fire the lazy projection; feat-20260630 M3 / w18):
|
|
195
|
+
* - undefined -> no entry: caller may launch projection (fire-and-forget)
|
|
196
|
+
* - 'pending' -> projection launched, not complete: bind white-cube fallback
|
|
197
|
+
* - 'ready' -> projected cube + IBL views live: bind real IBL
|
|
198
|
+
* - 'failed' -> projection errored: bind white fallback, do NOT retry (R-2)
|
|
199
|
+
*/
|
|
200
|
+
getCubemapStatus(handle: Handle<'EquirectAsset', 'shared'>): 'pending' | 'ready' | 'failed' | undefined;
|
|
201
|
+
/**
|
|
202
|
+
* Return the GPU vertex / index buffer handles + index count for a
|
|
203
|
+
* `Handle<MeshAsset>` if resident, else `undefined`. Consumers treat this
|
|
204
|
+
* as the canonical "mesh asset has GPU residency" probe.
|
|
205
|
+
*/
|
|
206
|
+
getMeshGpuHandles(handle: Handle<'MeshAsset', 'shared'>, worldId?: number): MeshGpuEntry | undefined;
|
|
207
|
+
/**
|
|
208
|
+
* Pull-model residency: build the GPU resource for `handle` from the
|
|
209
|
+
* caller-provided POD on a miss, return the cached handles on a hit (D-2).
|
|
210
|
+
*
|
|
211
|
+
* - mesh POD -> synchronous vertex / index buffer upload (mirrors the
|
|
212
|
+
* pre-extraction `uploadMeshById`).
|
|
213
|
+
* - texture POD -> synchronous texture upload + mipmap blit (D-9). The
|
|
214
|
+
* mipmap pipeline MUST have been prewarmed via `prewarmMipmapPipeline`;
|
|
215
|
+
* an un-prewarmed format returns a structured RhiError (never awaits).
|
|
216
|
+
*
|
|
217
|
+
* Cubemap is NOT routed here -- it is an eager user call
|
|
218
|
+
* (`_uploadCubemapFromEquirect`). Builtin meshes are NOT routed here either
|
|
219
|
+
* (createRenderer step-3 owns them; D-1).
|
|
220
|
+
*/
|
|
221
|
+
ensureResident(handle: Handle<'MeshAsset', 'shared'> | Handle<'TextureAsset', 'shared'>, pod: TypesMeshAsset | TextureAsset, worldId?: number): Result<any, RhiError | AssetError | ImageError>;
|
|
222
|
+
/**
|
|
223
|
+
* Eager public surface: upload decoded image bytes into a GPU texture and
|
|
224
|
+
* cache (texture + view) under the handle. The TextureAsset POD supplies the
|
|
225
|
+
* GPU format (D-2: caller provides POD, store never reaches a registry); the
|
|
226
|
+
* DecodedImage supplies the pixel bytes + colorSpace. Retains the async
|
|
227
|
+
* signature so callers that have not prewarmed can drive a mipmap build here
|
|
228
|
+
* (the one async source).
|
|
229
|
+
*/
|
|
230
|
+
uploadTexture(handle: Handle<'TextureAsset', 'shared'>, pod: TextureAsset, decoded: DecodedImage, worldId?: number): Promise<Result<void, AssetError | ImageError | RhiError>>;
|
|
231
|
+
/**
|
|
232
|
+
* Synchronous texture upload used by `ensureResident` (D-9). Identical to
|
|
233
|
+
* `uploadTexture` except the mipmap pipeline is read from the prewarmed
|
|
234
|
+
* cache via the synchronous `blitMipmapsSync` -- an un-prewarmed format
|
|
235
|
+
* returns a structured RhiError instead of awaiting a build.
|
|
236
|
+
*/
|
|
237
|
+
private uploadTextureSync;
|
|
238
|
+
/**
|
|
239
|
+
* Shared texture-upload prelude: format / colorSpace consistency assertion,
|
|
240
|
+
* GPU texture allocation + writeTexture. Returns `gpuTexture: undefined`
|
|
241
|
+
* (with ok) when no device is wired (deferred path).
|
|
242
|
+
*/
|
|
243
|
+
private prepareTextureUpload;
|
|
244
|
+
/**
|
|
245
|
+
* Project an equirectangular HDR `EquirectAsset` into a GPU cubemap + IBL
|
|
246
|
+
* precompute. NOT part of the `ensureResident` pull path.
|
|
247
|
+
*
|
|
248
|
+
* @internal — feat-20260630 D-3 / F-9: the cubemap projection is engine
|
|
249
|
+
* internals, not a user surface. AI users declare `Skylight{equirect}` and
|
|
250
|
+
* the render-system record arm (same package) drives this method per-frame;
|
|
251
|
+
* the `_` prefix + `@internal` mark it package-internal (lint:internal gate)
|
|
252
|
+
* so it never appears as a user-facing call. (A cross-file `private` is not
|
|
253
|
+
* reachable by the record arm; package-internal is the correct visibility.)
|
|
254
|
+
*
|
|
255
|
+
* Idempotent: a second call with the same source handle returns the cached
|
|
256
|
+
* cubemap handle (no second GPU texture). The minted cubemap handle is an
|
|
257
|
+
* `EquirectAsset` shared ref catalogued via the injected `registerCube` relay
|
|
258
|
+
* (D-3); the store never imports AssetRegistry.
|
|
259
|
+
*
|
|
260
|
+
* Status (D-3): every entry written carries `status`. A failed projection
|
|
261
|
+
* records `status:'failed'` EXPLICITLY (R-2 / AC-09) so the caller never
|
|
262
|
+
* retries by inferring "no entry => try again".
|
|
263
|
+
*/
|
|
264
|
+
_uploadCubemapFromEquirect(world: World, sourceHandle: Handle<'EquirectAsset', 'shared'>, sourcePod: EquirectAsset): Promise<Result<Handle<'EquirectAsset', 'shared'>, AssetError | RhiError>>;
|
|
265
|
+
/**
|
|
266
|
+
* Upload `MeshAsset.vertices` + `MeshAsset.indices` to GPU buffers and cache
|
|
267
|
+
* the handles under the asset id. Synchronous; mirrors the pre-extraction
|
|
268
|
+
* `uploadMeshById` byte-for-byte. Returns the cached entry on success.
|
|
269
|
+
*/
|
|
270
|
+
private uploadMeshById;
|
|
271
|
+
/**
|
|
272
|
+
* Update an existing resident mesh without changing its shape or metadata.
|
|
273
|
+
* A shape change must use a new asset handle; this method never reallocates
|
|
274
|
+
* or silently changes the draw contract.
|
|
275
|
+
*/
|
|
276
|
+
private updateMeshById;
|
|
277
|
+
/**
|
|
278
|
+
* Internal explicit rebuild path used when an owner has deliberately
|
|
279
|
+
* replaced a mesh shape. Public callers should register a new MeshAsset
|
|
280
|
+
* handle so CPU recovery data and GPU residency remain one authority.
|
|
281
|
+
*/
|
|
282
|
+
private replaceMeshById;
|
|
283
|
+
/**
|
|
284
|
+
* Public surface for updating an existing unmanaged mesh handle's GPU buffer
|
|
285
|
+
* data in-place. The handle must have been made resident.
|
|
286
|
+
*/
|
|
287
|
+
updateMesh(handle: Handle<'MeshAsset', 'shared'>, newVertices: Float32Array, newIndices: Uint16Array | Uint32Array | undefined, worldId?: number, submeshes?: readonly Submesh[]): Result<void, MeshUpdateErrorType | RhiError>;
|
|
288
|
+
/** Explicit internal rebuild path; public callers should use a new asset handle. */
|
|
289
|
+
replaceMesh(handle: Handle<'MeshAsset', 'shared'>, newVertices: Float32Array, newIndices: Uint16Array | Uint32Array | undefined, worldId?: number, submeshes?: readonly Submesh[]): Result<void, MeshUpdateErrorType | RhiError>;
|
|
290
|
+
/** Upload a contiguous vertex range using the resident mesh stride. */
|
|
291
|
+
updateMeshVertexRange(handle: Handle<'MeshAsset', 'shared'>, vertices: Float32Array, firstVertex: number, vertexCount: number, worldId?: number): Result<void, MeshUpdateErrorType | RhiError>;
|
|
292
|
+
}
|
|
293
|
+
export {};
|
|
294
|
+
//# sourceMappingURL=gpu-resource-store.d.ts.map
|