@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,588 @@
|
|
|
1
|
+
import { probeVideoHighPerfUpload } from '@forgeax/engine-graphics-extras';
|
|
2
|
+
import {
|
|
3
|
+
type BindGroup,
|
|
4
|
+
RhiError,
|
|
5
|
+
type RhiRenderPassEncoder,
|
|
6
|
+
type TextureView,
|
|
7
|
+
} from '@forgeax/engine-rhi';
|
|
8
|
+
import type { Handle, PassKind, PassSelector } from '@forgeax/engine-types';
|
|
9
|
+
import { environmentConsumerSnapshot } from '../environment/generation';
|
|
10
|
+
import { isEnvironmentGpuBundle } from '../environment/gpu-bundle';
|
|
11
|
+
import { createHdrpUnifiedBindGroup, getOrCreateHdrpBuffers } from '../hdrp-buffers';
|
|
12
|
+
import { getOrCreateIblCache } from '../ibl/IblPipelineCache';
|
|
13
|
+
import { buildBeginRenderPassDescriptor } from '../pipeline-spec';
|
|
14
|
+
import type { _InternalRenderPipelineContext } from '../render-pipeline-context';
|
|
15
|
+
import { MATERIAL_PER_ENTITY_STRIDE } from '../render-system';
|
|
16
|
+
import type { MaterialSnapshot } from '../render-system-extract';
|
|
17
|
+
import type { RenderRecordPhase } from '../renderer';
|
|
18
|
+
import { recordGeometryDraws } from './main-pass-geometry';
|
|
19
|
+
import {
|
|
20
|
+
buildPerSubmeshMaterialBg as buildPerSubmeshMaterialBgImpl,
|
|
21
|
+
detectNineSliceScaleTooSmall,
|
|
22
|
+
type PerSubmeshMaterialBgDeps,
|
|
23
|
+
residentTextureView,
|
|
24
|
+
writeMaterialSnapshotPayload,
|
|
25
|
+
} from './main-pass-material';
|
|
26
|
+
import { recordSpritePass } from './main-pass-sprite-draws';
|
|
27
|
+
import { buildMatchedRenderableIndices } from './shadow-pass';
|
|
28
|
+
|
|
29
|
+
const ZERO_SKYLIGHT_PAYLOAD = new Float32Array([0, 0, 0, 0, 0, 0, 0, 1]);
|
|
30
|
+
|
|
31
|
+
export type MainPassOptions = {
|
|
32
|
+
readonly colorViews?: readonly (TextureView | null)[];
|
|
33
|
+
readonly colorFormats?: readonly GPUTextureFormat[];
|
|
34
|
+
readonly depthView?: TextureView | null;
|
|
35
|
+
readonly passKind?: PassKind;
|
|
36
|
+
readonly clearColor?: readonly [number, number, number, number];
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* feat-20260529-rendergraph-pass-abstraction M4 / w13b: main forward
|
|
41
|
+
* (geometry) pass recording, extracted verbatim from recordFrame. Uses the
|
|
42
|
+
* SHARED frame encoder (c.encoder); the geometry + optional LDR sprite-split
|
|
43
|
+
* sub-pass write into geometryColorView (HDR target or swap-chain view).
|
|
44
|
+
* Driven by the render-graph 'main' pass execute closure.
|
|
45
|
+
*/
|
|
46
|
+
export function recordMainPass(
|
|
47
|
+
c: _InternalRenderPipelineContext,
|
|
48
|
+
selector?: PassSelector,
|
|
49
|
+
options?: MainPassOptions,
|
|
50
|
+
graphPass?: RhiRenderPassEncoder,
|
|
51
|
+
): void {
|
|
52
|
+
const {
|
|
53
|
+
runtime,
|
|
54
|
+
world,
|
|
55
|
+
store,
|
|
56
|
+
pipelineState,
|
|
57
|
+
encoder,
|
|
58
|
+
clear,
|
|
59
|
+
geometryColorView,
|
|
60
|
+
geometryDepthView,
|
|
61
|
+
validatedOrdered,
|
|
62
|
+
viewBindGroup,
|
|
63
|
+
meshBindGroup,
|
|
64
|
+
frameState,
|
|
65
|
+
bindGroupCounts,
|
|
66
|
+
skylight,
|
|
67
|
+
skylightCount,
|
|
68
|
+
skyboxActive,
|
|
69
|
+
splitLdrSprite,
|
|
70
|
+
msaaActive,
|
|
71
|
+
geometryColorResolveView,
|
|
72
|
+
dispatch,
|
|
73
|
+
hdrpClusterBindGroup,
|
|
74
|
+
materialSlotIndices,
|
|
75
|
+
materialSlots,
|
|
76
|
+
materialSlotOwners,
|
|
77
|
+
materialSlotCount,
|
|
78
|
+
} = c;
|
|
79
|
+
// bug-20260615 M3 / m3-1: sampleCount is threaded through every
|
|
80
|
+
// getMaterialShaderPipeline call site so the cache key / builder
|
|
81
|
+
// disambiguate count=1 vs count=4 PSOs. Derived from the per-camera
|
|
82
|
+
// msaaActive boolean (already on the context).
|
|
83
|
+
const sampleCount = msaaActive ? 4 : 1;
|
|
84
|
+
const passKind = options?.passKind ?? 'forward';
|
|
85
|
+
const colorViews = options?.colorViews ?? [geometryColorView];
|
|
86
|
+
const colorFormats = options?.colorFormats ?? [
|
|
87
|
+
(c.tonemapActive ? 'rgba16float' : pipelineState.colorAttachmentFormat) as GPUTextureFormat,
|
|
88
|
+
];
|
|
89
|
+
const targetDepthView = options?.depthView ?? geometryDepthView;
|
|
90
|
+
const clearColor = options?.clearColor ?? clear;
|
|
91
|
+
// feat-20260623-world-space-video-asset M4 / w17 (D-2 / AC-09): high-perf
|
|
92
|
+
// GPUExternalTexture upload availability for video sources, resolved by the
|
|
93
|
+
// explicit RhiCaps-based capability probe. The probe checks
|
|
94
|
+
// backendKind==='webgpu' AND `importExternalTexture` method presence; the
|
|
95
|
+
// latter is absent today (OOS-5), so this is false and the general
|
|
96
|
+
// copyExternalImageToTexture path (w16) is the sole route. The branch exists
|
|
97
|
+
// so the AC-09 two-path reserved hook is code-review-verifiable, not a TODO.
|
|
98
|
+
const videoHighPerfAvailable = probeVideoHighPerfUpload(runtime.device);
|
|
99
|
+
// feat-20260609-hdrp-cluster-fragment-ggx M4 / w16: HDRP active swaps the
|
|
100
|
+
// group(2) bindGroup for the unified 7-entry layout (mesh SSBO at binding 0
|
|
101
|
+
// + cluster 4 buffer at bindings 3..6). The dynamic offset
|
|
102
|
+
// (`i * MESH_PER_ENTITY_STRIDE`) stays valid because the unified BGL binds
|
|
103
|
+
// the SAME mesh SSBO at binding 0; the cluster-forward shader reads the
|
|
104
|
+
// cluster bindings off the rest of the layout. Plan D-1 (URP path zero
|
|
105
|
+
// change) is preserved — when `!isHdrpActive` the URP `meshBindGroup`
|
|
106
|
+
// path runs verbatim.
|
|
107
|
+
// feat-20260612-hdrp-ssao wiring fix: when the HDRP forward pass resolved a
|
|
108
|
+
// real `ssaoBlurred` view (stashed on ctx by the pass execute closure), build
|
|
109
|
+
// the unified group(2) bind group with that view at binding 7 so fs_main reads
|
|
110
|
+
// the actual occlusion factor instead of the 1x1 white fallback. The default
|
|
111
|
+
// `hdrpClusterBindGroup` (built ahead of graph.execute) always carries the
|
|
112
|
+
// fallback because the transient SSAO texture does not exist that early.
|
|
113
|
+
// Built per frame (the SSAO target is a graph transient, so no cross-frame
|
|
114
|
+
// cache); HDRP-only and SSAO-only, so URP and SSAO-off paths are untouched.
|
|
115
|
+
let hdrpSsaoBindGroup: BindGroup | null = null;
|
|
116
|
+
if (
|
|
117
|
+
frameState.isHdrpActive &&
|
|
118
|
+
hdrpClusterBindGroup !== null &&
|
|
119
|
+
c.hdrpSsaoBlurredView !== undefined
|
|
120
|
+
) {
|
|
121
|
+
const hdrpBuffers = getOrCreateHdrpBuffers(
|
|
122
|
+
runtime,
|
|
123
|
+
frameState.installedPipelineConfig?.clusterGrid,
|
|
124
|
+
);
|
|
125
|
+
if (hdrpBuffers !== null) {
|
|
126
|
+
hdrpSsaoBindGroup = createHdrpUnifiedBindGroup(
|
|
127
|
+
runtime,
|
|
128
|
+
hdrpBuffers,
|
|
129
|
+
pipelineState.meshStorageBuffer.buffer,
|
|
130
|
+
{ enabled: true, ssaoBlurredView: c.hdrpSsaoBlurredView },
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
const meshGroup2: BindGroup | null =
|
|
135
|
+
frameState.isHdrpActive && hdrpClusterBindGroup !== null
|
|
136
|
+
? (hdrpSsaoBindGroup ?? hdrpClusterBindGroup)
|
|
137
|
+
: meshBindGroup;
|
|
138
|
+
// ── Geometry (main colour) pass ──────────────────────────────────
|
|
139
|
+
// D-2: tracks whether the geometry pass was explicitly ended inside
|
|
140
|
+
// the `if (validatedOrdered.length > 0)` block (sprite split path),
|
|
141
|
+
// to avoid a double-end at the unconditional `pass.end()` below.
|
|
142
|
+
let geometryPassEnded = false;
|
|
143
|
+
// feat-20260531-skybox-env-background M2 / w8: condition main colour
|
|
144
|
+
// loadOp on skyboxActive (AC-05). When skybox is active, the skybox
|
|
145
|
+
// pass writes the far plane + cubemap colour to hdrColor before main;
|
|
146
|
+
// main must load (not clear) to composite geometry on top. Depth
|
|
147
|
+
// loadOp stays 'clear' -- skybox does not write depth, so main's
|
|
148
|
+
// depth test naturally covers skybox pixels with foreground geometry.
|
|
149
|
+
const mainColorLoadOp = skyboxActive ? 'load' : 'clear';
|
|
150
|
+
// feat-20260604 M2 / w9-w10: MSAA resolve placement. When MSAA is active the
|
|
151
|
+
// geometry pass writes a count=4 multisample target. The resolve to the
|
|
152
|
+
// single-sample output (LDR swap-chain view / HDR hdrColor) happens at the
|
|
153
|
+
// LAST pass that writes that multisample target: the main pass itself when
|
|
154
|
+
// there is no LDR sprite split, or the sprite sub-pass end when there is
|
|
155
|
+
// (F-1 -- geometry + sprites share one multisample texture; resolving at the
|
|
156
|
+
// main pass would drop the sprites drawn after). The sprite sub-pass is
|
|
157
|
+
// LDR-only, so under HDR the main pass always resolves.
|
|
158
|
+
const mainPassResolves =
|
|
159
|
+
passKind === 'forward' && msaaActive && geometryColorResolveView !== null && !splitLdrSprite;
|
|
160
|
+
// forward main pass: depth24plus-stencil8 auto-emits stencil ops via the
|
|
161
|
+
// helper's stencil-op gate (plan-strategy M4 R3/R5 stencil-op SSOT).
|
|
162
|
+
// mainColorLoadOp toggles between 'clear' and 'load' (skyboxActive case).
|
|
163
|
+
const pass: RhiRenderPassEncoder =
|
|
164
|
+
graphPass ??
|
|
165
|
+
encoder.beginRenderPass(
|
|
166
|
+
buildBeginRenderPassDescriptor(
|
|
167
|
+
{
|
|
168
|
+
colorFormats,
|
|
169
|
+
depthFormat: 'depth24plus-stencil8',
|
|
170
|
+
sampleCount: msaaActive ? 4 : 1,
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
colorViews,
|
|
174
|
+
depthView: targetDepthView,
|
|
175
|
+
...(mainPassResolves ? { resolveTargets: [geometryColorResolveView] } : {}),
|
|
176
|
+
},
|
|
177
|
+
passKind,
|
|
178
|
+
{
|
|
179
|
+
colorLoadOp: mainColorLoadOp,
|
|
180
|
+
clearColor: {
|
|
181
|
+
r: clearColor[0] ?? 0,
|
|
182
|
+
g: clearColor[1] ?? 0,
|
|
183
|
+
b: clearColor[2] ?? 0,
|
|
184
|
+
a: clearColor[3] ?? 1,
|
|
185
|
+
},
|
|
186
|
+
},
|
|
187
|
+
) as never,
|
|
188
|
+
);
|
|
189
|
+
|
|
190
|
+
// Geometry submission block: setPipeline + 4 bind groups + per-entity
|
|
191
|
+
// material uploads + drawIndexed.
|
|
192
|
+
|
|
193
|
+
// feat-20260609 M2: filter entities by pass selector.
|
|
194
|
+
let matchedIndices =
|
|
195
|
+
selector !== undefined ? buildMatchedRenderableIndices(dispatch, selector) : null;
|
|
196
|
+
|
|
197
|
+
if (validatedOrdered.length > 0) {
|
|
198
|
+
// The dynamic-offset stride is an engine buffer-alignment constraint. The
|
|
199
|
+
// bind-group range and written bytes below are owned by the derived
|
|
200
|
+
// material interface and may be smaller than that stride.
|
|
201
|
+
const MATERIAL_SLICE = MATERIAL_PER_ENTITY_STRIDE;
|
|
202
|
+
// feat-20260515 M3 / T-M3-05 (research F-6 fix): materialBindGroup now
|
|
203
|
+
// carries 3 entries -- the per-entity material UBO (binding 0,
|
|
204
|
+
// dynamic-offset retained from D-P9), the default sampler (binding 1,
|
|
205
|
+
// pipelineState.defaultSampler from createRenderer; research F-5
|
|
206
|
+
// linear min/mag/mipmap + repeat addressMode), and the texture-view
|
|
207
|
+
// (binding 2, resolved from MaterialSnapshot.baseColorTexture via
|
|
208
|
+
// AssetRegistry.getTextureGpuView when present, falling back to the
|
|
209
|
+
// pipelineState.fallbackTextureView 1x1 white pixel).
|
|
210
|
+
//
|
|
211
|
+
// The first validated renderable's material is sampled to choose the
|
|
212
|
+
// texture-view (M3 milestone simplification; M5 lifts this to
|
|
213
|
+
// per-entity slot writes once UV-driven sampling lands).
|
|
214
|
+
//
|
|
215
|
+
// feat-20260517-merge-mesh-renderer-material-renderer M3 / w10
|
|
216
|
+
// (this commit): the prior structural cast over `firstMaterial`
|
|
217
|
+
// (used to reach `baseColorTexture` before the snapshot carried
|
|
218
|
+
// it as a first-class field) is removed in favour of direct
|
|
219
|
+
// snapshot field access. `MaterialSnapshot` (extract-stage SSOT)
|
|
220
|
+
// already declares `baseColorTexture` (M2 / w6); record reads it
|
|
221
|
+
// directly with no asset registry round-trip and no cast --
|
|
222
|
+
// Pipeline Isolation: extract owns the asset to snapshot
|
|
223
|
+
// translation; record consumes the snapshot POD only (charter
|
|
224
|
+
// proposition 5 consistent abstraction; AC-07 reverse-grep gate
|
|
225
|
+
// `scripts/forgeax/check-render-record-no-material-asset-get.mjs`
|
|
226
|
+
// forbids both the cast pattern and any direct material asset
|
|
227
|
+
// typed-lookup regrowth in this file).
|
|
228
|
+
// bug-20260522-per-entity-material-texture-binding D-1/D-2:
|
|
229
|
+
// the pre-loop `firstMaterial` / `materialTextureView` / `
|
|
230
|
+
// baseMaterialEntries` / single shared `materialBindGroup` are
|
|
231
|
+
// removed. Each entity now creates its own per-entity material BG
|
|
232
|
+
// inside the draw loop, resolving binding=2 from its own
|
|
233
|
+
// `entry.source.material.baseColorTexture` (mirroring sprite path).
|
|
234
|
+
//
|
|
235
|
+
// feat-20260520-skylight-ibl-cubemap M3 round-4 / t48 amend: the
|
|
236
|
+
// 14-entry merged BG (7 material + 7 Skylight) is now assembled per
|
|
237
|
+
// entity inside the draw loop. The Skylight part stays scene-level
|
|
238
|
+
// (single `skylightResources` resolved once below); only the first 7
|
|
239
|
+
// material entries are rebuilt per-entity with the correct
|
|
240
|
+
// per-entity textureView at binding=2.
|
|
241
|
+
const skylightFallback = pipelineState.skylightFallback;
|
|
242
|
+
if (skylightFallback === null) {
|
|
243
|
+
throw new RhiError({
|
|
244
|
+
code: 'webgpu-runtime-error',
|
|
245
|
+
expected: 'pipelineState.skylightFallback != null when PBR pipeline is active',
|
|
246
|
+
hint: 'createRenderer must allocate skylightFallback alongside the PBR pipeline (D-5 round-4)',
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
// feat-20260520-skylight-ibl-cubemap M4 round-4 / t60 (D-5 round-4):
|
|
250
|
+
// select active vs fallback Skylight resources by `skylightCount` from
|
|
251
|
+
// the extract stage. Active path reaches into the per-device
|
|
252
|
+
// `IblPipelineCache` slots (irradianceView / prefilterView / brdfLutView)
|
|
253
|
+
// populated by the internal equirect-to-cubemap projection; fallback uses the
|
|
254
|
+
// 1x1-zero identity bundle that converges ambient to 0 (D-4 physical
|
|
255
|
+
// convergence -- no `if (hasSkylight)` shader branch).
|
|
256
|
+
// The samplers are reused from `skylightFallback.sampler` for both
|
|
257
|
+
// paths (linear / clamp-to-edge is correct for IBL cube + 2D LUT
|
|
258
|
+
// sampling either way). The intensity uniform is rewritten per-frame
|
|
259
|
+
// when active so `sampleIblSpecular * intensity` carries the user's
|
|
260
|
+
// Skylight.intensity value; fallback keeps intensity=0 (createSkylightFallback
|
|
261
|
+
// seed) so ambient = 0 even when the same buffer is shared.
|
|
262
|
+
let activeViews: { irr: unknown; pref: unknown; brdf: unknown } | undefined;
|
|
263
|
+
// Per-frame Skylight uniform: std140 32 B = [intensity, colorR, colorG,
|
|
264
|
+
// colorB, rotation quaternion]. Default to all-zero so a transition from "has Skylight" ->
|
|
265
|
+
// "no Skylight" does not leak the prior frame's ambient (intensity 0
|
|
266
|
+
// muzzles everything, including the white fallback irradiance cube).
|
|
267
|
+
runtime.device.queue.writeBuffer(
|
|
268
|
+
// biome-ignore lint/suspicious/noExplicitAny: opaque Buffer handle
|
|
269
|
+
skylightFallback.intensityBuffer as any,
|
|
270
|
+
0,
|
|
271
|
+
ZERO_SKYLIGHT_PAYLOAD,
|
|
272
|
+
);
|
|
273
|
+
const activeEnvironmentRecord =
|
|
274
|
+
frameState.environmentGeneration.candidate ?? frameState.environmentGeneration.active;
|
|
275
|
+
const activeEnvironmentBundle =
|
|
276
|
+
activeEnvironmentRecord !== undefined &&
|
|
277
|
+
isEnvironmentGpuBundle(activeEnvironmentRecord.handle)
|
|
278
|
+
? activeEnvironmentRecord.handle
|
|
279
|
+
: undefined;
|
|
280
|
+
const environmentSunSnapshot = environmentConsumerSnapshot(frameState.environmentGeneration);
|
|
281
|
+
if (environmentSunSnapshot !== undefined && activeEnvironmentBundle !== undefined) {
|
|
282
|
+
const sun = environmentSunSnapshot.direct;
|
|
283
|
+
runtime.device.queue.writeBuffer(
|
|
284
|
+
// biome-ignore lint/suspicious/noExplicitAny: opaque Buffer handle
|
|
285
|
+
skylightFallback.intensityBuffer as any,
|
|
286
|
+
0,
|
|
287
|
+
new Float32Array([1, sun.color[0] ?? 1, sun.color[1] ?? 1, sun.color[2] ?? 1, 0, 0, 0, 1]),
|
|
288
|
+
);
|
|
289
|
+
activeViews = {
|
|
290
|
+
irr: activeEnvironmentBundle.irradianceView,
|
|
291
|
+
pref: activeEnvironmentBundle.prefilterView,
|
|
292
|
+
brdf: skylightFallback.brdfLutView,
|
|
293
|
+
};
|
|
294
|
+
} else if (skylight !== undefined && skylightCount >= 1) {
|
|
295
|
+
// A Skylight exists. Write its intensity + color regardless of whether
|
|
296
|
+
// a cubemap is bound: with a cubemap the IBL views below light the
|
|
297
|
+
// ambient; WITHOUT one, the white fallback irradiance cube + this color
|
|
298
|
+
// give an instant solid-color ambient (downstream integration #4) with
|
|
299
|
+
// no async precompute. The white fallback only contributes when a
|
|
300
|
+
// Skylight is present because the zero-payload above sets intensity 0
|
|
301
|
+
// when no Skylight exists.
|
|
302
|
+
const [cr, cg, cb] = skylight.color;
|
|
303
|
+
const [qx, qy, qz, qw] = skylight.rotation;
|
|
304
|
+
const uniformPayload = new Float32Array([skylight.intensity, cr, cg, cb, qx, qy, qz, qw]);
|
|
305
|
+
runtime.device.queue.writeBuffer(
|
|
306
|
+
// biome-ignore lint/suspicious/noExplicitAny: opaque Buffer handle
|
|
307
|
+
skylightFallback.intensityBuffer as any,
|
|
308
|
+
0,
|
|
309
|
+
uniformPayload,
|
|
310
|
+
);
|
|
311
|
+
// biome-ignore lint/suspicious/noExplicitAny: device is the opaque RhiDevice
|
|
312
|
+
const cache = getOrCreateIblCache(runtime.device as any);
|
|
313
|
+
if (
|
|
314
|
+
cache.irradianceView !== undefined &&
|
|
315
|
+
cache.prefilterView !== undefined &&
|
|
316
|
+
cache.brdfLutView !== undefined
|
|
317
|
+
) {
|
|
318
|
+
activeViews = {
|
|
319
|
+
irr: cache.irradianceView,
|
|
320
|
+
pref: cache.prefilterView,
|
|
321
|
+
brdf: cache.brdfLutView,
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
const skylightResources =
|
|
326
|
+
activeViews !== undefined
|
|
327
|
+
? {
|
|
328
|
+
irradianceView: activeViews.irr as never,
|
|
329
|
+
irradianceSampler: skylightFallback.sampler,
|
|
330
|
+
prefilterView: activeViews.pref as never,
|
|
331
|
+
prefilterSampler: skylightFallback.sampler,
|
|
332
|
+
brdfLutView: activeViews.brdf as never,
|
|
333
|
+
brdfLutSampler: skylightFallback.sampler,
|
|
334
|
+
intensityBuffer: skylightFallback.intensityBuffer,
|
|
335
|
+
}
|
|
336
|
+
: {
|
|
337
|
+
irradianceView: skylightFallback.irradianceView,
|
|
338
|
+
irradianceSampler: skylightFallback.sampler,
|
|
339
|
+
prefilterView: skylightFallback.prefilterView,
|
|
340
|
+
prefilterSampler: skylightFallback.sampler,
|
|
341
|
+
brdfLutView: skylightFallback.brdfLutView,
|
|
342
|
+
brdfLutSampler: skylightFallback.sampler,
|
|
343
|
+
intensityBuffer: skylightFallback.intensityBuffer,
|
|
344
|
+
};
|
|
345
|
+
// Per-entity material uploads (D-P9 retained path). The payload is derived
|
|
346
|
+
// from each material's effective paramSchema; engine-owned resources bind
|
|
347
|
+
// separately and never add a second layout owner here.
|
|
348
|
+
//
|
|
349
|
+
// Material snapshots are interned by extract-owned identity before this
|
|
350
|
+
// pass. Repeated scene instances therefore share one 256-byte UBO slot;
|
|
351
|
+
// materialSlotIndices maps each authored submesh material to that slot.
|
|
352
|
+
// feat-city-glb Bug 5 (per-submesh transparency): shared per-submesh
|
|
353
|
+
// material bind-group assembly, called by BOTH the geometry pass and the
|
|
354
|
+
// LDR blend sub-pass so a transparent PBR submesh binds the identical
|
|
355
|
+
// metallic/roughness/normal/emissive/occlusion + Skylight layout
|
|
356
|
+
// the geometry pass uses (the sub-pass previously bound a sprite-only BG,
|
|
357
|
+
// which cannot render a PBR decal). Captures only frame-stable closure
|
|
358
|
+
// state; the caller passes the per-submesh material snapshot + entityKey
|
|
359
|
+
// (for video texture routing) and sets the dynamic UBO offset itself.
|
|
360
|
+
const perSubmeshMaterialBgDeps: PerSubmeshMaterialBgDeps = {
|
|
361
|
+
runtime,
|
|
362
|
+
pipelineState,
|
|
363
|
+
world,
|
|
364
|
+
store,
|
|
365
|
+
materialSlice: MATERIAL_SLICE,
|
|
366
|
+
videoHighPerfAvailable,
|
|
367
|
+
skylightResources,
|
|
368
|
+
materialBgShared: frameState.materialBgShared,
|
|
369
|
+
materialBgAssemblyCache: c.materialBgAssemblyCache,
|
|
370
|
+
bindGroupCounts,
|
|
371
|
+
};
|
|
372
|
+
const buildPerSubmeshMaterialBg = (
|
|
373
|
+
submeshMaterial: MaterialSnapshot,
|
|
374
|
+
entityKey: number,
|
|
375
|
+
): BindGroup =>
|
|
376
|
+
buildPerSubmeshMaterialBgImpl(perSubmeshMaterialBgDeps, submeshMaterial, entityKey);
|
|
377
|
+
|
|
378
|
+
const cachedMaterialUboPayload = c.materialUboPayloadCache;
|
|
379
|
+
let materialUboPayload: Uint8Array;
|
|
380
|
+
if (
|
|
381
|
+
cachedMaterialUboPayload?.materialSlots === materialSlots &&
|
|
382
|
+
cachedMaterialUboPayload.materialSlotCount === materialSlotCount &&
|
|
383
|
+
cachedMaterialUboPayload.materialResourceEpoch === store.materialResourceEpoch
|
|
384
|
+
) {
|
|
385
|
+
materialUboPayload = cachedMaterialUboPayload.payload;
|
|
386
|
+
} else {
|
|
387
|
+
materialUboPayload = new Uint8Array(materialSlotCount * MATERIAL_PER_ENTITY_STRIDE);
|
|
388
|
+
const invalidMaterialSlots = new Set<number>();
|
|
389
|
+
for (let materialSlot = 0; materialSlot < materialSlots.length; materialSlot += 1) {
|
|
390
|
+
const mat = materialSlots[materialSlot];
|
|
391
|
+
const entry = validatedOrdered[materialSlotOwners[materialSlot] ?? -1];
|
|
392
|
+
if (mat === undefined || entry === undefined) continue;
|
|
393
|
+
const payload = writeMaterialSnapshotPayload(
|
|
394
|
+
mat,
|
|
395
|
+
MATERIAL_PER_ENTITY_STRIDE,
|
|
396
|
+
runtime.paramSchemaProjectionCensus,
|
|
397
|
+
);
|
|
398
|
+
if (!payload.ok) {
|
|
399
|
+
invalidMaterialSlots.add(materialSlot);
|
|
400
|
+
runtime.errorRegistry.fire(payload.error as never);
|
|
401
|
+
continue;
|
|
402
|
+
}
|
|
403
|
+
const materialShaderId = mat.materialShaderId;
|
|
404
|
+
const baseColorTextureHandle = mat.baseColorTexture as
|
|
405
|
+
| Handle<'TextureAsset', 'shared'>
|
|
406
|
+
| undefined;
|
|
407
|
+
if (baseColorTextureHandle !== undefined) {
|
|
408
|
+
const baseColorView = residentTextureView(world, store, runtime, baseColorTextureHandle);
|
|
409
|
+
if (baseColorView === undefined) {
|
|
410
|
+
const rawId = baseColorTextureHandle as unknown as number;
|
|
411
|
+
if (!frameState.warnedMissingBaseColorTextureHandles.has(rawId)) {
|
|
412
|
+
frameState.warnedMissingBaseColorTextureHandles.add(rawId);
|
|
413
|
+
console.warn(
|
|
414
|
+
`[forgeax] baseColor texture ${rawId} missing GPU view, skipping draw (shader=${materialShaderId ?? '<none>'} entityIndex=${entry.renderableIndex})`,
|
|
415
|
+
);
|
|
416
|
+
}
|
|
417
|
+
runtime.errorRegistry.fire(
|
|
418
|
+
new RhiError({
|
|
419
|
+
code: 'asset-not-registered',
|
|
420
|
+
expected: 'material baseColor TextureAsset uploaded to GPU',
|
|
421
|
+
hint: 'register + uploadTexture the baseColor texture before draw([world], { cameraOwner: 0, resourceOwner: 0 }); the affected material draw is skipped until then',
|
|
422
|
+
detail: { assetHandle: rawId },
|
|
423
|
+
}),
|
|
424
|
+
);
|
|
425
|
+
invalidMaterialSlots.add(materialSlot);
|
|
426
|
+
continue;
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
materialUboPayload.set(payload.value, materialSlot * MATERIAL_PER_ENTITY_STRIDE);
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
// Material UBO slots can share one snapshot identity, but nine-slice
|
|
433
|
+
// validity depends on each entity's transform. Preserve diagnostics per
|
|
434
|
+
// renderable instead of inheriting the first owner of a shared slot.
|
|
435
|
+
for (const entry of validatedOrdered) {
|
|
436
|
+
const mat = entry.source.material;
|
|
437
|
+
const materialShaderId = mat.materialShaderId;
|
|
438
|
+
if (materialShaderId !== 'forgeax::sprite' && materialShaderId !== 'forgeax::sprite-lit')
|
|
439
|
+
continue;
|
|
440
|
+
const slicesAndMode = mat.paramSnapshot?.slicesAndMode as readonly number[] | undefined;
|
|
441
|
+
if (slicesAndMode === undefined || slicesAndMode.length < 4) continue;
|
|
442
|
+
const slicesArr: readonly [number, number, number, number] = [
|
|
443
|
+
slicesAndMode[0] ?? 0,
|
|
444
|
+
slicesAndMode[1] ?? 0,
|
|
445
|
+
slicesAndMode[2] ?? 0,
|
|
446
|
+
slicesAndMode[3] ?? 0,
|
|
447
|
+
];
|
|
448
|
+
if (slicesArr[0] === 0 && slicesArr[1] === 0 && slicesArr[2] === 0 && slicesArr[3] === 0)
|
|
449
|
+
continue;
|
|
450
|
+
detectNineSliceScaleTooSmall(
|
|
451
|
+
entry.source.transform.world,
|
|
452
|
+
slicesArr,
|
|
453
|
+
entry.renderableIndex,
|
|
454
|
+
frameState.warnedNineSliceScaleEntities,
|
|
455
|
+
runtime.metrics,
|
|
456
|
+
);
|
|
457
|
+
}
|
|
458
|
+
if (invalidMaterialSlots.size === 0) {
|
|
459
|
+
c.materialUboPayloadCache = {
|
|
460
|
+
materialSlots,
|
|
461
|
+
materialSlotCount,
|
|
462
|
+
materialResourceEpoch: store.materialResourceEpoch,
|
|
463
|
+
payload: materialUboPayload,
|
|
464
|
+
};
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
const recordableIndices = new Set<number>();
|
|
468
|
+
for (let index = 0; index < validatedOrdered.length; index += 1) {
|
|
469
|
+
const entry = validatedOrdered[index];
|
|
470
|
+
if (entry === undefined) continue;
|
|
471
|
+
const slots = materialSlotIndices[index] ?? [];
|
|
472
|
+
if (slots.some((slot) => invalidMaterialSlots.has(slot))) continue;
|
|
473
|
+
if (matchedIndices === null || matchedIndices.has(entry.renderableIndex)) {
|
|
474
|
+
recordableIndices.add(entry.renderableIndex);
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
if (invalidMaterialSlots.size > 0 || matchedIndices !== null) {
|
|
478
|
+
matchedIndices = recordableIndices;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
// All material slots are staged before the first geometry draw. One
|
|
483
|
+
// stride-shaped upload preserves every dynamic offset while avoiding one
|
|
484
|
+
// queue call per material; the RHI still validates alignment and bounds at
|
|
485
|
+
// this single owner-level write boundary.
|
|
486
|
+
const materialUboUpload = runtime.device.queue.writeBuffer(
|
|
487
|
+
pipelineState.materialUniformBuffer.buffer,
|
|
488
|
+
0,
|
|
489
|
+
materialUboPayload,
|
|
490
|
+
);
|
|
491
|
+
if (!materialUboUpload.ok) throw materialUboUpload.error;
|
|
492
|
+
|
|
493
|
+
// Static material resources are a property of the frame-local material
|
|
494
|
+
// slot, not of each submesh draw. Resolve them once here so the geometry
|
|
495
|
+
// loop only selects a prepared binding. Video fields remain entity-bound:
|
|
496
|
+
// their current frame view is keyed by entityKey and must be resolved at
|
|
497
|
+
// the draw site.
|
|
498
|
+
const preparedMaterialBindGroups = new Array<BindGroup | undefined>(materialSlotCount);
|
|
499
|
+
for (let materialSlot = 0; materialSlot < materialSlotCount; materialSlot += 1) {
|
|
500
|
+
const material = materialSlots[materialSlot];
|
|
501
|
+
if (material === undefined || (material.videoTextureFields?.size ?? 0) > 0) continue;
|
|
502
|
+
const owner = validatedOrdered[materialSlotOwners[materialSlot] ?? -1];
|
|
503
|
+
if (owner === undefined) continue;
|
|
504
|
+
preparedMaterialBindGroups[materialSlot] = buildPerSubmeshMaterialBg(
|
|
505
|
+
material,
|
|
506
|
+
owner.source.entityKey,
|
|
507
|
+
);
|
|
508
|
+
}
|
|
509
|
+
const resolveMaterialBindGroup = (
|
|
510
|
+
materialSlot: number,
|
|
511
|
+
material: MaterialSnapshot,
|
|
512
|
+
entityKey: number,
|
|
513
|
+
): BindGroup =>
|
|
514
|
+
preparedMaterialBindGroups[materialSlot] ?? buildPerSubmeshMaterialBg(material, entityKey);
|
|
515
|
+
|
|
516
|
+
pass.setBindGroup(0, viewBindGroup as BindGroup);
|
|
517
|
+
|
|
518
|
+
// Track which (mesh-vertex-buffer, mesh-index-buffer, pipeline) combo
|
|
519
|
+
// was last bound so consecutive entities sharing the same combo skip
|
|
520
|
+
// the redundant rebinds (cheap GPU cost; net wins on workloads where
|
|
521
|
+
// most entities share BUILTIN_CUBE + unlit). Initial nulls force the
|
|
522
|
+
// first iteration to bind unconditionally.
|
|
523
|
+
// M-3 / w12: vertexBuffer/indexBuffer state locals migrate to GpuBuffer.
|
|
524
|
+
if (passKind !== 'forward' || !c.gpuDrivenOwnsAllForwardItems) {
|
|
525
|
+
const recordGeometry = (): void => {
|
|
526
|
+
recordGeometryDraws(
|
|
527
|
+
c,
|
|
528
|
+
pass,
|
|
529
|
+
matchedIndices,
|
|
530
|
+
materialSlotIndices,
|
|
531
|
+
sampleCount,
|
|
532
|
+
meshGroup2,
|
|
533
|
+
resolveMaterialBindGroup,
|
|
534
|
+
passKind,
|
|
535
|
+
);
|
|
536
|
+
};
|
|
537
|
+
if (c.profilePhase === undefined) {
|
|
538
|
+
recordGeometry();
|
|
539
|
+
} else {
|
|
540
|
+
const passName =
|
|
541
|
+
passKind === 'deferred'
|
|
542
|
+
? 'g-buffer'
|
|
543
|
+
: passKind === 'temporal'
|
|
544
|
+
? 'scene-temporal'
|
|
545
|
+
: 'forward';
|
|
546
|
+
c.profilePhase(
|
|
547
|
+
`record/graph-execute/${passName}/geometry-loop` as RenderRecordPhase,
|
|
548
|
+
recordGeometry,
|
|
549
|
+
);
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
// D-2: LDR sprite pass. Runs after the geometry pass when there are
|
|
554
|
+
// sprite entities in the draw list and the LDR path is active.
|
|
555
|
+
// The geometry pass used the bgra8unorm-srgb sRGB view (hardware sRGB
|
|
556
|
+
// encoding for unlit/standard/pbr output). The sprite pass uses the
|
|
557
|
+
// bgra8unorm storage view (loadOp=load) so the sprite LDR pipeline
|
|
558
|
+
// (target=bgra8unorm, blend=premultiplied-alpha) can write over the
|
|
559
|
+
// already-encoded geometry pixels. Depth is loaded from the geometry
|
|
560
|
+
// pass so sprite-vs-mesh occlusion (depthCompare=less-equal) is
|
|
561
|
+
// preserved (plan-strategy §2 D-2 + §4 R-4).
|
|
562
|
+
if (passKind === 'forward') {
|
|
563
|
+
geometryPassEnded = recordSpritePass(
|
|
564
|
+
c,
|
|
565
|
+
pass,
|
|
566
|
+
matchedIndices,
|
|
567
|
+
materialSlotIndices,
|
|
568
|
+
sampleCount,
|
|
569
|
+
resolveMaterialBindGroup,
|
|
570
|
+
skylightResources,
|
|
571
|
+
graphPass,
|
|
572
|
+
);
|
|
573
|
+
}
|
|
574
|
+
} // end if (validatedOrdered.length > 0) -- Case E falls through to pass.end()
|
|
575
|
+
|
|
576
|
+
if (!geometryPassEnded && graphPass === undefined) {
|
|
577
|
+
pass.end();
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
export function encodeMainPass(
|
|
582
|
+
c: _InternalRenderPipelineContext,
|
|
583
|
+
pass: RhiRenderPassEncoder,
|
|
584
|
+
selector?: PassSelector,
|
|
585
|
+
options?: MainPassOptions,
|
|
586
|
+
): void {
|
|
587
|
+
recordMainPass(c, selector, options, pass);
|
|
588
|
+
}
|