@forgeax/engine-render 0.1.7 → 0.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +140 -2
- package/dist/.tsbuildinfo +1 -1
- package/dist/assembly/backend-contract.d.ts +12 -0
- package/dist/assembly/backend-contract.d.ts.map +1 -1
- package/dist/assembly/factory.d.ts +12 -2
- package/dist/assembly/factory.d.ts.map +1 -1
- package/dist/assembly/host-contract.d.ts +4 -0
- package/dist/assembly/host-contract.d.ts.map +1 -1
- package/dist/assembly/renderer-frame-transaction.d.ts +39 -0
- package/dist/assembly/renderer-frame-transaction.d.ts.map +1 -0
- package/dist/assembly/renderer-inspection.d.ts +22 -0
- package/dist/assembly/renderer-inspection.d.ts.map +1 -0
- package/dist/assembly/renderer-lifecycle.d.ts +4 -0
- package/dist/assembly/renderer-lifecycle.d.ts.map +1 -0
- package/dist/authoring.mjs +4 -2
- package/dist/authoring.mjs.map +1 -1
- package/dist/chunk-FJ6P52EE.mjs +46 -0
- package/dist/chunk-FJ6P52EE.mjs.map +1 -0
- package/dist/chunk-IPXCABEP.mjs +73 -0
- package/dist/chunk-IPXCABEP.mjs.map +1 -0
- package/dist/chunk-JDWARUOI.mjs +44 -0
- package/dist/chunk-JDWARUOI.mjs.map +1 -0
- package/dist/{chunk-YEJIUW7D.mjs → chunk-LOSO4CTV.mjs} +296 -547
- package/dist/chunk-LOSO4CTV.mjs.map +1 -0
- package/dist/chunk-PCHBPYML.mjs +385 -0
- package/dist/chunk-PCHBPYML.mjs.map +1 -0
- package/dist/chunk-RJRUS55L.mjs +9323 -0
- package/dist/chunk-RJRUS55L.mjs.map +1 -0
- package/dist/chunk-RXZ3RGOU.mjs +53 -0
- package/dist/chunk-RXZ3RGOU.mjs.map +1 -0
- package/dist/{chunk-CQXZC5XI.mjs → chunk-VFPLTKCU.mjs} +79 -69
- package/dist/chunk-VFPLTKCU.mjs.map +1 -0
- package/dist/chunk-YTQ5C7YQ.mjs +584 -0
- package/dist/chunk-YTQ5C7YQ.mjs.map +1 -0
- package/dist/components/atmosphere.d.ts +9 -0
- package/dist/components/atmosphere.d.ts.map +1 -0
- package/dist/components/camera.d.ts +2 -1
- package/dist/components/camera.d.ts.map +1 -1
- package/dist/components/fog.d.ts +8 -0
- package/dist/components/fog.d.ts.map +1 -0
- package/dist/components/index.d.ts +3 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/motion-blur.d.ts +7 -0
- package/dist/components/motion-blur.d.ts.map +1 -0
- package/dist/construct-renderer.d.ts +2 -2
- package/dist/construct-renderer.d.ts.map +1 -1
- package/dist/construct-renderer.mjs +10914 -16392
- package/dist/construct-renderer.mjs.map +1 -1
- package/dist/device/device-scope.d.ts +4 -0
- package/dist/device/device-scope.d.ts.map +1 -1
- package/dist/environment/frame.d.ts +60 -0
- package/dist/environment/frame.d.ts.map +1 -0
- package/dist/environment/generation.d.ts +21 -0
- package/dist/environment/generation.d.ts.map +1 -0
- package/dist/environment/graph.d.ts +4 -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 +39 -0
- package/dist/environment/lifecycle.d.ts.map +1 -0
- package/dist/environment/signature.d.ts +25 -0
- package/dist/environment/signature.d.ts.map +1 -0
- package/dist/errors/render.d.ts +136 -1
- package/dist/errors/render.d.ts.map +1 -1
- package/dist/extract/camera.d.ts +5 -0
- package/dist/extract/camera.d.ts.map +1 -0
- package/dist/extract/environment.d.ts +74 -0
- package/dist/extract/environment.d.ts.map +1 -0
- package/dist/extract/visibility.d.ts +1 -1
- package/dist/extract/visibility.d.ts.map +1 -1
- package/dist/features/host.d.ts +9 -2
- package/dist/features/host.d.ts.map +1 -1
- package/dist/features/motion-blur/motion-blur-feature.d.ts +16 -0
- package/dist/features/motion-blur/motion-blur-feature.d.ts.map +1 -0
- package/dist/features/motion-blur/motion-blur-params.d.ts +25 -0
- package/dist/features/motion-blur/motion-blur-params.d.ts.map +1 -0
- package/dist/features/plan.d.ts +17 -2
- package/dist/features/plan.d.ts.map +1 -1
- package/dist/features/prepared-gpu-work.d.ts +3 -1
- package/dist/features/prepared-gpu-work.d.ts.map +1 -1
- package/dist/features/prepared-graphics.d.ts +2 -1
- package/dist/features/prepared-graphics.d.ts.map +1 -1
- package/dist/features/render-graph-raster.d.ts +2 -1
- package/dist/features/render-graph-raster.d.ts.map +1 -1
- package/dist/features/targets.d.ts +3 -0
- package/dist/features/targets.d.ts.map +1 -1
- package/dist/features/types.d.ts +12 -0
- package/dist/features/types.d.ts.map +1 -1
- package/dist/fullscreen-post-process-pass.d.ts +7 -1
- package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
- package/dist/gpu-scene.d.ts +2 -0
- package/dist/gpu-scene.d.ts.map +1 -1
- package/dist/ibl/skylight-bind-group.d.ts +5 -6
- package/dist/ibl/skylight-bind-group.d.ts.map +1 -1
- package/dist/index.d.ts +17 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +6 -4
- package/dist/index.mjs.map +1 -1
- package/dist/inspection-types.d.ts +43 -1
- package/dist/inspection-types.d.ts.map +1 -1
- package/dist/internal.d.ts +2 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.mjs +2 -0
- package/dist/materials.d.ts +22 -0
- package/dist/materials.d.ts.map +1 -1
- package/dist/pbr-pipeline.d.ts +10 -6
- package/dist/pbr-pipeline.d.ts.map +1 -1
- package/dist/pipeline/standard-forward-lane.d.ts.map +1 -1
- package/dist/pipeline/standard-pipeline.d.ts +3 -0
- package/dist/pipeline/standard-pipeline.d.ts.map +1 -1
- package/dist/pipeline/standard-post.d.ts +48 -0
- package/dist/pipeline/standard-post.d.ts.map +1 -0
- package/dist/pipeline/standard-profile.d.ts +3 -6
- package/dist/pipeline/standard-profile.d.ts.map +1 -1
- package/dist/pipeline-builder.d.ts +18 -0
- package/dist/pipeline-builder.d.ts.map +1 -1
- package/dist/pipeline-spec.d.ts.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/record/frame-snapshot.d.ts +100 -5
- package/dist/record/frame-snapshot.d.ts.map +1 -1
- package/dist/record/frame-targets.d.ts.map +1 -1
- package/dist/record/frame.d.ts +4 -2
- package/dist/record/frame.d.ts.map +1 -1
- package/dist/record/main-pass-geometry.d.ts +11 -0
- package/dist/record/main-pass-geometry.d.ts.map +1 -1
- package/dist/record/main-pass-material.d.ts +8 -5
- package/dist/record/main-pass-material.d.ts.map +1 -1
- package/dist/record/main-pass-sprite-draws.d.ts +8 -1
- package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
- package/dist/record/main-pass.d.ts +2 -0
- package/dist/record/main-pass.d.ts.map +1 -1
- package/dist/record/mesh-ssbo.d.ts.map +1 -1
- package/dist/record/render-context.d.ts +76 -18
- package/dist/record/render-context.d.ts.map +1 -1
- package/dist/record/shadow-pass.d.ts.map +1 -1
- package/dist/record/skybox-post-pass.d.ts +1 -11
- package/dist/record/skybox-post-pass.d.ts.map +1 -1
- package/dist/record/typed-frame-graph.d.ts +26 -2
- package/dist/record/typed-frame-graph.d.ts.map +1 -1
- package/dist/record/view-ubo.d.ts +4 -1
- package/dist/record/view-ubo.d.ts.map +1 -1
- package/dist/render-contract.d.ts +92 -8
- package/dist/render-contract.d.ts.map +1 -1
- package/dist/render-graph-primitives.d.ts.map +1 -1
- package/dist/render-pipeline.d.ts +50 -6
- package/dist/render-pipeline.d.ts.map +1 -1
- package/dist/render-system-extract.d.ts +29 -5
- package/dist/render-system-extract.d.ts.map +1 -1
- package/dist/render-system.d.ts +23 -4
- package/dist/render-system.d.ts.map +1 -1
- package/dist/scene/render-scene.d.ts +36 -2
- package/dist/scene/render-scene.d.ts.map +1 -1
- package/dist/temporal/coverage.d.ts +42 -0
- package/dist/temporal/coverage.d.ts.map +1 -0
- package/dist/temporal/frame-coordinator.d.ts +99 -0
- package/dist/temporal/frame-coordinator.d.ts.map +1 -0
- package/dist/temporal/gpu.d.ts +39 -0
- package/dist/temporal/gpu.d.ts.map +1 -0
- package/dist/temporal/history.d.ts +37 -0
- package/dist/temporal/history.d.ts.map +1 -0
- package/dist/temporal/index.d.ts +7 -0
- package/dist/temporal/index.d.ts.map +1 -0
- package/dist/temporal/index.mjs +8 -0
- package/dist/temporal/index.mjs.map +1 -0
- package/dist/temporal/inspection.d.ts +36 -0
- package/dist/temporal/inspection.d.ts.map +1 -0
- package/dist/temporal/scene-data-catalog.d.ts +48 -0
- package/dist/temporal/scene-data-catalog.d.ts.map +1 -0
- package/dist/temporal/scene-data.d.ts +43 -0
- package/dist/temporal/scene-data.d.ts.map +1 -0
- package/dist/temporal/standard-scene-data.d.ts +61 -0
- package/dist/temporal/standard-scene-data.d.ts.map +1 -0
- package/dist/temporal/taa-history-resources.d.ts +22 -0
- package/dist/temporal/taa-history-resources.d.ts.map +1 -0
- package/dist/temporal/taa-history-store.d.ts +27 -0
- package/dist/temporal/taa-history-store.d.ts.map +1 -0
- package/dist/temporal/taa-resolve.d.ts +15 -0
- package/dist/temporal/taa-resolve.d.ts.map +1 -0
- package/dist/temporal/temporal-view.d.ts +40 -0
- package/dist/temporal/temporal-view.d.ts.map +1 -0
- package/dist/temporal/transaction.d.ts +9 -0
- package/dist/temporal/transaction.d.ts.map +1 -0
- package/dist/temporal/view.d.ts +56 -0
- package/dist/temporal/view.d.ts.map +1 -0
- package/dist/transmission/backdrop.d.ts +147 -0
- package/dist/transmission/backdrop.d.ts.map +1 -0
- package/dist/transmission/inspection.d.ts +57 -0
- package/dist/transmission/inspection.d.ts.map +1 -0
- package/dist/transmission/oracle.d.ts +42 -0
- package/dist/transmission/oracle.d.ts.map +1 -0
- package/dist/transmission/projection.d.ts +37 -0
- package/dist/transmission/projection.d.ts.map +1 -0
- package/dist/typed-render-graph-primitives.d.ts +25 -2
- package/dist/typed-render-graph-primitives.d.ts.map +1 -1
- package/package.json +24 -19
- package/src/__tests__/ai-user-cold-start.integration.test.ts +59 -0
- package/src/__tests__/ai-user-public-surface.test-d.ts +45 -0
- package/src/__tests__/bloom-exact-zero.unit.test.ts +202 -0
- package/src/__tests__/bloom-lifecycle.integration.test.ts +125 -0
- package/src/__tests__/construct-renderer-identity.unit.test.ts +4 -3
- package/src/__tests__/detached-inspection.integration.test.ts +177 -0
- package/src/__tests__/environment-fog-lanes.integration.test.ts +219 -0
- package/src/__tests__/environment-generation.integration.test.ts +141 -0
- package/src/__tests__/environment-selection.unit.test.ts +245 -0
- package/src/__tests__/factory-contract.integration.test.ts +1380 -9
- package/src/__tests__/frame-plan-contract.unit.test.ts +90 -0
- package/src/__tests__/fullscreen-feature-plan.unit.test.ts +7 -0
- package/src/__tests__/gpu-driven-production.integration.test.ts +74 -22
- package/src/__tests__/gpu-driven-view-graph.integration.test.ts +37 -0
- package/src/__tests__/gpu-scene.unit.test.ts +10 -0
- package/src/__tests__/injection-kind-owner.test-d.ts +2 -1
- package/src/__tests__/material-contract-inventory.unit.test.ts +62 -0
- package/src/__tests__/material-cooked-projection.unit.test.ts +18 -146
- package/src/__tests__/materials-transmission-validation.unit.test.ts +36 -0
- package/src/__tests__/morph-feature-plan.unit.test.ts +7 -0
- package/src/__tests__/motion-blur.pixel.integration.test.ts +121 -0
- package/src/__tests__/public-surface.test-d.ts +15 -1
- package/src/__tests__/render-error-code-owner.test-d.ts +9 -0
- package/src/__tests__/render-error-detail-ssot.test-d.ts +11 -2
- package/src/__tests__/render-error-exhaustive.test-d.ts +3 -0
- package/src/__tests__/render-feature-errors.unit.test.ts +33 -3
- package/src/__tests__/render-feature-gpu-work.integration.test.ts +44 -0
- package/src/__tests__/render-feature-plan.test-d.ts +22 -89
- package/src/__tests__/render-scene-projection.unit.test.ts +28 -0
- package/src/__tests__/render-temporal-environment-consumer.browser.test.ts +26 -0
- package/src/__tests__/render-temporal-environment-consumer.dawn.test.ts +21 -0
- package/src/__tests__/renderer-factory-material-contract.unit.test.ts +395 -1
- package/src/__tests__/renderer-frame-transaction.integration.test.ts +405 -0
- package/src/__tests__/renderer-lifecycle.integration.test.ts +22 -0
- package/src/__tests__/scene-data-catalog.unit.test.ts +59 -0
- package/src/__tests__/scene-data-consumer.integration.test.ts +67 -0
- package/src/__tests__/scene-data-contract.test-d.ts +35 -0
- package/src/__tests__/scene-data-inspection.unit.test.ts +41 -0
- package/src/__tests__/scene-data-public-surface.test-d.ts +34 -0
- package/src/__tests__/shader-manifest-fixture.ts +111 -0
- package/src/__tests__/skinned-shadow-caster.test.ts +102 -0
- package/src/__tests__/standard-clustered-pipeline.unit.test.ts +24 -3
- package/src/__tests__/standard-pipeline.dawn.test.ts +15 -0
- package/src/__tests__/standard-pipeline.integration.test.ts +543 -1
- package/src/__tests__/standard-profile-oracle.unit.test.ts +10 -2
- package/src/__tests__/standard-temporal-producer.integration.test.ts +35 -0
- package/src/__tests__/surface-configuration.unit.test.ts +211 -12
- package/src/__tests__/taa-transaction.integration.test.ts +30 -0
- package/src/__tests__/temporal-admission.integration.test.ts +40 -0
- package/src/__tests__/temporal-coverage.unit.test.ts +35 -0
- package/src/__tests__/temporal-demand.unit.test.ts +44 -0
- package/src/__tests__/temporal-frame-coordinator.unit.test.ts +64 -0
- package/src/__tests__/temporal-graph-topology.unit.test.ts +51 -0
- package/src/__tests__/temporal-history-lifecycle.unit.test.ts +170 -0
- package/src/__tests__/temporal-performance.integration.test.ts +615 -0
- package/src/__tests__/temporal-reset-matrix.unit.test.ts +97 -0
- package/src/__tests__/temporal-transaction.integration.test.ts +60 -0
- package/src/__tests__/temporal-view.unit.test.ts +152 -0
- package/src/__tests__/transmission-prewarm.unit.test.ts +93 -0
- package/src/__tests__/typed-pipeline-topology.unit.test.ts +230 -1
- package/src/__tests__/urp-pipeline-targets.unit.test.ts +25 -1
- package/src/__tests__/urp-pipeline.unit.test.ts +4 -3
- package/src/__tests__/visibility-extract.integration.test.ts +27 -1
- package/src/__tests__/visibility-producer-matrix.integration.test.ts +10 -0
- package/src/assembly/backend-contract.ts +47 -1
- package/src/assembly/factory.ts +1224 -505
- package/src/assembly/host-contract.ts +4 -0
- package/src/assembly/renderer-frame-transaction.ts +75 -0
- package/src/assembly/renderer-inspection.ts +112 -0
- package/src/assembly/renderer-lifecycle.ts +6 -0
- package/src/components/__tests__/motion-blur.unit.test.ts +14 -0
- package/src/components/__tests__/schema-contract.unit.test.ts +6 -1
- package/src/components/atmosphere.ts +10 -0
- package/src/components/camera.ts +2 -1
- package/src/components/fog.ts +9 -0
- package/src/components/index.ts +3 -0
- package/src/components/motion-blur.ts +8 -0
- package/src/construct-renderer.ts +40 -3
- package/src/device/device-scope.ts +15 -1
- package/src/environment/frame.ts +185 -0
- package/src/environment/generation.ts +23 -0
- package/src/environment/graph.ts +9 -0
- package/src/environment/inspection.ts +87 -0
- package/src/environment/lifecycle.ts +250 -0
- package/src/environment/signature.ts +55 -0
- package/src/errors/render.ts +285 -0
- package/src/extract/camera.ts +78 -0
- package/src/extract/environment.ts +171 -0
- package/src/extract/visibility.ts +38 -19
- package/src/features/host.ts +36 -5
- package/src/features/motion-blur/__tests__/motion-blur-feature.unit.test.ts +67 -0
- package/src/features/motion-blur/__tests__/motion-blur-params.unit.test.ts +53 -0
- package/src/features/motion-blur/motion-blur-feature.ts +119 -0
- package/src/features/motion-blur/motion-blur-params.ts +89 -0
- package/src/features/plan.ts +32 -3
- package/src/features/prepared-gpu-work.ts +21 -6
- package/src/features/prepared-graphics.ts +2 -1
- package/src/features/render-graph-raster.ts +2 -1
- package/src/features/targets.ts +24 -2
- package/src/features/types.ts +13 -0
- package/src/fullscreen-post-process-pass.ts +34 -4
- package/src/gpu-scene.ts +24 -0
- package/src/ibl/skylight-bind-group.ts +30 -38
- package/src/index.ts +66 -6
- package/src/inspection-types.ts +48 -0
- package/src/internal.ts +5 -0
- package/src/materials.ts +119 -24
- package/src/pbr-pipeline.ts +58 -19
- package/src/pipeline/standard-forward-lane.ts +158 -101
- package/src/pipeline/standard-pipeline.ts +156 -105
- package/src/pipeline/standard-post.ts +373 -0
- package/src/pipeline/standard-profile.ts +11 -11
- package/src/pipeline-builder.ts +102 -12
- package/src/pipeline-spec.ts +9 -0
- package/src/plugin.ts +2 -0
- package/src/record/__tests__/fullscreen-temporal-routing.unit.test.ts +25 -0
- package/src/record/__tests__/main-pass-geometry.unit.test.ts +47 -0
- package/src/record/__tests__/material-bg-cache.unit.test.ts +12 -1
- package/src/record/__tests__/material-pipeline-pending-cache.unit.test.ts +22 -0
- package/src/record/__tests__/sprite-material-abi.unit.test.ts +75 -0
- package/src/record/__tests__/standard-pbr-ubo-layout.unit.test.ts +67 -0
- package/src/record/__tests__/temporal-payload.unit.test.ts +164 -0
- package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +127 -0
- package/src/record/frame-snapshot.ts +129 -5
- package/src/record/frame-targets.ts +15 -6
- package/src/record/frame.ts +107 -3
- package/src/record/main-pass-geometry.ts +86 -40
- package/src/record/main-pass-material.ts +114 -66
- package/src/record/main-pass-sprite-draws.ts +78 -101
- package/src/record/main-pass.ts +77 -4
- package/src/record/mesh-ssbo.ts +22 -3
- package/src/record/render-context.ts +189 -23
- package/src/record/shadow-pass.ts +113 -23
- package/src/record/skybox-post-pass.ts +97 -41
- package/src/record/typed-frame-graph.ts +565 -26
- package/src/record/view-ubo.ts +52 -4
- package/src/render-contract.ts +109 -6
- package/src/render-graph-primitives.ts +18 -1
- package/src/render-pipeline.ts +100 -27
- package/src/render-system-extract.ts +193 -69
- package/src/render-system.ts +482 -41
- package/src/scene/render-scene.ts +250 -7
- package/src/temporal/__tests__/taa-history-resources.unit.test.ts +45 -0
- package/src/temporal/coverage.ts +76 -0
- package/src/temporal/frame-coordinator.ts +311 -0
- package/src/temporal/gpu.ts +287 -0
- package/src/temporal/history.ts +92 -0
- package/src/temporal/index.ts +6 -0
- package/src/temporal/inspection.ts +97 -0
- package/src/temporal/scene-data-catalog.ts +200 -0
- package/src/temporal/scene-data.ts +149 -0
- package/src/temporal/standard-scene-data.ts +182 -0
- package/src/temporal/taa-history-resources.ts +128 -0
- package/src/temporal/taa-history-store.ts +79 -0
- package/src/temporal/taa-resolve.ts +34 -0
- package/src/temporal/temporal-view.ts +169 -0
- package/src/temporal/transaction.ts +17 -0
- package/src/temporal/view.ts +161 -0
- package/src/transmission/__tests__/capability.unit.test.ts +83 -0
- package/src/transmission/__tests__/composition.integration.test.ts +161 -0
- package/src/transmission/__tests__/inspection.unit.test.ts +241 -0
- package/src/transmission/__tests__/lifecycle.integration.test.ts +96 -0
- package/src/transmission/__tests__/oracle.unit.test.ts +131 -0
- package/src/transmission/__tests__/projection.unit.test.ts +71 -0
- package/src/transmission/__tests__/standard-transmission.dawn.test.ts +438 -0
- package/src/transmission/__tests__/transmission-backdrop-topology.unit.test.ts +109 -0
- package/src/transmission/__tests__/transmission-backdrop.dawn.test.ts +105 -0
- package/src/transmission/backdrop.ts +572 -0
- package/src/transmission/inspection.ts +190 -0
- package/src/transmission/oracle.ts +141 -0
- package/src/transmission/projection.ts +83 -0
- package/src/typed-render-graph-primitives.ts +162 -9
- package/dist/__tests__/authoring-path.unit.test.d.ts +0 -2
- package/dist/__tests__/authoring-path.unit.test.d.ts.map +0 -1
- package/dist/__tests__/backend-selection-rhi-capture.test-d.d.ts +0 -2
- package/dist/__tests__/backend-selection-rhi-capture.test-d.d.ts.map +0 -1
- package/dist/__tests__/callback-inference.test-d.d.ts +0 -2
- package/dist/__tests__/callback-inference.test-d.d.ts.map +0 -1
- package/dist/__tests__/cluster-binner.test.d.ts +0 -2
- package/dist/__tests__/cluster-binner.test.d.ts.map +0 -1
- package/dist/__tests__/cluster-grid-default-surface.unit.test.d.ts +0 -2
- package/dist/__tests__/cluster-grid-default-surface.unit.test.d.ts.map +0 -1
- package/dist/__tests__/construct-renderer-identity.unit.test.d.ts +0 -2
- package/dist/__tests__/construct-renderer-identity.unit.test.d.ts.map +0 -1
- package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts +0 -2
- package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts.map +0 -1
- package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts +0 -2
- package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts.map +0 -1
- package/dist/__tests__/direct-extract-consumer-contract.test-d.d.ts +0 -2
- package/dist/__tests__/direct-extract-consumer-contract.test-d.d.ts.map +0 -1
- package/dist/__tests__/direct-light-snapshot.unit.test.d.ts +0 -2
- package/dist/__tests__/direct-light-snapshot.unit.test.d.ts.map +0 -1
- package/dist/__tests__/factory-contract.integration.test.d.ts +0 -2
- package/dist/__tests__/factory-contract.integration.test.d.ts.map +0 -1
- package/dist/__tests__/fallback-row-stride-surface.unit.test.d.ts +0 -2
- package/dist/__tests__/fallback-row-stride-surface.unit.test.d.ts.map +0 -1
- package/dist/__tests__/frame-observation.contract.test.d.ts +0 -2
- package/dist/__tests__/frame-observation.contract.test.d.ts.map +0 -1
- package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts +0 -2
- package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts.map +0 -1
- package/dist/__tests__/glyph-text-layout-recovery.unit.test.d.ts +0 -2
- package/dist/__tests__/glyph-text-layout-recovery.unit.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts +0 -6
- package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts.map +0 -1
- package/dist/__tests__/gpu-driven-indirect-raster.browser.test.d.ts +0 -2
- package/dist/__tests__/gpu-driven-indirect-raster.browser.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-driven-indirect-raster.dawn.test.d.ts +0 -2
- package/dist/__tests__/gpu-driven-indirect-raster.dawn.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-driven-production.integration.test.d.ts +0 -2
- package/dist/__tests__/gpu-driven-production.integration.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-driven-scaling.unit.test.d.ts +0 -2
- package/dist/__tests__/gpu-driven-scaling.unit.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts +0 -18
- package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts.map +0 -1
- package/dist/__tests__/gpu-driven-view-graph.integration.test.d.ts +0 -2
- package/dist/__tests__/gpu-driven-view-graph.integration.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-driven-view-reference.d.ts +0 -15
- package/dist/__tests__/gpu-driven-view-reference.d.ts.map +0 -1
- package/dist/__tests__/gpu-driven-view.browser.test.d.ts +0 -2
- package/dist/__tests__/gpu-driven-view.browser.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-driven-view.dawn.test.d.ts +0 -2
- package/dist/__tests__/gpu-driven-view.dawn.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-driven-view.unit.test.d.ts +0 -2
- package/dist/__tests__/gpu-driven-view.unit.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-resource-store-stride.unit.test.d.ts +0 -2
- package/dist/__tests__/gpu-resource-store-stride.unit.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts +0 -7
- package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts.map +0 -1
- package/dist/__tests__/gpu-scene-render-graph.browser.test.d.ts +0 -2
- package/dist/__tests__/gpu-scene-render-graph.browser.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-scene-render-graph.dawn.test.d.ts +0 -2
- package/dist/__tests__/gpu-scene-render-graph.dawn.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-scene-schema.unit.test.d.ts +0 -2
- package/dist/__tests__/gpu-scene-schema.unit.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-scene.dawn.test.d.ts +0 -2
- package/dist/__tests__/gpu-scene.dawn.test.d.ts.map +0 -1
- package/dist/__tests__/gpu-scene.unit.test.d.ts +0 -2
- package/dist/__tests__/gpu-scene.unit.test.d.ts.map +0 -1
- package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts +0 -2
- package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts.map +0 -1
- package/dist/__tests__/infinite-grid-no-vertex-probe.unit.test.d.ts +0 -2
- package/dist/__tests__/infinite-grid-no-vertex-probe.unit.test.d.ts.map +0 -1
- package/dist/__tests__/injection-kind-owner.test-d.d.ts +0 -2
- package/dist/__tests__/injection-kind-owner.test-d.d.ts.map +0 -1
- package/dist/__tests__/ktx2-basis-gpu-consumer.dawn.test.d.ts +0 -2
- package/dist/__tests__/ktx2-basis-gpu-consumer.dawn.test.d.ts.map +0 -1
- package/dist/__tests__/light-buffer-layout.unit.test.d.ts +0 -2
- package/dist/__tests__/light-buffer-layout.unit.test.d.ts.map +0 -1
- package/dist/__tests__/material-contract-inventory.unit.test.d.ts +0 -2
- package/dist/__tests__/material-contract-inventory.unit.test.d.ts.map +0 -1
- package/dist/__tests__/material-cooked-projection.unit.test.d.ts +0 -2
- package/dist/__tests__/material-cooked-projection.unit.test.d.ts.map +0 -1
- package/dist/__tests__/material-snapshot-mutation.integration.test.d.ts +0 -2
- package/dist/__tests__/material-snapshot-mutation.integration.test.d.ts.map +0 -1
- package/dist/__tests__/material-static-dynamic-route.unit.test.d.ts +0 -2
- package/dist/__tests__/material-static-dynamic-route.unit.test.d.ts.map +0 -1
- package/dist/__tests__/material-stride-surface.unit.test.d.ts +0 -2
- package/dist/__tests__/material-stride-surface.unit.test.d.ts.map +0 -1
- package/dist/__tests__/mesh-buffer-usage-surface.unit.test.d.ts +0 -2
- package/dist/__tests__/mesh-buffer-usage-surface.unit.test.d.ts.map +0 -1
- package/dist/__tests__/mesh-material-bindings.unit.test.d.ts +0 -2
- package/dist/__tests__/mesh-material-bindings.unit.test.d.ts.map +0 -1
- package/dist/__tests__/mesh-stride-surface.unit.test.d.ts +0 -2
- package/dist/__tests__/mesh-stride-surface.unit.test.d.ts.map +0 -1
- package/dist/__tests__/morph-culling-reentry.dawn.test.d.ts +0 -2
- package/dist/__tests__/morph-culling-reentry.dawn.test.d.ts.map +0 -1
- package/dist/__tests__/morph-feature-gpu-work.integration.test.d.ts +0 -2
- package/dist/__tests__/morph-feature-gpu-work.integration.test.d.ts.map +0 -1
- package/dist/__tests__/morph-feature-plan.unit.test.d.ts +0 -2
- package/dist/__tests__/morph-feature-plan.unit.test.d.ts.map +0 -1
- package/dist/__tests__/morph-visual-evidence.integration.test.d.ts +0 -2
- package/dist/__tests__/morph-visual-evidence.integration.test.d.ts.map +0 -1
- package/dist/__tests__/nineslice-handle-surface.unit.test.d.ts +0 -2
- package/dist/__tests__/nineslice-handle-surface.unit.test.d.ts.map +0 -1
- package/dist/__tests__/post-process-error-policy-owner.unit.test.d.ts +0 -2
- package/dist/__tests__/post-process-error-policy-owner.unit.test.d.ts.map +0 -1
- package/dist/__tests__/prepared-buffer-kind-owner.test-d.d.ts +0 -2
- package/dist/__tests__/prepared-buffer-kind-owner.test-d.d.ts.map +0 -1
- package/dist/__tests__/prepared-graphics-capability.unit.test.d.ts +0 -2
- package/dist/__tests__/prepared-graphics-capability.unit.test.d.ts.map +0 -1
- package/dist/__tests__/prepared-graphics-generation.unit.test.d.ts +0 -2
- package/dist/__tests__/prepared-graphics-generation.unit.test.d.ts.map +0 -1
- package/dist/__tests__/prepared-graphics-lifecycle.unit.test.d.ts +0 -2
- package/dist/__tests__/prepared-graphics-lifecycle.unit.test.d.ts.map +0 -1
- package/dist/__tests__/prepared-graphics-pipeline-warmup.unit.test.d.ts +0 -2
- package/dist/__tests__/prepared-graphics-pipeline-warmup.unit.test.d.ts.map +0 -1
- package/dist/__tests__/prepared-graphics-resolver.unit.test.d.ts +0 -2
- package/dist/__tests__/prepared-graphics-resolver.unit.test.d.ts.map +0 -1
- package/dist/__tests__/prepared-graphics-snapshot.unit.test.d.ts +0 -2
- package/dist/__tests__/prepared-graphics-snapshot.unit.test.d.ts.map +0 -1
- package/dist/__tests__/prepared-graphics-store.unit.test.d.ts +0 -2
- package/dist/__tests__/prepared-graphics-store.unit.test.d.ts.map +0 -1
- package/dist/__tests__/prepared-graphics-validation.unit.test.d.ts +0 -2
- package/dist/__tests__/prepared-graphics-validation.unit.test.d.ts.map +0 -1
- package/dist/__tests__/profiler-default-off.test.d.ts +0 -2
- package/dist/__tests__/profiler-default-off.test.d.ts.map +0 -1
- package/dist/__tests__/profiler-phase-catalog.test.d.ts +0 -2
- package/dist/__tests__/profiler-phase-catalog.test.d.ts.map +0 -1
- package/dist/__tests__/profiler-phase-integration.test.d.ts +0 -2
- package/dist/__tests__/profiler-phase-integration.test.d.ts.map +0 -1
- package/dist/__tests__/profiler-phase-token.test.d.ts +0 -2
- package/dist/__tests__/profiler-phase-token.test.d.ts.map +0 -1
- package/dist/__tests__/public-surface.test-d.d.ts +0 -2
- package/dist/__tests__/public-surface.test-d.d.ts.map +0 -1
- package/dist/__tests__/recover-error-policy-owner.unit.test.d.ts +0 -2
- package/dist/__tests__/recover-error-policy-owner.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-error-code-owner.test-d.d.ts +0 -2
- package/dist/__tests__/render-error-code-owner.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-error-detail-ssot.test-d.d.ts +0 -2
- package/dist/__tests__/render-error-detail-ssot.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-error-exhaustive.test-d.d.ts +0 -2
- package/dist/__tests__/render-error-exhaustive.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-assembly.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-assembly.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-context.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-context.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-contract.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-contract.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-diagnostics.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-diagnostics.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-docs.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-docs.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-errors.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-errors.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-gpu-work.integration.test.d.ts +0 -2
- package/dist/__tests__/render-feature-gpu-work.integration.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-plan.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-plan.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-plan.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-plan.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-prepared-diagnostics.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-prepared-diagnostics.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-prepared-errors.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-prepared-errors.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-prepared-graphics-isolation.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-prepared-graphics-isolation.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-prepared-graphics-negative.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-prepared-graphics-negative.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-prepared-graphics.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-prepared-graphics.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-prepared-graphics.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-prepared-graphics.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-public-surface.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-public-surface.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-retry.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-retry.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-scheduling.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-scheduling.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-stage-failed-policy-owner.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-stage-failed-policy-owner.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-stage-fault-recovery.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-stage-fault-recovery.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-visibility-context.test-d.d.ts +0 -2
- package/dist/__tests__/render-feature-visibility-context.test-d.d.ts.map +0 -1
- package/dist/__tests__/render-feature-visibility-context.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-visibility-context.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-feature-zero-work.unit.test.d.ts +0 -2
- package/dist/__tests__/render-feature-zero-work.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-graph-compute-raster-gpu.d.ts +0 -7
- package/dist/__tests__/render-graph-compute-raster-gpu.d.ts.map +0 -1
- package/dist/__tests__/render-graph-compute-raster.browser.test.d.ts +0 -2
- package/dist/__tests__/render-graph-compute-raster.browser.test.d.ts.map +0 -1
- package/dist/__tests__/render-graph-compute-raster.dawn.test.d.ts +0 -2
- package/dist/__tests__/render-graph-compute-raster.dawn.test.d.ts.map +0 -1
- package/dist/__tests__/render-graph-hzb-gpu.d.ts +0 -7
- package/dist/__tests__/render-graph-hzb-gpu.d.ts.map +0 -1
- package/dist/__tests__/render-graph-hzb.browser.test.d.ts +0 -2
- package/dist/__tests__/render-graph-hzb.browser.test.d.ts.map +0 -1
- package/dist/__tests__/render-graph-hzb.dawn.test.d.ts +0 -2
- package/dist/__tests__/render-graph-hzb.dawn.test.d.ts.map +0 -1
- package/dist/__tests__/render-graph-primitives.unit.test.d.ts +0 -2
- package/dist/__tests__/render-graph-primitives.unit.test.d.ts.map +0 -1
- package/dist/__tests__/render-graph-storage-indirect-gpu.d.ts +0 -12
- package/dist/__tests__/render-graph-storage-indirect-gpu.d.ts.map +0 -1
- package/dist/__tests__/render-graph-storage-indirect.browser.test.d.ts +0 -2
- package/dist/__tests__/render-graph-storage-indirect.browser.test.d.ts.map +0 -1
- package/dist/__tests__/render-graph-storage-indirect.dawn.test.d.ts +0 -2
- package/dist/__tests__/render-graph-storage-indirect.dawn.test.d.ts.map +0 -1
- package/dist/__tests__/render-scene-projection.unit.test.d.ts +0 -2
- package/dist/__tests__/render-scene-projection.unit.test.d.ts.map +0 -1
- package/dist/__tests__/renderer-factory-material-contract.unit.test.d.ts +0 -2
- package/dist/__tests__/renderer-factory-material-contract.unit.test.d.ts.map +0 -1
- package/dist/__tests__/renderer-lifecycle.integration.test.d.ts +0 -2
- package/dist/__tests__/renderer-lifecycle.integration.test.d.ts.map +0 -1
- package/dist/__tests__/rhi-backend-package-boundary.unit.test.d.ts +0 -2
- package/dist/__tests__/rhi-backend-package-boundary.unit.test.d.ts.map +0 -1
- package/dist/__tests__/scriptable-pack-consumer.test-d.d.ts +0 -2
- package/dist/__tests__/scriptable-pack-consumer.test-d.d.ts.map +0 -1
- package/dist/__tests__/shader-stage-surface.unit.test.d.ts +0 -2
- package/dist/__tests__/shader-stage-surface.unit.test.d.ts.map +0 -1
- package/dist/__tests__/ssao-config.unit.test.d.ts +0 -2
- package/dist/__tests__/ssao-config.unit.test.d.ts.map +0 -1
- package/dist/__tests__/ssao-kernel-surface.unit.test.d.ts +0 -2
- package/dist/__tests__/ssao-kernel-surface.unit.test.d.ts.map +0 -1
- package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts +0 -2
- package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts.map +0 -1
- package/dist/__tests__/standard-descriptors.test-d.d.ts +0 -2
- package/dist/__tests__/standard-descriptors.test-d.d.ts.map +0 -1
- package/dist/__tests__/standard-pipeline.dawn.test.d.ts +0 -2
- package/dist/__tests__/standard-pipeline.dawn.test.d.ts.map +0 -1
- package/dist/__tests__/standard-pipeline.integration.test.d.ts +0 -2
- package/dist/__tests__/standard-pipeline.integration.test.d.ts.map +0 -1
- package/dist/__tests__/standard-profile-oracle.unit.test.d.ts +0 -2
- package/dist/__tests__/standard-profile-oracle.unit.test.d.ts.map +0 -1
- package/dist/__tests__/surface-configuration.unit.test.d.ts +0 -2
- package/dist/__tests__/surface-configuration.unit.test.d.ts.map +0 -1
- package/dist/__tests__/texture-usage-surface.unit.test.d.ts +0 -2
- package/dist/__tests__/texture-usage-surface.unit.test.d.ts.map +0 -1
- package/dist/__tests__/typed-pipeline-topology.unit.test.d.ts +0 -2
- package/dist/__tests__/typed-pipeline-topology.unit.test.d.ts.map +0 -1
- package/dist/__tests__/urp-pipeline-targets.unit.test.d.ts +0 -2
- package/dist/__tests__/urp-pipeline-targets.unit.test.d.ts.map +0 -1
- package/dist/__tests__/urp-pipeline.unit.test.d.ts +0 -2
- package/dist/__tests__/urp-pipeline.unit.test.d.ts.map +0 -1
- package/dist/__tests__/vertex-color-pipeline.unit.test.d.ts +0 -2
- package/dist/__tests__/vertex-color-pipeline.unit.test.d.ts.map +0 -1
- package/dist/__tests__/vertex-layout-consumer.unit.test.d.ts +0 -2
- package/dist/__tests__/vertex-layout-consumer.unit.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-diagnostics.integration.test.d.ts +0 -2
- package/dist/__tests__/visibility-diagnostics.integration.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-extract.integration.test.d.ts +0 -2
- package/dist/__tests__/visibility-extract.integration.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-extract.perf.test.d.ts +0 -2
- package/dist/__tests__/visibility-extract.perf.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-feature-dedup.integration.test.d.ts +0 -2
- package/dist/__tests__/visibility-feature-dedup.integration.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-hidden-report.unit.test.d.ts +0 -2
- package/dist/__tests__/visibility-hidden-report.unit.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-instances.integration.test.d.ts +0 -2
- package/dist/__tests__/visibility-instances.integration.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-multi-world.integration.test.d.ts +0 -2
- package/dist/__tests__/visibility-multi-world.integration.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-producer-matrix.integration.test.d.ts +0 -2
- package/dist/__tests__/visibility-producer-matrix.integration.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-producer-matrix.unit.test.d.ts +0 -2
- package/dist/__tests__/visibility-producer-matrix.unit.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-public-surface.test-d.d.ts +0 -2
- package/dist/__tests__/visibility-public-surface.test-d.d.ts.map +0 -1
- package/dist/__tests__/visibility-resolver.unit.test.d.ts +0 -2
- package/dist/__tests__/visibility-resolver.unit.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts +0 -2
- package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts.map +0 -1
- package/dist/__tests__/visibility-snapshot-contract.unit.test.d.ts +0 -2
- package/dist/__tests__/visibility-snapshot-contract.unit.test.d.ts.map +0 -1
- package/dist/__tests__/vocabulary.unit.test.d.ts +0 -2
- package/dist/__tests__/vocabulary.unit.test.d.ts.map +0 -1
- package/dist/chunk-CQXZC5XI.mjs.map +0 -1
- package/dist/chunk-HCOGPHKS.mjs +0 -93
- package/dist/chunk-HCOGPHKS.mjs.map +0 -1
- package/dist/chunk-YEJIUW7D.mjs.map +0 -1
- package/dist/components/__tests__/points-lines-admission.unit.test.d.ts +0 -2
- package/dist/components/__tests__/points-lines-admission.unit.test.d.ts.map +0 -1
- package/dist/components/__tests__/points-lines-schema.unit.test.d.ts +0 -2
- package/dist/components/__tests__/points-lines-schema.unit.test.d.ts.map +0 -1
- package/dist/components/__tests__/schema-contract.unit.test.d.ts +0 -2
- package/dist/components/__tests__/schema-contract.unit.test.d.ts.map +0 -1
- package/dist/components/__tests__/schema-parity.unit.test.d.ts +0 -2
- package/dist/components/__tests__/schema-parity.unit.test.d.ts.map +0 -1
- package/dist/components/__tests__/visibility-schema.unit.test.d.ts +0 -2
- package/dist/components/__tests__/visibility-schema.unit.test.d.ts.map +0 -1
- package/dist/points-lines/__tests__/bounds.unit.test.d.ts +0 -2
- package/dist/points-lines/__tests__/bounds.unit.test.d.ts.map +0 -1
- package/dist/points-lines/__tests__/cache-recovery.unit.test.d.ts +0 -2
- package/dist/points-lines/__tests__/cache-recovery.unit.test.d.ts.map +0 -1
- package/dist/points-lines/__tests__/inspection-lanes.integration.test.d.ts +0 -2
- package/dist/points-lines/__tests__/inspection-lanes.integration.test.d.ts.map +0 -1
- package/dist/points-lines/__tests__/inspection.unit.test.d.ts +0 -2
- package/dist/points-lines/__tests__/inspection.unit.test.d.ts.map +0 -1
- package/dist/points-lines/__tests__/lane-structural.integration.test.d.ts +0 -2
- package/dist/points-lines/__tests__/lane-structural.integration.test.d.ts.map +0 -1
- package/dist/points-lines/__tests__/points-lines.bench.d.ts +0 -2
- package/dist/points-lines/__tests__/points-lines.bench.d.ts.map +0 -1
- package/dist/points-lines/__tests__/raster-lane.integration.test.d.ts +0 -2
- package/dist/points-lines/__tests__/raster-lane.integration.test.d.ts.map +0 -1
- package/dist/points-lines/__tests__/snapshot.unit.test.d.ts +0 -2
- package/dist/points-lines/__tests__/snapshot.unit.test.d.ts.map +0 -1
- package/dist/points-lines/__tests__/view-ubo.unit.test.d.ts +0 -2
- package/dist/points-lines/__tests__/view-ubo.unit.test.d.ts.map +0 -1
- package/dist/record/__tests__/material-bg-cache.unit.test.d.ts +0 -2
- package/dist/record/__tests__/material-bg-cache.unit.test.d.ts.map +0 -1
- package/dist/record/__tests__/material-slot-plan.unit.test.d.ts +0 -2
- package/dist/record/__tests__/material-slot-plan.unit.test.d.ts.map +0 -1
- package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts +0 -2
- package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts.map +0 -1
- package/dist/record/__tests__/video-texture-view.unit.test.d.ts +0 -2
- package/dist/record/__tests__/video-texture-view.unit.test.d.ts.map +0 -1
package/src/record/main-pass.ts
CHANGED
|
@@ -39,8 +39,57 @@ export type MainPassOptions = {
|
|
|
39
39
|
readonly depthView?: TextureView | null;
|
|
40
40
|
readonly passKind?: PassKind;
|
|
41
41
|
readonly clearColor?: readonly [number, number, number, number];
|
|
42
|
+
readonly recordMode?: 'opaque' | 'transmission' | 'transparent';
|
|
43
|
+
readonly transmissionBackdropView?: TextureView | null;
|
|
42
44
|
};
|
|
43
45
|
|
|
46
|
+
const TRANSMISSION_VARIANT_SET = 'TRANSMISSION_AVAILABLE=true';
|
|
47
|
+
|
|
48
|
+
function isTransmissionMaterial(material: MaterialSnapshot): boolean {
|
|
49
|
+
return (
|
|
50
|
+
material.materialShaderId === 'forgeax::default-standard-pbr' &&
|
|
51
|
+
typeof material.paramSnapshot?.transmission === 'number' &&
|
|
52
|
+
material.paramSnapshot.transmission > 0
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function matchesRecordMode(
|
|
57
|
+
material: MaterialSnapshot,
|
|
58
|
+
mode: 'opaque' | 'transmission' | 'transparent',
|
|
59
|
+
): boolean {
|
|
60
|
+
const transmission = isTransmissionMaterial(material);
|
|
61
|
+
if (mode === 'transmission') return transmission;
|
|
62
|
+
if (mode === 'transparent') return material.transparent === true && !transmission;
|
|
63
|
+
return !transmission && material.transparent !== true;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function matchedMaterialsForRecordMode(
|
|
67
|
+
c: _InternalRenderPipelineContext,
|
|
68
|
+
matchedMaterials: ReadonlyMap<number, ReadonlySet<number>> | null,
|
|
69
|
+
mode: 'opaque' | 'transmission' | 'transparent' | undefined,
|
|
70
|
+
): ReadonlyMap<number, ReadonlySet<number>> | null {
|
|
71
|
+
if (mode === undefined) return matchedMaterials;
|
|
72
|
+
const filtered = new Map<number, ReadonlySet<number>>();
|
|
73
|
+
for (const entry of c.validatedOrdered) {
|
|
74
|
+
const dispatchHandles = matchedMaterials?.get(entry.renderableIndex);
|
|
75
|
+
if (matchedMaterials !== null && dispatchHandles === undefined) continue;
|
|
76
|
+
const candidateHandles =
|
|
77
|
+
dispatchHandles ??
|
|
78
|
+
(mode === 'transmission'
|
|
79
|
+
? []
|
|
80
|
+
: entry.source.materials.map((material) => material.materialHandle ?? 0));
|
|
81
|
+
const handles = new Set<number>();
|
|
82
|
+
for (const handle of candidateHandles) {
|
|
83
|
+
const material =
|
|
84
|
+
entry.source.materials.find((candidate) => (candidate.materialHandle ?? 0) === handle) ??
|
|
85
|
+
entry.source.material;
|
|
86
|
+
if (matchesRecordMode(material, mode)) handles.add(handle);
|
|
87
|
+
}
|
|
88
|
+
if (handles.size > 0) filtered.set(entry.renderableIndex, handles);
|
|
89
|
+
}
|
|
90
|
+
return filtered;
|
|
91
|
+
}
|
|
92
|
+
|
|
44
93
|
/**
|
|
45
94
|
* feat-20260529-rendergraph-pass-abstraction M4 / w13b: main forward
|
|
46
95
|
* (geometry) pass recording, extracted verbatim from recordFrame. Uses the
|
|
@@ -87,9 +136,20 @@ export function recordMainPass(
|
|
|
87
136
|
// msaaActive boolean (already on the context).
|
|
88
137
|
const sampleCount = msaaActive ? 4 : 1;
|
|
89
138
|
const passKind = options?.passKind ?? 'forward';
|
|
139
|
+
const recordMode = options?.recordMode;
|
|
140
|
+
const transmissionBackdropView = options?.transmissionBackdropView;
|
|
141
|
+
if (recordMode === 'transmission' && transmissionBackdropView == null) {
|
|
142
|
+
throw new RhiError({
|
|
143
|
+
code: 'webgpu-runtime-error',
|
|
144
|
+
expected: 'transmissionBackdropView != null for transmission record mode',
|
|
145
|
+
hint: 'the typed Standard transmission pass must resolve its private backdrop view',
|
|
146
|
+
});
|
|
147
|
+
}
|
|
90
148
|
const colorViews = options?.colorViews ?? [geometryColorView];
|
|
91
149
|
const colorFormats = options?.colorFormats ?? [
|
|
92
|
-
(c.tonemapActive
|
|
150
|
+
(c.tonemapActive || c.transparentColorFormat === 'rgba16float'
|
|
151
|
+
? 'rgba16float'
|
|
152
|
+
: pipelineState.colorAttachmentFormat) as GPUTextureFormat,
|
|
93
153
|
];
|
|
94
154
|
const targetDepthView = options?.depthView ?? geometryDepthView;
|
|
95
155
|
const clearColor = options?.clearColor ?? clear;
|
|
@@ -198,8 +258,20 @@ export function recordMainPass(
|
|
|
198
258
|
// feat-20260609 M2: filter entities by pass selector.
|
|
199
259
|
const matchedIndices =
|
|
200
260
|
selector !== undefined ? buildMatchedRenderableIndices(dispatch, selector) : null;
|
|
201
|
-
const
|
|
261
|
+
const selectorMatchedMaterials =
|
|
202
262
|
selector !== undefined ? buildMatchedMaterialHandlesByRenderable(dispatch, selector) : null;
|
|
263
|
+
const matchedMaterials = matchedMaterialsForRecordMode(c, selectorMatchedMaterials, recordMode);
|
|
264
|
+
const recordContext =
|
|
265
|
+
recordMode === undefined
|
|
266
|
+
? c
|
|
267
|
+
: {
|
|
268
|
+
...c,
|
|
269
|
+
splitLdrSprite: recordMode === 'transparent' ? false : c.splitLdrSprite,
|
|
270
|
+
validatedOrdered: c.validatedOrdered.map((entry) => ({
|
|
271
|
+
...entry,
|
|
272
|
+
...(recordMode === 'transmission' ? { variantSet: TRANSMISSION_VARIANT_SET } : {}),
|
|
273
|
+
})),
|
|
274
|
+
};
|
|
203
275
|
|
|
204
276
|
if (validatedOrdered.length > 0) {
|
|
205
277
|
// feat-20260518-pbr-direct-lighting-mvp M5 / w22.10 (D-4 + D-9 +
|
|
@@ -363,6 +435,7 @@ export function recordMainPass(
|
|
|
363
435
|
materialBgShared: frameState.materialBgShared,
|
|
364
436
|
materialBgAssemblyCache: c.materialBgAssemblyCache,
|
|
365
437
|
bindGroupCounts,
|
|
438
|
+
...(transmissionBackdropView === undefined ? {} : { transmissionBackdropView }),
|
|
366
439
|
};
|
|
367
440
|
const buildPerSubmeshMaterialBg = (
|
|
368
441
|
submeshMaterial: MaterialSnapshot,
|
|
@@ -551,7 +624,7 @@ export function recordMainPass(
|
|
|
551
624
|
// M-3 / w12: vertexBuffer/indexBuffer state locals migrate to GpuBuffer.
|
|
552
625
|
const recordGeometry = (): void => {
|
|
553
626
|
recordGeometryDraws(
|
|
554
|
-
|
|
627
|
+
recordContext,
|
|
555
628
|
pass,
|
|
556
629
|
matchedMaterials,
|
|
557
630
|
materialSlotIndices,
|
|
@@ -581,7 +654,7 @@ export function recordMainPass(
|
|
|
581
654
|
// already-encoded geometry pixels. Depth is loaded from the geometry
|
|
582
655
|
// pass so sprite-vs-mesh occlusion (depthCompare=less-equal) is
|
|
583
656
|
// preserved (plan-strategy §2 D-2 + §4 R-4).
|
|
584
|
-
if (passKind === 'forward') {
|
|
657
|
+
if (passKind === 'forward' && recordMode === undefined) {
|
|
585
658
|
geometryPassEnded = recordSpritePass(
|
|
586
659
|
c,
|
|
587
660
|
pass,
|
package/src/record/mesh-ssbo.ts
CHANGED
|
@@ -365,10 +365,11 @@ export function uploadMeshSsboBatch(
|
|
|
365
365
|
for (let i = 0; i < slotCount; i++) {
|
|
366
366
|
const entry = validatedOrdered[i];
|
|
367
367
|
if (entry === undefined) continue;
|
|
368
|
-
// Float32Array view into this entity's 256-byte slot (
|
|
369
|
-
//
|
|
368
|
+
// Float32Array view into this entity's 256-byte slot (current world,
|
|
369
|
+
// normal, previous world, and reactive metadata use 45 floats; the
|
|
370
|
+
// remaining padding stays zero). Byte offset i*256 is always
|
|
370
371
|
// 4-byte aligned since MESH_PER_ENTITY_STRIDE=256 is divisible by 4.
|
|
371
|
-
const slot = new Float32Array(_meshSsboScratch.buffer, i * MESH_PER_ENTITY_STRIDE,
|
|
372
|
+
const slot = new Float32Array(_meshSsboScratch.buffer, i * MESH_PER_ENTITY_STRIDE, 48);
|
|
372
373
|
const isFoldHead = foldDispatchPlan?.headBuckets.has(i) === true;
|
|
373
374
|
if (isFoldHead) {
|
|
374
375
|
// identity mat4
|
|
@@ -380,6 +381,13 @@ export function uploadMeshSsboBatch(
|
|
|
380
381
|
slot[16] = 1;
|
|
381
382
|
slot[20] = 1;
|
|
382
383
|
slot[24] = 1;
|
|
384
|
+
// Fold heads use the instance storage path; keep the mesh temporal
|
|
385
|
+
// fields deterministic for shader variants that still read the slot.
|
|
386
|
+
slot[28] = 1;
|
|
387
|
+
slot[33] = 1;
|
|
388
|
+
slot[38] = 1;
|
|
389
|
+
slot[43] = 1;
|
|
390
|
+
slot[44] = 1;
|
|
383
391
|
} else {
|
|
384
392
|
const worldFromLocal = entry.source.transform.world;
|
|
385
393
|
for (let k = 0; k < 16; k++) slot[k] = worldFromLocal[k] ?? 0;
|
|
@@ -393,6 +401,17 @@ export function uploadMeshSsboBatch(
|
|
|
393
401
|
slot[24] = normal[6] ?? 0;
|
|
394
402
|
slot[25] = normal[7] ?? 0;
|
|
395
403
|
slot[26] = normal[8] ?? 0;
|
|
404
|
+
const previousWorld = entry.source.temporal?.previousTransform.world ?? worldFromLocal;
|
|
405
|
+
for (let k = 0; k < 16; k++) slot[28 + k] = previousWorld[k] ?? 0;
|
|
406
|
+
const reactiveMaterial = entry.source.materials.some(
|
|
407
|
+
(material) =>
|
|
408
|
+
material.transparent === true ||
|
|
409
|
+
material.materialShaderId === 'forgeax::sprite' ||
|
|
410
|
+
material.materialShaderId === 'forgeax::sprite-lit' ||
|
|
411
|
+
(material.materialShaderId !== undefined &&
|
|
412
|
+
!material.materialShaderId.startsWith('forgeax::')),
|
|
413
|
+
);
|
|
414
|
+
slot[44] = entry.source.temporal?.reactive === true || reactiveMaterial ? 1 : 0;
|
|
396
415
|
}
|
|
397
416
|
}
|
|
398
417
|
if (neededBytes > 0) {
|
|
@@ -2,6 +2,7 @@ import type { AssetRegistry, DynamicTextureStore } from '@forgeax/engine-assets-
|
|
|
2
2
|
import type { World } from '@forgeax/engine-ecs';
|
|
3
3
|
import type { VertexLayoutProjection } from '@forgeax/engine-geometry';
|
|
4
4
|
import type { Profiler } from '@forgeax/engine-profiler';
|
|
5
|
+
import type { CompiledRenderGraphInfo } from '@forgeax/engine-render-graph';
|
|
5
6
|
import type {
|
|
6
7
|
BindGroup,
|
|
7
8
|
BindGroupLayout,
|
|
@@ -11,13 +12,13 @@ import type {
|
|
|
11
12
|
Result,
|
|
12
13
|
RhiCanvasContext,
|
|
13
14
|
RhiDevice,
|
|
14
|
-
RhiError,
|
|
15
15
|
RenderPipeline as RhiRenderPipeline,
|
|
16
16
|
Sampler,
|
|
17
17
|
Texture,
|
|
18
18
|
TextureFormat,
|
|
19
19
|
TextureView,
|
|
20
20
|
} from '@forgeax/engine-rhi';
|
|
21
|
+
import { err, ok, RhiError } from '@forgeax/engine-rhi';
|
|
21
22
|
import type { MaterialRuntimeArtifact } from '@forgeax/engine-shader';
|
|
22
23
|
import type {
|
|
23
24
|
MaterialRenderState,
|
|
@@ -31,12 +32,14 @@ import type { DeviceScope } from '../device/device-scope';
|
|
|
31
32
|
import type { MeshGpuHandles } from '../device/gpu-residency';
|
|
32
33
|
import type { EngineMetrics } from '../engine-metrics';
|
|
33
34
|
import type { RenderFeatureHost } from '../features/host';
|
|
35
|
+
import type { RenderFeatureShaderModuleMode } from '../features/types';
|
|
34
36
|
import {
|
|
35
37
|
GPU_TEXTURE_USAGE_COPY_SRC,
|
|
36
38
|
GPU_TEXTURE_USAGE_RENDER_ATTACHMENT,
|
|
37
39
|
GPU_TEXTURE_USAGE_TEXTURE_BINDING,
|
|
38
40
|
} from '../gpu-texture-usage';
|
|
39
41
|
import type { SkylightFallback } from '../ibl/skylight-bind-group';
|
|
42
|
+
import type { BloomInspection } from '../inspection-types';
|
|
40
43
|
import type { HealthListenerRegistry, RhiErrorListenerRegistry } from '../lifecycle';
|
|
41
44
|
import type { StandardProfile } from '../pipeline/standard-profile';
|
|
42
45
|
import type { PipelineBuilderShaderModuleFactory } from '../pipeline-builder';
|
|
@@ -64,6 +67,7 @@ import type {
|
|
|
64
67
|
import type { SkinPaletteAllocator } from '../systems/skin-palette-allocator';
|
|
65
68
|
import type {
|
|
66
69
|
BindGroupCounts,
|
|
70
|
+
BloomFrameReceipts,
|
|
67
71
|
DispatchCounts,
|
|
68
72
|
MaterialBgAssemblyCacheEntry,
|
|
69
73
|
RenderFrameState,
|
|
@@ -94,6 +98,8 @@ export interface RenderSystemRuntime {
|
|
|
94
98
|
depthFormatOverride?: GPUTextureFormat | null,
|
|
95
99
|
vertexLayout?: string,
|
|
96
100
|
vertexLayoutProjection?: VertexLayoutProjection,
|
|
101
|
+
shaderModuleMode?: RenderFeatureShaderModuleMode,
|
|
102
|
+
layoutKindOverride?: 'pbr' | 'pbr-skin',
|
|
97
103
|
) => RhiRenderPipeline | null;
|
|
98
104
|
readonly getMaterialShaderBindingContract?: (
|
|
99
105
|
materialShaderId: string,
|
|
@@ -110,6 +116,8 @@ export interface RenderSystemRuntime {
|
|
|
110
116
|
bgl: BindGroupLayout,
|
|
111
117
|
colorFormat: GPUTextureFormat,
|
|
112
118
|
) => RhiRenderPipeline | null;
|
|
119
|
+
readonly clearPostProcessPipelineCache?: (id: string) => void;
|
|
120
|
+
readonly invalidateShaderModule?: (label: string) => void;
|
|
113
121
|
readonly dynamicTextureStore?: DynamicTextureStore | undefined;
|
|
114
122
|
}
|
|
115
123
|
|
|
@@ -152,18 +160,27 @@ export interface PerPassResources {
|
|
|
152
160
|
readonly skyboxBindGroupLayout: BindGroupLayout | null;
|
|
153
161
|
readonly skyboxSampler: Sampler | null;
|
|
154
162
|
readonly skyboxRotationBuffer: Buffer | null;
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
163
|
+
bloomBrightPipeline: RhiRenderPipeline | null;
|
|
164
|
+
bloomBlurHPipeline: RhiRenderPipeline | null;
|
|
165
|
+
bloomBlurVPipeline: RhiRenderPipeline | null;
|
|
166
|
+
bloomCompositePipeline: RhiRenderPipeline | null;
|
|
167
|
+
bloomBrightBindGroupLayout: BindGroupLayout | null;
|
|
168
|
+
bloomBlurBindGroupLayout: BindGroupLayout | null;
|
|
169
|
+
bloomCompositeBindGroupLayout: BindGroupLayout | null;
|
|
170
|
+
bloomSampler: Sampler | null;
|
|
171
|
+
bloomBrightParamsBuffer: Buffer | null;
|
|
172
|
+
bloomBlurHParamsBuffer: Buffer | null;
|
|
173
|
+
bloomBlurVParamsBuffer: Buffer | null;
|
|
174
|
+
bloomCompositeParamsBuffer: Buffer | null;
|
|
175
|
+
ensureBloomResources?: () => void;
|
|
176
|
+
getBloomResources?: () => BloomPersistentBundle | null;
|
|
177
|
+
commitBloomResources?: () => void;
|
|
178
|
+
commitBloomFrameReceipts?: (receipts: BloomFrameReceipts) => void;
|
|
179
|
+
discardBloomResources?: () => void;
|
|
180
|
+
retireBloomResources?: (completion: Promise<unknown>) => void;
|
|
181
|
+
/** Drain candidate, active, and fence-retiring Bloom generations. */
|
|
182
|
+
drainBloomResources?: () => void;
|
|
183
|
+
inspectBloomResources?: (graph?: CompiledRenderGraphInfo) => BloomInspection;
|
|
167
184
|
bloomBrightTexture: Texture | null;
|
|
168
185
|
bloomBrightView: TextureView | null;
|
|
169
186
|
bloomBrightWidth: number;
|
|
@@ -194,10 +211,30 @@ export interface PerPassResources {
|
|
|
194
211
|
} | null;
|
|
195
212
|
}
|
|
196
213
|
|
|
214
|
+
/** Renderer-private Bloom bundle selected for one record transaction. */
|
|
215
|
+
export interface BloomPersistentBundle {
|
|
216
|
+
readonly scope: DeviceScope;
|
|
217
|
+
readonly generation: number;
|
|
218
|
+
readonly bloomBrightPipeline: RhiRenderPipeline | null;
|
|
219
|
+
readonly bloomBlurHPipeline: RhiRenderPipeline | null;
|
|
220
|
+
readonly bloomBlurVPipeline: RhiRenderPipeline | null;
|
|
221
|
+
readonly bloomCompositePipeline: RhiRenderPipeline | null;
|
|
222
|
+
readonly bloomBrightBindGroupLayout: BindGroupLayout | null;
|
|
223
|
+
readonly bloomBlurBindGroupLayout: BindGroupLayout | null;
|
|
224
|
+
readonly bloomCompositeBindGroupLayout: BindGroupLayout | null;
|
|
225
|
+
readonly bloomSampler: Sampler | null;
|
|
226
|
+
readonly bloomBrightParamsBuffer: Buffer | null;
|
|
227
|
+
readonly bloomBlurHParamsBuffer: Buffer | null;
|
|
228
|
+
readonly bloomBlurVParamsBuffer: Buffer | null;
|
|
229
|
+
readonly bloomCompositeParamsBuffer: Buffer | null;
|
|
230
|
+
}
|
|
231
|
+
|
|
197
232
|
export interface PipelineState {
|
|
198
233
|
readonly meshes: ReadonlyMap<number, MeshGpuHandles>;
|
|
199
234
|
readonly format: TextureFormat;
|
|
200
235
|
readonly colorAttachmentFormat: TextureFormat;
|
|
236
|
+
/** Surface route committed by configureSurface for inspection provenance. */
|
|
237
|
+
readonly surfaceProfile?: 'dual-view' | 'raw-only';
|
|
201
238
|
readonly viewBindGroupLayout: BindGroupLayout;
|
|
202
239
|
readonly materialBindGroupLayout: BindGroupLayout;
|
|
203
240
|
readonly meshBindGroupLayout: BindGroupLayout;
|
|
@@ -240,6 +277,8 @@ export interface RenderSystemInternals extends RenderSystemRuntime {
|
|
|
240
277
|
readonly standardPipeline: RenderFrameState['activePipeline'];
|
|
241
278
|
readonly featureHost?: RenderFeatureHost | undefined;
|
|
242
279
|
readonly shaderModuleFactory?: PipelineBuilderShaderModuleFactory;
|
|
280
|
+
/** Optional handle-first factory for feature-owned generated shader programs. */
|
|
281
|
+
readonly immediateShaderModuleFactory?: PipelineBuilderShaderModuleFactory;
|
|
243
282
|
readonly profiler?: Profiler | undefined;
|
|
244
283
|
readonly context: RhiCanvasContext | null;
|
|
245
284
|
readonly getPipelineState: () => PipelineState | null;
|
|
@@ -269,6 +308,7 @@ export interface _StandardForwardSceneView {
|
|
|
269
308
|
readonly assets: AssetRegistry;
|
|
270
309
|
readonly store: import('../device/gpu-residency').GpuResidencyCache;
|
|
271
310
|
readonly pipelineState: PipelineState;
|
|
311
|
+
readonly bloomResources?: BloomPersistentBundle | null;
|
|
272
312
|
readonly runtime: RenderSystemRuntime;
|
|
273
313
|
readonly validated: readonly ValidatedRenderable[];
|
|
274
314
|
readonly validatedOrdered: readonly ValidatedRenderable[];
|
|
@@ -314,7 +354,7 @@ export type _InternalRenderPipelineContext = RenderPipelineContext & _StandardFo
|
|
|
314
354
|
|
|
315
355
|
export type RecordProfileRunner = <T>(phase: RenderRecordPhase, action: () => T) => T;
|
|
316
356
|
|
|
317
|
-
export const STANDARD_PBR_UBO_SIZE =
|
|
357
|
+
export const STANDARD_PBR_UBO_SIZE = 384;
|
|
318
358
|
export const MATERIAL_PER_ENTITY_STRIDE = 512;
|
|
319
359
|
|
|
320
360
|
export type SwapChainFormatPair = {
|
|
@@ -323,14 +363,88 @@ export type SwapChainFormatPair = {
|
|
|
323
363
|
readonly fallbackReason?: 'preferred-canvas-format-missing';
|
|
324
364
|
};
|
|
325
365
|
|
|
366
|
+
/** Internal closed projection of the concrete surface route. */
|
|
367
|
+
export type SurfaceProfile =
|
|
368
|
+
| {
|
|
369
|
+
readonly kind: 'dual-view';
|
|
370
|
+
readonly storageFormat: GPUTextureFormat;
|
|
371
|
+
readonly viewFormat: GPUTextureFormat;
|
|
372
|
+
readonly viewFormats: readonly [GPUTextureFormat];
|
|
373
|
+
readonly hasDisplayEndpoint: true;
|
|
374
|
+
}
|
|
375
|
+
| {
|
|
376
|
+
readonly kind: 'raw-only';
|
|
377
|
+
readonly storageFormat: GPUTextureFormat;
|
|
378
|
+
readonly viewFormat: GPUTextureFormat;
|
|
379
|
+
readonly viewFormats: readonly [];
|
|
380
|
+
readonly hasDisplayEndpoint: false;
|
|
381
|
+
};
|
|
382
|
+
|
|
383
|
+
export interface SurfaceCapabilityFacts {
|
|
384
|
+
/** Concrete wgpu downlevel `SURFACE_VIEW_FORMATS` flag. */
|
|
385
|
+
readonly surfaceViewFormats: boolean;
|
|
386
|
+
readonly rawAttachment: boolean;
|
|
387
|
+
readonly floatRenderAttachment: boolean;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
export function resolveSurfaceProfile(
|
|
391
|
+
storageFormat: GPUTextureFormat,
|
|
392
|
+
viewFormat: GPUTextureFormat,
|
|
393
|
+
facts: SurfaceCapabilityFacts,
|
|
394
|
+
): Result<SurfaceProfile, RhiError> {
|
|
395
|
+
if (facts.surfaceViewFormats) {
|
|
396
|
+
return ok({
|
|
397
|
+
kind: 'dual-view',
|
|
398
|
+
storageFormat,
|
|
399
|
+
viewFormat,
|
|
400
|
+
viewFormats: [viewFormat],
|
|
401
|
+
hasDisplayEndpoint: true,
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
if (!facts.rawAttachment || !facts.floatRenderAttachment) {
|
|
405
|
+
return err(
|
|
406
|
+
new RhiError({
|
|
407
|
+
code: 'webgpu-runtime-error',
|
|
408
|
+
expected: 'raw surface attachment and rgba16float render attachment capabilities',
|
|
409
|
+
hint: 'surface profile cannot establish a raw-only linear output route',
|
|
410
|
+
detail: {
|
|
411
|
+
error: {
|
|
412
|
+
code: 'surface-raw-endpoint-failed',
|
|
413
|
+
message: 'raw-only surface capabilities are incomplete',
|
|
414
|
+
},
|
|
415
|
+
},
|
|
416
|
+
}),
|
|
417
|
+
);
|
|
418
|
+
}
|
|
419
|
+
return ok({
|
|
420
|
+
kind: 'raw-only',
|
|
421
|
+
storageFormat,
|
|
422
|
+
viewFormat: storageFormat,
|
|
423
|
+
viewFormats: [],
|
|
424
|
+
hasDisplayEndpoint: false,
|
|
425
|
+
});
|
|
426
|
+
}
|
|
427
|
+
|
|
326
428
|
export type SurfaceBackendKind = 'webgpu' | 'wgpu-native' | 'wgpu-webgl2' | 'null';
|
|
327
429
|
|
|
328
430
|
export function resolveSurfaceFormatPair(
|
|
329
|
-
|
|
431
|
+
_backendKind: SurfaceBackendKind,
|
|
330
432
|
storage: GPUTextureFormat,
|
|
331
433
|
view: GPUTextureFormat,
|
|
332
434
|
): SwapChainFormatPair {
|
|
333
|
-
return
|
|
435
|
+
return { storage, view };
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
function surfaceCapabilityFacts(
|
|
439
|
+
device: RhiDevice,
|
|
440
|
+
storageFormat: GPUTextureFormat,
|
|
441
|
+
): SurfaceCapabilityFacts {
|
|
442
|
+
const internal = device as unknown as { readonly surfaceViewFormats?: boolean };
|
|
443
|
+
return {
|
|
444
|
+
surfaceViewFormats: internal.surfaceViewFormats ?? device.caps?.backendKind !== 'wgpu-webgl2',
|
|
445
|
+
rawAttachment: storageFormat === 'rgba8unorm' || storageFormat === 'bgra8unorm',
|
|
446
|
+
floatRenderAttachment: device.caps?.rgba16floatRenderable ?? true,
|
|
447
|
+
};
|
|
334
448
|
}
|
|
335
449
|
|
|
336
450
|
export function configureSurface(
|
|
@@ -346,8 +460,20 @@ export function configureSurface(
|
|
|
346
460
|
format as GPUTextureFormat,
|
|
347
461
|
colorAttachmentFormat as GPUTextureFormat,
|
|
348
462
|
);
|
|
349
|
-
const
|
|
350
|
-
|
|
463
|
+
const profile = resolveSurfaceProfile(
|
|
464
|
+
surfaceFormats.storage,
|
|
465
|
+
surfaceFormats.view,
|
|
466
|
+
surfaceCapabilityFacts(device, surfaceFormats.storage),
|
|
467
|
+
);
|
|
468
|
+
if (!profile.ok) return profile;
|
|
469
|
+
// WebGL2 surface pixels are proven by the compositor fixture, so it has no
|
|
470
|
+
// surface consumer for optional TEXTURE_BINDING/COPY_SRC usage. The concrete
|
|
471
|
+
// wgpu surface derives supported usages from SurfaceCapabilities and rejects
|
|
472
|
+
// unsupported requests; this path requests only the guaranteed attachment
|
|
473
|
+
// usage. Raw-only deliberately has no alternate view.
|
|
474
|
+
const supportsTextureBinding =
|
|
475
|
+
backendKind !== 'wgpu-webgl2' && (device.caps?.storageBuffer ?? true);
|
|
476
|
+
const configured = context.configure({
|
|
351
477
|
device,
|
|
352
478
|
format: surfaceFormats.storage,
|
|
353
479
|
alphaMode: isWebGl2 ? 'opaque' : 'premultiplied',
|
|
@@ -355,12 +481,49 @@ export function configureSurface(
|
|
|
355
481
|
GPU_TEXTURE_USAGE_RENDER_ATTACHMENT |
|
|
356
482
|
(supportsTextureBinding ? GPU_TEXTURE_USAGE_TEXTURE_BINDING : 0) |
|
|
357
483
|
(isWebGl2 ? 0 : GPU_TEXTURE_USAGE_COPY_SRC),
|
|
358
|
-
|
|
484
|
+
viewFormats: [...profile.value.viewFormats],
|
|
359
485
|
});
|
|
486
|
+
if (!configured.ok) return configured;
|
|
487
|
+
if (
|
|
488
|
+
isWebGl2 &&
|
|
489
|
+
(context.presentationProof === undefined ||
|
|
490
|
+
!context.presentationProof.descriptor ||
|
|
491
|
+
!context.presentationProof.acquisition ||
|
|
492
|
+
!context.presentationProof.validation ||
|
|
493
|
+
typeof context.presentationProof.surfaceIdentity !== 'string' ||
|
|
494
|
+
context.presentationProof.surfaceIdentity.length === 0 ||
|
|
495
|
+
context.presentationProof.requested === undefined ||
|
|
496
|
+
context.presentationProof.validated === undefined ||
|
|
497
|
+
JSON.stringify(context.presentationProof.requested) !==
|
|
498
|
+
JSON.stringify(context.presentationProof.validated))
|
|
499
|
+
) {
|
|
500
|
+
return err(
|
|
501
|
+
new RhiError({
|
|
502
|
+
code: 'webgpu-runtime-error',
|
|
503
|
+
expected: 'WebGL2 surface storage has descriptor, acquisition, and validation proof',
|
|
504
|
+
hint: 'run the concrete presentation probe and retain the last-known-good graph when proof is absent',
|
|
505
|
+
detail: {
|
|
506
|
+
error: {
|
|
507
|
+
code: 'surface-raw-endpoint-failed',
|
|
508
|
+
message: 'surface storage raw endpoint proof is incomplete',
|
|
509
|
+
},
|
|
510
|
+
},
|
|
511
|
+
}),
|
|
512
|
+
);
|
|
513
|
+
}
|
|
514
|
+
return ok(undefined);
|
|
360
515
|
}
|
|
361
516
|
|
|
362
|
-
export function selectSwapChainFormat(
|
|
363
|
-
|
|
517
|
+
export function selectSwapChainFormat(
|
|
518
|
+
storageBufferCapable: boolean,
|
|
519
|
+
surfaceViewFormats = true,
|
|
520
|
+
): SwapChainFormatPair {
|
|
521
|
+
if (!storageBufferCapable) {
|
|
522
|
+
return {
|
|
523
|
+
storage: 'rgba8unorm',
|
|
524
|
+
view: surfaceViewFormats ? 'rgba8unorm-srgb' : 'rgba8unorm',
|
|
525
|
+
};
|
|
526
|
+
}
|
|
364
527
|
const nav = (
|
|
365
528
|
globalThis as { navigator?: { gpu?: { getPreferredCanvasFormat?: () => GPUTextureFormat } } }
|
|
366
529
|
).navigator;
|
|
@@ -374,11 +537,14 @@ export function selectSwapChainFormat(storageBufferCapable: boolean): SwapChainF
|
|
|
374
537
|
: storage === 'bgra8unorm'
|
|
375
538
|
? 'bgra8unorm-srgb'
|
|
376
539
|
: storage;
|
|
377
|
-
return {
|
|
540
|
+
return {
|
|
541
|
+
storage,
|
|
542
|
+
view: surfaceViewFormats ? view : storage,
|
|
543
|
+
};
|
|
378
544
|
}
|
|
379
545
|
return {
|
|
380
546
|
storage: 'rgba8unorm',
|
|
381
|
-
view: 'rgba8unorm-srgb',
|
|
547
|
+
view: surfaceViewFormats ? 'rgba8unorm-srgb' : 'rgba8unorm',
|
|
382
548
|
fallbackReason: 'preferred-canvas-format-missing',
|
|
383
549
|
};
|
|
384
550
|
}
|