@forgeax/engine-render 0.1.27 → 0.1.29
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 +842 -124
- package/dist/assembly/atmosphere-shader-prewarm.d.ts +6 -0
- package/dist/assembly/atmosphere-shader-prewarm.d.ts.map +1 -0
- package/dist/assembly/dynamic-geometry-host.d.ts +52 -0
- package/dist/assembly/dynamic-geometry-host.d.ts.map +1 -0
- package/dist/assembly/dynamic-geometry-runtime.d.ts +20 -0
- package/dist/assembly/dynamic-geometry-runtime.d.ts.map +1 -0
- package/dist/assembly/factory.d.ts +3 -1
- package/dist/assembly/factory.d.ts.map +1 -1
- package/dist/assembly/gpu-driven-owner.d.ts +10 -0
- package/dist/assembly/gpu-driven-owner.d.ts.map +1 -0
- package/dist/assembly/host-contract.d.ts +19 -0
- package/dist/assembly/host-contract.d.ts.map +1 -1
- package/dist/assembly/material/assembly.d.ts +7 -0
- package/dist/assembly/material/assembly.d.ts.map +1 -1
- package/dist/assembly/material-shader-policy.d.ts +3 -1
- package/dist/assembly/material-shader-policy.d.ts.map +1 -1
- package/dist/assembly/recovery/failure-location.d.ts +12 -0
- package/dist/assembly/recovery/failure-location.d.ts.map +1 -0
- package/dist/assembly/recovery/renderer-recover.d.ts +6 -4
- package/dist/assembly/recovery/renderer-recover.d.ts.map +1 -1
- package/dist/assembly/renderer-facade.d.ts.map +1 -1
- package/dist/assembly/renderer-feature-inspection.d.ts +5 -0
- package/dist/assembly/renderer-feature-inspection.d.ts.map +1 -0
- package/dist/assembly/renderer-frame-transaction.d.ts +19 -0
- package/dist/assembly/renderer-frame-transaction.d.ts.map +1 -1
- package/dist/assembly/renderer-helpers.d.ts +3 -0
- package/dist/assembly/renderer-helpers.d.ts.map +1 -1
- package/dist/assembly/renderer-inspection.d.ts +4 -0
- package/dist/assembly/renderer-inspection.d.ts.map +1 -1
- package/dist/assembly/shader-prewarm-policy.d.ts +6 -0
- package/dist/assembly/shader-prewarm-policy.d.ts.map +1 -1
- package/dist/assembly/skin-palette-owner.d.ts +8 -0
- package/dist/assembly/skin-palette-owner.d.ts.map +1 -0
- package/dist/assembly/ssr-shader-prewarm.d.ts +6 -0
- package/dist/assembly/ssr-shader-prewarm.d.ts.map +1 -0
- package/dist/assembly/webgpu-device-loss.d.ts +15 -0
- package/dist/assembly/webgpu-device-loss.d.ts.map +1 -0
- package/dist/assembly/webgpu-pbr-ready.d.ts +38 -0
- package/dist/assembly/webgpu-pbr-ready.d.ts.map +1 -0
- package/dist/assembly/webgpu-ready-mipmap.d.ts +11 -0
- package/dist/assembly/webgpu-ready-mipmap.d.ts.map +1 -0
- package/dist/assembly/webgpu-ready.d.ts +7 -3
- package/dist/assembly/webgpu-ready.d.ts.map +1 -1
- package/dist/assembly/webgpu-renderer-bootstrap.d.ts +10 -0
- package/dist/assembly/webgpu-renderer-bootstrap.d.ts.map +1 -0
- package/dist/assembly/webgpu-renderer-contract.d.ts +62 -0
- package/dist/assembly/webgpu-renderer-contract.d.ts.map +1 -0
- package/dist/assembly/webgpu-renderer-guards.d.ts +9 -0
- package/dist/assembly/webgpu-renderer-guards.d.ts.map +1 -0
- package/dist/assembly/webgpu-renderer-observation.d.ts +6 -0
- package/dist/assembly/webgpu-renderer-observation.d.ts.map +1 -0
- package/dist/assembly/webgpu-renderer-recovery-failure.d.ts +12 -0
- package/dist/assembly/webgpu-renderer-recovery-failure.d.ts.map +1 -0
- package/dist/assembly/webgpu-renderer.d.ts +7 -141
- package/dist/assembly/webgpu-renderer.d.ts.map +1 -1
- package/dist/assembly/webgpu-vertex-layouts.d.ts +28 -84
- package/dist/assembly/webgpu-vertex-layouts.d.ts.map +1 -1
- package/dist/authoring.mjs +3 -3
- package/dist/{chunk-ADHHVYLW.mjs → chunk-33XZFTQU.mjs} +245 -39
- package/dist/chunk-33XZFTQU.mjs.map +1 -0
- package/dist/{chunk-GF523LHF.mjs → chunk-BLXGONR2.mjs} +30 -12
- package/dist/chunk-BLXGONR2.mjs.map +1 -0
- package/dist/{chunk-KM2NOX2I.mjs → chunk-BQVQOQJH.mjs} +958 -254
- package/dist/chunk-BQVQOQJH.mjs.map +1 -0
- package/dist/{chunk-HKXTW355.mjs → chunk-BTWH7BP4.mjs} +386 -17
- package/dist/chunk-BTWH7BP4.mjs.map +1 -0
- package/dist/{chunk-TMIASV2N.mjs → chunk-FUODTTIA.mjs} +3934 -676
- package/dist/chunk-FUODTTIA.mjs.map +1 -0
- package/dist/{chunk-FJ6P52EE.mjs → chunk-ILQ5MEZF.mjs} +3 -17
- package/dist/chunk-ILQ5MEZF.mjs.map +1 -0
- package/dist/{chunk-E34VL5VI.mjs → chunk-JQTSEI3Z.mjs} +3 -3
- package/dist/{chunk-E34VL5VI.mjs.map → chunk-JQTSEI3Z.mjs.map} +1 -1
- package/dist/{chunk-GE3SDD72.mjs → chunk-NICXSHAT.mjs} +16 -38
- package/dist/chunk-NICXSHAT.mjs.map +1 -0
- package/dist/{chunk-ZZ4YQ474.mjs → chunk-NRNXBLIJ.mjs} +577 -7
- package/dist/chunk-NRNXBLIJ.mjs.map +1 -0
- package/dist/{chunk-JDWARUOI.mjs → chunk-PA5DRJNI.mjs} +17 -3
- package/dist/chunk-PA5DRJNI.mjs.map +1 -0
- package/dist/{chunk-XDP6XE5V.mjs → chunk-S4DNKQYQ.mjs} +1118 -446
- package/dist/chunk-S4DNKQYQ.mjs.map +1 -0
- package/dist/components/camera.d.ts +62 -2
- package/dist/components/camera.d.ts.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/instances.d.ts +6 -20
- package/dist/components/instances.d.ts.map +1 -1
- package/dist/components/scene-instance.d.ts +2 -1
- package/dist/components/scene-instance.d.ts.map +1 -1
- package/dist/components/screen-space-reflection.d.ts +14 -0
- package/dist/components/screen-space-reflection.d.ts.map +1 -0
- package/dist/construct-renderer.mjs +13805 -7186
- package/dist/construct-renderer.mjs.map +1 -1
- package/dist/device/gpu-residency.d.ts +11 -17
- package/dist/device/gpu-residency.d.ts.map +1 -1
- package/dist/device/mesh-residency-lifetime.d.ts +21 -0
- package/dist/device/mesh-residency-lifetime.d.ts.map +1 -0
- package/dist/dynamic-geometry.d.ts +125 -0
- package/dist/dynamic-geometry.d.ts.map +1 -0
- package/dist/environment/background.d.ts +6 -0
- package/dist/environment/background.d.ts.map +1 -0
- package/dist/errors/gpu-driven.d.ts +6 -3
- package/dist/errors/gpu-driven.d.ts.map +1 -1
- package/dist/errors/render.d.ts +7 -4
- package/dist/errors/render.d.ts.map +1 -1
- package/dist/extract/camera.d.ts.map +1 -1
- package/dist/extract/gpu-driven.d.ts +33 -3
- package/dist/extract/gpu-driven.d.ts.map +1 -1
- package/dist/features/host.d.ts +23 -1
- package/dist/features/host.d.ts.map +1 -1
- package/dist/features/noise-texture.d.ts +17 -0
- package/dist/features/noise-texture.d.ts.map +1 -0
- package/dist/features/plan.d.ts +83 -2
- package/dist/features/plan.d.ts.map +1 -1
- package/dist/features/prepared-gpu-work.d.ts +37 -4
- package/dist/features/prepared-gpu-work.d.ts.map +1 -1
- package/dist/features/prepared-graphics-store.d.ts.map +1 -1
- package/dist/features/prepared-graphics.d.ts +5 -0
- package/dist/features/prepared-graphics.d.ts.map +1 -1
- package/dist/features/render-graph-compute.d.ts +5 -3
- package/dist/features/render-graph-compute.d.ts.map +1 -1
- package/dist/features/render-graph-contribution.d.ts +11 -3
- package/dist/features/render-graph-contribution.d.ts.map +1 -1
- package/dist/features/render-graph-raster.d.ts +19 -3
- package/dist/features/render-graph-raster.d.ts.map +1 -1
- package/dist/features/types.d.ts +11 -0
- package/dist/features/types.d.ts.map +1 -1
- package/dist/fullscreen-post-process-pass.d.ts +2 -0
- package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
- package/dist/gpu-driven/batch-topology.d.ts +34 -1
- package/dist/gpu-driven/batch-topology.d.ts.map +1 -1
- package/dist/gpu-driven/pbr-program.d.ts +10 -0
- package/dist/gpu-driven/pbr-program.d.ts.map +1 -0
- package/dist/gpu-driven/prepared-draw.d.ts.map +1 -1
- package/dist/gpu-driven/production-raster.d.ts +144 -23
- package/dist/gpu-driven/production-raster.d.ts.map +1 -1
- package/dist/gpu-driven/shadow-views.d.ts +126 -0
- package/dist/gpu-driven/shadow-views.d.ts.map +1 -0
- package/dist/gpu-driven/view-gpu.d.ts +18 -2
- package/dist/gpu-driven/view-gpu.d.ts.map +1 -1
- package/dist/gpu-scene-schema.d.ts +2 -8
- package/dist/gpu-scene-schema.d.ts.map +1 -1
- package/dist/gpu-scene.d.ts +14 -0
- package/dist/gpu-scene.d.ts.map +1 -1
- package/dist/gpu-texture-usage.d.ts +1 -0
- package/dist/gpu-texture-usage.d.ts.map +1 -1
- package/dist/hdrp-buffers.d.ts +6 -0
- package/dist/hdrp-buffers.d.ts.map +1 -1
- package/dist/ibl/frame-resources.d.ts +8 -0
- package/dist/ibl/frame-resources.d.ts.map +1 -0
- package/dist/ibl/skylight-bind-group.d.ts.map +1 -1
- package/dist/index.d.ts +21 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +8 -7
- package/dist/index.mjs.map +1 -1
- package/dist/inspection-types.d.ts +164 -0
- package/dist/inspection-types.d.ts.map +1 -1
- package/dist/instances-derived-bounds.d.ts +11 -0
- package/dist/instances-derived-bounds.d.ts.map +1 -1
- package/dist/instances.d.ts +89 -44
- package/dist/instances.d.ts.map +1 -1
- package/dist/internal.d.ts +3 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.mjs +118 -10
- package/dist/internal.mjs.map +1 -1
- package/dist/lifecycle.d.ts +2 -1
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/material-row.d.ts +5 -0
- package/dist/material-row.d.ts.map +1 -0
- package/dist/materials.d.ts +15 -0
- package/dist/materials.d.ts.map +1 -1
- package/dist/pbr-pipeline.d.ts +21 -5
- package/dist/pbr-pipeline.d.ts.map +1 -1
- package/dist/pipeline/standard-forward-lane.d.ts.map +1 -1
- package/dist/pipeline/standard-output/auto-exposure/capability.d.ts +12 -0
- package/dist/pipeline/standard-output/auto-exposure/capability.d.ts.map +1 -0
- package/dist/pipeline/standard-output/auto-exposure/gpu.d.ts +70 -0
- package/dist/pipeline/standard-output/auto-exposure/gpu.d.ts.map +1 -0
- package/dist/pipeline/standard-output/auto-exposure/graph.d.ts +75 -0
- package/dist/pipeline/standard-output/auto-exposure/graph.d.ts.map +1 -0
- package/dist/pipeline/standard-output/auto-exposure/inspection.d.ts +111 -0
- package/dist/pipeline/standard-output/auto-exposure/inspection.d.ts.map +1 -0
- package/dist/pipeline/standard-output/auto-exposure/oracle.d.ts +16 -0
- package/dist/pipeline/standard-output/auto-exposure/oracle.d.ts.map +1 -0
- package/dist/pipeline/standard-output/auto-exposure/preset.d.ts +14 -0
- package/dist/pipeline/standard-output/auto-exposure/preset.d.ts.map +1 -0
- package/dist/pipeline/standard-output/auto-exposure/state.d.ts +46 -0
- package/dist/pipeline/standard-output/auto-exposure/state.d.ts.map +1 -0
- package/dist/pipeline/standard-output/color-transform.d.ts +27 -0
- package/dist/pipeline/standard-output/color-transform.d.ts.map +1 -0
- package/dist/pipeline/standard-output/graph.d.ts +15 -0
- package/dist/pipeline/standard-output/graph.d.ts.map +1 -0
- package/dist/pipeline/standard-output/lut-admission.d.ts +29 -0
- package/dist/pipeline/standard-output/lut-admission.d.ts.map +1 -0
- package/dist/pipeline/standard-output/lut-gpu.d.ts +48 -0
- package/dist/pipeline/standard-output/lut-gpu.d.ts.map +1 -0
- package/dist/pipeline/standard-output/lut-state.d.ts +68 -0
- package/dist/pipeline/standard-output/lut-state.d.ts.map +1 -0
- package/dist/pipeline/standard-output/resources.d.ts +10 -0
- package/dist/pipeline/standard-output/resources.d.ts.map +1 -0
- package/dist/pipeline/standard-output/types.d.ts +39 -0
- package/dist/pipeline/standard-output/types.d.ts.map +1 -0
- package/dist/pipeline/standard-pipeline.d.ts.map +1 -1
- package/dist/pipeline/standard-post.d.ts +2 -2
- package/dist/pipeline/standard-post.d.ts.map +1 -1
- package/dist/pipeline-builder.d.ts +2 -1
- package/dist/pipeline-builder.d.ts.map +1 -1
- package/dist/pipeline-spec-types.d.ts +4 -0
- package/dist/pipeline-spec-types.d.ts.map +1 -1
- package/dist/pipeline-spec.d.ts +1 -9
- package/dist/pipeline-spec.d.ts.map +1 -1
- package/dist/points-lines/standard-owner.d.ts +1 -1
- package/dist/points-lines/standard-owner.d.ts.map +1 -1
- package/dist/prepare/prepared-graphics-resolver.d.ts +6 -1
- package/dist/prepare/prepared-graphics-resolver.d.ts.map +1 -1
- package/dist/record/dynamic-geometry-consumption.d.ts +15 -0
- package/dist/record/dynamic-geometry-consumption.d.ts.map +1 -0
- package/dist/record/frame-lighting.d.ts +3 -3
- package/dist/record/frame-lighting.d.ts.map +1 -1
- package/dist/record/frame-snapshot.d.ts +106 -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 +39 -4
- package/dist/record/frame.d.ts.map +1 -1
- package/dist/record/main-pass-geometry.d.ts +7 -8
- package/dist/record/main-pass-geometry.d.ts.map +1 -1
- package/dist/record/main-pass-material.d.ts +38 -1
- package/dist/record/main-pass-material.d.ts.map +1 -1
- package/dist/record/main-pass-sprite-draws.d.ts +2 -10
- package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
- package/dist/record/main-pass.d.ts +12 -2
- package/dist/record/main-pass.d.ts.map +1 -1
- package/dist/record/mesh-ssbo.d.ts +15 -6
- package/dist/record/mesh-ssbo.d.ts.map +1 -1
- package/dist/record/prepared-material-bindings.d.ts +19 -0
- package/dist/record/prepared-material-bindings.d.ts.map +1 -0
- package/dist/record/recovery-pipeline.d.ts +2 -9
- package/dist/record/recovery-pipeline.d.ts.map +1 -1
- package/dist/record/render-context.d.ts +76 -26
- package/dist/record/render-context.d.ts.map +1 -1
- package/dist/record/shadow-pass.d.ts +62 -7
- package/dist/record/shadow-pass.d.ts.map +1 -1
- package/dist/record/skybox-post-pass.d.ts +1 -1
- package/dist/record/skybox-post-pass.d.ts.map +1 -1
- package/dist/record/typed-frame-graph.d.ts +35 -7
- package/dist/record/typed-frame-graph.d.ts.map +1 -1
- package/dist/record/view-ubo.d.ts +1 -0
- package/dist/record/view-ubo.d.ts.map +1 -1
- package/dist/recovery/render-system-candidate.d.ts +10 -2
- package/dist/recovery/render-system-candidate.d.ts.map +1 -1
- package/dist/recovery/render-system-roots.d.ts +11 -0
- package/dist/recovery/render-system-roots.d.ts.map +1 -0
- package/dist/recovery/types.d.ts +76 -0
- package/dist/recovery/types.d.ts.map +1 -0
- package/dist/reflection/record-owner.d.ts +0 -2
- package/dist/reflection/record-owner.d.ts.map +1 -1
- package/dist/render-contract.d.ts +185 -30
- package/dist/render-contract.d.ts.map +1 -1
- package/dist/render-graph-primitives.d.ts +1 -0
- package/dist/render-graph-primitives.d.ts.map +1 -1
- package/dist/render-pipeline.d.ts +64 -5
- package/dist/render-pipeline.d.ts.map +1 -1
- package/dist/render-system-extract-tail.d.ts +7 -5
- package/dist/render-system-extract-tail.d.ts.map +1 -1
- package/dist/render-system-extract.d.ts +101 -41
- package/dist/render-system-extract.d.ts.map +1 -1
- package/dist/render-system-projections.d.ts +22 -0
- package/dist/render-system-projections.d.ts.map +1 -0
- package/dist/render-system.d.ts +34 -77
- package/dist/render-system.d.ts.map +1 -1
- package/dist/scene/render-scene-types.d.ts +14 -7
- package/dist/scene/render-scene-types.d.ts.map +1 -1
- package/dist/scene/render-scene.d.ts +29 -11
- package/dist/scene/render-scene.d.ts.map +1 -1
- package/dist/scene/shadow-visibility.d.ts +5 -0
- package/dist/scene/shadow-visibility.d.ts.map +1 -0
- package/dist/ssr/admission.d.ts +70 -1
- package/dist/ssr/admission.d.ts.map +1 -1
- package/dist/ssr/compose.d.ts +13 -0
- package/dist/ssr/compose.d.ts.map +1 -0
- package/dist/ssr/errors.d.ts +35 -0
- package/dist/ssr/errors.d.ts.map +1 -1
- package/dist/ssr/graph.d.ts +60 -0
- package/dist/ssr/graph.d.ts.map +1 -0
- package/dist/ssr/history.d.ts +97 -0
- package/dist/ssr/history.d.ts.map +1 -0
- package/dist/ssr/hiz.d.ts +37 -0
- package/dist/ssr/hiz.d.ts.map +1 -0
- package/dist/ssr/inspection.d.ts +42 -0
- package/dist/ssr/inspection.d.ts.map +1 -0
- package/dist/ssr/resources.d.ts +58 -0
- package/dist/ssr/resources.d.ts.map +1 -0
- package/dist/ssr/temporal.d.ts +38 -0
- package/dist/ssr/temporal.d.ts.map +1 -0
- package/dist/systems/skin-palette-allocator.d.ts +32 -10
- package/dist/systems/skin-palette-allocator.d.ts.map +1 -1
- package/dist/systems/skin-palette-types.d.ts +15 -0
- package/dist/systems/skin-palette-types.d.ts.map +1 -1
- package/dist/systems/transparent-dispatch.d.ts +9 -0
- package/dist/systems/transparent-dispatch.d.ts.map +1 -0
- package/dist/targets/material-source.d.ts +7 -0
- package/dist/targets/material-source.d.ts.map +1 -1
- package/dist/temporal/frame-coordinator.d.ts +7 -0
- package/dist/temporal/frame-coordinator.d.ts.map +1 -1
- package/dist/temporal/gpu.d.ts +8 -0
- package/dist/temporal/gpu.d.ts.map +1 -1
- package/dist/temporal/history.d.ts.map +1 -1
- package/dist/temporal/index.mjs +6 -6
- package/dist/temporal/inspection.d.ts.map +1 -1
- package/dist/temporal/standard-scene-data.d.ts +2 -1
- package/dist/temporal/standard-scene-data.d.ts.map +1 -1
- package/dist/temporal/temporal-view.d.ts +2 -0
- package/dist/temporal/temporal-view.d.ts.map +1 -1
- package/dist/typed-render-graph-primitives.d.ts +35 -1
- package/dist/typed-render-graph-primitives.d.ts.map +1 -1
- package/dist/typed-shadow-passes.d.ts +3 -1
- package/dist/typed-shadow-passes.d.ts.map +1 -1
- package/dist/volume/temporal.d.ts +6 -0
- package/dist/volume/temporal.d.ts.map +1 -1
- package/package.json +21 -20
- package/src/__tests__/auto-exposure-gpu-evidence.ts +291 -0
- package/src/__tests__/auto-exposure-inspection.unit.test.ts +80 -0
- package/src/__tests__/auto-exposure-transaction.integration.test.ts +99 -0
- package/src/__tests__/auto-exposure.browser.test.ts +33 -0
- package/src/__tests__/auto-exposure.dawn.test.ts +33 -0
- package/src/__tests__/detached-inspection.integration.test.ts +5 -0
- package/src/__tests__/device-scope-lifecycle.unit.test.ts +18 -0
- package/src/__tests__/device-scope-stale-matrix.unit.test.ts +18 -0
- package/src/__tests__/docs-gate-green.unit.test.ts +3 -3
- package/src/__tests__/dynamic-geometry-host.unit.test.ts +1123 -0
- package/src/__tests__/dynamic-geometry.unit.test.ts +233 -0
- package/src/__tests__/factory-contract.integration.test.ts +73 -22
- package/src/__tests__/fallback-row-stride-surface.unit.test.ts +19 -0
- package/src/__tests__/feature-depth-input.dawn.test.ts +121 -0
- package/src/__tests__/feature-noise.unit.test.ts +38 -0
- package/src/__tests__/fixtures/taa-resolve-pinned-baseline.wgsl +301 -0
- package/src/__tests__/frame-camera-selection.unit.test.ts +131 -0
- package/src/__tests__/frame-plan-contract.unit.test.ts +24 -0
- package/src/__tests__/frame-targets.unit.test.ts +24 -0
- package/src/__tests__/fullscreen-feature-plan.unit.test.ts +3 -0
- package/src/__tests__/gpu-driven-baseline.characterization.test.ts +79 -0
- package/src/__tests__/gpu-driven-batch-topology-pbr.unit.test.ts +287 -6
- package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +122 -142
- package/src/__tests__/gpu-driven-indirect-raster.browser.test.ts +10 -1
- package/src/__tests__/gpu-driven-lod-cache.unit.test.ts +264 -0
- package/src/__tests__/gpu-driven-mesh-world-identity.unit.test.ts +349 -0
- package/src/__tests__/gpu-driven-pbr.dawn.test.ts +1417 -0
- package/src/__tests__/gpu-driven-pbr.integration.test.ts +21 -0
- package/src/__tests__/gpu-driven-production-fixture.ts +96 -0
- package/src/__tests__/gpu-driven-production.integration.test.ts +1075 -93
- package/src/__tests__/gpu-driven-scaling.unit.test.ts +1 -3
- package/src/__tests__/gpu-driven-shadow-views.browser.test.ts +63 -0
- package/src/__tests__/gpu-driven-shadow-views.dawn.test.ts +294 -0
- package/src/__tests__/gpu-driven-shadow-views.integration.test.ts +97 -0
- package/src/__tests__/gpu-driven-shadow-views.unit.test.ts +168 -0
- package/src/__tests__/gpu-driven-skin-contract.test-d.ts +11 -0
- package/src/__tests__/gpu-driven-view-gpu-evidence.ts +72 -20
- package/src/__tests__/gpu-driven-view-graph.integration.test.ts +30 -9
- package/src/__tests__/gpu-driven-view.unit.test.ts +159 -52
- package/src/__tests__/gpu-pass-timing.browser.test.ts +6 -1
- package/src/__tests__/gpu-resource-store-stride.unit.test.ts +42 -0
- package/src/__tests__/gpu-scene-render-graph-gpu.ts +19 -5
- package/src/__tests__/gpu-scene.dawn.test.ts +40 -13
- package/src/__tests__/gpu-scene.unit.test.ts +559 -33
- package/src/__tests__/instances-culling.integration.test.ts +36 -10
- package/src/__tests__/instances-derived-bounds.unit.test.ts +54 -0
- package/src/__tests__/instances-store.unit.test.ts +242 -39
- package/src/__tests__/ktx2-basis-gpu-consumer.dawn.test.ts +6 -0
- package/src/__tests__/lighting-scene-roundtrip.integration.test.ts +13 -16
- package/src/__tests__/lut-lkg-transaction.integration.test.ts +122 -0
- package/src/__tests__/material-contract-inventory.unit.test.ts +5 -6
- package/src/__tests__/material-dispatch-shader-id.unit.test.ts +51 -0
- package/src/__tests__/material-lane-selection.unit.test.ts +60 -0
- package/src/__tests__/material-numeric-upload.unit.test.ts +53 -0
- package/src/__tests__/material-texture-handles.unit.test.ts +18 -0
- package/src/__tests__/material-texture-source.unit.test.ts +87 -0
- package/src/__tests__/materials-authoring-validation.unit.test.ts +41 -0
- package/src/__tests__/materials-standard-contract.unit.test.ts +52 -2
- package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +4 -0
- package/src/__tests__/mesh-submission-lifetime.unit.test.ts +53 -0
- package/src/__tests__/normal-fallback.dawn.test.ts +122 -0
- package/src/__tests__/particle-material-input-layout.unit.test.ts +104 -0
- package/src/__tests__/physical-clearcoat.integration.test.ts +37 -3
- package/src/__tests__/pipeline-texture-specialization.unit.test.ts +138 -0
- package/src/__tests__/point-shadow-inspection.unit.test.ts +2 -0
- package/src/__tests__/prepared-gpu-driven-pbr-contract.test-d.ts +31 -0
- package/src/__tests__/prepared-gpu-driven-pbr-contract.unit.test.ts +39 -0
- package/src/__tests__/prepared-gpu-driven-pbr.integration.test.ts +35 -4
- package/src/__tests__/prepared-graphics-capability.unit.test.ts +21 -0
- package/src/__tests__/prepared-graphics-pipeline-warmup.unit.test.ts +6 -2
- package/src/__tests__/profiler-phase-catalog.test.ts +5 -0
- package/src/__tests__/public-surface.test-d.ts +3 -0
- package/src/__tests__/recovery-candidate-prepare.contract.test.ts +30 -12
- package/src/__tests__/reflection-fallback-async-publication.unit.test.ts +104 -0
- package/src/__tests__/reflection-probe-record-owner.characterization.unit.test.ts +2 -1
- package/src/__tests__/render-error-code-owner.test-d.ts +4 -0
- package/src/__tests__/render-error-detail-ssot.test-d.ts +22 -0
- package/src/__tests__/render-error-exhaustive.test-d.ts +15 -0
- package/src/__tests__/render-feature-gpu-work.integration.test.ts +285 -2
- package/src/__tests__/render-feature-plan.unit.test.ts +245 -0
- package/src/__tests__/render-feature-shadow-order.unit.test.ts +228 -0
- package/src/__tests__/render-feature-zero-work.unit.test.ts +35 -1
- package/src/__tests__/render-graph-fallback.integration.test.ts +2 -2
- package/src/__tests__/render-owner-cohesion.unit.test.ts +55 -0
- package/src/__tests__/render-scene-mixed-updates.integration.test.ts +426 -0
- package/src/__tests__/render-scene-projection.unit.test.ts +914 -23
- package/src/__tests__/render-scene-resource-updates.integration.test.ts +214 -0
- package/src/__tests__/render-scene-skin-lifecycle.integration.test.ts +173 -0
- package/src/__tests__/render-scene-temporal-retry.unit.test.ts +133 -0
- package/src/__tests__/render-target-material-source.test-d.ts +27 -3
- package/src/__tests__/renderer-factory-material-contract.unit.test.ts +61 -1
- package/src/__tests__/renderer-frame-transaction.integration.test.ts +923 -5
- package/src/__tests__/shader-manifest-fixture.ts +39 -0
- package/src/__tests__/skin-motion-regression.unit.test.ts +0 -33
- package/src/__tests__/skin-palette-persistent.integration.test.ts +28 -0
- package/src/__tests__/skin-palette-persistent.unit.test.ts +247 -0
- package/src/__tests__/skinned-shadow-caster.test.ts +118 -14
- package/src/__tests__/specular-environment-scale.dawn.test.ts +156 -0
- package/src/__tests__/ssr-admission-matrix.integration.test.ts +7 -1
- package/src/__tests__/ssr-confidence-compose.unit.test.ts +84 -0
- package/src/__tests__/ssr-coordinate-oracle.unit.test.ts +28 -0
- package/src/__tests__/ssr-format-probe-gating.integration.test.ts +82 -0
- package/src/__tests__/ssr-gpu-dispatch.browser.test.ts +91 -0
- package/src/__tests__/ssr-gpu-dispatch.dawn.test.ts +112 -0
- package/src/__tests__/ssr-gpu-dispatch.ts +946 -0
- package/src/__tests__/ssr-graph-topology.unit.test.ts +104 -0
- package/src/__tests__/ssr-history-filter.dawn.test.ts +198 -0
- package/src/__tests__/ssr-hit-color.dawn.test.ts +273 -0
- package/src/__tests__/ssr-hiz-odd-reduction.dawn.test.ts +569 -0
- package/src/__tests__/ssr-hiz-rescue.dawn.test.ts +279 -0
- package/src/__tests__/ssr-hiz.browser.test.ts +150 -0
- package/src/__tests__/ssr-hiz.dawn.test.ts +150 -0
- package/src/__tests__/ssr-hiz.unit.test.ts +56 -0
- package/src/__tests__/ssr-inspection.unit.test.ts +105 -0
- package/src/__tests__/ssr-memory-budget.unit.test.ts +45 -0
- package/src/__tests__/ssr-performance-sequence-aggregation.unit.test.ts +15 -0
- package/src/__tests__/ssr-public-surface.test-d.ts +37 -0
- package/src/__tests__/ssr-receiver-coverage.dawn.test.ts +387 -0
- package/src/__tests__/ssr-reflection-mip-reducer.dawn.test.ts +309 -0
- package/src/__tests__/ssr-reprojection-probe.ts +90 -0
- package/src/__tests__/ssr-roughness-mip.dawn.test.ts +163 -0
- package/src/__tests__/ssr-shader-prewarm.unit.test.ts +59 -0
- package/src/__tests__/ssr-spatial.integration.test.ts +141 -0
- package/src/__tests__/ssr-stable-lattice.dawn.test.ts +475 -0
- package/src/__tests__/ssr-temporal-history.unit.test.ts +202 -0
- package/src/__tests__/ssr-texel-crossing.dawn.test.ts +448 -0
- package/src/__tests__/ssr-zero-work.integration.test.ts +87 -0
- package/src/__tests__/standard-cluster-variant-resolution.unit.test.ts +44 -12
- package/src/__tests__/standard-clustered-pipeline.unit.test.ts +29 -0
- package/src/__tests__/standard-output-chain-contract.unit.test.ts +99 -0
- package/src/__tests__/standard-output-chain.integration.test.ts +73 -0
- package/src/__tests__/standard-output-gpu-evidence.ts +205 -0
- package/src/__tests__/standard-output.browser.test.ts +15 -0
- package/src/__tests__/standard-output.dawn.test.ts +15 -0
- package/src/__tests__/standard-pbr-artifact-assembly.unit.test.ts +38 -0
- package/src/__tests__/standard-pipeline.integration.test.ts +320 -3
- package/src/__tests__/standard-profile-oracle.unit.test.ts +22 -0
- package/src/__tests__/standard-surface-lighting.unit.test.ts +41 -0
- package/src/__tests__/standard-texture-specialization.dawn.test.ts +141 -0
- package/src/__tests__/surface-adjacent-regressions.integration.test.ts +6 -3
- package/src/__tests__/taa-coverage-edge.dawn.test.ts +193 -0
- package/src/__tests__/taa-history-clipping.dawn.test.ts +328 -0
- package/src/__tests__/taa-neighborhood-equivalence.dawn.test.ts +778 -0
- package/src/__tests__/taa-stability-feedback.browser.test.ts +23 -0
- package/src/__tests__/taa-stability-feedback.dawn.test.ts +68 -0
- package/src/__tests__/taa-stability-feedback.ts +341 -0
- package/src/__tests__/temporal-history-lifecycle.unit.test.ts +49 -7
- package/src/__tests__/temporal-reset-matrix.unit.test.ts +9 -0
- package/src/__tests__/temporal-transaction.integration.test.ts +28 -0
- package/src/__tests__/texture-usage-surface.unit.test.ts +4 -2
- package/src/__tests__/typed-pipeline-topology.unit.test.ts +109 -4
- package/src/__tests__/typed-scene-pass-material-cache.integration.test.ts +126 -0
- package/src/__tests__/vertex-layouts-ssot.unit.test.ts +47 -0
- package/src/__tests__/visibility-extract.perf.test.ts +20 -8
- package/src/__tests__/visibility-instances.integration.test.ts +19 -7
- package/src/__tests__/visibility-producer-matrix.integration.test.ts +20 -9
- package/src/assembly/atmosphere-shader-prewarm.ts +38 -0
- package/src/assembly/dynamic-geometry-host.ts +887 -0
- package/src/assembly/dynamic-geometry-runtime.ts +71 -0
- package/src/assembly/factory.ts +4 -0
- package/src/assembly/gpu-driven-owner.ts +29 -0
- package/src/assembly/host-contract.ts +36 -0
- package/src/assembly/material/assembly.ts +38 -0
- package/src/assembly/material-shader-policy.ts +71 -28
- package/src/assembly/recovery/failure-location.ts +62 -0
- package/src/assembly/recovery/renderer-recover.ts +19 -17
- package/src/assembly/renderer-facade.ts +29 -0
- package/src/assembly/renderer-feature-inspection.ts +13 -0
- package/src/assembly/renderer-frame-transaction.ts +63 -0
- package/src/assembly/renderer-helpers.ts +26 -0
- package/src/assembly/renderer-inspection.ts +6 -0
- package/src/assembly/shader-prewarm-policy.ts +32 -0
- package/src/assembly/skin-palette-owner.ts +21 -0
- package/src/assembly/ssr-shader-prewarm.ts +41 -0
- package/src/assembly/webgpu-device-loss.ts +75 -0
- package/src/assembly/webgpu-pbr-ready.ts +232 -0
- package/src/assembly/webgpu-ready-mipmap.ts +26 -0
- package/src/assembly/webgpu-ready.ts +142 -121
- package/src/assembly/webgpu-renderer-bootstrap.ts +85 -0
- package/src/assembly/webgpu-renderer-contract.ts +69 -0
- package/src/assembly/webgpu-renderer-guards.ts +32 -0
- package/src/assembly/webgpu-renderer-observation.ts +43 -0
- package/src/assembly/webgpu-renderer-recovery-failure.ts +62 -0
- package/src/assembly/webgpu-renderer.ts +675 -614
- package/src/assembly/webgpu-vertex-layouts.ts +233 -87
- package/src/components/__tests__/camera-exposure.contract.unit.test.ts +153 -0
- package/src/components/camera.ts +287 -7
- package/src/components/index.ts +1 -0
- package/src/components/instances.ts +45 -18
- package/src/components/scene-instance.ts +2 -1
- package/src/components/screen-space-reflection.ts +21 -0
- package/src/components/sprite-animation.ts +3 -3
- package/src/components/sprite-instances.ts +1 -1
- package/src/device/gpu-residency.ts +96 -93
- package/src/device/mesh-residency-lifetime.ts +73 -0
- package/src/dynamic-geometry.ts +736 -0
- package/src/environment/background.ts +263 -0
- package/src/errors/gpu-driven.ts +39 -5
- package/src/errors/render.ts +27 -3
- package/src/extract/camera.ts +26 -1
- package/src/extract/gpu-driven.ts +185 -10
- package/src/features/host.ts +237 -19
- package/src/features/noise-texture.ts +91 -0
- package/src/features/plan.ts +553 -24
- package/src/features/prepared-gpu-work.ts +631 -49
- package/src/features/prepared-graphics-store.ts +31 -0
- package/src/features/prepared-graphics.ts +5 -0
- package/src/features/render-graph-compute.ts +41 -8
- package/src/features/render-graph-contribution.ts +141 -3
- package/src/features/render-graph-raster.ts +143 -30
- package/src/features/types.ts +11 -0
- package/src/fullscreen-post-process-pass.ts +3 -0
- package/src/gpu-driven/batch-topology.ts +424 -102
- package/src/gpu-driven/pbr-program.ts +31 -0
- package/src/gpu-driven/prepared-draw.ts +29 -4
- package/src/gpu-driven/production-raster.ts +2267 -694
- package/src/gpu-driven/shadow-views.ts +539 -0
- package/src/gpu-driven/view-gpu.ts +188 -41
- package/src/gpu-scene-schema.ts +52 -11
- package/src/gpu-scene.ts +186 -99
- package/src/gpu-texture-usage.ts +1 -0
- package/src/hdrp-buffers.ts +72 -36
- package/src/ibl/frame-resources.ts +38 -0
- package/src/ibl/skylight-bind-group.ts +5 -4
- package/src/index.ts +125 -1
- package/src/inspection-types.ts +191 -0
- package/src/instances-derived-bounds.ts +258 -34
- package/src/instances.ts +459 -150
- package/src/internal.ts +22 -0
- package/src/lifecycle.ts +2 -0
- package/src/material-row.ts +145 -0
- package/src/materials.ts +44 -8
- package/src/pbr-pipeline.ts +159 -17
- package/src/pipeline/standard-forward-lane.ts +52 -24
- package/src/pipeline/standard-output/__tests__/lut-admission.unit.test.ts +103 -0
- package/src/pipeline/standard-output/auto-exposure/__tests__/capability.unit.test.ts +40 -0
- package/src/pipeline/standard-output/auto-exposure/__tests__/gpu.contract.unit.test.ts +125 -0
- package/src/pipeline/standard-output/auto-exposure/__tests__/graph.contract.unit.test.ts +94 -0
- package/src/pipeline/standard-output/auto-exposure/__tests__/oracle.test.ts +108 -0
- package/src/pipeline/standard-output/auto-exposure/__tests__/preset.test.ts +26 -0
- package/src/pipeline/standard-output/auto-exposure/capability.ts +38 -0
- package/src/pipeline/standard-output/auto-exposure/gpu.ts +567 -0
- package/src/pipeline/standard-output/auto-exposure/graph.ts +221 -0
- package/src/pipeline/standard-output/auto-exposure/inspection.ts +231 -0
- package/src/pipeline/standard-output/auto-exposure/oracle.ts +291 -0
- package/src/pipeline/standard-output/auto-exposure/preset.ts +28 -0
- package/src/pipeline/standard-output/auto-exposure/state.ts +156 -0
- package/src/pipeline/standard-output/color-transform.ts +124 -0
- package/src/pipeline/standard-output/graph.ts +139 -0
- package/src/pipeline/standard-output/lut-admission.ts +121 -0
- package/src/pipeline/standard-output/lut-gpu.ts +399 -0
- package/src/pipeline/standard-output/lut-state.ts +176 -0
- package/src/pipeline/standard-output/resources.ts +121 -0
- package/src/pipeline/standard-output/types.ts +58 -0
- package/src/pipeline/standard-pipeline.ts +192 -59
- package/src/pipeline/standard-post.ts +186 -27
- package/src/pipeline-builder.ts +16 -6
- package/src/pipeline-spec-types.ts +4 -0
- package/src/pipeline-spec.ts +37 -29
- package/src/points-lines/standard-owner.ts +6 -14
- package/src/prepare/prepared-graphics-resolver.ts +9 -2
- package/src/record/__tests__/material-slot-plan.unit.test.ts +48 -0
- package/src/record/__tests__/mesh-ssbo.unit.test.ts +40 -1
- package/src/record/__tests__/recovery-pipeline.unit.test.ts +2 -29
- package/src/record/__tests__/sprite-material-abi.unit.test.ts +36 -5
- package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +45 -0
- package/src/record/__tests__/view-ubo-layout.unit.test.ts +5 -0
- package/src/record/dynamic-geometry-consumption.ts +59 -0
- package/src/record/frame-lighting.ts +12 -11
- package/src/record/frame-snapshot.ts +133 -23
- package/src/record/frame-targets.ts +9 -0
- package/src/record/frame.ts +727 -133
- package/src/record/main-pass-geometry.ts +162 -98
- package/src/record/main-pass-material.ts +115 -26
- package/src/record/main-pass-sprite-draws.ts +18 -107
- package/src/record/main-pass.ts +78 -8
- package/src/record/material-uniforms.ts +1 -1
- package/src/record/mesh-ssbo.ts +59 -15
- package/src/record/prepared-material-bindings.ts +234 -0
- package/src/record/recovery-pipeline.ts +59 -136
- package/src/record/render-context.ts +92 -22
- package/src/record/shadow-pass.ts +1231 -209
- package/src/record/skybox-post-pass.ts +14 -3
- package/src/record/typed-frame-graph.ts +1006 -53
- package/src/record/view-ubo.ts +11 -0
- package/src/recovery/render-system-candidate.ts +90 -66
- package/src/recovery/render-system-roots.ts +113 -0
- package/src/recovery/types.ts +77 -0
- package/src/reflection/record-owner.ts +26 -54
- package/src/render-contract.ts +219 -25
- package/src/render-graph-primitives.ts +6 -2
- package/src/render-pipeline.ts +70 -1
- package/src/render-system-extract-tail.ts +409 -160
- package/src/render-system-extract.ts +376 -102
- package/src/render-system-projections.ts +241 -0
- package/src/render-system.ts +692 -791
- package/src/scene/render-scene-types.ts +13 -4
- package/src/scene/render-scene.ts +569 -355
- package/src/scene/shadow-visibility.ts +21 -0
- package/src/ssr/admission.ts +380 -14
- package/src/ssr/compose.ts +144 -0
- package/src/ssr/errors.ts +48 -0
- package/src/ssr/graph.ts +777 -0
- package/src/ssr/history.ts +436 -0
- package/src/ssr/hiz.ts +124 -0
- package/src/ssr/inspection.ts +124 -0
- package/src/ssr/resources.ts +202 -0
- package/src/ssr/temporal.ts +164 -0
- package/src/systems/skin-palette-allocator.ts +495 -148
- package/src/systems/skin-palette-types.ts +17 -0
- package/src/systems/transparent-dispatch.ts +90 -0
- package/src/targets/material-source.ts +34 -0
- package/src/temporal/coverage.ts +1 -1
- package/src/temporal/frame-coordinator.ts +23 -2
- package/src/temporal/gpu.ts +74 -12
- package/src/temporal/history.ts +3 -1
- package/src/temporal/inspection.ts +2 -1
- package/src/temporal/standard-scene-data.ts +3 -1
- package/src/temporal/temporal-view.ts +3 -0
- package/src/transmission/__tests__/standard-transmission.dawn.test.ts +204 -139
- package/src/typed-render-graph-primitives.ts +266 -74
- package/src/typed-shadow-passes.ts +122 -12
- package/src/volume/temporal.ts +10 -0
- package/dist/chunk-ADHHVYLW.mjs.map +0 -1
- package/dist/chunk-FJ6P52EE.mjs.map +0 -1
- package/dist/chunk-GE3SDD72.mjs.map +0 -1
- package/dist/chunk-GF523LHF.mjs.map +0 -1
- package/dist/chunk-HKXTW355.mjs.map +0 -1
- package/dist/chunk-JDWARUOI.mjs.map +0 -1
- package/dist/chunk-KM2NOX2I.mjs.map +0 -1
- package/dist/chunk-TMIASV2N.mjs.map +0 -1
- package/dist/chunk-XDP6XE5V.mjs.map +0 -1
- package/dist/chunk-ZZ4YQ474.mjs.map +0 -1
- package/src/__tests__/instances-world-ownership.integration.test.ts +0 -62
- package/src/scene/__tests__/changed-block-summary.candidate.test.ts +0 -36
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { BindGroupLayout, PipelineLayout, Result, RhiDevice, ShaderModule } from '@forgeax/engine-rhi';
|
|
2
|
+
import { type RhiError } from '@forgeax/engine-rhi';
|
|
3
|
+
import type { MaterialShaderManifestEntry } from '@forgeax/engine-shader';
|
|
4
|
+
import type { ManifestEntry } from '@forgeax/engine-types';
|
|
5
|
+
import { type GpuDrivenPbrProgram } from '../gpu-driven/pbr-program';
|
|
6
|
+
import { type PbrPipelineLayoutBundle } from '../pbr-pipeline';
|
|
7
|
+
export type AsyncCreateShaderModule = (device: RhiDevice, desc: {
|
|
8
|
+
code: string;
|
|
9
|
+
label?: string | undefined;
|
|
10
|
+
}) => Promise<Result<ShaderModule, RhiError>>;
|
|
11
|
+
export interface GpuDrivenPbrReadyModules {
|
|
12
|
+
readonly pbrSkinModule: ShaderModule | null;
|
|
13
|
+
readonly gpuDrivenPbrPrograms: ReadonlyMap<string, GpuDrivenPbrProgram>;
|
|
14
|
+
}
|
|
15
|
+
export interface GpuDrivenPbrReadyLayouts {
|
|
16
|
+
readonly pbrSkinPipelineLayout: PipelineLayout | null;
|
|
17
|
+
readonly pbrSkinProbePipelineLayout: PipelineLayout | null;
|
|
18
|
+
readonly pbrSkinMeshBindGroupLayout: BindGroupLayout | null;
|
|
19
|
+
readonly gpuDrivenInstancesBindGroupLayout: BindGroupLayout | null;
|
|
20
|
+
readonly gpuDrivenPbrPipelineLayout: PipelineLayout | null;
|
|
21
|
+
readonly gpuDrivenPbrSkinPipelineLayout: PipelineLayout | null;
|
|
22
|
+
}
|
|
23
|
+
interface GpuDrivenPbrModuleInput {
|
|
24
|
+
readonly device: RhiDevice;
|
|
25
|
+
readonly storageBufferCapable: boolean;
|
|
26
|
+
readonly asyncCreateShaderModule: AsyncCreateShaderModule | undefined;
|
|
27
|
+
readonly pbrSkinEntry: ManifestEntry | undefined;
|
|
28
|
+
readonly pbrManifestEntry: MaterialShaderManifestEntry | undefined;
|
|
29
|
+
readonly pbrSkinManifestEntry: MaterialShaderManifestEntry | undefined;
|
|
30
|
+
readonly extendedLightingShaderAvailable: boolean;
|
|
31
|
+
readonly directionalPcssAvailable: boolean;
|
|
32
|
+
readonly projectorAvailable: boolean;
|
|
33
|
+
readonly seedShaderModule: (label: string, module: ShaderModule) => void;
|
|
34
|
+
}
|
|
35
|
+
export declare function buildGpuDrivenPbrReadyModules(input: GpuDrivenPbrModuleInput): Promise<GpuDrivenPbrReadyModules>;
|
|
36
|
+
export declare function buildGpuDrivenPbrReadyLayouts(device: RhiDevice, storageBufferCapable: boolean, pbrLayouts: PbrPipelineLayoutBundle): GpuDrivenPbrReadyLayouts;
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=webgpu-pbr-ready.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgpu-pbr-ready.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-pbr-ready.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,MAAM,EACN,SAAS,EACT,YAAY,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAM,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,KAAK,mBAAmB,EAAyB,MAAM,2BAA2B,CAAC;AAE5F,OAAO,EAKL,KAAK,uBAAuB,EAE7B,MAAM,iBAAiB,CAAC;AASzB,MAAM,MAAM,uBAAuB,GAAG,CACpC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,KAC/C,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE7C,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,oBAAoB,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,qBAAqB,EAAE,cAAc,GAAG,IAAI,CAAC;IACtD,QAAQ,CAAC,0BAA0B,EAAE,cAAc,GAAG,IAAI,CAAC;IAC3D,QAAQ,CAAC,0BAA0B,EAAE,eAAe,GAAG,IAAI,CAAC;IAC5D,QAAQ,CAAC,iCAAiC,EAAE,eAAe,GAAG,IAAI,CAAC;IACnE,QAAQ,CAAC,0BAA0B,EAAE,cAAc,GAAG,IAAI,CAAC;IAC3D,QAAQ,CAAC,8BAA8B,EAAE,cAAc,GAAG,IAAI,CAAC;CAChE;AAED,UAAU,uBAAuB;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,YAAY,EAAE,aAAa,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,gBAAgB,EAAE,2BAA2B,GAAG,SAAS,CAAC;IACnE,QAAQ,CAAC,oBAAoB,EAAE,2BAA2B,GAAG,SAAS,CAAC;IACvE,QAAQ,CAAC,+BAA+B,EAAE,OAAO,CAAC;IAClD,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC;IAC3C,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;CAC1E;AAYD,wBAAsB,6BAA6B,CACjD,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,wBAAwB,CAAC,CAoGnC;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,SAAS,EACjB,oBAAoB,EAAE,OAAO,EAC7B,UAAU,EAAE,uBAAuB,GAClC,wBAAwB,CAqD1B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { MipmapShaderModuleFactory } from '@forgeax/engine-assets-runtime';
|
|
2
|
+
import type { RhiDevice } from '@forgeax/engine-rhi';
|
|
3
|
+
import type { GpuResidencyCache } from '../device/gpu-residency';
|
|
4
|
+
import type { RhiBackendPack } from './backend-contract';
|
|
5
|
+
export declare function adaptMipmapShaderModuleFactory(factory: RhiBackendPack['createShaderModule']): MipmapShaderModuleFactory | undefined;
|
|
6
|
+
/**
|
|
7
|
+
* Prewarm the mipmap pipeline while the renderer is still on its async ready
|
|
8
|
+
* path. A manifest-free camera-only renderer must not create the shader.
|
|
9
|
+
*/
|
|
10
|
+
export declare function prewarmMipmapPipeline(rhiDevice: RhiDevice, gpuStore: GpuResidencyCache, hasMaterialManifest: boolean): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=webgpu-ready-mipmap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgpu-ready-mipmap.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-ready-mipmap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,cAAc,CAAC,oBAAoB,CAAC,GAC5C,yBAAyB,GAAG,SAAS,CAGvC;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,iBAAiB,EAC3B,mBAAmB,EAAE,OAAO,GAC3B,OAAO,CAAC,IAAI,CAAC,CAIf"}
|
|
@@ -5,7 +5,7 @@ export type { MaterialShaderManifestEntry } from '@forgeax/engine-shader';
|
|
|
5
5
|
import type { GpuResidencyCache } from '../device/gpu-residency';
|
|
6
6
|
import type { DeviceScope, RhiErrorListenerRegistry } from '../lifecycle';
|
|
7
7
|
import { type PipelineGroup2Contract } from '../pbr-pipeline';
|
|
8
|
-
import { type VolumetricFogShaderSources } from '../render-contract';
|
|
8
|
+
import { type AtmosphereShaderSources, type SsrShaderSources, type VolumetricFogShaderSources } from '../render-contract';
|
|
9
9
|
import { type PipelineState } from '../render-system';
|
|
10
10
|
import { type MeshSsboGrowResult, type MeshSsboState } from './mesh-ssbo-grow';
|
|
11
11
|
/**
|
|
@@ -39,7 +39,7 @@ export declare function buildReadyWebGPU(rhiDevice: RhiDevice, rendererScope: De
|
|
|
39
39
|
* during Renderer.initialization so prepared graphics do not fail on their first
|
|
40
40
|
* frame while the shared async shader adapter is still warming up.
|
|
41
41
|
*/
|
|
42
|
-
requiredMaterialShaders: readonly string[],
|
|
42
|
+
requiredMaterialShaders: readonly string[], standardPbrShaderUvSetCount: number,
|
|
43
43
|
/** Fullscreen feature modules compiled before the first synchronous frame. */
|
|
44
44
|
requiredFullscreenPostProcesses: readonly {
|
|
45
45
|
readonly identity: string;
|
|
@@ -51,5 +51,9 @@ registerBuiltinFxaa: (source: string) => void, registerBuiltinTemporalPostProces
|
|
|
51
51
|
readonly taaResolve?: string;
|
|
52
52
|
}) => void,
|
|
53
53
|
/** Install manifest-owned volume utility sources only after all four modules compile. */
|
|
54
|
-
setVolumetricFogShaderSources: (sources: VolumetricFogShaderSources) => void
|
|
54
|
+
setVolumetricFogShaderSources: (sources: VolumetricFogShaderSources) => void,
|
|
55
|
+
/** Install manifest-owned SSR utility sources only after all five modules compile. */
|
|
56
|
+
setSsrShaderSources: (sources: SsrShaderSources) => void,
|
|
57
|
+
/** Install manifest-owned atmosphere utility sources only after both modules compile. */
|
|
58
|
+
setAtmosphereShaderSources: (sources: AtmosphereShaderSources) => void): Promise<PipelineState>;
|
|
55
59
|
//# sourceMappingURL=webgpu-ready.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpu-ready.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-ready.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"webgpu-ready.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-ready.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAKV,cAAc,EACd,MAAM,EACN,SAAS,EAET,YAAY,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAM,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAM9E,YAAY,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,KAAK,EAAE,iBAAiB,EAAkB,MAAM,yBAAyB,CAAC;AAwBjF,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,EAGL,KAAK,sBAAsB,EAG5B,MAAM,iBAAiB,CAAC;AAmBzB,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EAErB,KAAK,0BAA0B,EAChC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAEnB,MAAM,kBAAkB,CAAC;AAmB1B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,WAAW,EAC1B,SAAS,EAAE,MAAM,aAAa,EAC9B,QAAQ,EAAE,iBAAiB,EAC3B,uBAAuB,EACnB,CAAC,CACC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,KAC/C,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,GAC7C,SAAS,EACb,aAAa,EAAE,wBAAwB;AACvC;;;;GAIG;AACH,uBAAuB,EAAE,SAAS,MAAM,EAAE,EAC1C,2BAA2B,EAAE,MAAM;AACnC,8EAA8E;AAC9E,+BAA+B,EAAE,SAAS;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,EAAE,EAUH,mBAAmB,EAAE,CACnB,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,kBAAkB,EACjD,KAAK,EAAE,aAAa,KACjB,IAAI,EAQT,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,EAQ/D,+BAA+B,EAAE,CAC/B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,cAAc,EACnB,cAAc,EAAE,sBAAsB,KACnC,IAAI,EAST,sBAAsB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;AAChD,sEAAsE;AACtE,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,EAC7C,oCAAoC,EAAE,CAAC,OAAO,EAAE;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,KAAK,IAAI;AACV,yFAAyF;AACzF,6BAA6B,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI;AAC5E,sFAAsF;AACtF,mBAAmB,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI;AACxD,yFAAyF;AACzF,0BAA0B,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,GACrE,OAAO,CAAC,aAAa,CAAC,CAixHxB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { RendererOptions } from '../render-contract';
|
|
2
|
+
import type { RhiBackendPack } from './backend-contract';
|
|
3
|
+
import type { BundlerOptions } from './bundler-contract';
|
|
4
|
+
import type { RendererAssemblyImplementation } from './host-contract';
|
|
5
|
+
import type { WebGPUOutcome, WebGPURendererInternals } from './webgpu-renderer-contract';
|
|
6
|
+
export type { WebGPUOutcome, WebGPURendererInternals } from './webgpu-renderer-contract';
|
|
7
|
+
export type WebGPURendererFactory = (internals: WebGPURendererInternals) => Promise<RendererAssemblyImplementation>;
|
|
8
|
+
/** Acquire the selected backend and build one renderer generation. */
|
|
9
|
+
export declare function tryCreateWebGPURenderer(canvas: HTMLCanvasElement | OffscreenCanvas, options: RendererOptions | undefined, pack: RhiBackendPack, bundler: BundlerOptions | undefined, createRenderer: WebGPURendererFactory): Promise<WebGPUOutcome>;
|
|
10
|
+
//# sourceMappingURL=webgpu-renderer-bootstrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgpu-renderer-bootstrap.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-renderer-bootstrap.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,KAAK,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAEzF,YAAY,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAEzF,MAAM,MAAM,qBAAqB,GAAG,CAClC,SAAS,EAAE,uBAAuB,KAC/B,OAAO,CAAC,8BAA8B,CAAC,CAAC;AAE7C,sEAAsE;AACtE,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,iBAAiB,GAAG,eAAe,EAC3C,OAAO,EAAE,eAAe,GAAG,SAAS,EACpC,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,cAAc,EAAE,qBAAqB,GACpC,OAAO,CAAC,aAAa,CAAC,CAyDxB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { RhiCanvasContext, RhiDevice, RhiError } from '@forgeax/engine-rhi';
|
|
2
|
+
import type { ImportTransport } from '@forgeax/engine-types';
|
|
3
|
+
import type { RenderFeatureHost } from '../features/host';
|
|
4
|
+
import type { HealthListenerRegistry, LostListenerRegistry, RhiErrorListenerRegistry } from '../lifecycle';
|
|
5
|
+
import type { GpuPassTimingReason } from '../record/gpu-pass-timing/errors.js';
|
|
6
|
+
import type { GpuPassTimingCapture, GpuPassTimingFrameIdentity } from '../record/gpu-pass-timing/index.js';
|
|
7
|
+
import type { AtmosphereShaderSources, FrameObservationDomain, RenderDebugOverlay, RendererOptions, SsrShaderSources, VolumetricFogShaderSources } from '../render-contract';
|
|
8
|
+
import type { TypedFrameObservationCapture } from '../typed-render-graph-primitives';
|
|
9
|
+
import type { RhiBackendPack } from './backend-contract';
|
|
10
|
+
import type { BundlerOptions } from './bundler-contract';
|
|
11
|
+
import type { RendererAssemblyImplementation } from './host-contract';
|
|
12
|
+
import type { MeshSsboGrowResult, MeshSsboState } from './mesh-ssbo-grow';
|
|
13
|
+
export type WebGPUOutcome = {
|
|
14
|
+
kind: 'ok';
|
|
15
|
+
renderer: RendererAssemblyImplementation;
|
|
16
|
+
} | {
|
|
17
|
+
kind: 'rhi-err';
|
|
18
|
+
error: RhiError;
|
|
19
|
+
} | {
|
|
20
|
+
kind: 'throw';
|
|
21
|
+
error: Error;
|
|
22
|
+
};
|
|
23
|
+
export interface WebGPURendererInternals {
|
|
24
|
+
canvas: HTMLCanvasElement | OffscreenCanvas;
|
|
25
|
+
device: RhiDevice;
|
|
26
|
+
context: RhiCanvasContext;
|
|
27
|
+
options: RendererOptions | undefined;
|
|
28
|
+
bundler: BundlerOptions | undefined;
|
|
29
|
+
lostRegistry: LostListenerRegistry;
|
|
30
|
+
errorRegistry: RhiErrorListenerRegistry;
|
|
31
|
+
healthRegistry: HealthListenerRegistry;
|
|
32
|
+
pack: RhiBackendPack;
|
|
33
|
+
importTransport?: ImportTransport | undefined;
|
|
34
|
+
growMeshSsbo?: (neededSlots: number) => MeshSsboGrowResult;
|
|
35
|
+
meshSsboState?: MeshSsboState;
|
|
36
|
+
featureHost?: RenderFeatureHost;
|
|
37
|
+
debugOverlay?: RenderDebugOverlay;
|
|
38
|
+
volumetricFogShaders?: VolumetricFogShaderSources | undefined;
|
|
39
|
+
ssrShaders?: SsrShaderSources | undefined;
|
|
40
|
+
atmosphereShaders?: AtmosphereShaderSources | undefined;
|
|
41
|
+
gpuPassTimingSubmittedWork?: Promise<void> | undefined;
|
|
42
|
+
lossObserver: {
|
|
43
|
+
current?: (detail: string) => void;
|
|
44
|
+
};
|
|
45
|
+
generationState: {
|
|
46
|
+
current: number;
|
|
47
|
+
onStaleLoss?: () => void;
|
|
48
|
+
};
|
|
49
|
+
getMaterialShaderUvSetCount?: (materialShaderId: string) => number | undefined;
|
|
50
|
+
gpuPassTimingFrameIdentity?: GpuPassTimingFrameIdentity | undefined;
|
|
51
|
+
gpuPassTimingCapture?: GpuPassTimingCapture | undefined;
|
|
52
|
+
gpuPassTimingBeginReason?: GpuPassTimingReason | undefined;
|
|
53
|
+
observationCaptureOwner?: {
|
|
54
|
+
register(capture: TypedFrameObservationCapture): void;
|
|
55
|
+
consume(frameNumber: number): readonly TypedFrameObservationCapture[];
|
|
56
|
+
drain(): readonly TypedFrameObservationCapture[];
|
|
57
|
+
};
|
|
58
|
+
observationCaptureDomains?: readonly FrameObservationDomain[] | undefined;
|
|
59
|
+
observationFrameId?: number | undefined;
|
|
60
|
+
observationGraphGeneration?: number | undefined;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=webgpu-renderer-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgpu-renderer-contract.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-renderer-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EACV,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,0BAA0B,EAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE1E,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,8BAA8B,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAEpC,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,iBAAiB,GAAG,eAAe,CAAC;IAC5C,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,EAAE,eAAe,GAAG,SAAS,CAAC;IACrC,OAAO,EAAE,cAAc,GAAG,SAAS,CAAC;IACpC,YAAY,EAAE,oBAAoB,CAAC;IACnC,aAAa,EAAE,wBAAwB,CAAC;IACxC,cAAc,EAAE,sBAAsB,CAAC;IACvC,IAAI,EAAE,cAAc,CAAC;IACrB,eAAe,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAC9C,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,kBAAkB,CAAC;IAC3D,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,oBAAoB,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;IAC9D,UAAU,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC1C,iBAAiB,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAC;IACxD,0BAA0B,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IACvD,YAAY,EAAE;QAAE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;IACrD,eAAe,EAAE;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;KAC1B,CAAC;IACF,2BAA2B,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC/E,0BAA0B,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;IACpE,oBAAoB,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACxD,wBAAwB,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC3D,uBAAuB,CAAC,EAAE;QACxB,QAAQ,CAAC,OAAO,EAAE,4BAA4B,GAAG,IAAI,CAAC;QACtD,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,4BAA4B,EAAE,CAAC;QACtE,KAAK,IAAI,SAAS,4BAA4B,EAAE,CAAC;KAClD,CAAC;IACF,yBAAyB,CAAC,EAAE,SAAS,sBAAsB,EAAE,GAAG,SAAS,CAAC;IAC1E,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,0BAA0B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { World } from '@forgeax/engine-ecs';
|
|
2
|
+
import { RendererOperationError } from '../errors/render';
|
|
3
|
+
/**
|
|
4
|
+
* Derived geometry and voxel physics publish together. A draw is rejected
|
|
5
|
+
* until that pair has completed its fixed-step writeback, so the renderer
|
|
6
|
+
* never consumes a half-published World snapshot.
|
|
7
|
+
*/
|
|
8
|
+
export declare function derivedPhysicsFrameError(worlds: readonly World[]): RendererOperationError<'frame-input-invalid'> | undefined;
|
|
9
|
+
//# sourceMappingURL=webgpu-renderer-guards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgpu-renderer-guards.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-renderer-guards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAgC,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAExF;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,SAAS,KAAK,EAAE,GACvB,sBAAsB,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAqB3D"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Buffer } from '@forgeax/engine-rhi';
|
|
2
|
+
import { RendererContractFailureError } from '../errors/render';
|
|
3
|
+
import type { TypedFrameObservationCapture } from '../typed-render-graph-primitives';
|
|
4
|
+
/** Dispose receipt-bound readback buffers while retaining failed ownership. */
|
|
5
|
+
export declare function disposeObservationCaptureSet(captures: readonly TypedFrameObservationCapture[], destroyed: WeakSet<Buffer>, failures: WeakMap<Buffer, RendererContractFailureError>, fire: (failure: RendererContractFailureError) => void): RendererContractFailureError | undefined;
|
|
6
|
+
//# sourceMappingURL=webgpu-renderer-observation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgpu-renderer-observation.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-renderer-observation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAErF,+EAA+E;AAC/E,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,SAAS,4BAA4B,EAAE,EACjD,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,EAC1B,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,4BAA4B,CAAC,EACvD,IAAI,EAAE,CAAC,OAAO,EAAE,4BAA4B,KAAK,IAAI,GACpD,4BAA4B,GAAG,SAAS,CAgC1C"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { DeviceResourceKind } from '../device/resource-types';
|
|
2
|
+
import type { RecoveryGuidance, RecoveryPhase } from './renderer-lifecycle';
|
|
3
|
+
export interface RecoveryFailureLocation {
|
|
4
|
+
readonly phase: RecoveryPhase;
|
|
5
|
+
readonly retryable: boolean;
|
|
6
|
+
readonly guidance: RecoveryGuidance;
|
|
7
|
+
readonly owner: string;
|
|
8
|
+
readonly resourceKind: DeviceResourceKind;
|
|
9
|
+
readonly cause: unknown;
|
|
10
|
+
}
|
|
11
|
+
export declare function createRecoveryFailureLocation(phase: RecoveryPhase, cause: unknown, overrides?: Partial<Omit<RecoveryFailureLocation, 'phase' | 'cause'>>): RecoveryFailureLocation;
|
|
12
|
+
//# sourceMappingURL=webgpu-renderer-recovery-failure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgpu-renderer-recovery-failure.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-renderer-recovery-failure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE5E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAaD,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,OAAO,EACd,SAAS,GAAE,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,OAAO,GAAG,OAAO,CAAC,CAAM,GACxE,uBAAuB,CAkCzB"}
|
|
@@ -1,151 +1,17 @@
|
|
|
1
|
-
import type { RhiCanvasContext, RhiDevice } from '@forgeax/engine-rhi';
|
|
2
|
-
import { RhiError } from '@forgeax/engine-rhi';
|
|
3
|
-
import type { ImportTransport } from '@forgeax/engine-types';
|
|
4
1
|
export type { MaterialShaderManifestEntry } from '@forgeax/engine-shader';
|
|
5
|
-
import type {
|
|
6
|
-
import { type RenderFeatureHost } from '../features/host';
|
|
7
|
-
import { HealthListenerRegistry, LostListenerRegistry, RhiErrorListenerRegistry } from '../lifecycle';
|
|
8
|
-
import type { RecoveryColdWorkGuard } from '../record/render-context';
|
|
9
|
-
import type { RenderDebugOverlay, RendererOptions, VolumetricFogShaderSources } from '../render-contract';
|
|
2
|
+
import type { RendererOptions } from '../render-contract';
|
|
10
3
|
import type { RhiBackendPack } from './backend-contract';
|
|
11
4
|
import type { BundlerOptions } from './bundler-contract';
|
|
12
|
-
|
|
13
|
-
import type {
|
|
14
|
-
import { type RecoveryGuidance, type RecoveryPhase } from './renderer-lifecycle';
|
|
5
|
+
export type { RecoveryFailureLocation } from './webgpu-renderer-recovery-failure';
|
|
6
|
+
import type { WebGPUOutcome } from './webgpu-renderer-contract';
|
|
15
7
|
export type { BundlerOptions } from './bundler-contract';
|
|
16
8
|
export { assembleMaterialProjection } from './material/assembly';
|
|
17
9
|
export type { LayoutKind, MaterialShaderBindingContract, MaterialShaderVertexInputContract, } from './material-shader-policy';
|
|
18
10
|
export { allowsUnlitPreparedFallback, isSharedMaterialUserRegionCompatible, normalizeMaterialShaderVariantSet, resolveMaterialShaderBackendArtifactKey, resolveMaterialShaderBindingContract, resolveMaterialShaderUvSetCount, resolveMaterialShaderVariantSet, resolveMaterialShaderVertexInputContract, selectNoColorPbrVariant, selectPipelineLayoutForVariant, shouldDeferMissingPreparedMaterialShader, } from './material-shader-policy';
|
|
19
|
-
export type
|
|
20
|
-
export { createMeshSsboGrowController, deriveStorageBufferCeiling, INITIAL_MESH_SSBO_SLOT_COUNT, requireMeshSsboBuffer, } from './mesh-ssbo-grow';
|
|
11
|
+
export { createMeshSsboGrowController, deriveStorageBufferCeiling, INITIAL_MESH_SSBO_SLOT_COUNT, type MeshSsboBufferWrapper, type MeshSsboGrowController, type MeshSsboGrowControllerInit, type MeshSsboGrowDevice, type MeshSsboGrowErrorRegistry, type MeshSsboGrowResult, type MeshSsboState, requireMeshSsboBuffer, } from './mesh-ssbo-grow';
|
|
21
12
|
export { exposeRenderer } from './renderer-facade';
|
|
22
|
-
export { selectHdrpPbrPrewarmVariants, selectProbePrewarmVariants, selectSkinPrewarmVariants, selectStandardPbrTransmissionPrewarmVariants, } from './shader-prewarm-policy';
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
* `createApp`) as the optional third argument.
|
|
26
|
-
*
|
|
27
|
-
* feat-20260608-create-app-param-surface-trim / M2 / D-3: aggregates the two
|
|
28
|
-
* host-injected build-tool channels:
|
|
29
|
-
*
|
|
30
|
-
* - shaderManifestUrl: the URL the host's vite-plugin-shader emit step
|
|
31
|
-
* wrote `manifest.json` to. When this field is omitted (or `bundler`
|
|
32
|
-
* itself is omitted), createRenderer falls back to
|
|
33
|
-
* '/shaders/manifest.json' (D-2 q5-A) so the LO 1.1 zero-config takeoff
|
|
34
|
-
* path keeps working without explicit injection. Tests can inject via a
|
|
35
|
-
* `data:application/json,...` URL to bypass fetch.
|
|
36
|
-
*
|
|
37
|
-
* - importTransport: dev-only ImportTransport forwarded verbatim to the
|
|
38
|
-
* AssetRegistry third ctor slot so DDC-miss assets can lazy-import.
|
|
39
|
-
* Absent => shipped form (a DDC miss fails fast with `asset-not-imported`).
|
|
40
|
-
*
|
|
41
|
-
* The interface is structurally shared with `@forgeax/engine-app` while this
|
|
42
|
-
* package keeps the renderer independent from the host package.
|
|
43
|
-
*/
|
|
44
|
-
/**
|
|
45
|
-
* Wire the spec `device.lost` Promise into the lost / error / health channels
|
|
46
|
-
* (research §F-4 / R2). A genuine device loss fans out through `errorRegistry`
|
|
47
|
-
* so the public `renderer.subscribe` error event triggers, and
|
|
48
|
-
* through `healthRegistry` so `health().reason` flips to `'device-lost'`
|
|
49
|
-
* (feat-20260622-s5 M1/M2). Explicit renderer teardown is observable through
|
|
50
|
-
* `onLost`, but is not a runtime error and must not manufacture an RhiError.
|
|
51
|
-
*
|
|
52
|
-
* Extracted to a single helper (SSOT) so the createRenderer assembly path AND
|
|
53
|
-
* the recover() rebuild path attach byte-identical fan-out to whichever device
|
|
54
|
-
* is current — recover() mints a fresh device whose own `lost` Promise must be
|
|
55
|
-
* re-wired to the SAME registries the host already subscribed to.
|
|
56
|
-
*/
|
|
57
|
-
/**
|
|
58
|
-
* tryCreateWebGPURenderer returns three kinds of outcome (fix-f1 / w16):
|
|
59
|
-
* - `ok` → Renderer created successfully
|
|
60
|
-
* - `rhi-err` → RHI Result.err path (preserves the original RhiError
|
|
61
|
-
* for AI consumers to read; now includes context acquisition
|
|
62
|
-
* failures via pack.rhi.acquireCanvasContext)
|
|
63
|
-
* - `throw` → exception path (caught and wrapped by the caller as
|
|
64
|
-
* an Error)
|
|
65
|
-
*/
|
|
66
|
-
export type WebGPUOutcome = {
|
|
67
|
-
kind: 'ok';
|
|
68
|
-
renderer: RendererAssemblyImplementation;
|
|
69
|
-
} | {
|
|
70
|
-
kind: 'rhi-err';
|
|
71
|
-
error: RhiError;
|
|
72
|
-
} | {
|
|
73
|
-
kind: 'throw';
|
|
74
|
-
error: Error;
|
|
75
|
-
};
|
|
13
|
+
export { selectGpuDrivenSceneIndexVariant, selectHdrpPbrPrewarmVariants, selectProbePrewarmVariants, selectSkinPrewarmVariants, selectStandardPbrTransmissionPrewarmVariants, } from './shader-prewarm-policy';
|
|
14
|
+
export type { WebGPUOutcome, WebGPURendererInternals } from './webgpu-renderer-contract';
|
|
15
|
+
export { disposeObservationCaptureSet } from './webgpu-renderer-observation';
|
|
76
16
|
export declare function tryCreateWebGPURenderer(canvas: HTMLCanvasElement | OffscreenCanvas, options: RendererOptions | undefined, pack: RhiBackendPack, bundler: BundlerOptions | undefined): Promise<WebGPUOutcome>;
|
|
77
|
-
export interface WebGPURendererInternals {
|
|
78
|
-
canvas: HTMLCanvasElement | OffscreenCanvas;
|
|
79
|
-
device: RhiDevice;
|
|
80
|
-
context: RhiCanvasContext;
|
|
81
|
-
options: RendererOptions | undefined;
|
|
82
|
-
/**
|
|
83
|
-
* feat-20260608-create-app-param-surface-trim / M2 / D-3: BundlerOptions
|
|
84
|
-
* forwarded verbatim from createRenderer's third arg. Carries
|
|
85
|
-
* shaderManifestUrl (host-injected vite-plugin-shader emit URL; absent =>
|
|
86
|
-
* createRenderer falls back to '/shaders/manifest.json') and the
|
|
87
|
-
* importTransport that previously rode a dedicated internal slot.
|
|
88
|
-
*/
|
|
89
|
-
bundler: BundlerOptions | undefined;
|
|
90
|
-
lostRegistry: LostListenerRegistry;
|
|
91
|
-
errorRegistry: RhiErrorListenerRegistry;
|
|
92
|
-
healthRegistry: HealthListenerRegistry;
|
|
93
|
-
/** M3 D-P4 auto-select pack — carries the dynamic-imported rhi-webgpu / rhi-wgpu singleton + optional async shader factory. */
|
|
94
|
-
pack: RhiBackendPack;
|
|
95
|
-
/**
|
|
96
|
-
* feat-20260604-hdr-equirect-cube-importer-loader M4 / w16 (D-3): the
|
|
97
|
-
* dev-only ImportTransport, forwarded verbatim from createRenderer to the
|
|
98
|
-
* AssetRegistry third ctor slot. `undefined` keeps the shipped form (DDC
|
|
99
|
-
* miss fails fast with `asset-not-imported`, AC-08).
|
|
100
|
-
*/
|
|
101
|
-
importTransport?: ImportTransport | undefined;
|
|
102
|
-
/**
|
|
103
|
-
* feat-20260608-mesh-ssbo-dynamic-grow-l1-lift-1024-entity-cap M2 / T-M2-05:
|
|
104
|
-
* mesh-SSBO grow hook surfaced by `makeWebGPURenderer` after the controller
|
|
105
|
-
* is constructed. Undefined before `makeWebGPURenderer` runs; populated by
|
|
106
|
-
* the time the renderer is returned to the caller. M3's record stage reads
|
|
107
|
-
* this field via the runtime path that bridges into render-system-record.ts
|
|
108
|
-
* (the bridging plumbing is in M3's targetFiles).
|
|
109
|
-
*
|
|
110
|
-
* Returns `{ ok: true }` when the grow completed (or short-circuited
|
|
111
|
-
* idempotently); `{ ok: false, code }` with a fired structured error
|
|
112
|
-
* (`MeshSsboCeilingReachedError` or `MeshSsboCapacityExceededError`) when
|
|
113
|
-
* the request cannot be satisfied. Never throws (D-5).
|
|
114
|
-
*/
|
|
115
|
-
growMeshSsbo?: (neededSlots: number) => MeshSsboGrowResult;
|
|
116
|
-
/**
|
|
117
|
-
* feat-20260608-mesh-ssbo-dynamic-grow-l1-lift-1024-entity-cap M3 / T-M3-04:
|
|
118
|
-
* read-only handle to the grow controller's state (slotCount + wrapper
|
|
119
|
-
* refs), surfaced alongside `growMeshSsbo` so `ensureMeshSsboCapacity`
|
|
120
|
-
* (record-stage wiring) can short-circuit when slotCount already covers the
|
|
121
|
-
* frame's renderable count and so the dev-mode info log can report the
|
|
122
|
-
* before/after slot count transition. Undefined until buildReadyWebGPU
|
|
123
|
-
* has wired the controller; identity stable across grow events.
|
|
124
|
-
*/
|
|
125
|
-
meshSsboState?: MeshSsboState;
|
|
126
|
-
/** Host-owned producer features; created before device-bound assembly starts. */
|
|
127
|
-
featureHost?: RenderFeatureHost;
|
|
128
|
-
/** App-owned overlay capability read by the typed graph at frame time. */
|
|
129
|
-
debugOverlay?: RenderDebugOverlay;
|
|
130
|
-
/** Composed renderer utility sources installed atomically at build-ready. */
|
|
131
|
-
volumetricFogShaders?: VolumetricFogShaderSources | undefined;
|
|
132
|
-
gpuPassTimingSubmittedWork?: Promise<void> | undefined;
|
|
133
|
-
lossObserver: {
|
|
134
|
-
current?: (detail: string) => void;
|
|
135
|
-
};
|
|
136
|
-
generationState: {
|
|
137
|
-
current: number;
|
|
138
|
-
onStaleLoss?: () => void;
|
|
139
|
-
};
|
|
140
|
-
recoveryColdWorkGuard?: RecoveryColdWorkGuard | undefined;
|
|
141
|
-
getMaterialShaderUvSetCount?: (materialShaderId: string) => number | undefined;
|
|
142
|
-
}
|
|
143
|
-
export interface RecoveryFailureLocation {
|
|
144
|
-
readonly phase: RecoveryPhase;
|
|
145
|
-
readonly retryable: boolean;
|
|
146
|
-
readonly guidance: RecoveryGuidance;
|
|
147
|
-
readonly owner: string;
|
|
148
|
-
readonly resourceKind: DeviceResourceKind;
|
|
149
|
-
readonly cause: unknown;
|
|
150
|
-
}
|
|
151
17
|
//# sourceMappingURL=webgpu-renderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpu-renderer.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-renderer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"webgpu-renderer.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-renderer.ts"],"names":[],"mappings":"AAyCA,YAAY,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAsE1E,OAAO,KAAK,EAUV,eAAe,EAQhB,MAAM,oBAAoB,CAAC;AAgB5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AA2DzD,YAAY,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAUlF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAUhE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,YAAY,EACV,UAAU,EACV,6BAA6B,EAC7B,iCAAiC,GAClC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,2BAA2B,EAC3B,oCAAoC,EACpC,iCAAiC,EACjC,uCAAuC,EACvC,oCAAoC,EACpC,+BAA+B,EAC/B,+BAA+B,EAC/B,wCAAwC,EACxC,uBAAuB,EACvB,8BAA8B,EAC9B,wCAAwC,GACzC,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,gCAAgC,EAChC,4BAA4B,EAC5B,0BAA0B,EAC1B,yBAAyB,EACzB,4CAA4C,GAC7C,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAI7E,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,iBAAiB,GAAG,eAAe,EAC3C,OAAO,EAAE,eAAe,GAAG,SAAS,EACpC,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,cAAc,GAAG,SAAS,GAClC,OAAO,CAAC,aAAa,CAAC,CAExB"}
|
|
@@ -1,89 +1,33 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type GpuVertexBufferLayoutEntry, type VertexLayoutProjection } from '@forgeax/engine-geometry';
|
|
2
2
|
import type { VertexAttributeMap } from '@forgeax/engine-types';
|
|
3
|
-
|
|
4
|
-
/** Default 4-attribute vertex layout used as fallback when meshAttributes is undefined. */
|
|
5
|
-
export declare const DEFAULT_VERTEX_ATTRS: VertexAttributeMap;
|
|
3
|
+
/** Geometry-owned maps retained here only as feature-pipeline aliases. */
|
|
6
4
|
export declare const PREPARED_INSTANCE_VERTEX_ATTRS: VertexAttributeMap;
|
|
7
5
|
export declare const PREPARED_MATERIAL_INSTANCE_VERTEX_ATTRS: VertexAttributeMap;
|
|
8
|
-
export declare const POSITION_SIZE_COLOR_INSTANCE_VERTEX_BUFFERS:
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
export declare const BILLBOARD_MATERIAL_INSTANCE_VERTEX_BUFFERS: {
|
|
26
|
-
arrayStride: number;
|
|
27
|
-
stepMode: "instance";
|
|
28
|
-
attributes: ({
|
|
29
|
-
shaderLocation: number;
|
|
30
|
-
offset: number;
|
|
31
|
-
format: "float32x3";
|
|
32
|
-
} | {
|
|
33
|
-
shaderLocation: number;
|
|
34
|
-
offset: number;
|
|
35
|
-
format: "float32x2";
|
|
36
|
-
} | {
|
|
37
|
-
shaderLocation: number;
|
|
38
|
-
offset: number;
|
|
39
|
-
format: "float32x4";
|
|
40
|
-
})[];
|
|
41
|
-
}[];
|
|
42
|
-
export declare const TOPOLOGY_SEGMENT_INSTANCE_VERTEX_BUFFERS: {
|
|
43
|
-
arrayStride: number;
|
|
44
|
-
stepMode: "instance";
|
|
45
|
-
attributes: ({
|
|
46
|
-
shaderLocation: number;
|
|
47
|
-
offset: number;
|
|
48
|
-
format: "float32x3";
|
|
49
|
-
} | {
|
|
50
|
-
shaderLocation: number;
|
|
51
|
-
offset: number;
|
|
52
|
-
format: "float32x4";
|
|
53
|
-
} | {
|
|
54
|
-
shaderLocation: number;
|
|
55
|
-
offset: number;
|
|
56
|
-
format: "float32x2";
|
|
57
|
-
})[];
|
|
58
|
-
}[];
|
|
59
|
-
export declare const MESH_GEOMETRY_MATERIAL_INSTANCE_VERTEX_BUFFERS: ({
|
|
60
|
-
arrayStride: number;
|
|
61
|
-
stepMode: "vertex";
|
|
62
|
-
attributes: ({
|
|
63
|
-
shaderLocation: number;
|
|
64
|
-
offset: number;
|
|
65
|
-
format: "float32x3";
|
|
66
|
-
} | {
|
|
67
|
-
shaderLocation: number;
|
|
68
|
-
offset: number;
|
|
69
|
-
format: "float32x2";
|
|
70
|
-
} | {
|
|
71
|
-
shaderLocation: number;
|
|
72
|
-
offset: number;
|
|
73
|
-
format: "float32x4";
|
|
74
|
-
})[];
|
|
75
|
-
} | {
|
|
76
|
-
arrayStride: number;
|
|
77
|
-
stepMode: "instance";
|
|
78
|
-
attributes: ({
|
|
79
|
-
shaderLocation: number;
|
|
80
|
-
offset: number;
|
|
81
|
-
format: "float32x3";
|
|
82
|
-
} | {
|
|
83
|
-
shaderLocation: number;
|
|
84
|
-
offset: number;
|
|
85
|
-
format: "float32x4";
|
|
86
|
-
})[];
|
|
87
|
-
})[];
|
|
6
|
+
export declare const POSITION_SIZE_COLOR_INSTANCE_VERTEX_BUFFERS: GPUVertexBufferLayout[];
|
|
7
|
+
export declare const BILLBOARD_MATERIAL_INSTANCE_VERTEX_BUFFERS: GPUVertexBufferLayout[];
|
|
8
|
+
export declare const TOPOLOGY_SEGMENT_INSTANCE_VERTEX_BUFFERS: GPUVertexBufferLayout[];
|
|
9
|
+
/**
|
|
10
|
+
* The mesh stream is derived from geometry's canonical attribute projection.
|
|
11
|
+
* The second stream remains a feature-owned instance ABI because it carries
|
|
12
|
+
* particle transform/material data rather than MeshAsset attributes.
|
|
13
|
+
*/
|
|
14
|
+
export declare const MESH_GEOMETRY_MATERIAL_INSTANCE_VERTEX_BUFFERS: GPUVertexBufferLayout[];
|
|
15
|
+
export declare function isPreparedMaterialVertexLayout(layout: string | undefined): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Derive the prepared particle layout that appends one to four material-input
|
|
18
|
+
* vec4 lanes to the instance stream. The base layouts stay shared with the
|
|
19
|
+
* no-input path; only the final stream stride and locations change, which
|
|
20
|
+
* keeps the vertex-data ABI and pipeline cache key in lockstep.
|
|
21
|
+
*/
|
|
22
|
+
export declare function particleMaterialInputVertexBuffers(vertexLayout: string | undefined, lanes?: number): readonly GPUVertexBufferLayout[] | undefined;
|
|
88
23
|
export declare function toGpuVertexBufferLayouts(entries: readonly GpuVertexBufferLayoutEntry[]): readonly GPUVertexBufferLayout[];
|
|
24
|
+
export declare function resolveWebGPUVertexBufferLayouts(options: {
|
|
25
|
+
vertexInputContract: 'none' | 'render-material';
|
|
26
|
+
vertexLayout: string | undefined;
|
|
27
|
+
vertexLayoutProjection: VertexLayoutProjection | undefined;
|
|
28
|
+
resolvedUvSetCount: number | undefined;
|
|
29
|
+
layoutKind: string;
|
|
30
|
+
meshAttributes: VertexAttributeMap | undefined;
|
|
31
|
+
particleInputLanes: number | undefined;
|
|
32
|
+
}): readonly GPUVertexBufferLayout[];
|
|
89
33
|
//# sourceMappingURL=webgpu-vertex-layouts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpu-vertex-layouts.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-vertex-layouts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"webgpu-vertex-layouts.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-vertex-layouts.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,0BAA0B,EAE/B,KAAK,sBAAsB,EAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AA0FhE,0EAA0E;AAC1E,eAAO,MAAM,8BAA8B,oBAAoC,CAAC;AAChF,eAAO,MAAM,uCAAuC,oBAA4B,CAAC;AAUjF,eAAO,MAAM,2CAA2C,yBAEZ,CAAC;AAE7C,eAAO,MAAM,0CAA0C,yBAEX,CAAC;AAE7C,eAAO,MAAM,wCAAwC,yBAET,CAAC;AAE7C;;;;GAIG;AACH,eAAO,MAAM,8CAA8C,yBAGf,CAAC;AAW7C,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAElF;AAED;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAChD,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,KAAK,CAAC,EAAE,MAAM,GACb,SAAS,qBAAqB,EAAE,GAAG,SAAS,CA8B9C;AAgBD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,SAAS,0BAA0B,EAAE,GAC7C,SAAS,qBAAqB,EAAE,CAUlC;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE;IACxD,mBAAmB,EAAE,MAAM,GAAG,iBAAiB,CAAC;IAChD,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,sBAAsB,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAC3D,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC/C,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC,GAAG,SAAS,qBAAqB,EAAE,CAsDnC"}
|
package/dist/authoring.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { GlyphText, SpritePlayback,
|
|
2
|
-
export { SpriteAnimation, SpriteInstances, SpriteRegionOverride, TileLayer, Tilemap, TilemapSort } from './chunk-
|
|
1
|
+
export { GlyphText, SpritePlayback, spritePlaybackModeFromU32 } from './chunk-ILQ5MEZF.mjs';
|
|
2
|
+
export { SpriteAnimation, SpriteInstances, SpriteRegionOverride, TileLayer, Tilemap, TilemapSort, setActiveCamera } from './chunk-PA5DRJNI.mjs';
|
|
3
3
|
export { TransparentSort } from './chunk-RXZ3RGOU.mjs';
|
|
4
|
-
export { SPRITE_PREMULTIPLIED_ALPHA_BLEND } from './chunk-
|
|
4
|
+
export { SPRITE_PREMULTIPLIED_ALPHA_BLEND } from './chunk-BLXGONR2.mjs';
|
|
5
5
|
import { ok } from '@forgeax/engine-types';
|
|
6
6
|
|
|
7
7
|
function createFullscreenRenderFeature(options) {
|