aigpu 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/README.md +85 -0
- package/bin/aigpu.js +15 -0
- package/client.d.ts +15 -0
- package/dist/agent-tools.d.ts +61 -0
- package/dist/agent-tools.d.ts.map +1 -0
- package/dist/agent-tools.js +107 -0
- package/dist/agent-tools.js.map +1 -0
- package/dist/agent.d.ts +56 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +243 -0
- package/dist/agent.js.map +1 -0
- package/dist/api-types.d.ts +56 -0
- package/dist/api-types.d.ts.map +1 -0
- package/dist/api-types.js +2 -0
- package/dist/api-types.js.map +1 -0
- package/dist/bind-cache.d.ts +19 -0
- package/dist/bind-cache.d.ts.map +1 -0
- package/dist/bind-cache.js +43 -0
- package/dist/bind-cache.js.map +1 -0
- package/dist/bundle.d.ts +30 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +127 -0
- package/dist/bundle.js.map +1 -0
- package/dist/claim-validation-encode.d.ts +14 -0
- package/dist/claim-validation-encode.d.ts.map +1 -0
- package/dist/claim-validation-encode.js +28 -0
- package/dist/claim-validation-encode.js.map +1 -0
- package/dist/claim-validation.d.ts +73 -0
- package/dist/claim-validation.d.ts.map +1 -0
- package/dist/claim-validation.js +135 -0
- package/dist/claim-validation.js.map +1 -0
- package/dist/cli/bin/aigpu.js +101 -0
- package/dist/cli/lib/check/run.js +153 -0
- package/dist/cli/lib/docs/commands/cat.js +12 -0
- package/dist/cli/lib/docs/commands/find.js +180 -0
- package/dist/cli/lib/docs/commands/grep.js +49 -0
- package/dist/cli/lib/docs/commands/ls.js +41 -0
- package/dist/cli/lib/docs/commands/path.js +12 -0
- package/dist/cli/lib/docs/commands/resolve.js +41 -0
- package/dist/cli/lib/docs/commands/shared.js +13 -0
- package/dist/cli/lib/docs/commands/symbols.js +25 -0
- package/dist/cli/lib/docs/errors.js +8 -0
- package/dist/cli/lib/docs/generate/check-drift.js +61 -0
- package/dist/cli/lib/docs/generate/cli.js +12 -0
- package/dist/cli/lib/docs/generate/generate.js +113 -0
- package/dist/cli/lib/docs/generate/manifest.js +218 -0
- package/dist/cli/lib/docs/generate/skill.js +150 -0
- package/dist/cli/lib/docs/help.js +21 -0
- package/dist/cli/lib/docs/index.js +62 -0
- package/dist/cli/lib/docs/model.js +7 -0
- package/dist/cli/lib/docs/run.js +24 -0
- package/dist/cli/lib/docs/service.js +119 -0
- package/dist/cli/lib/doctor/run.js +236 -0
- package/dist/cli/lib/examples/errors.js +13 -0
- package/dist/cli/lib/examples/hashing.js +9 -0
- package/dist/cli/lib/examples/help.js +13 -0
- package/dist/cli/lib/examples/local-source.js +142 -0
- package/dist/cli/lib/examples/paths.js +12 -0
- package/dist/cli/lib/examples/pull.js +58 -0
- package/dist/cli/lib/examples/run.js +71 -0
- package/dist/cli/lib/examples/search.js +6 -0
- package/dist/cli/lib/examples/service.js +118 -0
- package/dist/cli/lib/generated/docs-manifest.generated.js +4758 -0
- package/dist/cli/lib/install-dawn/run.js +24 -0
- package/dist/cli/lib/install-software-renderer/run.js +17 -0
- package/dist/cli/lib/mcp/http.js +93 -0
- package/dist/cli/lib/mcp/server.js +258 -0
- package/dist/cli/lib/mcp/stdio.js +34 -0
- package/dist/cli/lib/snapshot/png.js +62 -0
- package/dist/cli/lib/snapshot/render.js +22 -0
- package/dist/cli/lib/snapshot/run.js +79 -0
- package/dist/cli/lib/snapshot/shaders.js +11 -0
- package/dist/cli/package.json +4 -0
- package/dist/client.d.ts +12 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +2 -0
- package/dist/client.js.map +1 -0
- package/dist/clock.d.ts +26 -0
- package/dist/clock.d.ts.map +1 -0
- package/dist/clock.js +50 -0
- package/dist/clock.js.map +1 -0
- package/dist/compute.d.ts +41 -0
- package/dist/compute.d.ts.map +1 -0
- package/dist/compute.js +132 -0
- package/dist/compute.js.map +1 -0
- package/dist/core/render-bundle.d.ts +30 -0
- package/dist/core/render-bundle.d.ts.map +1 -0
- package/dist/core/render-bundle.js +39 -0
- package/dist/core/render-bundle.js.map +1 -0
- package/dist/core/storage-buffer.d.ts +81 -0
- package/dist/core/storage-buffer.d.ts.map +1 -0
- package/dist/core/storage-buffer.js +91 -0
- package/dist/core/storage-buffer.js.map +1 -0
- package/dist/core/structured-uniform.d.ts +33 -0
- package/dist/core/structured-uniform.d.ts.map +1 -0
- package/dist/core/structured-uniform.js +110 -0
- package/dist/core/structured-uniform.js.map +1 -0
- package/dist/core/uniform-pool-internals.d.ts +12 -0
- package/dist/core/uniform-pool-internals.d.ts.map +1 -0
- package/dist/core/uniform-pool-internals.js +24 -0
- package/dist/core/uniform-pool-internals.js.map +1 -0
- package/dist/core/uniform-pool-types.d.ts +22 -0
- package/dist/core/uniform-pool-types.d.ts.map +1 -0
- package/dist/core/uniform-pool-types.js +2 -0
- package/dist/core/uniform-pool-types.js.map +1 -0
- package/dist/core/uniform-pool.d.ts +22 -0
- package/dist/core/uniform-pool.d.ts.map +1 -0
- package/dist/core/uniform-pool.js +128 -0
- package/dist/core/uniform-pool.js.map +1 -0
- package/dist/core/uniform.d.ts +55 -0
- package/dist/core/uniform.d.ts.map +1 -0
- package/dist/core/uniform.js +64 -0
- package/dist/core/uniform.js.map +1 -0
- package/dist/core/wgsl-alignment.d.ts +24 -0
- package/dist/core/wgsl-alignment.d.ts.map +1 -0
- package/dist/core/wgsl-alignment.js +81 -0
- package/dist/core/wgsl-alignment.js.map +1 -0
- package/dist/core.d.ts +13 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +7 -0
- package/dist/core.js.map +1 -0
- package/dist/dom.d.ts +37 -0
- package/dist/dom.d.ts.map +1 -0
- package/dist/dom.js +81 -0
- package/dist/dom.js.map +1 -0
- package/dist/draw-protocols.d.ts +36 -0
- package/dist/draw-protocols.d.ts.map +1 -0
- package/dist/draw-protocols.js +10 -0
- package/dist/draw-protocols.js.map +1 -0
- package/dist/draw.d.ts +248 -0
- package/dist/draw.d.ts.map +1 -0
- package/dist/draw.js +890 -0
- package/dist/draw.js.map +1 -0
- package/dist/effect.d.ts +53 -0
- package/dist/effect.d.ts.map +1 -0
- package/dist/effect.js +75 -0
- package/dist/effect.js.map +1 -0
- package/dist/entry-metadata.d.ts +16 -0
- package/dist/entry-metadata.d.ts.map +1 -0
- package/dist/entry-metadata.js +27 -0
- package/dist/entry-metadata.js.map +1 -0
- package/dist/errors.d.ts +96 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +616 -0
- package/dist/errors.js.map +1 -0
- package/dist/frame-protocols.d.ts +107 -0
- package/dist/frame-protocols.d.ts.map +1 -0
- package/dist/frame-protocols.js +20 -0
- package/dist/frame-protocols.js.map +1 -0
- package/dist/frame-state.d.ts +32 -0
- package/dist/frame-state.d.ts.map +1 -0
- package/dist/frame-state.js +62 -0
- package/dist/frame-state.js.map +1 -0
- package/dist/frame.d.ts +127 -0
- package/dist/frame.d.ts.map +1 -0
- package/dist/frame.js +645 -0
- package/dist/frame.js.map +1 -0
- package/dist/group-claim.d.ts +9 -0
- package/dist/group-claim.d.ts.map +1 -0
- package/dist/group-claim.js +7 -0
- package/dist/group-claim.js.map +1 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/indirect.d.ts +39 -0
- package/dist/indirect.d.ts.map +1 -0
- package/dist/indirect.js +61 -0
- package/dist/indirect.js.map +1 -0
- package/dist/init-from-device.d.ts +11 -0
- package/dist/init-from-device.d.ts.map +1 -0
- package/dist/init-from-device.js +56 -0
- package/dist/init-from-device.js.map +1 -0
- package/dist/init.d.ts +12 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +7 -0
- package/dist/init.js.map +1 -0
- package/dist/kernel.d.ts +104 -0
- package/dist/kernel.d.ts.map +1 -0
- package/dist/kernel.js +151 -0
- package/dist/kernel.js.map +1 -0
- package/dist/lifecycle.d.ts +10 -0
- package/dist/lifecycle.d.ts.map +1 -0
- package/dist/lifecycle.js +21 -0
- package/dist/lifecycle.js.map +1 -0
- package/dist/live-kernel.d.ts +48 -0
- package/dist/live-kernel.d.ts.map +1 -0
- package/dist/live-kernel.js +67 -0
- package/dist/live-kernel.js.map +1 -0
- package/dist/mock.d.ts +42 -0
- package/dist/mock.d.ts.map +1 -0
- package/dist/mock.js +29 -0
- package/dist/mock.js.map +1 -0
- package/dist/node.d.ts +48 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +36 -0
- package/dist/node.js.map +1 -0
- package/dist/ping-pong.d.ts +19 -0
- package/dist/ping-pong.d.ts.map +1 -0
- package/dist/ping-pong.js +67 -0
- package/dist/ping-pong.js.map +1 -0
- package/dist/pipeline-store.d.ts +89 -0
- package/dist/pipeline-store.d.ts.map +1 -0
- package/dist/pipeline-store.js +366 -0
- package/dist/pipeline-store.js.map +1 -0
- package/dist/query-ring.d.ts +91 -0
- package/dist/query-ring.d.ts.map +1 -0
- package/dist/query-ring.js +178 -0
- package/dist/query-ring.js.map +1 -0
- package/dist/render-service.d.ts +23 -0
- package/dist/render-service.d.ts.map +1 -0
- package/dist/render-service.js +37 -0
- package/dist/render-service.js.map +1 -0
- package/dist/sampler.d.ts +19 -0
- package/dist/sampler.d.ts.map +1 -0
- package/dist/sampler.js +46 -0
- package/dist/sampler.js.map +1 -0
- package/dist/scene/camera.d.ts +91 -0
- package/dist/scene/camera.d.ts.map +1 -0
- package/dist/scene/camera.js +221 -0
- package/dist/scene/camera.js.map +1 -0
- package/dist/scene/geometries.d.ts +26 -0
- package/dist/scene/geometries.d.ts.map +1 -0
- package/dist/scene/geometries.js +26 -0
- package/dist/scene/geometries.js.map +1 -0
- package/dist/scene/geometry-descriptor.d.ts +120 -0
- package/dist/scene/geometry-descriptor.d.ts.map +1 -0
- package/dist/scene/geometry-descriptor.js +378 -0
- package/dist/scene/geometry-descriptor.js.map +1 -0
- package/dist/scene/geometry-recipe.d.ts +41 -0
- package/dist/scene/geometry-recipe.d.ts.map +1 -0
- package/dist/scene/geometry-recipe.js +40 -0
- package/dist/scene/geometry-recipe.js.map +1 -0
- package/dist/scene/geometry-src/camera-math.d.ts +6 -0
- package/dist/scene/geometry-src/camera-math.d.ts.map +1 -0
- package/dist/scene/geometry-src/camera-math.js +47 -0
- package/dist/scene/geometry-src/camera-math.js.map +1 -0
- package/dist/scene/geometry-src/camera.d.ts +10 -0
- package/dist/scene/geometry-src/camera.d.ts.map +1 -0
- package/dist/scene/geometry-src/camera.js +2 -0
- package/dist/scene/geometry-src/camera.js.map +1 -0
- package/dist/scene/geometry-src/capsule-data.d.ts +10 -0
- package/dist/scene/geometry-src/capsule-data.d.ts.map +1 -0
- package/dist/scene/geometry-src/capsule-data.js +61 -0
- package/dist/scene/geometry-src/capsule-data.js.map +1 -0
- package/dist/scene/geometry-src/cone-data.d.ts +13 -0
- package/dist/scene/geometry-src/cone-data.d.ts.map +1 -0
- package/dist/scene/geometry-src/cone-data.js +52 -0
- package/dist/scene/geometry-src/cone-data.js.map +1 -0
- package/dist/scene/geometry-src/cylinder-data.d.ts +14 -0
- package/dist/scene/geometry-src/cylinder-data.d.ts.map +1 -0
- package/dist/scene/geometry-src/cylinder-data.js +58 -0
- package/dist/scene/geometry-src/cylinder-data.js.map +1 -0
- package/dist/scene/geometry-src/deg-to-rad.d.ts +2 -0
- package/dist/scene/geometry-src/deg-to-rad.d.ts.map +1 -0
- package/dist/scene/geometry-src/deg-to-rad.js +4 -0
- package/dist/scene/geometry-src/deg-to-rad.js.map +1 -0
- package/dist/scene/geometry-src/disk-data.d.ts +12 -0
- package/dist/scene/geometry-src/disk-data.d.ts.map +1 -0
- package/dist/scene/geometry-src/disk-data.js +21 -0
- package/dist/scene/geometry-src/disk-data.js.map +1 -0
- package/dist/scene/geometry-src/errors.d.ts +3 -0
- package/dist/scene/geometry-src/errors.d.ts.map +1 -0
- package/dist/scene/geometry-src/errors.js +5 -0
- package/dist/scene/geometry-src/errors.js.map +1 -0
- package/dist/scene/geometry-src/icosphere-data.d.ts +8 -0
- package/dist/scene/geometry-src/icosphere-data.d.ts.map +1 -0
- package/dist/scene/geometry-src/icosphere-data.js +58 -0
- package/dist/scene/geometry-src/icosphere-data.js.map +1 -0
- package/dist/scene/geometry-src/index.d.ts +36 -0
- package/dist/scene/geometry-src/index.d.ts.map +1 -0
- package/dist/scene/geometry-src/index.js +21 -0
- package/dist/scene/geometry-src/index.js.map +1 -0
- package/dist/scene/geometry-src/mesh-box.d.ts +8 -0
- package/dist/scene/geometry-src/mesh-box.d.ts.map +1 -0
- package/dist/scene/geometry-src/mesh-box.js +57 -0
- package/dist/scene/geometry-src/mesh-box.js.map +1 -0
- package/dist/scene/geometry-src/mesh-cache.d.ts +4 -0
- package/dist/scene/geometry-src/mesh-cache.d.ts.map +1 -0
- package/dist/scene/geometry-src/mesh-cache.js +14 -0
- package/dist/scene/geometry-src/mesh-cache.js.map +1 -0
- package/dist/scene/geometry-src/mesh-capsule.d.ts +14 -0
- package/dist/scene/geometry-src/mesh-capsule.d.ts.map +1 -0
- package/dist/scene/geometry-src/mesh-capsule.js +52 -0
- package/dist/scene/geometry-src/mesh-capsule.js.map +1 -0
- package/dist/scene/geometry-src/mesh-cone.d.ts +16 -0
- package/dist/scene/geometry-src/mesh-cone.d.ts.map +1 -0
- package/dist/scene/geometry-src/mesh-cone.js +54 -0
- package/dist/scene/geometry-src/mesh-cone.js.map +1 -0
- package/dist/scene/geometry-src/mesh-cylinder.d.ts +18 -0
- package/dist/scene/geometry-src/mesh-cylinder.d.ts.map +1 -0
- package/dist/scene/geometry-src/mesh-cylinder.js +67 -0
- package/dist/scene/geometry-src/mesh-cylinder.js.map +1 -0
- package/dist/scene/geometry-src/mesh-disk.d.ts +11 -0
- package/dist/scene/geometry-src/mesh-disk.d.ts.map +1 -0
- package/dist/scene/geometry-src/mesh-disk.js +45 -0
- package/dist/scene/geometry-src/mesh-disk.js.map +1 -0
- package/dist/scene/geometry-src/mesh-dodecahedron.d.ts +4 -0
- package/dist/scene/geometry-src/mesh-dodecahedron.d.ts.map +1 -0
- package/dist/scene/geometry-src/mesh-dodecahedron.js +10 -0
- package/dist/scene/geometry-src/mesh-dodecahedron.js.map +1 -0
- package/dist/scene/geometry-src/mesh-fullscreen-quad.d.ts +7 -0
- package/dist/scene/geometry-src/mesh-fullscreen-quad.d.ts.map +1 -0
- package/dist/scene/geometry-src/mesh-fullscreen-quad.js +39 -0
- package/dist/scene/geometry-src/mesh-fullscreen-quad.js.map +1 -0
- package/dist/scene/geometry-src/mesh-icosahedron.d.ts +4 -0
- package/dist/scene/geometry-src/mesh-icosahedron.d.ts.map +1 -0
- package/dist/scene/geometry-src/mesh-icosahedron.js +10 -0
- package/dist/scene/geometry-src/mesh-icosahedron.js.map +1 -0
- package/dist/scene/geometry-src/mesh-icosphere.d.ts +11 -0
- package/dist/scene/geometry-src/mesh-icosphere.d.ts.map +1 -0
- package/dist/scene/geometry-src/mesh-icosphere.js +47 -0
- package/dist/scene/geometry-src/mesh-icosphere.js.map +1 -0
- package/dist/scene/geometry-src/mesh-octahedron.d.ts +4 -0
- package/dist/scene/geometry-src/mesh-octahedron.d.ts.map +1 -0
- package/dist/scene/geometry-src/mesh-octahedron.js +10 -0
- package/dist/scene/geometry-src/mesh-octahedron.js.map +1 -0
- package/dist/scene/geometry-src/mesh-plane.d.ts +13 -0
- package/dist/scene/geometry-src/mesh-plane.d.ts.map +1 -0
- package/dist/scene/geometry-src/mesh-plane.js +51 -0
- package/dist/scene/geometry-src/mesh-plane.js.map +1 -0
- package/dist/scene/geometry-src/mesh-ring.d.ts +12 -0
- package/dist/scene/geometry-src/mesh-ring.d.ts.map +1 -0
- package/dist/scene/geometry-src/mesh-ring.js +47 -0
- package/dist/scene/geometry-src/mesh-ring.js.map +1 -0
- package/dist/scene/geometry-src/mesh-sphere.d.ts +10 -0
- package/dist/scene/geometry-src/mesh-sphere.d.ts.map +1 -0
- package/dist/scene/geometry-src/mesh-sphere.js +51 -0
- package/dist/scene/geometry-src/mesh-sphere.js.map +1 -0
- package/dist/scene/geometry-src/mesh-tetrahedron.d.ts +5 -0
- package/dist/scene/geometry-src/mesh-tetrahedron.d.ts.map +1 -0
- package/dist/scene/geometry-src/mesh-tetrahedron.js +10 -0
- package/dist/scene/geometry-src/mesh-tetrahedron.js.map +1 -0
- package/dist/scene/geometry-src/mesh-torus.d.ts +17 -0
- package/dist/scene/geometry-src/mesh-torus.d.ts.map +1 -0
- package/dist/scene/geometry-src/mesh-torus.js +56 -0
- package/dist/scene/geometry-src/mesh-torus.js.map +1 -0
- package/dist/scene/geometry-src/mesh-types.d.ts +38 -0
- package/dist/scene/geometry-src/mesh-types.d.ts.map +1 -0
- package/dist/scene/geometry-src/mesh-types.js +2 -0
- package/dist/scene/geometry-src/mesh-types.js.map +1 -0
- package/dist/scene/geometry-src/mesh.d.ts +61 -0
- package/dist/scene/geometry-src/mesh.d.ts.map +1 -0
- package/dist/scene/geometry-src/mesh.js +49 -0
- package/dist/scene/geometry-src/mesh.js.map +1 -0
- package/dist/scene/geometry-src/orthographic-camera.d.ts +14 -0
- package/dist/scene/geometry-src/orthographic-camera.d.ts.map +1 -0
- package/dist/scene/geometry-src/orthographic-camera.js +9 -0
- package/dist/scene/geometry-src/orthographic-camera.js.map +1 -0
- package/dist/scene/geometry-src/perspective-camera.d.ts +12 -0
- package/dist/scene/geometry-src/perspective-camera.d.ts.map +1 -0
- package/dist/scene/geometry-src/perspective-camera.js +9 -0
- package/dist/scene/geometry-src/perspective-camera.js.map +1 -0
- package/dist/scene/geometry-src/plane-data.d.ts +12 -0
- package/dist/scene/geometry-src/plane-data.d.ts.map +1 -0
- package/dist/scene/geometry-src/plane-data.js +25 -0
- package/dist/scene/geometry-src/plane-data.js.map +1 -0
- package/dist/scene/geometry-src/polyhedron-data.d.ts +7 -0
- package/dist/scene/geometry-src/polyhedron-data.d.ts.map +1 -0
- package/dist/scene/geometry-src/polyhedron-data.js +42 -0
- package/dist/scene/geometry-src/polyhedron-data.js.map +1 -0
- package/dist/scene/geometry-src/polyhedron-mesh.d.ts +10 -0
- package/dist/scene/geometry-src/polyhedron-mesh.d.ts.map +1 -0
- package/dist/scene/geometry-src/polyhedron-mesh.js +37 -0
- package/dist/scene/geometry-src/polyhedron-mesh.js.map +1 -0
- package/dist/scene/geometry-src/polyhedron-seeds.d.ts +6 -0
- package/dist/scene/geometry-src/polyhedron-seeds.d.ts.map +1 -0
- package/dist/scene/geometry-src/polyhedron-seeds.js +51 -0
- package/dist/scene/geometry-src/polyhedron-seeds.js.map +1 -0
- package/dist/scene/geometry-src/primitive-data-utils.d.ts +9 -0
- package/dist/scene/geometry-src/primitive-data-utils.d.ts.map +1 -0
- package/dist/scene/geometry-src/primitive-data-utils.js +36 -0
- package/dist/scene/geometry-src/primitive-data-utils.js.map +1 -0
- package/dist/scene/geometry-src/ring-data.d.ts +13 -0
- package/dist/scene/geometry-src/ring-data.d.ts.map +1 -0
- package/dist/scene/geometry-src/ring-data.js +24 -0
- package/dist/scene/geometry-src/ring-data.js.map +1 -0
- package/dist/scene/geometry-src/sphere-data.d.ts +11 -0
- package/dist/scene/geometry-src/sphere-data.d.ts.map +1 -0
- package/dist/scene/geometry-src/sphere-data.js +31 -0
- package/dist/scene/geometry-src/sphere-data.js.map +1 -0
- package/dist/scene/geometry-src/srgb.d.ts +5 -0
- package/dist/scene/geometry-src/srgb.d.ts.map +1 -0
- package/dist/scene/geometry-src/srgb.js +23 -0
- package/dist/scene/geometry-src/srgb.js.map +1 -0
- package/dist/scene/geometry-src/torus-data.d.ts +11 -0
- package/dist/scene/geometry-src/torus-data.d.ts.map +1 -0
- package/dist/scene/geometry-src/torus-data.js +38 -0
- package/dist/scene/geometry-src/torus-data.js.map +1 -0
- package/dist/scene/geometry-src/vertex-layout.d.ts +2 -0
- package/dist/scene/geometry-src/vertex-layout.d.ts.map +1 -0
- package/dist/scene/geometry-src/vertex-layout.js +2 -0
- package/dist/scene/geometry-src/vertex-layout.js.map +1 -0
- package/dist/scene/geometry.d.ts +70 -0
- package/dist/scene/geometry.d.ts.map +1 -0
- package/dist/scene/geometry.js +71 -0
- package/dist/scene/geometry.js.map +1 -0
- package/dist/scene/orbit.d.ts +9 -0
- package/dist/scene/orbit.d.ts.map +1 -0
- package/dist/scene/orbit.js +15 -0
- package/dist/scene/orbit.js.map +1 -0
- package/dist/scene/tree/errors.d.ts +4 -0
- package/dist/scene/tree/errors.d.ts.map +1 -0
- package/dist/scene/tree/errors.js +19 -0
- package/dist/scene/tree/errors.js.map +1 -0
- package/dist/scene/tree/light.d.ts +42 -0
- package/dist/scene/tree/light.d.ts.map +1 -0
- package/dist/scene/tree/light.js +102 -0
- package/dist/scene/tree/light.js.map +1 -0
- package/dist/scene/tree/material.d.ts +79 -0
- package/dist/scene/tree/material.d.ts.map +1 -0
- package/dist/scene/tree/material.js +117 -0
- package/dist/scene/tree/material.js.map +1 -0
- package/dist/scene/tree/math.d.ts +26 -0
- package/dist/scene/tree/math.d.ts.map +1 -0
- package/dist/scene/tree/math.js +217 -0
- package/dist/scene/tree/math.js.map +1 -0
- package/dist/scene/tree/mesh-node.d.ts +17 -0
- package/dist/scene/tree/mesh-node.d.ts.map +1 -0
- package/dist/scene/tree/mesh-node.js +24 -0
- package/dist/scene/tree/mesh-node.js.map +1 -0
- package/dist/scene/tree/node.d.ts +70 -0
- package/dist/scene/tree/node.d.ts.map +1 -0
- package/dist/scene/tree/node.js +220 -0
- package/dist/scene/tree/node.js.map +1 -0
- package/dist/scene/tree/orbit-controls.d.ts +69 -0
- package/dist/scene/tree/orbit-controls.d.ts.map +1 -0
- package/dist/scene/tree/orbit-controls.js +226 -0
- package/dist/scene/tree/orbit-controls.js.map +1 -0
- package/dist/scene.d.ts +21 -0
- package/dist/scene.d.ts.map +1 -0
- package/dist/scene.js +11 -0
- package/dist/scene.js.map +1 -0
- package/dist/set-core.d.ts +50 -0
- package/dist/set-core.d.ts.map +1 -0
- package/dist/set-core.js +268 -0
- package/dist/set-core.js.map +1 -0
- package/dist/set-layouts.d.ts +20 -0
- package/dist/set-layouts.d.ts.map +1 -0
- package/dist/set-layouts.js +103 -0
- package/dist/set-layouts.js.map +1 -0
- package/dist/set-packing.d.ts +4 -0
- package/dist/set-packing.d.ts.map +1 -0
- package/dist/set-packing.js +82 -0
- package/dist/set-packing.js.map +1 -0
- package/dist/set-resources.d.ts +20 -0
- package/dist/set-resources.d.ts.map +1 -0
- package/dist/set-resources.js +140 -0
- package/dist/set-resources.js.map +1 -0
- package/dist/shader-source.d.ts +4 -0
- package/dist/shader-source.d.ts.map +1 -0
- package/dist/shader-source.js +21 -0
- package/dist/shader-source.js.map +1 -0
- package/dist/storage.d.ts +38 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +76 -0
- package/dist/storage.js.map +1 -0
- package/dist/surface.d.ts +89 -0
- package/dist/surface.d.ts.map +1 -0
- package/dist/surface.js +243 -0
- package/dist/surface.js.map +1 -0
- package/dist/target-offscreen.d.ts +41 -0
- package/dist/target-offscreen.d.ts.map +1 -0
- package/dist/target-offscreen.js +115 -0
- package/dist/target-offscreen.js.map +1 -0
- package/dist/target-utils.d.ts +37 -0
- package/dist/target-utils.d.ts.map +1 -0
- package/dist/target-utils.js +103 -0
- package/dist/target-utils.js.map +1 -0
- package/dist/target.d.ts +65 -0
- package/dist/target.d.ts.map +1 -0
- package/dist/target.js +2 -0
- package/dist/target.js.map +1 -0
- package/dist/timer.d.ts +78 -0
- package/dist/timer.d.ts.map +1 -0
- package/dist/timer.js +261 -0
- package/dist/timer.js.map +1 -0
- package/dist/uniforms-layout.d.ts +8 -0
- package/dist/uniforms-layout.d.ts.map +1 -0
- package/dist/uniforms-layout.js +84 -0
- package/dist/uniforms-layout.js.map +1 -0
- package/dist/uniforms.d.ts +43 -0
- package/dist/uniforms.d.ts.map +1 -0
- package/dist/uniforms.js +176 -0
- package/dist/uniforms.js.map +1 -0
- package/dist/visibility.d.ts +118 -0
- package/dist/visibility.d.ts.map +1 -0
- package/dist/visibility.js +290 -0
- package/dist/visibility.js.map +1 -0
- package/package.json +131 -0
package/dist/errors.js
ADDED
|
@@ -0,0 +1,616 @@
|
|
|
1
|
+
import { AIGpuError as CoreAIGpuError } from "@aigpu/core";
|
|
2
|
+
export class AIGpuError extends CoreAIGpuError {
|
|
3
|
+
}
|
|
4
|
+
export function storageStageLimitError(label, stage, entryPoint, count, limit, bindings) {
|
|
5
|
+
const title = stage === "vertex" ? "Vertex" : "Fragment";
|
|
6
|
+
const suffix = stage === "vertex" ? "VERTEX" : "FRAGMENT";
|
|
7
|
+
const limitName = `maxStorageBuffersIn${title}Stage`;
|
|
8
|
+
return new AIGpuError({
|
|
9
|
+
code: `AIGPU-LIMIT-STORAGE-${suffix}`,
|
|
10
|
+
message: `${title} entry '${entryPoint}' in '${label}' uses ${count} storage buffer(s), but device limit ${limitName} is ${limit}.`,
|
|
11
|
+
fix: stage === "vertex"
|
|
12
|
+
? `Request init({ requiredLimits: { ${limitName}: ${count} } }) if the adapter supports it, or move vertex data to geometry(gpu, ...) vertex streams.`
|
|
13
|
+
: `Request init({ requiredLimits: { ${limitName}: ${count} } }) if the adapter supports it, or reduce fragment storage buffers.`,
|
|
14
|
+
where: `${label}.pipelineLayout`,
|
|
15
|
+
detail: { stage, entryPoint, count, limit, bindings: bindings.map(({ name, group, binding }) => ({ name, group, binding })) },
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
export function textureFilterabilityError(label, binding, format, resourceName, sampler) {
|
|
19
|
+
return new AIGpuError({
|
|
20
|
+
code: "AIGPU-SET-TEXTURE-FILTERABILITY",
|
|
21
|
+
message: `${resourceName} (${format}) cannot satisfy filtering texture '${binding.name}' @group(${binding.group}) @binding(${binding.binding}).`,
|
|
22
|
+
fix: "Use a filterable format; request float32-filterable for rgba32float when supported; or use textureLoad without a sampler.",
|
|
23
|
+
where: `${label}.set`,
|
|
24
|
+
detail: { format, group: binding.group, binding: binding.binding, bindingName: binding.name, resourceName, samplerName: sampler?.name, samplerGroup: sampler?.group, samplerBinding: sampler?.binding },
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
export function neverSetError(drawLabel, binding) {
|
|
28
|
+
const fix = missingBindingFix(drawLabel, binding);
|
|
29
|
+
return new AIGpuError({
|
|
30
|
+
code: "AIGPU-R1-BINDING-NEVER-SET",
|
|
31
|
+
message: `Unset \`${binding.name}\` @group(${binding.group}) @binding(${binding.binding}) in '${drawLabel}'. Fix: ${fix}; or ${drawLabel}.group(${binding.group}, bindGroup).`,
|
|
32
|
+
where: `${drawLabel}.draw`,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
export function ownershipFlipError(name, previous) {
|
|
36
|
+
const previousText = previous === "lib" ? "lib-owned by its first JS set()" : "user-owned by its first resource set()";
|
|
37
|
+
const fix = previous === "lib"
|
|
38
|
+
? `Fix: pass a resource from the start: wave.set({ ${name}: new Uniform(gpu.device, { size: 4 }) }).`
|
|
39
|
+
: `Fix: pass JS values from the first set(): wave.set({ ${name}: jsValue }).`;
|
|
40
|
+
return new AIGpuError({
|
|
41
|
+
code: "AIGPU-R1-OWNERSHIP-FLIP",
|
|
42
|
+
message: `\`${name}\` is ${previousText}; ownership cannot change. ${fix}`,
|
|
43
|
+
where: "set",
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
export function claimedGroupSetError(label, group) {
|
|
47
|
+
return new AIGpuError({
|
|
48
|
+
code: "AIGPU-R4-GROUP-CLAIMED",
|
|
49
|
+
message: `group ${group} of '${label}' is claimed; set() cannot update it.`,
|
|
50
|
+
fix: `Call set() first, or build from ${label}.layout(${group}); pass dynamic offsets to p.draw().`,
|
|
51
|
+
where: `${label}.set`,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
export function claimedGroupIncompatibleError(label, group, reason, cause) {
|
|
55
|
+
return new AIGpuError({
|
|
56
|
+
code: "AIGPU-R4-GROUP-INCOMPATIBLE",
|
|
57
|
+
message: `claimed group ${group} in '${label}' is incompatible: ${reason}.`,
|
|
58
|
+
fix: `Build from ${label}.layout(${group}, { dynamicOffsets? }) then call ${label}.group(${group}, bindGroup).`,
|
|
59
|
+
where: `${label}.group`,
|
|
60
|
+
cause,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
export function claimedGroupNativeValidationError(label, group, cause) {
|
|
64
|
+
return new AIGpuError({
|
|
65
|
+
code: "AIGPU-R4-GROUP-VALIDATION",
|
|
66
|
+
message: `WebGPU rejected claimed group ${group} in '${label}'.`,
|
|
67
|
+
fix: `Build from ${label}.layout(${group}); pass offsets via p.draw(draw, { offsets: { ${group}: [...] } }).`,
|
|
68
|
+
where: `${label}.draw`,
|
|
69
|
+
cause,
|
|
70
|
+
detail: { drawLabel: label, group },
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
export function blendInvalidError(label, value) {
|
|
74
|
+
return new AIGpuError({
|
|
75
|
+
code: "AIGPU-BLEND-INVALID",
|
|
76
|
+
message: `Invalid blend '${String(value)}' in '${label}'.`,
|
|
77
|
+
fix: `Use "alpha", "additive", "premultiplied", or { color, alpha? } components.`,
|
|
78
|
+
where: "draw",
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
export function blendConstantInvalidError(label, reason) {
|
|
82
|
+
return new AIGpuError({
|
|
83
|
+
code: "AIGPU-BLEND-CONSTANT-INVALID",
|
|
84
|
+
message: `Invalid blendConstant in '${label}': ${reason}`,
|
|
85
|
+
fix: `Use [r, g, b, a] finite numbers with a blend whose color or alpha uses "constant"/"one-minus-constant"; omit it to keep the pass default (0, 0, 0, 0).`,
|
|
86
|
+
where: "draw",
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
export function bundleBlendConstantError(bundleId, drawLabel) {
|
|
90
|
+
return new AIGpuError({
|
|
91
|
+
code: "AIGPU-BUNDLE-BLEND-CONSTANT",
|
|
92
|
+
message: `bundle '${bundleId}' cannot record draw '${drawLabel}': blendConstant is render-pass state and render bundle encoders cannot set it.`,
|
|
93
|
+
fix: `Encode the draw with p.draw(...) in a frame pass, or drop blendConstant from the draw.`,
|
|
94
|
+
where: "bundle",
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
export function writeMaskInvalidError(label, preview) {
|
|
98
|
+
return new AIGpuError({
|
|
99
|
+
code: "AIGPU-WRITEMASK-INVALID",
|
|
100
|
+
message: `Invalid writeMask ${preview} in '${label}'.`,
|
|
101
|
+
fix: `Use an array of r/g/b/a; omit it for all channels.`,
|
|
102
|
+
where: "draw",
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
export function colorsInvalidError(label, reason, where = "draw") {
|
|
106
|
+
return new AIGpuError({
|
|
107
|
+
code: "AIGPU-COLORS-INVALID",
|
|
108
|
+
message: `Invalid colors in '${label}': ${reason}`,
|
|
109
|
+
fix: `Use one { blend?, writeMask? } or null entry per color attachment of the target, aligned by index; omit colors to apply the top-level blend/writeMask to every attachment.`,
|
|
110
|
+
where,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
export function cullInvalidError(label, value) {
|
|
114
|
+
return new AIGpuError({
|
|
115
|
+
code: "AIGPU-CULL-INVALID",
|
|
116
|
+
message: `Invalid cull '${String(value)}' in '${label}'.`,
|
|
117
|
+
fix: `Use "none", "front", or "back"; omit it for no culling.`,
|
|
118
|
+
where: "draw",
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
export function frontFaceInvalidError(label, value) {
|
|
122
|
+
return new AIGpuError({
|
|
123
|
+
code: "AIGPU-FRONTFACE-INVALID",
|
|
124
|
+
message: `Invalid frontFace '${String(value)}' in '${label}'.`,
|
|
125
|
+
fix: `Use "ccw" or "cw"; omit it for counter-clockwise.`,
|
|
126
|
+
where: "draw",
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
export function unclippedDepthInvalidError(label, reason) {
|
|
130
|
+
return new AIGpuError({
|
|
131
|
+
code: "AIGPU-UNCLIPPED-DEPTH-INVALID",
|
|
132
|
+
message: `Invalid unclippedDepth in '${label}': ${reason}`,
|
|
133
|
+
fix: `Use a boolean. unclippedDepth: true needs the "depth-clip-control" device feature — request it with init({ requiredFeatures: ["depth-clip-control"] }) on an adapter that supports it. Omit the option to keep depth clipping.`,
|
|
134
|
+
where: "draw",
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
export function depthInvalidError(label, reason) {
|
|
138
|
+
return new AIGpuError({
|
|
139
|
+
code: "AIGPU-DEPTH-INVALID",
|
|
140
|
+
message: `Invalid depth in '${label}': ${reason}`,
|
|
141
|
+
fix: `Use false or { write?, compare?, bias?, biasSlopeScale?, biasClamp? }; omit it for { write: true, compare: "less-equal" }.`,
|
|
142
|
+
where: "draw",
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
export function stencilInvalidError(label, reason, where = "draw") {
|
|
146
|
+
return new AIGpuError({
|
|
147
|
+
code: "AIGPU-STENCIL-INVALID",
|
|
148
|
+
message: `Invalid stencil in '${label}': ${reason}`,
|
|
149
|
+
fix: `Use { front?, back?, readMask?, writeMask?, ref? } with GPUCompareFunction/GPUStencilOperation faces and u32 masks, against a target whose depth format has a stencil aspect (depth: "depth24plus-stencil8"); omit it for WebGPU's pass-through defaults.`,
|
|
150
|
+
where,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
export function bundleStencilReferenceError(bundleId, drawLabel) {
|
|
154
|
+
return new AIGpuError({
|
|
155
|
+
code: "AIGPU-BUNDLE-STENCIL-REF",
|
|
156
|
+
message: `bundle '${bundleId}' cannot record draw '${drawLabel}': stencil.ref is render-pass state and render bundle encoders cannot set it.`,
|
|
157
|
+
fix: `Encode the draw with p.draw(...) in a frame pass, or drop ref from the draw's stencil.`,
|
|
158
|
+
where: "bundle",
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
export function multisampleInvalidError(label, reason, where = "draw") {
|
|
162
|
+
return new AIGpuError({
|
|
163
|
+
code: "AIGPU-MULTISAMPLE-INVALID",
|
|
164
|
+
message: `Invalid multisample in '${label}': ${reason}`,
|
|
165
|
+
fix: `Use { alphaToCoverage?, mask? }: alphaToCoverage needs a target created with msaa: true, and mask must be an integer in [0, 0xFFFFFFFF] (bits above the target's sampleCount are ignored). Omit multisample for full-coverage defaults.`,
|
|
166
|
+
where,
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
export function constantsInvalidError(label, reason, where = "draw") {
|
|
170
|
+
return new AIGpuError({
|
|
171
|
+
code: "AIGPU-CONSTANTS-INVALID",
|
|
172
|
+
message: `Invalid constants in '${label}': ${reason}`,
|
|
173
|
+
fix: `Key WGSL \`override\` constants by name, or by the decimal string of N when the declaration has @id(N); values are finite numbers or booleans, converted to the override's WGSL type (bool/i32/u32/f32/f16). Every override without a default value must be provided. Omit constants to keep the WGSL defaults.`,
|
|
174
|
+
where,
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
export function entryInvalidError(label, reason, where = "draw") {
|
|
178
|
+
return new AIGpuError({
|
|
179
|
+
code: "AIGPU-ENTRY-INVALID",
|
|
180
|
+
message: `Invalid entry in '${label}': ${reason}`,
|
|
181
|
+
fix: `Name an entry point declared in the shader with the matching stage — { vertex?, fragment? } strings for draw, one @compute name string for compute. Omit entry (or a field) to use the first entry point of that stage.`,
|
|
182
|
+
where,
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
export function indirectInvalidError(label, reason, where) {
|
|
186
|
+
return new AIGpuError({
|
|
187
|
+
code: "AIGPU-INDIRECT-INVALID",
|
|
188
|
+
message: `Invalid indirect in '${label}': ${reason}`,
|
|
189
|
+
fix: `Pass a storage buffer created with storage(gpu, bytes, { indirect: true }) — bare, or as { buffer, offset? } with a 4-aligned byte offset — sized so the GPU-read arguments fit: 16 bytes for drawIndirect, 20 for drawIndexedIndirect, 12 for dispatchWorkgroupsIndirect. Omit indirect to use CPU-side counts.`,
|
|
190
|
+
where,
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
export function passPreserveMsaaError() {
|
|
194
|
+
return new AIGpuError({
|
|
195
|
+
code: "AIGPU-PASS-PRESERVE-MSAA",
|
|
196
|
+
message: "clear:false cannot preserve MSAA; use a non-MSAA target.",
|
|
197
|
+
fix: "Use non-MSAA for accumulation.",
|
|
198
|
+
where: "Frame.pass",
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
export function passClearDepthInvalidError(value, reason = "expected a number in [0, 1].", fix = `Use 1 (default), or 0 with depth: { compare: "greater" } for reversed-Z.`) {
|
|
202
|
+
return new AIGpuError({
|
|
203
|
+
code: "AIGPU-PASS-CLEARDEPTH-INVALID",
|
|
204
|
+
message: `clearDepth received ${String(value)}; ${reason}`,
|
|
205
|
+
fix,
|
|
206
|
+
where: "Frame.pass",
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
export function passViewportInvalidError(reason) {
|
|
210
|
+
return new AIGpuError({
|
|
211
|
+
code: "AIGPU-PASS-VIEWPORT-INVALID",
|
|
212
|
+
message: `Invalid viewport: ${reason}`,
|
|
213
|
+
fix: `Use { x?, y?, width, height, minDepth?, maxDepth? } finite numbers within device limits; omit it for the full target.`,
|
|
214
|
+
where: "Frame.pass",
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
export function passScissorInvalidError(reason) {
|
|
218
|
+
return new AIGpuError({
|
|
219
|
+
code: "AIGPU-PASS-SCISSOR-INVALID",
|
|
220
|
+
message: `Invalid scissor: ${reason}`,
|
|
221
|
+
fix: `Use [x, y, width, height] non-negative integers with x + width and y + height within the target's current pixel size; omit it for the full target.`,
|
|
222
|
+
where: "Frame.pass",
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
export function passPreserveClearDepthError() {
|
|
226
|
+
return new AIGpuError({
|
|
227
|
+
code: "AIGPU-PASS-PRESERVE-CLEARDEPTH",
|
|
228
|
+
message: "clear:false preserves depth; clearDepth cannot apply.",
|
|
229
|
+
fix: "Remove clearDepth, or let the pass clear.",
|
|
230
|
+
where: "Frame.pass",
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
export function passClearStencilInvalidError(reason) {
|
|
234
|
+
return new AIGpuError({
|
|
235
|
+
code: "AIGPU-PASS-CLEARSTENCIL-INVALID",
|
|
236
|
+
message: `clearStencil ${reason}`,
|
|
237
|
+
fix: `Use an integer in [0, 0xFFFFFFFF] on a target whose depth format has a stencil aspect, e.g. depth: "depth24plus-stencil8"; the value is masked to the stencil aspect's bit width.`,
|
|
238
|
+
where: "Frame.pass",
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
export function passPreserveClearStencilError() {
|
|
242
|
+
return new AIGpuError({
|
|
243
|
+
code: "AIGPU-PASS-PRESERVE-CLEARSTENCIL",
|
|
244
|
+
message: "clear:false preserves stencil; clearStencil cannot apply.",
|
|
245
|
+
fix: "Remove clearStencil, or let the pass clear.",
|
|
246
|
+
where: "Frame.pass",
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
export function passDepthReadOnlyError(reason, fix, where = "Frame.pass") {
|
|
250
|
+
return new AIGpuError({
|
|
251
|
+
code: "AIGPU-PASS-DEPTH-READONLY",
|
|
252
|
+
message: `depthReadOnly ${reason}`,
|
|
253
|
+
fix,
|
|
254
|
+
where,
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
export function passDepthReadOnlyMsaaError() {
|
|
258
|
+
return new AIGpuError({
|
|
259
|
+
code: "AIGPU-PASS-DEPTH-READONLY-MSAA",
|
|
260
|
+
message: "depthReadOnly cannot read an MSAA target's depth: multisampled depth is stored with storeOp \"discard\", so a read-only pass tests against discarded contents.",
|
|
261
|
+
fix: "Use a non-MSAA target for read-only depth, or drop depthReadOnly and let the pass own its depth.",
|
|
262
|
+
where: "Frame.pass",
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
export function timerInvalidError(reason, fix, where = "timer") {
|
|
266
|
+
return new AIGpuError({
|
|
267
|
+
code: "AIGPU-TIMER-INVALID",
|
|
268
|
+
message: `Invalid timer use: ${reason}`,
|
|
269
|
+
fix,
|
|
270
|
+
where,
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
export function timerCapacityError(maxSpans, maxQueries) {
|
|
274
|
+
return new AIGpuError({
|
|
275
|
+
code: "AIGPU-TIMER-CAPACITY",
|
|
276
|
+
message: `frame exceeds ${maxSpans} timed spans; a timer holds one timestamp query set and WebGPU createQuerySet requires count <= ${maxQueries} (2 queries per span).`,
|
|
277
|
+
fix: "Time fewer passes per frame, or spread timing across frames.",
|
|
278
|
+
where: "Frame.pass",
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
export function visibilityInvalidError(reason, fix, where = "visibility") {
|
|
282
|
+
return new AIGpuError({
|
|
283
|
+
code: "AIGPU-VIS-INVALID",
|
|
284
|
+
message: `Invalid visibility use: ${reason}`,
|
|
285
|
+
fix,
|
|
286
|
+
where,
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
export function visibilityCapacityLimitError(value, maxQueries) {
|
|
290
|
+
return new AIGpuError({
|
|
291
|
+
code: "AIGPU-VIS-CAPACITY-LIMIT",
|
|
292
|
+
message: `capacity received ${String(value)}; expected an integer in [1, ${maxQueries}] — a visibility instance holds one occlusion query set and WebGPU createQuerySet requires count <= ${maxQueries}.`,
|
|
293
|
+
fix: `Use visibility(gpu, { capacity }) with an integer capacity of at most ${maxQueries} (default 64), or create several visibility instances.`,
|
|
294
|
+
where: "visibility",
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
export function visibilityCapacityError(capacity) {
|
|
298
|
+
return new AIGpuError({
|
|
299
|
+
code: "AIGPU-VIS-CAPACITY",
|
|
300
|
+
message: `frame uses more than the declared ${capacity} occlusion query slot(s); the query set is bound to this frame's pass descriptors and cannot grow mid-frame.`,
|
|
301
|
+
fix: `Raise visibility(gpu, { capacity }) (max 4096), or dispose() unused query handles so fewer slots are needed per frame.`,
|
|
302
|
+
where: "FramePass.occlusion",
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
export function visibilityLabelDuplicateError(label) {
|
|
306
|
+
return new AIGpuError({
|
|
307
|
+
code: "AIGPU-VIS-LABEL-DUPLICATE",
|
|
308
|
+
message: `query label '${label}' is already live on this visibility instance.`,
|
|
309
|
+
fix: `Reuse the existing handle — vis.query(label) handles are stable, created once outside the loop — or dispose() the old handle first, or pick a distinct label.`,
|
|
310
|
+
where: "Visibility.query",
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
export function visibilityDisposedError(what, where) {
|
|
314
|
+
return new AIGpuError({
|
|
315
|
+
code: "AIGPU-VIS-DISPOSED",
|
|
316
|
+
message: `the ${what} is disposed.`,
|
|
317
|
+
fix: what === "visibility" ? "Create a new instance with visibility(gpu)." : "Create a new handle with vis.query(label).",
|
|
318
|
+
where,
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
export function visibilityNoDepthError() {
|
|
322
|
+
return new AIGpuError({
|
|
323
|
+
code: "AIGPU-VIS-NO-DEPTH",
|
|
324
|
+
message: "visibility is set, but the pass target has no depth attachment; without depth testing an occlusion query passes for anything rasterized, so it always reports \"visible\" and is useless for culling.",
|
|
325
|
+
fix: "Create the target with depth: true (or a depth format), or drop visibility from this pass.",
|
|
326
|
+
where: "Frame.pass",
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
export function queryNoVisibilityError() {
|
|
330
|
+
return new AIGpuError({
|
|
331
|
+
code: "AIGPU-QUERY-NO-VISIBILITY",
|
|
332
|
+
message: "occlusion() needs the pass to be opened with a visibility instance; the render pass has no occlusionQuerySet to write into.",
|
|
333
|
+
fix: "Open the pass with f.pass({ target, visibility: vis }, ...) using the visibility(gpu) instance that created the query handle.",
|
|
334
|
+
where: "FramePass.occlusion",
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
export function queryNestedError() {
|
|
338
|
+
return new AIGpuError({
|
|
339
|
+
code: "AIGPU-QUERY-NESTED",
|
|
340
|
+
message: "occlusion() cannot nest inside an active occlusion() body; WebGPU allows one active occlusion query per pass at a time.",
|
|
341
|
+
fix: "Encode each occlusion scope sequentially: p.occlusion(a, ...); p.occlusion(b, ...).",
|
|
342
|
+
where: "FramePass.occlusion",
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
export function queryDuplicateError(label) {
|
|
346
|
+
return new AIGpuError({
|
|
347
|
+
code: "AIGPU-QUERY-DUPLICATE",
|
|
348
|
+
message: `query '${label}' was already used this frame; a slot holds one result per frame, so reuse would silently overwrite it.`,
|
|
349
|
+
fix: `Use one handle per measured object per frame, e.g. vis.query("${label}-2") for a second scope.`,
|
|
350
|
+
where: "FramePass.occlusion",
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
export function targetRequiredError(where = "Frame.pass") {
|
|
354
|
+
return new AIGpuError({
|
|
355
|
+
code: "AIGPU-TARGET-REQUIRED",
|
|
356
|
+
message: "Target required. Fix: pass surface(gpu, canvas) or target(gpu, { size }) as { target }.",
|
|
357
|
+
where,
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
function meshError(code, where, message, fix) {
|
|
361
|
+
return new AIGpuError({ code, message: `${code}: ${message}`, fix, where });
|
|
362
|
+
}
|
|
363
|
+
export function meshLayoutInvalidError(where, message) {
|
|
364
|
+
return meshError("AIGPU-MESH-LAYOUT-INVALID", where, message, "Fix attributes/formats/offsets; use non-numeric names and 4-aligned stride <= 2048.");
|
|
365
|
+
}
|
|
366
|
+
export function meshLimitExceededError(where, message) {
|
|
367
|
+
return meshError("AIGPU-MESH-LIMIT-EXCEEDED", where, message, "Use <= 8 buffers and <= 16 attributes (or the device limits).");
|
|
368
|
+
}
|
|
369
|
+
export function meshLocationConflictError(where, location) {
|
|
370
|
+
return meshError("AIGPU-MESH-LOCATION-CONFLICT", where, `Duplicate geometry @location(${location}).`, "Use unique locations, or omit them for name matching.");
|
|
371
|
+
}
|
|
372
|
+
export function meshDataMisalignedError(where, message) {
|
|
373
|
+
return meshError("AIGPU-MESH-DATA-MISALIGNED", where, message, "Fix: repack data, set matching stride, or give raw buffers an explicit count.");
|
|
374
|
+
}
|
|
375
|
+
export function meshRangeInvalidError(where, message) {
|
|
376
|
+
return meshError("AIGPU-MESH-RANGE-INVALID", where, message, "Use index ranges for indexed geometries, vertex ranges otherwise, within geometry counts.");
|
|
377
|
+
}
|
|
378
|
+
export function meshWriteRangeError(where, message) {
|
|
379
|
+
return meshError("AIGPU-MESH-WRITE-RANGE", where, message, "Write within the buffer byteLength, or create a larger geometry.");
|
|
380
|
+
}
|
|
381
|
+
export function meshAttributeUnmatchedError(where, name, available = []) {
|
|
382
|
+
return meshError("AIGPU-MESH-ATTRIBUTE-UNMATCHED", where, `Geometry attribute '${name}' has no shader input.`, `Use shader name${available.length ? ` (${available.join(",")})` : ""} or { location:n }.`);
|
|
383
|
+
}
|
|
384
|
+
export function meshAttributeAmbiguousError(where, name, locations) {
|
|
385
|
+
return meshError("AIGPU-MESH-ATTRIBUTE-UNMATCHED", where, `Geometry attribute '${name}' matches locations ${locations.join(",")}.`, "Rename inputs or set { location:n }.");
|
|
386
|
+
}
|
|
387
|
+
export function meshInputMissingError(where, name, available = []) {
|
|
388
|
+
return meshError("AIGPU-MESH-INPUT-MISSING", where, `Geometry lacks shader input '${name}'.`, `Add/remove it. Geometry attributes: ${available.join(",") || "none"}.`);
|
|
389
|
+
}
|
|
390
|
+
export function meshFormatMismatchError(where, name, meshFormat, shaderType) {
|
|
391
|
+
return meshError("AIGPU-MESH-FORMAT-MISMATCH", where, `Attribute '${name}' ${meshFormat} != shader ${shaderType}.`, "Match the float/sint/uint shader base type; widths may differ.");
|
|
392
|
+
}
|
|
393
|
+
export function pipelineLayoutGapError(group) {
|
|
394
|
+
return new AIGpuError({
|
|
395
|
+
code: "AIGPU-PIPELINE-LAYOUT-GAP",
|
|
396
|
+
message: `Pipeline bind group ${group} is missing.`,
|
|
397
|
+
fix: "Use consecutive @group() indices starting at 0.",
|
|
398
|
+
where: "pipeline layout",
|
|
399
|
+
});
|
|
400
|
+
}
|
|
401
|
+
export function compileFailedError(where, cause, signature) {
|
|
402
|
+
return new AIGpuError({
|
|
403
|
+
code: "AIGPU-COMPILE-FAILED",
|
|
404
|
+
message: "WebGPU pipeline compilation failed.",
|
|
405
|
+
fix: "Check WGSL, vertex layouts, and target signature.",
|
|
406
|
+
where,
|
|
407
|
+
cause,
|
|
408
|
+
detail: signature ? { signature } : undefined,
|
|
409
|
+
});
|
|
410
|
+
}
|
|
411
|
+
export function compileDisposedError(where) {
|
|
412
|
+
return new AIGpuError({
|
|
413
|
+
code: "AIGPU-COMPILE-DISPOSED",
|
|
414
|
+
message: "GPU disposed during pipeline compilation.",
|
|
415
|
+
where,
|
|
416
|
+
});
|
|
417
|
+
}
|
|
418
|
+
export function compileSignatureInvalidError(where, reason) {
|
|
419
|
+
return new AIGpuError({
|
|
420
|
+
code: "AIGPU-COMPILE-SIGNATURE-INVALID",
|
|
421
|
+
message: `Invalid TargetSignature: ${reason}`,
|
|
422
|
+
fix: "Pass { colors, depth?, sampleCount?:1|4 } or a Target.",
|
|
423
|
+
where,
|
|
424
|
+
});
|
|
425
|
+
}
|
|
426
|
+
export function targetStencilOnlyDepthError(format) {
|
|
427
|
+
return new AIGpuError({
|
|
428
|
+
code: "AIGPU-TARGET-DEPTH-STENCIL-ONLY",
|
|
429
|
+
message: `depth received '${format}'; stencil-only depth targets are not supported yet.`,
|
|
430
|
+
fix: `Use a format with a depth aspect such as "depth24plus" or "depth24plus-stencil8".`,
|
|
431
|
+
where: "target",
|
|
432
|
+
});
|
|
433
|
+
}
|
|
434
|
+
export function targetSizeRequiredError() {
|
|
435
|
+
return new AIGpuError({
|
|
436
|
+
code: "AIGPU-TARGET-SIZE-REQUIRED",
|
|
437
|
+
message: "Target size required. Fix: target(gpu, { size: [w,h] }); update surface-derived targets in onResize.",
|
|
438
|
+
where: "target",
|
|
439
|
+
});
|
|
440
|
+
}
|
|
441
|
+
export function surfaceNotInFrameError(where) {
|
|
442
|
+
return new AIGpuError({
|
|
443
|
+
code: "AIGPU-SURFACE-NOT-IN-FRAME",
|
|
444
|
+
message: "Surface targets are only available inside frame(gpu).",
|
|
445
|
+
fix: "surface passes must run inside frame(gpu, ...); precompile against an offscreen target(gpu, ...) instead",
|
|
446
|
+
where,
|
|
447
|
+
});
|
|
448
|
+
}
|
|
449
|
+
export function surfaceContextError() {
|
|
450
|
+
return new AIGpuError({
|
|
451
|
+
code: "AIGPU-SURFACE-CONTEXT",
|
|
452
|
+
message: "Canvas WebGPU context failed. Fix: check navigator.gpu and remove any existing 2d/webgl context.",
|
|
453
|
+
where: "surface",
|
|
454
|
+
});
|
|
455
|
+
}
|
|
456
|
+
export function surfaceDuplicateError(label) {
|
|
457
|
+
return new AIGpuError({
|
|
458
|
+
code: "AIGPU-SURFACE-DUPLICATE",
|
|
459
|
+
message: `Canvas already has surface${label ? ` '${label}'` : ""}. Fix: reuse or dispose it.`,
|
|
460
|
+
where: "surface",
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
export function surfaceDisposedError(label) {
|
|
464
|
+
return new AIGpuError({
|
|
465
|
+
code: "AIGPU-SURFACE-DISPOSED",
|
|
466
|
+
message: `Surface '${label ?? "surface"}' is disposed. Fix: call surface(gpu, canvas).`,
|
|
467
|
+
where: "surface",
|
|
468
|
+
});
|
|
469
|
+
}
|
|
470
|
+
export function surfaceAutoResizeUnsupportedError() {
|
|
471
|
+
return new AIGpuError({
|
|
472
|
+
code: "AIGPU-SURFACE-AUTORESIZE-UNSUPPORTED",
|
|
473
|
+
message: "autoResize needs clientWidth. Fix: call surface.resize([w,h]) for OffscreenCanvas; onResize still fires.",
|
|
474
|
+
where: "surface",
|
|
475
|
+
});
|
|
476
|
+
}
|
|
477
|
+
export function surfaceResizeReentrantError(label) {
|
|
478
|
+
return new AIGpuError({
|
|
479
|
+
code: "AIGPU-SURFACE-RESIZE-REENTRANT",
|
|
480
|
+
message: `Cannot resize this surface${label ? ` '${label}'` : ""} in onResize. Fix: resize derived targets only.`,
|
|
481
|
+
where: "surface.resize",
|
|
482
|
+
});
|
|
483
|
+
}
|
|
484
|
+
export function clearColorInvalidError(where) {
|
|
485
|
+
return new AIGpuError({
|
|
486
|
+
code: "AIGPU-CLEAR-COLOR-INVALID",
|
|
487
|
+
message: `Invalid ${where}: expected four finite numbers.`,
|
|
488
|
+
fix: "Assign [r, g, b, a] or a GPUColor object ({ r, g, b, a }).",
|
|
489
|
+
where,
|
|
490
|
+
});
|
|
491
|
+
}
|
|
492
|
+
export function clockDeltaInvalidError(received) {
|
|
493
|
+
return new AIGpuError({
|
|
494
|
+
code: "AIGPU-CLOCK-DELTA-INVALID",
|
|
495
|
+
message: `clock.advance() received ${String(received)}; expected a finite, non-negative number of seconds.`,
|
|
496
|
+
fix: "Pass the elapsed seconds, e.g. clock(gpu).advance(1 / 60); use frame(gpu) alone to advance with wall-clock time.",
|
|
497
|
+
where: "clock.advance",
|
|
498
|
+
});
|
|
499
|
+
}
|
|
500
|
+
export function frameReentrantError() {
|
|
501
|
+
return new AIGpuError({
|
|
502
|
+
code: "AIGPU-FRAME-REENTRANT",
|
|
503
|
+
message: "Nested frame(gpu) is invalid. Fix: queue work for the next frame.",
|
|
504
|
+
where: "frame",
|
|
505
|
+
});
|
|
506
|
+
}
|
|
507
|
+
/**
|
|
508
|
+
* A query readback (timer span pair or occlusion slot) that could not be decoded: the map, the
|
|
509
|
+
* mapped-range copy, or the unmap failed. Reported on gpu.onError instead of rejecting the frame —
|
|
510
|
+
* the ring drops the readback and keeps going.
|
|
511
|
+
*/
|
|
512
|
+
export function queryReadbackError(label, cause) {
|
|
513
|
+
return new AIGpuError({
|
|
514
|
+
code: "AIGPU-QUERY-READBACK",
|
|
515
|
+
message: `${label} dropped a query readback: ${describeCause(cause)}`,
|
|
516
|
+
fix: "Usually a lost or destroyed device: recreate the gpu (and the timer/visibility instance) before reading queries again. Results resume on the next successful readback; the frame itself is unaffected.",
|
|
517
|
+
where: "QueryRing.onSubmitted",
|
|
518
|
+
cause,
|
|
519
|
+
});
|
|
520
|
+
}
|
|
521
|
+
/** Using a frame that `cancel()` closed: its encoder was dropped, so anything encoded into it would never run. */
|
|
522
|
+
export function frameCanceledError(where) {
|
|
523
|
+
return new AIGpuError({
|
|
524
|
+
code: "AIGPU-FRAME-CANCELED",
|
|
525
|
+
message: "the frame was canceled; its command encoder was dropped and nothing more can be encoded or submitted on it.",
|
|
526
|
+
fix: "Open a new frame(gpu) for further work; cancel() is the last operation on a frame.",
|
|
527
|
+
where,
|
|
528
|
+
});
|
|
529
|
+
}
|
|
530
|
+
/** cancel() from inside an active pass would release resources still referenced by its descriptor. */
|
|
531
|
+
export function framePassActiveError(where) {
|
|
532
|
+
return new AIGpuError({
|
|
533
|
+
code: "AIGPU-FRAME-PASS-ACTIVE",
|
|
534
|
+
message: "the frame cannot be canceled while a pass callback is active.",
|
|
535
|
+
fix: "Return from the frame.pass(...) callback first, then call frame.cancel(); this keeps pass descriptor resources alive until the pass is closed.",
|
|
536
|
+
where,
|
|
537
|
+
});
|
|
538
|
+
}
|
|
539
|
+
/** cancel() after submit(): the command buffer is already on the queue, so there is nothing left to release. */
|
|
540
|
+
export function frameAlreadySubmittedError(where) {
|
|
541
|
+
return new AIGpuError({
|
|
542
|
+
code: "AIGPU-FRAME-SUBMITTED",
|
|
543
|
+
message: "the frame was already submitted; submitted GPU work cannot be canceled.",
|
|
544
|
+
fix: "Call cancel() only on a frame you decided not to submit; the frame you did submit needs no cleanup.",
|
|
545
|
+
where,
|
|
546
|
+
});
|
|
547
|
+
}
|
|
548
|
+
export function incompatibleResourceError(binding, expected, fix) {
|
|
549
|
+
return new AIGpuError({
|
|
550
|
+
code: "AIGPU-R1-BINDING-INCOMPATIBLE-RESOURCE",
|
|
551
|
+
message: `binding \`${binding.name}\` @group(${binding.group}) @binding(${binding.binding}) needs ${expected}.`,
|
|
552
|
+
fix,
|
|
553
|
+
where: "set",
|
|
554
|
+
});
|
|
555
|
+
}
|
|
556
|
+
export function unsupportedError(where, message, fix) {
|
|
557
|
+
return new AIGpuError({ code: "AIGPU-RING1-UNSUPPORTED", message, fix, where });
|
|
558
|
+
}
|
|
559
|
+
export function malformedShaderSourceError(input) {
|
|
560
|
+
if (hasVersion(input) && input.version !== 1) {
|
|
561
|
+
return new AIGpuError({
|
|
562
|
+
code: "AIGPU-SHADER-SOURCE-INVALID",
|
|
563
|
+
message: `AIGPU-SHADER-SOURCE-INVALID: unsupported ShaderSource v${String(input.version)}; expected v1. Fix: update aigpu or regenerate it.`,
|
|
564
|
+
where: "shader source",
|
|
565
|
+
});
|
|
566
|
+
}
|
|
567
|
+
return new AIGpuError({
|
|
568
|
+
code: "AIGPU-SHADER-SOURCE-INVALID",
|
|
569
|
+
message: `AIGPU-SHADER-SOURCE-INVALID: expected WGSL or { version, wgsl }, got ${previewShaderSource(input)}. Fix: configure @aigpu/wgsl loader-vite or loader-webpack.`,
|
|
570
|
+
where: "shader source",
|
|
571
|
+
});
|
|
572
|
+
}
|
|
573
|
+
export function writableStorageAliasingError(where) {
|
|
574
|
+
return new AIGpuError({
|
|
575
|
+
code: "AIGPU-R1-STORAGE-ALIASING",
|
|
576
|
+
message: "`src` and writable `dst` alias. Fix: alternate them with pingPongStorage(gpu).",
|
|
577
|
+
where,
|
|
578
|
+
});
|
|
579
|
+
}
|
|
580
|
+
export function sharedUniformLayoutMismatchError(opts) {
|
|
581
|
+
return new AIGpuError({
|
|
582
|
+
code: "AIGPU-R1-SHARED-UNIFORMS-LAYOUT-MISMATCH",
|
|
583
|
+
message: `Uniform '${opts.bindingName}' layout ${opts.adoptedLayout} from ${opts.adoptedSource} != ${opts.incomingLayout} from ${opts.incomingSource}. Fix: align structs or split uniforms.`,
|
|
584
|
+
where: "uniforms",
|
|
585
|
+
});
|
|
586
|
+
}
|
|
587
|
+
function describeCause(cause) {
|
|
588
|
+
if (cause instanceof Error)
|
|
589
|
+
return `${cause.name}: ${cause.message}`;
|
|
590
|
+
return String(cause);
|
|
591
|
+
}
|
|
592
|
+
function hasVersion(input) {
|
|
593
|
+
return typeof input === "object" && input !== null && "version" in input;
|
|
594
|
+
}
|
|
595
|
+
function previewShaderSource(input) {
|
|
596
|
+
if (typeof input !== "object" || input === null)
|
|
597
|
+
return typeof input;
|
|
598
|
+
try {
|
|
599
|
+
const json = JSON.stringify(input);
|
|
600
|
+
return json.length > 80 ? `${json.slice(0, 77)}...` : json;
|
|
601
|
+
}
|
|
602
|
+
catch {
|
|
603
|
+
return "object";
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
function missingBindingFix(drawLabel, binding) {
|
|
607
|
+
switch (binding.kind) {
|
|
608
|
+
case "sampler": return `${drawLabel}.set({${binding.name}:sampler(gpu)})`;
|
|
609
|
+
case "texture": return `${drawLabel}.set({${binding.name}:scene.color})`;
|
|
610
|
+
case "buffer": return binding.addressSpace === "uniform"
|
|
611
|
+
? `${drawLabel}.set({${binding.name}:{ /* values */ }})`
|
|
612
|
+
: `${drawLabel}.set({${binding.name}:buffer})`;
|
|
613
|
+
default: return `${drawLabel}.set({${binding.name}:resource})`;
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|