@forgeax/engine-runtime 0.1.24 → 0.1.26

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.
Files changed (897) hide show
  1. package/package.json +30 -30
  2. package/src/__tests__/dawn/hello-sprite-nineslice-section.dawn.test.ts +32 -27
  3. package/src/__tests__/dawn/instances-uniform-fallback.dawn.test.ts +91 -64
  4. package/src/__tests__/dawn/material-cooked-fixture.dawn.test.ts +36 -10
  5. package/src/__tests__/fixtures/material-programs/center-right.wgsl +15 -0
  6. package/src/__tests__/fixtures/material-programs/left.wgsl +9 -0
  7. package/src/__tests__/fullscreen-post-process-pass.dawn.test.ts +6 -2
  8. package/src/__tests__/instances-renderer-lifecycle.integration.test.ts +164 -0
  9. package/src/__tests__/loader-extract-graceful.test.ts +7 -6
  10. package/src/__tests__/loader-registry.cases.unit.test.ts +8 -15
  11. package/src/__tests__/material-programs.browser.test.ts +145 -0
  12. package/src/__tests__/materials.unit.test.ts +2 -2
  13. package/src/__tests__/parse-asset-payload-material.cases.unit.test.ts +3 -13
  14. package/src/__tests__/pipeline-cache-keying.unit.test.ts +12 -0
  15. package/src/__tests__/pipeline-spec.test.ts +14 -0
  16. package/src/__tests__/point-light-shadow.dawn.test.ts +24 -5
  17. package/src/__tests__/record-worldid-isolation.test.ts +6 -26
  18. package/src/__tests__/render-system-extract.test.ts +107 -1
  19. package/src/__tests__/shadow-caster-empty-schema.test.ts +11 -14
  20. package/src/__tests__/shadow-csm-runtime-vary.dawn.test.ts +10 -5
  21. package/src/__tests__/shadow-fields-observable.dawn.test.ts +2 -2
  22. package/src/__tests__/surface-standard-pipeline.browser.test.ts +353 -0
  23. package/src/__tests__/surface-standard-pipeline.dawn.test.ts +346 -0
  24. package/src/__tests__/surface-standard-pipeline.runtime-fixture.ts +184 -0
  25. package/src/__tests__/surface-standard-pipeline.vite.d.ts +12 -0
  26. package/src/__tests__/tonemap-hdr-target.cases.unit.test.ts +7 -1
  27. package/src/__tests__/weapon-spirit-material.browser.test.ts +249 -0
  28. package/dist/__tests__/active-camera.unit.test.d.ts +0 -2
  29. package/dist/__tests__/active-camera.unit.test.d.ts.map +0 -1
  30. package/dist/__tests__/advance-animation-player.cases.unit.test.d.ts +0 -2
  31. package/dist/__tests__/advance-animation-player.cases.unit.test.d.ts.map +0 -1
  32. package/dist/__tests__/animation-graph-add.unit.test.d.ts +0 -2
  33. package/dist/__tests__/animation-graph-add.unit.test.d.ts.map +0 -1
  34. package/dist/__tests__/animation-graph-asset-union.test-d.d.ts +0 -2
  35. package/dist/__tests__/animation-graph-asset-union.test-d.d.ts.map +0 -1
  36. package/dist/__tests__/animation-graph-blend.unit.test.d.ts +0 -2
  37. package/dist/__tests__/animation-graph-blend.unit.test.d.ts.map +0 -1
  38. package/dist/__tests__/animation-graph-build.unit.test.d.ts +0 -2
  39. package/dist/__tests__/animation-graph-build.unit.test.d.ts.map +0 -1
  40. package/dist/__tests__/animation-graph-clip-missing.unit.test.d.ts +0 -2
  41. package/dist/__tests__/animation-graph-clip-missing.unit.test.d.ts.map +0 -1
  42. package/dist/__tests__/animation-graph-clip.unit.test.d.ts +0 -2
  43. package/dist/__tests__/animation-graph-clip.unit.test.d.ts.map +0 -1
  44. package/dist/__tests__/animation-graph-collect-roundtrip.test.d.ts +0 -2
  45. package/dist/__tests__/animation-graph-collect-roundtrip.test.d.ts.map +0 -1
  46. package/dist/__tests__/animation-graph-default-path.integration.test.d.ts +0 -2
  47. package/dist/__tests__/animation-graph-default-path.integration.test.d.ts.map +0 -1
  48. package/dist/__tests__/animation-graph-describe.unit.test.d.ts +0 -2
  49. package/dist/__tests__/animation-graph-describe.unit.test.d.ts.map +0 -1
  50. package/dist/__tests__/animation-graph-errors.unit.test.d.ts +0 -2
  51. package/dist/__tests__/animation-graph-errors.unit.test.d.ts.map +0 -1
  52. package/dist/__tests__/animation-graph-nesting.unit.test.d.ts +0 -2
  53. package/dist/__tests__/animation-graph-nesting.unit.test.d.ts.map +0 -1
  54. package/dist/__tests__/animation-graph-orthogonal-weight.unit.test.d.ts +0 -2
  55. package/dist/__tests__/animation-graph-orthogonal-weight.unit.test.d.ts.map +0 -1
  56. package/dist/__tests__/animation-graph-serialize.unit.test.d.ts +0 -2
  57. package/dist/__tests__/animation-graph-serialize.unit.test.d.ts.map +0 -1
  58. package/dist/__tests__/animation-graph-slot-fill.unit.test.d.ts +0 -2
  59. package/dist/__tests__/animation-graph-slot-fill.unit.test.d.ts.map +0 -1
  60. package/dist/__tests__/animation-nslot.unit.test.d.ts +0 -2
  61. package/dist/__tests__/animation-nslot.unit.test.d.ts.map +0 -1
  62. package/dist/__tests__/animation-slot-length-guard.unit.test.d.ts +0 -2
  63. package/dist/__tests__/animation-slot-length-guard.unit.test.d.ts.map +0 -1
  64. package/dist/__tests__/append-injection.test.d.ts +0 -2
  65. package/dist/__tests__/append-injection.test.d.ts.map +0 -1
  66. package/dist/__tests__/asi-world-baseline-export.unit.test.d.ts +0 -2
  67. package/dist/__tests__/asi-world-baseline-export.unit.test.d.ts.map +0 -1
  68. package/dist/__tests__/asi-world-ci-config.unit.test.d.ts +0 -2
  69. package/dist/__tests__/asi-world-ci-config.unit.test.d.ts.map +0 -1
  70. package/dist/__tests__/asi-world-smoke.unit.test.d.ts +0 -2
  71. package/dist/__tests__/asi-world-smoke.unit.test.d.ts.map +0 -1
  72. package/dist/__tests__/asset-brand-and-name-retirement.test.d.ts +0 -2
  73. package/dist/__tests__/asset-brand-and-name-retirement.test.d.ts.map +0 -1
  74. package/dist/__tests__/asset-error-exhaustive.test-d.d.ts +0 -11
  75. package/dist/__tests__/asset-error-exhaustive.test-d.d.ts.map +0 -1
  76. package/dist/__tests__/asset-registry-aabb.cases.unit.test.d.ts +0 -2
  77. package/dist/__tests__/asset-registry-aabb.cases.unit.test.d.ts.map +0 -1
  78. package/dist/__tests__/asset-registry-bootstrap.cases.unit.test.d.ts +0 -2
  79. package/dist/__tests__/asset-registry-bootstrap.cases.unit.test.d.ts.map +0 -1
  80. package/dist/__tests__/asset-registry-builtin-nineslice.cases.unit.test.d.ts +0 -2
  81. package/dist/__tests__/asset-registry-builtin-nineslice.cases.unit.test.d.ts.map +0 -1
  82. package/dist/__tests__/asset-registry-d9-tile-sampler-soft-warn.cases.unit.test.d.ts +0 -2
  83. package/dist/__tests__/asset-registry-d9-tile-sampler-soft-warn.cases.unit.test.d.ts.map +0 -1
  84. package/dist/__tests__/asset-registry-guid-reverse.test.d.ts +0 -2
  85. package/dist/__tests__/asset-registry-guid-reverse.test.d.ts.map +0 -1
  86. package/dist/__tests__/asset-registry-guid.cases.unit.test.d.ts +0 -2
  87. package/dist/__tests__/asset-registry-guid.cases.unit.test.d.ts.map +0 -1
  88. package/dist/__tests__/asset-registry-hdr-equirect.test.d.ts +0 -2
  89. package/dist/__tests__/asset-registry-hdr-equirect.test.d.ts.map +0 -1
  90. package/dist/__tests__/asset-registry-material-validate.cases.unit.test.d.ts +0 -2
  91. package/dist/__tests__/asset-registry-material-validate.cases.unit.test.d.ts.map +0 -1
  92. package/dist/__tests__/asset-registry-mesh-fail-fast.cases.unit.test.d.ts +0 -2
  93. package/dist/__tests__/asset-registry-mesh-fail-fast.cases.unit.test.d.ts.map +0 -1
  94. package/dist/__tests__/asset-registry-mesh-pack-payload.dawn.test.d.ts +0 -2
  95. package/dist/__tests__/asset-registry-mesh-pack-payload.dawn.test.d.ts.map +0 -1
  96. package/dist/__tests__/asset-registry-mounts.test.d.ts +0 -2
  97. package/dist/__tests__/asset-registry-mounts.test.d.ts.map +0 -1
  98. package/dist/__tests__/asset-registry-scene.cases.unit.test.d.ts +0 -2
  99. package/dist/__tests__/asset-registry-scene.cases.unit.test.d.ts.map +0 -1
  100. package/dist/__tests__/asset-registry-scene.test-d.d.ts +0 -2
  101. package/dist/__tests__/asset-registry-scene.test-d.d.ts.map +0 -1
  102. package/dist/__tests__/asset-registry-sprite-slices-validate.cases.unit.test.d.ts +0 -2
  103. package/dist/__tests__/asset-registry-sprite-slices-validate.cases.unit.test.d.ts.map +0 -1
  104. package/dist/__tests__/asset-registry.browser.test.d.ts +0 -2
  105. package/dist/__tests__/asset-registry.browser.test.d.ts.map +0 -1
  106. package/dist/__tests__/asset-registry.dawn.test.d.ts +0 -2
  107. package/dist/__tests__/asset-registry.dawn.test.d.ts.map +0 -1
  108. package/dist/__tests__/asset-registry.listCatalog.test.d.ts +0 -2
  109. package/dist/__tests__/asset-registry.listCatalog.test.d.ts.map +0 -1
  110. package/dist/__tests__/asset-registry.mesh-bin.test.d.ts +0 -2
  111. package/dist/__tests__/asset-registry.mesh-bin.test.d.ts.map +0 -1
  112. package/dist/__tests__/asset-registry.pack-cache.test.d.ts +0 -2
  113. package/dist/__tests__/asset-registry.pack-cache.test.d.ts.map +0 -1
  114. package/dist/__tests__/asset-registry.raw-container-failfast.test.d.ts +0 -2
  115. package/dist/__tests__/asset-registry.raw-container-failfast.test.d.ts.map +0 -1
  116. package/dist/__tests__/asset-registry.recursive.spec.d.ts +0 -2
  117. package/dist/__tests__/asset-registry.recursive.spec.d.ts.map +0 -1
  118. package/dist/__tests__/asset-registry.unit.test.d.ts +0 -2
  119. package/dist/__tests__/asset-registry.unit.test.d.ts.map +0 -1
  120. package/dist/__tests__/asset-renderer-assembly.cases.unit.test.d.ts +0 -2
  121. package/dist/__tests__/asset-renderer-assembly.cases.unit.test.d.ts.map +0 -1
  122. package/dist/__tests__/asset.cases.unit.test.d.ts +0 -2
  123. package/dist/__tests__/asset.cases.unit.test.d.ts.map +0 -1
  124. package/dist/__tests__/audio-load-by-guid.unit.test.d.ts +0 -2
  125. package/dist/__tests__/audio-load-by-guid.unit.test.d.ts.map +0 -1
  126. package/dist/__tests__/backend-selection.integration.test.d.ts +0 -2
  127. package/dist/__tests__/backend-selection.integration.test.d.ts.map +0 -1
  128. package/dist/__tests__/basis-catalog-dispatch.integration.test.d.ts +0 -2
  129. package/dist/__tests__/basis-catalog-dispatch.integration.test.d.ts.map +0 -1
  130. package/dist/__tests__/bind-group-cache-keying.test.d.ts +0 -2
  131. package/dist/__tests__/bind-group-cache-keying.test.d.ts.map +0 -1
  132. package/dist/__tests__/block-upload-math.unit.test.d.ts +0 -2
  133. package/dist/__tests__/block-upload-math.unit.test.d.ts.map +0 -1
  134. package/dist/__tests__/bloom-gating.cases.unit.test.d.ts +0 -2
  135. package/dist/__tests__/bloom-gating.cases.unit.test.d.ts.map +0 -1
  136. package/dist/__tests__/builtin-asset-registry.unit.test.d.ts +0 -2
  137. package/dist/__tests__/builtin-asset-registry.unit.test.d.ts.map +0 -1
  138. package/dist/__tests__/builtin-guid-ssot.cases.unit.test.d.ts +0 -2
  139. package/dist/__tests__/builtin-guid-ssot.cases.unit.test.d.ts.map +0 -1
  140. package/dist/__tests__/builtin-pack.cases.unit.test.d.ts +0 -2
  141. package/dist/__tests__/builtin-pack.cases.unit.test.d.ts.map +0 -1
  142. package/dist/__tests__/builtin-shader-register-e2e.test.d.ts +0 -2
  143. package/dist/__tests__/builtin-shader-register-e2e.test.d.ts.map +0 -1
  144. package/dist/__tests__/cache-false-eviction.test.d.ts +0 -2
  145. package/dist/__tests__/cache-false-eviction.test.d.ts.map +0 -1
  146. package/dist/__tests__/cache-isolation-matrix.test.d.ts +0 -2
  147. package/dist/__tests__/cache-isolation-matrix.test.d.ts.map +0 -1
  148. package/dist/__tests__/camera-antialias.cases.unit.test.d.ts +0 -2
  149. package/dist/__tests__/camera-antialias.cases.unit.test.d.ts.map +0 -1
  150. package/dist/__tests__/camera-bloom.cases.unit.test.d.ts +0 -2
  151. package/dist/__tests__/camera-bloom.cases.unit.test.d.ts.map +0 -1
  152. package/dist/__tests__/camera-clear-schema.cases.unit.test.d.ts +0 -2
  153. package/dist/__tests__/camera-clear-schema.cases.unit.test.d.ts.map +0 -1
  154. package/dist/__tests__/camera-clear-snapshot-equivalence.unit.test.d.ts +0 -2
  155. package/dist/__tests__/camera-clear-snapshot-equivalence.unit.test.d.ts.map +0 -1
  156. package/dist/__tests__/camera-ortho.cases.unit.test.d.ts +0 -2
  157. package/dist/__tests__/camera-ortho.cases.unit.test.d.ts.map +0 -1
  158. package/dist/__tests__/clamp-to-last.e2e.browser.test.d.ts +0 -2
  159. package/dist/__tests__/clamp-to-last.e2e.browser.test.d.ts.map +0 -1
  160. package/dist/__tests__/clamp-to-last.e2e.dawn.test.d.ts +0 -2
  161. package/dist/__tests__/clamp-to-last.e2e.dawn.test.d.ts.map +0 -1
  162. package/dist/__tests__/cluster-binner.cases.unit.test.d.ts +0 -2
  163. package/dist/__tests__/cluster-binner.cases.unit.test.d.ts.map +0 -1
  164. package/dist/__tests__/collect-scene-asset.test.d.ts +0 -2
  165. package/dist/__tests__/collect-scene-asset.test.d.ts.map +0 -1
  166. package/dist/__tests__/collect-scene-mount-collapse.test.d.ts +0 -2
  167. package/dist/__tests__/collect-scene-mount-collapse.test.d.ts.map +0 -1
  168. package/dist/__tests__/collect-subtree.unit.test.d.ts +0 -2
  169. package/dist/__tests__/collect-subtree.unit.test.d.ts.map +0 -1
  170. package/dist/__tests__/collect-transient-children-absent.test.d.ts +0 -2
  171. package/dist/__tests__/collect-transient-children-absent.test.d.ts.map +0 -1
  172. package/dist/__tests__/collect-transient-roundtrip.test.d.ts +0 -2
  173. package/dist/__tests__/collect-transient-roundtrip.test.d.ts.map +0 -1
  174. package/dist/__tests__/collect-transient-skip.test.d.ts +0 -2
  175. package/dist/__tests__/collect-transient-skip.test.d.ts.map +0 -1
  176. package/dist/__tests__/components.test-d.d.ts +0 -2
  177. package/dist/__tests__/components.test-d.d.ts.map +0 -1
  178. package/dist/__tests__/components.unit.test.d.ts +0 -2
  179. package/dist/__tests__/components.unit.test.d.ts.map +0 -1
  180. package/dist/__tests__/composite-skybox-cross-world.browser.test.d.ts +0 -2
  181. package/dist/__tests__/composite-skybox-cross-world.browser.test.d.ts.map +0 -1
  182. package/dist/__tests__/compressed-texture-physical-extent.integration.test.d.ts +0 -2
  183. package/dist/__tests__/compressed-texture-physical-extent.integration.test.d.ts.map +0 -1
  184. package/dist/__tests__/create-renderer-assembly.integration.test.d.ts +0 -2
  185. package/dist/__tests__/create-renderer-assembly.integration.test.d.ts.map +0 -1
  186. package/dist/__tests__/create-renderer-fallback-shader-manifest.cases.unit.test.d.ts +0 -2
  187. package/dist/__tests__/create-renderer-fallback-shader-manifest.cases.unit.test.d.ts.map +0 -1
  188. package/dist/__tests__/create-renderer-gpu-pass-timing.unit.test.d.ts +0 -2
  189. package/dist/__tests__/create-renderer-gpu-pass-timing.unit.test.d.ts.map +0 -1
  190. package/dist/__tests__/create-renderer-uniform-fallback.cases.unit.test.d.ts +0 -2
  191. package/dist/__tests__/create-renderer-uniform-fallback.cases.unit.test.d.ts.map +0 -1
  192. package/dist/__tests__/createRenderer-dispose.test.d.ts +0 -2
  193. package/dist/__tests__/createRenderer-dispose.test.d.ts.map +0 -1
  194. package/dist/__tests__/createRenderer-requiredFeatures.unit.test.d.ts +0 -2
  195. package/dist/__tests__/createRenderer-requiredFeatures.unit.test.d.ts.map +0 -1
  196. package/dist/__tests__/createRenderer.browser-no-webgpu.test.d.ts +0 -2
  197. package/dist/__tests__/createRenderer.browser-no-webgpu.test.d.ts.map +0 -1
  198. package/dist/__tests__/createRenderer.unit.test.d.ts +0 -2
  199. package/dist/__tests__/createRenderer.unit.test.d.ts.map +0 -1
  200. package/dist/__tests__/cubemap-upload.cases.unit.test.d.ts +0 -2
  201. package/dist/__tests__/cubemap-upload.cases.unit.test.d.ts.map +0 -1
  202. package/dist/__tests__/dawn/hello-sprite-nineslice-section.dawn.test.d.ts +0 -2
  203. package/dist/__tests__/dawn/hello-sprite-nineslice-section.dawn.test.d.ts.map +0 -1
  204. package/dist/__tests__/dawn/ibl-compose.dawn.test.d.ts +0 -2
  205. package/dist/__tests__/dawn/ibl-compose.dawn.test.d.ts.map +0 -1
  206. package/dist/__tests__/dawn/ibl-modules-compose.dawn.test.d.ts +0 -2
  207. package/dist/__tests__/dawn/ibl-modules-compose.dawn.test.d.ts.map +0 -1
  208. package/dist/__tests__/dawn/ibl-precompute-readback.dawn.test.d.ts +0 -2
  209. package/dist/__tests__/dawn/ibl-precompute-readback.dawn.test.d.ts.map +0 -1
  210. package/dist/__tests__/dawn/instances-per-instance-pbr.dawn.test.d.ts +0 -2
  211. package/dist/__tests__/dawn/instances-per-instance-pbr.dawn.test.d.ts.map +0 -1
  212. package/dist/__tests__/dawn/instances-shadow.dawn.test.d.ts +0 -2
  213. package/dist/__tests__/dawn/instances-shadow.dawn.test.d.ts.map +0 -1
  214. package/dist/__tests__/dawn/instances-uniform-fallback.dawn.test.d.ts +0 -2
  215. package/dist/__tests__/dawn/instances-uniform-fallback.dawn.test.d.ts.map +0 -1
  216. package/dist/__tests__/dawn/material-alpha.dawn.test.d.ts +0 -2
  217. package/dist/__tests__/dawn/material-alpha.dawn.test.d.ts.map +0 -1
  218. package/dist/__tests__/dawn/material-cooked-fixture.dawn.test.d.ts +0 -2
  219. package/dist/__tests__/dawn/material-cooked-fixture.dawn.test.d.ts.map +0 -1
  220. package/dist/__tests__/dawn/mesh-ssbo-normal-matrix.dawn.test.d.ts +0 -2
  221. package/dist/__tests__/dawn/mesh-ssbo-normal-matrix.dawn.test.d.ts.map +0 -1
  222. package/dist/__tests__/dawn/mesh-update-dawn.test.d.ts +0 -2
  223. package/dist/__tests__/dawn/mesh-update-dawn.test.d.ts.map +0 -1
  224. package/dist/__tests__/dawn/mipmap-srgb-linear.dawn.test.d.ts +0 -2
  225. package/dist/__tests__/dawn/mipmap-srgb-linear.dawn.test.d.ts.map +0 -1
  226. package/dist/__tests__/dawn/per-entity-material-texture-isolation.dawn.test.d.ts +0 -2
  227. package/dist/__tests__/dawn/per-entity-material-texture-isolation.dawn.test.d.ts.map +0 -1
  228. package/dist/__tests__/dawn/sprite-nineslice-mesh-bind.dawn.test.d.ts +0 -2
  229. package/dist/__tests__/dawn/sprite-nineslice-mesh-bind.dawn.test.d.ts.map +0 -1
  230. package/dist/__tests__/dawn/tonemap.dawn.test.d.ts +0 -2
  231. package/dist/__tests__/dawn/tonemap.dawn.test.d.ts.map +0 -1
  232. package/dist/__tests__/dawn/upload-texture.dawn.test.d.ts +0 -2
  233. package/dist/__tests__/dawn/upload-texture.dawn.test.d.ts.map +0 -1
  234. package/dist/__tests__/dawn/user-handle-mesh-render.dawn.test.d.ts +0 -2
  235. package/dist/__tests__/dawn/user-handle-mesh-render.dawn.test.d.ts.map +0 -1
  236. package/dist/__tests__/dawn/user-mesh-upload.dawn.test.d.ts +0 -2
  237. package/dist/__tests__/dawn/user-mesh-upload.dawn.test.d.ts.map +0 -1
  238. package/dist/__tests__/dawn/zero-manifest-mesh-fail.dawn.test.d.ts +0 -2
  239. package/dist/__tests__/dawn/zero-manifest-mesh-fail.dawn.test.d.ts.map +0 -1
  240. package/dist/__tests__/dawn/zero-manifest-ready.dawn.test.d.ts +0 -2
  241. package/dist/__tests__/dawn/zero-manifest-ready.dawn.test.d.ts.map +0 -1
  242. package/dist/__tests__/demo-sortscope-migration.unit.test.d.ts +0 -2
  243. package/dist/__tests__/demo-sortscope-migration.unit.test.d.ts.map +0 -1
  244. package/dist/__tests__/derive-bgl-integration.test.d.ts +0 -2
  245. package/dist/__tests__/derive-bgl-integration.test.d.ts.map +0 -1
  246. package/dist/__tests__/derive-render-data-skin.unit.test.d.ts +0 -2
  247. package/dist/__tests__/derive-render-data-skin.unit.test.d.ts.map +0 -1
  248. package/dist/__tests__/dev-import-transport.cases.unit.test.d.ts +0 -2
  249. package/dist/__tests__/dev-import-transport.cases.unit.test.d.ts.map +0 -1
  250. package/dist/__tests__/draw-published.d.ts +0 -5
  251. package/dist/__tests__/draw-published.d.ts.map +0 -1
  252. package/dist/__tests__/dynamic-texture-store.unit.test.d.ts +0 -2
  253. package/dist/__tests__/dynamic-texture-store.unit.test.d.ts.map +0 -1
  254. package/dist/__tests__/engine-metrics.cases.unit.test.d.ts +0 -2
  255. package/dist/__tests__/engine-metrics.cases.unit.test.d.ts.map +0 -1
  256. package/dist/__tests__/environment-error-exhaustive.test-d.d.ts +0 -8
  257. package/dist/__tests__/environment-error-exhaustive.test-d.d.ts.map +0 -1
  258. package/dist/__tests__/equirect-bc6h.integration.test.d.ts +0 -2
  259. package/dist/__tests__/equirect-bc6h.integration.test.d.ts.map +0 -1
  260. package/dist/__tests__/equirect-projection-error.cases.unit.test.d.ts +0 -2
  261. package/dist/__tests__/equirect-projection-error.cases.unit.test.d.ts.map +0 -1
  262. package/dist/__tests__/error-exhaustive.test.d.ts +0 -2
  263. package/dist/__tests__/error-exhaustive.test.d.ts.map +0 -1
  264. package/dist/__tests__/errors.unit.test.d.ts +0 -2
  265. package/dist/__tests__/errors.unit.test.d.ts.map +0 -1
  266. package/dist/__tests__/extract-frames-graceful-degradation.test.d.ts +0 -2
  267. package/dist/__tests__/extract-frames-graceful-degradation.test.d.ts.map +0 -1
  268. package/dist/__tests__/extract-frames-merge.test.d.ts +0 -2
  269. package/dist/__tests__/extract-frames-merge.test.d.ts.map +0 -1
  270. package/dist/__tests__/extract-frames-reset.test.d.ts +0 -2
  271. package/dist/__tests__/extract-frames-reset.test.d.ts.map +0 -1
  272. package/dist/__tests__/extract-record-no-hardcoded-texture-fields.test.d.ts +0 -2
  273. package/dist/__tests__/extract-record-no-hardcoded-texture-fields.test.d.ts.map +0 -1
  274. package/dist/__tests__/extract-skin-mismatch.unit.test.d.ts +0 -2
  275. package/dist/__tests__/extract-skin-mismatch.unit.test.d.ts.map +0 -1
  276. package/dist/__tests__/fetch-binary-decompress.test.d.ts +0 -2
  277. package/dist/__tests__/fetch-binary-decompress.test.d.ts.map +0 -1
  278. package/dist/__tests__/font-asset-load.cases.unit.test.d.ts +0 -2
  279. package/dist/__tests__/font-asset-load.cases.unit.test.d.ts.map +0 -1
  280. package/dist/__tests__/four-path-compression.integration.test.d.ts +0 -2
  281. package/dist/__tests__/four-path-compression.integration.test.d.ts.map +0 -1
  282. package/dist/__tests__/frame-targets-shadow-regression.unit.test.d.ts +0 -2
  283. package/dist/__tests__/frame-targets-shadow-regression.unit.test.d.ts.map +0 -1
  284. package/dist/__tests__/fullscreen-feature-host.dawn.test.d.ts +0 -2
  285. package/dist/__tests__/fullscreen-feature-host.dawn.test.d.ts.map +0 -1
  286. package/dist/__tests__/fullscreen-post-bgl-depth.test.d.ts +0 -2
  287. package/dist/__tests__/fullscreen-post-bgl-depth.test.d.ts.map +0 -1
  288. package/dist/__tests__/fullscreen-post-depth-params-arity.test.d.ts +0 -2
  289. package/dist/__tests__/fullscreen-post-depth-params-arity.test.d.ts.map +0 -1
  290. package/dist/__tests__/fullscreen-post-process-pass.dawn.test.d.ts +0 -2
  291. package/dist/__tests__/fullscreen-post-process-pass.dawn.test.d.ts.map +0 -1
  292. package/dist/__tests__/fullscreen-post-process-pass.unit.test.d.ts +0 -2
  293. package/dist/__tests__/fullscreen-post-process-pass.unit.test.d.ts.map +0 -1
  294. package/dist/__tests__/fxaa-intermediate-texture.cases.unit.test.d.ts +0 -2
  295. package/dist/__tests__/fxaa-intermediate-texture.cases.unit.test.d.ts.map +0 -1
  296. package/dist/__tests__/fxaa-pipeline.cases.unit.test.d.ts +0 -2
  297. package/dist/__tests__/fxaa-pipeline.cases.unit.test.d.ts.map +0 -1
  298. package/dist/__tests__/fxaa-pixel-diff.dawn.test.d.ts +0 -2
  299. package/dist/__tests__/fxaa-pixel-diff.dawn.test.d.ts.map +0 -1
  300. package/dist/__tests__/fxaa-validation-and-resize.dawn.test.d.ts +0 -2
  301. package/dist/__tests__/fxaa-validation-and-resize.dawn.test.d.ts.map +0 -1
  302. package/dist/__tests__/fxaa-zero-overhead.dawn.test.d.ts +0 -2
  303. package/dist/__tests__/fxaa-zero-overhead.dawn.test.d.ts.map +0 -1
  304. package/dist/__tests__/geometry.unit.test.d.ts +0 -2
  305. package/dist/__tests__/geometry.unit.test.d.ts.map +0 -1
  306. package/dist/__tests__/glyph-tilemap-worldid.test.d.ts +0 -2
  307. package/dist/__tests__/glyph-tilemap-worldid.test.d.ts.map +0 -1
  308. package/dist/__tests__/gpu-residency.cases.unit.test.d.ts +0 -2
  309. package/dist/__tests__/gpu-residency.cases.unit.test.d.ts.map +0 -1
  310. package/dist/__tests__/gpu-resource-cow-survivor.test.d.ts +0 -2
  311. package/dist/__tests__/gpu-resource-cow-survivor.test.d.ts.map +0 -1
  312. package/dist/__tests__/gpu-resource-release.cases.unit.test.d.ts +0 -2
  313. package/dist/__tests__/gpu-resource-release.cases.unit.test.d.ts.map +0 -1
  314. package/dist/__tests__/guid-for-asset.unit.test.d.ts +0 -2
  315. package/dist/__tests__/guid-for-asset.unit.test.d.ts.map +0 -1
  316. package/dist/__tests__/handle-migration.test.d.ts +0 -2
  317. package/dist/__tests__/handle-migration.test.d.ts.map +0 -1
  318. package/dist/__tests__/handle-quad.cases.unit.test.d.ts +0 -2
  319. package/dist/__tests__/handle-quad.cases.unit.test.d.ts.map +0 -1
  320. package/dist/__tests__/hdrp-bgl-slots.cases.unit.test.d.ts +0 -2
  321. package/dist/__tests__/hdrp-bgl-slots.cases.unit.test.d.ts.map +0 -1
  322. package/dist/__tests__/hdrp-grid-invalid.cases.unit.test.d.ts +0 -2
  323. package/dist/__tests__/hdrp-grid-invalid.cases.unit.test.d.ts.map +0 -1
  324. package/dist/__tests__/hdrp-index-list-overflow-once.cases.unit.test.d.ts +0 -2
  325. package/dist/__tests__/hdrp-index-list-overflow-once.cases.unit.test.d.ts.map +0 -1
  326. package/dist/__tests__/hdrp-light-budget.cases.unit.test.d.ts +0 -2
  327. package/dist/__tests__/hdrp-light-budget.cases.unit.test.d.ts.map +0 -1
  328. package/dist/__tests__/hdrp-pipeline-asset-config.cases.unit.test.d.ts +0 -2
  329. package/dist/__tests__/hdrp-pipeline-asset-config.cases.unit.test.d.ts.map +0 -1
  330. package/dist/__tests__/hello-tilemap-smoke-upgrade.unit.test.d.ts +0 -2
  331. package/dist/__tests__/hello-tilemap-smoke-upgrade.unit.test.d.ts.map +0 -1
  332. package/dist/__tests__/helpers/mock-shader-registry.d.ts +0 -11
  333. package/dist/__tests__/helpers/mock-shader-registry.d.ts.map +0 -1
  334. package/dist/__tests__/helpers/register-runtime-components.d.ts +0 -4
  335. package/dist/__tests__/helpers/register-runtime-components.d.ts.map +0 -1
  336. package/dist/__tests__/helpers/register-scene-components.d.ts +0 -4
  337. package/dist/__tests__/helpers/register-scene-components.d.ts.map +0 -1
  338. package/dist/__tests__/helpers/renderer-device-loss-dawn.d.ts +0 -25
  339. package/dist/__tests__/helpers/renderer-device-loss-dawn.d.ts.map +0 -1
  340. package/dist/__tests__/helpers/standard-material-manifest.d.ts +0 -11
  341. package/dist/__tests__/helpers/standard-material-manifest.d.ts.map +0 -1
  342. package/dist/__tests__/helpers/tilemap-assets.d.ts +0 -6
  343. package/dist/__tests__/helpers/tilemap-assets.d.ts.map +0 -1
  344. package/dist/__tests__/host-custom-kind-contract.test-d.d.ts +0 -2
  345. package/dist/__tests__/host-custom-kind-contract.test-d.d.ts.map +0 -1
  346. package/dist/__tests__/host-custom-kind-contract.test.d.ts +0 -2
  347. package/dist/__tests__/host-custom-kind-contract.test.d.ts.map +0 -1
  348. package/dist/__tests__/ibl-pipeline-cache.cases.unit.test.d.ts +0 -2
  349. package/dist/__tests__/ibl-pipeline-cache.cases.unit.test.d.ts.map +0 -1
  350. package/dist/__tests__/inspect-name.test.d.ts +0 -2
  351. package/dist/__tests__/inspect-name.test.d.ts.map +0 -1
  352. package/dist/__tests__/instances.test-d.d.ts +0 -2
  353. package/dist/__tests__/instances.test-d.d.ts.map +0 -1
  354. package/dist/__tests__/instantiate-mount-deferred-wiring.test.d.ts +0 -2
  355. package/dist/__tests__/instantiate-mount-deferred-wiring.test.d.ts.map +0 -1
  356. package/dist/__tests__/lazy-catalog.cases.unit.test.d.ts +0 -2
  357. package/dist/__tests__/lazy-catalog.cases.unit.test.d.ts.map +0 -1
  358. package/dist/__tests__/light-attenuation-formula.test.d.ts +0 -2
  359. package/dist/__tests__/light-attenuation-formula.test.d.ts.map +0 -1
  360. package/dist/__tests__/light-casters-9-light.browser.test.d.ts +0 -2
  361. package/dist/__tests__/light-casters-9-light.browser.test.d.ts.map +0 -1
  362. package/dist/__tests__/light-gpu-byte-neutral.unit.test.d.ts +0 -2
  363. package/dist/__tests__/light-gpu-byte-neutral.unit.test.d.ts.map +0 -1
  364. package/dist/__tests__/light-snapshot.test-d.d.ts +0 -2
  365. package/dist/__tests__/light-snapshot.test-d.d.ts.map +0 -1
  366. package/dist/__tests__/lights-preservation.fixup.test.d.ts +0 -2
  367. package/dist/__tests__/lights-preservation.fixup.test.d.ts.map +0 -1
  368. package/dist/__tests__/lights-vec-negative.unit.test.d.ts +0 -2
  369. package/dist/__tests__/lights-vec-negative.unit.test.d.ts.map +0 -1
  370. package/dist/__tests__/lights.unit.test.d.ts +0 -2
  371. package/dist/__tests__/lights.unit.test.d.ts.map +0 -1
  372. package/dist/__tests__/load-by-guid-hdr.cases.unit.test.d.ts +0 -2
  373. package/dist/__tests__/load-by-guid-hdr.cases.unit.test.d.ts.map +0 -1
  374. package/dist/__tests__/load-by-guid-prod-material-parent.cases.unit.test.d.ts +0 -2
  375. package/dist/__tests__/load-by-guid-prod-material-parent.cases.unit.test.d.ts.map +0 -1
  376. package/dist/__tests__/load-by-guid-prod.cases.unit.test.d.ts +0 -2
  377. package/dist/__tests__/load-by-guid-prod.cases.unit.test.d.ts.map +0 -1
  378. package/dist/__tests__/loadbyguid-payload.unit.test.d.ts +0 -2
  379. package/dist/__tests__/loadbyguid-payload.unit.test.d.ts.map +0 -1
  380. package/dist/__tests__/loadbyguid-texture-intern.unit.test.d.ts +0 -2
  381. package/dist/__tests__/loadbyguid-texture-intern.unit.test.d.ts.map +0 -1
  382. package/dist/__tests__/loader-extract-graceful.test.d.ts +0 -2
  383. package/dist/__tests__/loader-extract-graceful.test.d.ts.map +0 -1
  384. package/dist/__tests__/loader-name-survival.test.d.ts +0 -2
  385. package/dist/__tests__/loader-name-survival.test.d.ts.map +0 -1
  386. package/dist/__tests__/loader-registry.cases.unit.test.d.ts +0 -2
  387. package/dist/__tests__/loader-registry.cases.unit.test.d.ts.map +0 -1
  388. package/dist/__tests__/m3-vec-negative.unit.test.d.ts +0 -2
  389. package/dist/__tests__/m3-vec-negative.unit.test.d.ts.map +0 -1
  390. package/dist/__tests__/m5-browser-dawn-sweep.integration.test.d.ts +0 -2
  391. package/dist/__tests__/m5-browser-dawn-sweep.integration.test.d.ts.map +0 -1
  392. package/dist/__tests__/m7-hdrp-demo-shape.cases.unit.test.d.ts +0 -2
  393. package/dist/__tests__/m7-hdrp-demo-shape.cases.unit.test.d.ts.map +0 -1
  394. package/dist/__tests__/material-texture-dimension-mismatch.unit.test.d.ts +0 -2
  395. package/dist/__tests__/material-texture-dimension-mismatch.unit.test.d.ts.map +0 -1
  396. package/dist/__tests__/material-texture-uv-scale.unit.test.d.ts +0 -2
  397. package/dist/__tests__/material-texture-uv-scale.unit.test.d.ts.map +0 -1
  398. package/dist/__tests__/materials.unit.test.d.ts +0 -2
  399. package/dist/__tests__/materials.unit.test.d.ts.map +0 -1
  400. package/dist/__tests__/mesh-bin-contract.test.d.ts +0 -2
  401. package/dist/__tests__/mesh-bin-contract.test.d.ts.map +0 -1
  402. package/dist/__tests__/mesh-bin-skin-roundtrip.unit.test.d.ts +0 -2
  403. package/dist/__tests__/mesh-bin-skin-roundtrip.unit.test.d.ts.map +0 -1
  404. package/dist/__tests__/mesh-bin.test.d.ts +0 -2
  405. package/dist/__tests__/mesh-bin.test.d.ts.map +0 -1
  406. package/dist/__tests__/mesh-loader-skin-contract.unit.test.d.ts +0 -2
  407. package/dist/__tests__/mesh-loader-skin-contract.unit.test.d.ts.map +0 -1
  408. package/dist/__tests__/mesh-ssbo-grow.unit.test.d.ts +0 -2
  409. package/dist/__tests__/mesh-ssbo-grow.unit.test.d.ts.map +0 -1
  410. package/dist/__tests__/mip-gate.unit.test.d.ts +0 -2
  411. package/dist/__tests__/mip-gate.unit.test.d.ts.map +0 -1
  412. package/dist/__tests__/mipmap-formula.cases.unit.test.d.ts +0 -2
  413. package/dist/__tests__/mipmap-formula.cases.unit.test.d.ts.map +0 -1
  414. package/dist/__tests__/mipmap-pipeline-cache.cases.unit.test.d.ts +0 -2
  415. package/dist/__tests__/mipmap-pipeline-cache.cases.unit.test.d.ts.map +0 -1
  416. package/dist/__tests__/msaa-sprite-pixel-diff.dawn.test.d.ts +0 -2
  417. package/dist/__tests__/msaa-sprite-pixel-diff.dawn.test.d.ts.map +0 -1
  418. package/dist/__tests__/multi-uv-8set.e2e.dawn.test.d.ts +0 -2
  419. package/dist/__tests__/multi-uv-8set.e2e.dawn.test.d.ts.map +0 -1
  420. package/dist/__tests__/name.unit.test.d.ts +0 -2
  421. package/dist/__tests__/name.unit.test.d.ts.map +0 -1
  422. package/dist/__tests__/new-kind-refs-contract.test.d.ts +0 -2
  423. package/dist/__tests__/new-kind-refs-contract.test.d.ts.map +0 -1
  424. package/dist/__tests__/package-promotion.test.d.ts +0 -2
  425. package/dist/__tests__/package-promotion.test.d.ts.map +0 -1
  426. package/dist/__tests__/package-rename.test.d.ts +0 -2
  427. package/dist/__tests__/package-rename.test.d.ts.map +0 -1
  428. package/dist/__tests__/parse-asset-payload-material.cases.unit.test.d.ts +0 -2
  429. package/dist/__tests__/parse-asset-payload-material.cases.unit.test.d.ts.map +0 -1
  430. package/dist/__tests__/parse-asset-payload-texture.cases.unit.test.d.ts +0 -2
  431. package/dist/__tests__/parse-asset-payload-texture.cases.unit.test.d.ts.map +0 -1
  432. package/dist/__tests__/parse-scene-payload-refs.cases.unit.test.d.ts +0 -2
  433. package/dist/__tests__/parse-scene-payload-refs.cases.unit.test.d.ts.map +0 -1
  434. package/dist/__tests__/pass-selector.cases.unit.test.d.ts +0 -2
  435. package/dist/__tests__/pass-selector.cases.unit.test.d.ts.map +0 -1
  436. package/dist/__tests__/pass-selector.unit.test.d.ts +0 -2
  437. package/dist/__tests__/pass-selector.unit.test.d.ts.map +0 -1
  438. package/dist/__tests__/pbr-pipeline.unit.test.d.ts +0 -2
  439. package/dist/__tests__/pbr-pipeline.unit.test.d.ts.map +0 -1
  440. package/dist/__tests__/pipeline-builder-msaa.unit.test.d.ts +0 -2
  441. package/dist/__tests__/pipeline-builder-msaa.unit.test.d.ts.map +0 -1
  442. package/dist/__tests__/pipeline-builder.cases.unit.test.d.ts +0 -2
  443. package/dist/__tests__/pipeline-builder.cases.unit.test.d.ts.map +0 -1
  444. package/dist/__tests__/pipeline-cache-key-topology.cases.unit.test.d.ts +0 -2
  445. package/dist/__tests__/pipeline-cache-key-topology.cases.unit.test.d.ts.map +0 -1
  446. package/dist/__tests__/pipeline-cache-keying.unit.test.d.ts +0 -2
  447. package/dist/__tests__/pipeline-cache-keying.unit.test.d.ts.map +0 -1
  448. package/dist/__tests__/pipeline-spec.test.d.ts +0 -2
  449. package/dist/__tests__/pipeline-spec.test.d.ts.map +0 -1
  450. package/dist/__tests__/pipeline-vertex-stride-branch.cases.unit.test.d.ts +0 -2
  451. package/dist/__tests__/pipeline-vertex-stride-branch.cases.unit.test.d.ts.map +0 -1
  452. package/dist/__tests__/pipeline.cases.unit.test.d.ts +0 -2
  453. package/dist/__tests__/pipeline.cases.unit.test.d.ts.map +0 -1
  454. package/dist/__tests__/point-light-shadow.browser.test.d.ts +0 -2
  455. package/dist/__tests__/point-light-shadow.browser.test.d.ts.map +0 -1
  456. package/dist/__tests__/point-light-shadow.dawn.test.d.ts +0 -2
  457. package/dist/__tests__/point-light-shadow.dawn.test.d.ts.map +0 -1
  458. package/dist/__tests__/point-light-shadow.unit.test.d.ts +0 -2
  459. package/dist/__tests__/point-light-shadow.unit.test.d.ts.map +0 -1
  460. package/dist/__tests__/post-process-error-codes.unit.test.d.ts +0 -2
  461. package/dist/__tests__/post-process-error-codes.unit.test.d.ts.map +0 -1
  462. package/dist/__tests__/post-process-params-component.unit.test.d.ts +0 -2
  463. package/dist/__tests__/post-process-params-component.unit.test.d.ts.map +0 -1
  464. package/dist/__tests__/post-process-params-extract.unit.test.d.ts +0 -2
  465. package/dist/__tests__/post-process-params-extract.unit.test.d.ts.map +0 -1
  466. package/dist/__tests__/post-process-register.cases.unit.test.d.ts +0 -2
  467. package/dist/__tests__/post-process-register.cases.unit.test.d.ts.map +0 -1
  468. package/dist/__tests__/postprocess-camera-consistency.test.d.ts +0 -2
  469. package/dist/__tests__/postprocess-camera-consistency.test.d.ts.map +0 -1
  470. package/dist/__tests__/profiler-assembly.integration.test.d.ts +0 -2
  471. package/dist/__tests__/profiler-assembly.integration.test.d.ts.map +0 -1
  472. package/dist/__tests__/propagate-transforms.cases.unit.test.d.ts +0 -2
  473. package/dist/__tests__/propagate-transforms.cases.unit.test.d.ts.map +0 -1
  474. package/dist/__tests__/propagate-transforms.dawn.test.d.ts +0 -2
  475. package/dist/__tests__/propagate-transforms.dawn.test.d.ts.map +0 -1
  476. package/dist/__tests__/record-all-topology.cases.unit.test.d.ts +0 -2
  477. package/dist/__tests__/record-all-topology.cases.unit.test.d.ts.map +0 -1
  478. package/dist/__tests__/record-draw-branch.cases.unit.test.d.ts +0 -2
  479. package/dist/__tests__/record-draw-branch.cases.unit.test.d.ts.map +0 -1
  480. package/dist/__tests__/record-strip-index-format.cases.unit.test.d.ts +0 -2
  481. package/dist/__tests__/record-strip-index-format.cases.unit.test.d.ts.map +0 -1
  482. package/dist/__tests__/record-worldid-isolation.test.d.ts +0 -2
  483. package/dist/__tests__/record-worldid-isolation.test.d.ts.map +0 -1
  484. package/dist/__tests__/recover-error-exhaustive.test-d.d.ts +0 -11
  485. package/dist/__tests__/recover-error-exhaustive.test-d.d.ts.map +0 -1
  486. package/dist/__tests__/register-with-guid-rgba16float.cases.unit.test.d.ts +0 -2
  487. package/dist/__tests__/register-with-guid-rgba16float.cases.unit.test.d.ts.map +0 -1
  488. package/dist/__tests__/render-data.cases.unit.test.d.ts +0 -2
  489. package/dist/__tests__/render-data.cases.unit.test.d.ts.map +0 -1
  490. package/dist/__tests__/render-environment-consumer.integration.test.d.ts +0 -2
  491. package/dist/__tests__/render-environment-consumer.integration.test.d.ts.map +0 -1
  492. package/dist/__tests__/render-error-exhaustive.test-d.d.ts +0 -11
  493. package/dist/__tests__/render-error-exhaustive.test-d.d.ts.map +0 -1
  494. package/dist/__tests__/render-feature-assembly.test-d.d.ts +0 -2
  495. package/dist/__tests__/render-feature-assembly.test-d.d.ts.map +0 -1
  496. package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts +0 -2
  497. package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts.map +0 -1
  498. package/dist/__tests__/render-feature-prepared-graphics.browser.test.d.ts +0 -2
  499. package/dist/__tests__/render-feature-prepared-graphics.browser.test.d.ts.map +0 -1
  500. package/dist/__tests__/render-feature-prepared-graphics.dawn.test.d.ts +0 -2
  501. package/dist/__tests__/render-feature-prepared-graphics.dawn.test.d.ts.map +0 -1
  502. package/dist/__tests__/render-feature-prepared-graphics.fixture.d.ts +0 -10
  503. package/dist/__tests__/render-feature-prepared-graphics.fixture.d.ts.map +0 -1
  504. package/dist/__tests__/render-feature-prepared-graphics.integration.test.d.ts +0 -2
  505. package/dist/__tests__/render-feature-prepared-graphics.integration.test.d.ts.map +0 -1
  506. package/dist/__tests__/render-feature-prepared-graphics.regression.integration.test.d.ts +0 -2
  507. package/dist/__tests__/render-feature-prepared-graphics.regression.integration.test.d.ts.map +0 -1
  508. package/dist/__tests__/render-feature-recover.integration.test.d.ts +0 -2
  509. package/dist/__tests__/render-feature-recover.integration.test.d.ts.map +0 -1
  510. package/dist/__tests__/render-feature-runtime-surface.test-d.d.ts +0 -2
  511. package/dist/__tests__/render-feature-runtime-surface.test-d.d.ts.map +0 -1
  512. package/dist/__tests__/render-query-regression.cases.unit.test.d.ts +0 -2
  513. package/dist/__tests__/render-query-regression.cases.unit.test.d.ts.map +0 -1
  514. package/dist/__tests__/render-schema-consumer.integration.test.d.ts +0 -2
  515. package/dist/__tests__/render-schema-consumer.integration.test.d.ts.map +0 -1
  516. package/dist/__tests__/render-schema-owner-boundary.unit.test.d.ts +0 -2
  517. package/dist/__tests__/render-schema-owner-boundary.unit.test.d.ts.map +0 -1
  518. package/dist/__tests__/render-system-cross-world-overlay-queue.test.d.ts +0 -2
  519. package/dist/__tests__/render-system-cross-world-overlay-queue.test.d.ts.map +0 -1
  520. package/dist/__tests__/render-system-extract-dispatch-ordering.test.d.ts +0 -2
  521. package/dist/__tests__/render-system-extract-dispatch-ordering.test.d.ts.map +0 -1
  522. package/dist/__tests__/render-system-extract.test.d.ts +0 -2
  523. package/dist/__tests__/render-system-extract.test.d.ts.map +0 -1
  524. package/dist/__tests__/render-system-extract.unit.test.d.ts +0 -2
  525. package/dist/__tests__/render-system-extract.unit.test.d.ts.map +0 -1
  526. package/dist/__tests__/render-system-fold-bucket.unit.test.d.ts +0 -2
  527. package/dist/__tests__/render-system-fold-bucket.unit.test.d.ts.map +0 -1
  528. package/dist/__tests__/render-system-fold-fallback.unit.test.d.ts +0 -2
  529. package/dist/__tests__/render-system-fold-fallback.unit.test.d.ts.map +0 -1
  530. package/dist/__tests__/render-system-fold-material.unit.test.d.ts +0 -2
  531. package/dist/__tests__/render-system-fold-material.unit.test.d.ts.map +0 -1
  532. package/dist/__tests__/render-system-fold-metrics.unit.test.d.ts +0 -2
  533. package/dist/__tests__/render-system-fold-metrics.unit.test.d.ts.map +0 -1
  534. package/dist/__tests__/render-system-fold-modegate.unit.test.d.ts +0 -2
  535. package/dist/__tests__/render-system-fold-modegate.unit.test.d.ts.map +0 -1
  536. package/dist/__tests__/render-system-fold-scene-instances.unit.test.d.ts +0 -2
  537. package/dist/__tests__/render-system-fold-scene-instances.unit.test.d.ts.map +0 -1
  538. package/dist/__tests__/render-system-fold.dawn.test.d.ts +0 -2
  539. package/dist/__tests__/render-system-fold.dawn.test.d.ts.map +0 -1
  540. package/dist/__tests__/render-system-mega.test.d.ts +0 -2
  541. package/dist/__tests__/render-system-mega.test.d.ts.map +0 -1
  542. package/dist/__tests__/render-system-owner-split-contract.test.d.ts +0 -2
  543. package/dist/__tests__/render-system-owner-split-contract.test.d.ts.map +0 -1
  544. package/dist/__tests__/render-system-record-multi-material-textureview.test.d.ts +0 -2
  545. package/dist/__tests__/render-system-record-multi-material-textureview.test.d.ts.map +0 -1
  546. package/dist/__tests__/render-system-record-per-submesh-transparency.test.d.ts +0 -2
  547. package/dist/__tests__/render-system-record-per-submesh-transparency.test.d.ts.map +0 -1
  548. package/dist/__tests__/render-system-record-submesh.cases.unit.test.d.ts +0 -2
  549. package/dist/__tests__/render-system-record-submesh.cases.unit.test.d.ts.map +0 -1
  550. package/dist/__tests__/render-system-record-warn-once.cases.unit.test.d.ts +0 -2
  551. package/dist/__tests__/render-system-record-warn-once.cases.unit.test.d.ts.map +0 -1
  552. package/dist/__tests__/render-system-record.test.d.ts +0 -2
  553. package/dist/__tests__/render-system-record.test.d.ts.map +0 -1
  554. package/dist/__tests__/render-system-record.unit.test.d.ts +0 -2
  555. package/dist/__tests__/render-system-record.unit.test.d.ts.map +0 -1
  556. package/dist/__tests__/render-system-skin-bg.unit.test.d.ts +0 -2
  557. package/dist/__tests__/render-system-skin-bg.unit.test.d.ts.map +0 -1
  558. package/dist/__tests__/renderer-consumer.test-d.d.ts +0 -2
  559. package/dist/__tests__/renderer-consumer.test-d.d.ts.map +0 -1
  560. package/dist/__tests__/renderer-device-loss-multi-world.integration.test.d.ts +0 -2
  561. package/dist/__tests__/renderer-device-loss-multi-world.integration.test.d.ts.map +0 -1
  562. package/dist/__tests__/renderer-device-loss-provider-feasibility.dawn.test.d.ts +0 -2
  563. package/dist/__tests__/renderer-device-loss-provider-feasibility.dawn.test.d.ts.map +0 -1
  564. package/dist/__tests__/renderer-device-loss-recovery.dawn.test.d.ts +0 -2
  565. package/dist/__tests__/renderer-device-loss-recovery.dawn.test.d.ts.map +0 -1
  566. package/dist/__tests__/renderer-draw-world.cases.unit.test.d.ts +0 -2
  567. package/dist/__tests__/renderer-draw-world.cases.unit.test.d.ts.map +0 -1
  568. package/dist/__tests__/renderer-health.unit.test.d.ts +0 -2
  569. package/dist/__tests__/renderer-health.unit.test.d.ts.map +0 -1
  570. package/dist/__tests__/renderer-host-fallback.unit.test.d.ts +0 -2
  571. package/dist/__tests__/renderer-host-fallback.unit.test.d.ts.map +0 -1
  572. package/dist/__tests__/renderer-lifecycle.integration.test.d.ts +0 -2
  573. package/dist/__tests__/renderer-lifecycle.integration.test.d.ts.map +0 -1
  574. package/dist/__tests__/renderer-recover.unit.test.d.ts +0 -2
  575. package/dist/__tests__/renderer-recover.unit.test.d.ts.map +0 -1
  576. package/dist/__tests__/renderer-recovery-consumer.integration.test.d.ts +0 -2
  577. package/dist/__tests__/renderer-recovery-consumer.integration.test.d.ts.map +0 -1
  578. package/dist/__tests__/renderer-result.test-d.d.ts +0 -2
  579. package/dist/__tests__/renderer-result.test-d.d.ts.map +0 -1
  580. package/dist/__tests__/renderer-surface.unit.test.d.ts +0 -2
  581. package/dist/__tests__/renderer-surface.unit.test.d.ts.map +0 -1
  582. package/dist/__tests__/renderer-test-utils.d.ts +0 -10
  583. package/dist/__tests__/renderer-test-utils.d.ts.map +0 -1
  584. package/dist/__tests__/renderer.test-d.d.ts +0 -2
  585. package/dist/__tests__/renderer.test-d.d.ts.map +0 -1
  586. package/dist/__tests__/renderstate-pipeline-cache.cases.unit.test.d.ts +0 -2
  587. package/dist/__tests__/renderstate-pipeline-cache.cases.unit.test.d.ts.map +0 -1
  588. package/dist/__tests__/resolve-asset-handle-err.test.d.ts +0 -2
  589. package/dist/__tests__/resolve-asset-handle-err.test.d.ts.map +0 -1
  590. package/dist/__tests__/resolve-asset-handle.unit.test.d.ts +0 -2
  591. package/dist/__tests__/resolve-asset-handle.unit.test.d.ts.map +0 -1
  592. package/dist/__tests__/resolve-depth-only-view.test.d.ts +0 -2
  593. package/dist/__tests__/resolve-depth-only-view.test.d.ts.map +0 -1
  594. package/dist/__tests__/resolve-scene-guids.cases.unit.test.d.ts +0 -2
  595. package/dist/__tests__/resolve-scene-guids.cases.unit.test.d.ts.map +0 -1
  596. package/dist/__tests__/resolveName-fallback.test.d.ts +0 -2
  597. package/dist/__tests__/resolveName-fallback.test.d.ts.map +0 -1
  598. package/dist/__tests__/resolveName-null-package.test.d.ts +0 -2
  599. package/dist/__tests__/resolveName-null-package.test.d.ts.map +0 -1
  600. package/dist/__tests__/resolveName-unified-entry.test.d.ts +0 -2
  601. package/dist/__tests__/resolveName-unified-entry.test.d.ts.map +0 -1
  602. package/dist/__tests__/resolveName.test.d.ts +0 -2
  603. package/dist/__tests__/resolveName.test.d.ts.map +0 -1
  604. package/dist/__tests__/rhi-null-command-flow.unit.test.d.ts +0 -2
  605. package/dist/__tests__/rhi-null-command-flow.unit.test.d.ts.map +0 -1
  606. package/dist/__tests__/rhi-null-noop-behavior.unit.test.d.ts +0 -2
  607. package/dist/__tests__/rhi-null-noop-behavior.unit.test.d.ts.map +0 -1
  608. package/dist/__tests__/rhi-null-renderer-lifecycle.unit.test.d.ts +0 -2
  609. package/dist/__tests__/rhi-null-renderer-lifecycle.unit.test.d.ts.map +0 -1
  610. package/dist/__tests__/roots-to-scene-asset.test.d.ts +0 -2
  611. package/dist/__tests__/roots-to-scene-asset.test.d.ts.map +0 -1
  612. package/dist/__tests__/roundtrip-primitive.test.d.ts +0 -2
  613. package/dist/__tests__/roundtrip-primitive.test.d.ts.map +0 -1
  614. package/dist/__tests__/runtime-authority-scan.unit.test.d.ts +0 -2
  615. package/dist/__tests__/runtime-authority-scan.unit.test.d.ts.map +0 -1
  616. package/dist/__tests__/runtime-domain-residue.unit.test.d.ts +0 -2
  617. package/dist/__tests__/runtime-domain-residue.unit.test.d.ts.map +0 -1
  618. package/dist/__tests__/scene-bare-guid-refs-instantiate.test.d.ts +0 -2
  619. package/dist/__tests__/scene-bare-guid-refs-instantiate.test.d.ts.map +0 -1
  620. package/dist/__tests__/scene-equirect-roundtrip.test.d.ts +0 -2
  621. package/dist/__tests__/scene-equirect-roundtrip.test.d.ts.map +0 -1
  622. package/dist/__tests__/scene-instance-authoring.integration.test.d.ts +0 -2
  623. package/dist/__tests__/scene-instance-authoring.integration.test.d.ts.map +0 -1
  624. package/dist/__tests__/scene-instance-bridge.integration.test.d.ts +0 -2
  625. package/dist/__tests__/scene-instance-bridge.integration.test.d.ts.map +0 -1
  626. package/dist/__tests__/scene-instance-component.test.d.ts +0 -2
  627. package/dist/__tests__/scene-instance-component.test.d.ts.map +0 -1
  628. package/dist/__tests__/scene-instantiate-cycle-runtime.test.d.ts +0 -2
  629. package/dist/__tests__/scene-instantiate-cycle-runtime.test.d.ts.map +0 -1
  630. package/dist/__tests__/scene-mount-fixed-point.test.d.ts +0 -2
  631. package/dist/__tests__/scene-mount-fixed-point.test.d.ts.map +0 -1
  632. package/dist/__tests__/scene-mount-roundtrip.test.d.ts +0 -2
  633. package/dist/__tests__/scene-mount-roundtrip.test.d.ts.map +0 -1
  634. package/dist/__tests__/scene-mount-wrapper-roundtrip.test.d.ts +0 -2
  635. package/dist/__tests__/scene-mount-wrapper-roundtrip.test.d.ts.map +0 -1
  636. package/dist/__tests__/scene-sugar-instantiate.test.d.ts +0 -2
  637. package/dist/__tests__/scene-sugar-instantiate.test.d.ts.map +0 -1
  638. package/dist/__tests__/serialize-mounts-roundtrip.test.d.ts +0 -2
  639. package/dist/__tests__/serialize-mounts-roundtrip.test.d.ts.map +0 -1
  640. package/dist/__tests__/serialize-scene-asset.test.d.ts +0 -2
  641. package/dist/__tests__/serialize-scene-asset.test.d.ts.map +0 -1
  642. package/dist/__tests__/shadow-caster-empty-schema.test.d.ts +0 -2
  643. package/dist/__tests__/shadow-caster-empty-schema.test.d.ts.map +0 -1
  644. package/dist/__tests__/shadow-csm-atlas.test.d.ts +0 -2
  645. package/dist/__tests__/shadow-csm-atlas.test.d.ts.map +0 -1
  646. package/dist/__tests__/shadow-csm-blend.dawn.test.d.ts +0 -2
  647. package/dist/__tests__/shadow-csm-blend.dawn.test.d.ts.map +0 -1
  648. package/dist/__tests__/shadow-csm-cascade-loadop.test.d.ts +0 -2
  649. package/dist/__tests__/shadow-csm-cascade-loadop.test.d.ts.map +0 -1
  650. package/dist/__tests__/shadow-csm-component.test.d.ts +0 -2
  651. package/dist/__tests__/shadow-csm-component.test.d.ts.map +0 -1
  652. package/dist/__tests__/shadow-csm-extract.test.d.ts +0 -2
  653. package/dist/__tests__/shadow-csm-extract.test.d.ts.map +0 -1
  654. package/dist/__tests__/shadow-csm-orthoz.test.d.ts +0 -2
  655. package/dist/__tests__/shadow-csm-orthoz.test.d.ts.map +0 -1
  656. package/dist/__tests__/shadow-csm-runtime-vary.dawn.test.d.ts +0 -2
  657. package/dist/__tests__/shadow-csm-runtime-vary.dawn.test.d.ts.map +0 -1
  658. package/dist/__tests__/shadow-csm-shader.dawn.test.d.ts +0 -2
  659. package/dist/__tests__/shadow-csm-shader.dawn.test.d.ts.map +0 -1
  660. package/dist/__tests__/shadow-csm-tile-consistency.test.d.ts +0 -2
  661. package/dist/__tests__/shadow-csm-tile-consistency.test.d.ts.map +0 -1
  662. package/dist/__tests__/shadow-csm-ubo.dawn.test.d.ts +0 -2
  663. package/dist/__tests__/shadow-csm-ubo.dawn.test.d.ts.map +0 -1
  664. package/dist/__tests__/shadow-csm-ubo.test.d.ts +0 -2
  665. package/dist/__tests__/shadow-csm-ubo.test.d.ts.map +0 -1
  666. package/dist/__tests__/shadow-csm-viewport.browser.test.d.ts +0 -2
  667. package/dist/__tests__/shadow-csm-viewport.browser.test.d.ts.map +0 -1
  668. package/dist/__tests__/shadow-fields-observable.dawn.test.d.ts +0 -2
  669. package/dist/__tests__/shadow-fields-observable.dawn.test.d.ts.map +0 -1
  670. package/dist/__tests__/shadow-m1.dawn.test.d.ts +0 -2
  671. package/dist/__tests__/shadow-m1.dawn.test.d.ts.map +0 -1
  672. package/dist/__tests__/shadow-mesh-ssbo-order.test.d.ts +0 -2
  673. package/dist/__tests__/shadow-mesh-ssbo-order.test.d.ts.map +0 -1
  674. package/dist/__tests__/shadow-skip-non-triangle.cases.unit.test.d.ts +0 -2
  675. package/dist/__tests__/shadow-skip-non-triangle.cases.unit.test.d.ts.map +0 -1
  676. package/dist/__tests__/skin-error-exhaustive.test-d.d.ts +0 -11
  677. package/dist/__tests__/skin-error-exhaustive.test-d.d.ts.map +0 -1
  678. package/dist/__tests__/skin-errors-kebab-case.cases.unit.test.d.ts +0 -2
  679. package/dist/__tests__/skin-errors-kebab-case.cases.unit.test.d.ts.map +0 -1
  680. package/dist/__tests__/skin-errors.unit.test.d.ts +0 -2
  681. package/dist/__tests__/skin-errors.unit.test.d.ts.map +0 -1
  682. package/dist/__tests__/skin-extract-getarrayview-count.unit.test.d.ts +0 -2
  683. package/dist/__tests__/skin-extract-getarrayview-count.unit.test.d.ts.map +0 -1
  684. package/dist/__tests__/skin-instances-coexist.cases.unit.test.d.ts +0 -2
  685. package/dist/__tests__/skin-instances-coexist.cases.unit.test.d.ts.map +0 -1
  686. package/dist/__tests__/skin-m2-extract-happy.cases.unit.test.d.ts +0 -2
  687. package/dist/__tests__/skin-m2-extract-happy.cases.unit.test.d.ts.map +0 -1
  688. package/dist/__tests__/skin-m2-extract-joint-error.cases.unit.test.d.ts +0 -2
  689. package/dist/__tests__/skin-m2-extract-joint-error.cases.unit.test.d.ts.map +0 -1
  690. package/dist/__tests__/skin-m2-extract-null-assets.cases.unit.test.d.ts +0 -2
  691. package/dist/__tests__/skin-m2-extract-null-assets.cases.unit.test.d.ts.map +0 -1
  692. package/dist/__tests__/skin-m2-extract-skeleton-error.cases.unit.test.d.ts +0 -2
  693. package/dist/__tests__/skin-m2-extract-skeleton-error.cases.unit.test.d.ts.map +0 -1
  694. package/dist/__tests__/skin-m3-record-cache.cases.unit.test.d.ts +0 -2
  695. package/dist/__tests__/skin-m3-record-cache.cases.unit.test.d.ts.map +0 -1
  696. package/dist/__tests__/skin-palette-extract.cases.unit.test.d.ts +0 -2
  697. package/dist/__tests__/skin-palette-extract.cases.unit.test.d.ts.map +0 -1
  698. package/dist/__tests__/skin-parented-double-transform.test.d.ts +0 -14
  699. package/dist/__tests__/skin-parented-double-transform.test.d.ts.map +0 -1
  700. package/dist/__tests__/skin-pipeline-routing.cases.unit.test.d.ts +0 -2
  701. package/dist/__tests__/skin-pipeline-routing.cases.unit.test.d.ts.map +0 -1
  702. package/dist/__tests__/skin.cases.unit.test.d.ts +0 -2
  703. package/dist/__tests__/skin.cases.unit.test.d.ts.map +0 -1
  704. package/dist/__tests__/skinned-shadow-mixed.dawn.test.d.ts +0 -2
  705. package/dist/__tests__/skinned-shadow-mixed.dawn.test.d.ts.map +0 -1
  706. package/dist/__tests__/skybox-extract.cases.unit.test.d.ts +0 -2
  707. package/dist/__tests__/skybox-extract.cases.unit.test.d.ts.map +0 -1
  708. package/dist/__tests__/skybox-shader-compile.cases.unit.test.d.ts +0 -2
  709. package/dist/__tests__/skybox-shader-compile.cases.unit.test.d.ts.map +0 -1
  710. package/dist/__tests__/skylight-bind-group.cases.unit.test.d.ts +0 -2
  711. package/dist/__tests__/skylight-bind-group.cases.unit.test.d.ts.map +0 -1
  712. package/dist/__tests__/skylight-component.cases.unit.test.d.ts +0 -2
  713. package/dist/__tests__/skylight-component.cases.unit.test.d.ts.map +0 -1
  714. package/dist/__tests__/skylight-fallback-path.cases.unit.test.d.ts +0 -2
  715. package/dist/__tests__/skylight-fallback-path.cases.unit.test.d.ts.map +0 -1
  716. package/dist/__tests__/skylight-lazy-projection.test.d.ts +0 -2
  717. package/dist/__tests__/skylight-lazy-projection.test.d.ts.map +0 -1
  718. package/dist/__tests__/skylight-pipeline-layout.cases.unit.test.d.ts +0 -2
  719. package/dist/__tests__/skylight-pipeline-layout.cases.unit.test.d.ts.map +0 -1
  720. package/dist/__tests__/skylight-solid-color-extract.cases.unit.test.d.ts +0 -2
  721. package/dist/__tests__/skylight-solid-color-extract.cases.unit.test.d.ts.map +0 -1
  722. package/dist/__tests__/sparse-tag-scene-roundtrip.test.d.ts +0 -2
  723. package/dist/__tests__/sparse-tag-scene-roundtrip.test.d.ts.map +0 -1
  724. package/dist/__tests__/sprite-animation-tick-boundary.cases.unit.test.d.ts +0 -2
  725. package/dist/__tests__/sprite-animation-tick-boundary.cases.unit.test.d.ts.map +0 -1
  726. package/dist/__tests__/sprite-animation-tick-clamp.cases.unit.test.d.ts +0 -2
  727. package/dist/__tests__/sprite-animation-tick-clamp.cases.unit.test.d.ts.map +0 -1
  728. package/dist/__tests__/sprite-animation-tick-frame-duration-negative.cases.unit.test.d.ts +0 -2
  729. package/dist/__tests__/sprite-animation-tick-frame-duration-negative.cases.unit.test.d.ts.map +0 -1
  730. package/dist/__tests__/sprite-animation-tick-frame-duration-zero.cases.unit.test.d.ts +0 -2
  731. package/dist/__tests__/sprite-animation-tick-frame-duration-zero.cases.unit.test.d.ts.map +0 -1
  732. package/dist/__tests__/sprite-animation-tick-loop.cases.unit.test.d.ts +0 -2
  733. package/dist/__tests__/sprite-animation-tick-loop.cases.unit.test.d.ts.map +0 -1
  734. package/dist/__tests__/sprite-animation-tick-override-probe.cases.unit.test.d.ts +0 -2
  735. package/dist/__tests__/sprite-animation-tick-override-probe.cases.unit.test.d.ts.map +0 -1
  736. package/dist/__tests__/sprite-animation-tick-regions-mismatch.cases.unit.test.d.ts +0 -2
  737. package/dist/__tests__/sprite-animation-tick-regions-mismatch.cases.unit.test.d.ts.map +0 -1
  738. package/dist/__tests__/sprite-cullmode-flip.dawn.test.d.ts +0 -2
  739. package/dist/__tests__/sprite-cullmode-flip.dawn.test.d.ts.map +0 -1
  740. package/dist/__tests__/sprite-lit-bgl-byte-identical.test.d.ts +0 -2
  741. package/dist/__tests__/sprite-lit-bgl-byte-identical.test.d.ts.map +0 -1
  742. package/dist/__tests__/sprite-lit-extract-branch.test.d.ts +0 -2
  743. package/dist/__tests__/sprite-lit-extract-branch.test.d.ts.map +0 -1
  744. package/dist/__tests__/sprite-lit-pipeline-cache-key.test.d.ts +0 -2
  745. package/dist/__tests__/sprite-lit-pipeline-cache-key.test.d.ts.map +0 -1
  746. package/dist/__tests__/sprite-param-values.test-d.d.ts +0 -2
  747. package/dist/__tests__/sprite-param-values.test-d.d.ts.map +0 -1
  748. package/dist/__tests__/ssao-bgl.test.d.ts +0 -2
  749. package/dist/__tests__/ssao-bgl.test.d.ts.map +0 -1
  750. package/dist/__tests__/ssao-buffers.test.d.ts +0 -2
  751. package/dist/__tests__/ssao-buffers.test.d.ts.map +0 -1
  752. package/dist/__tests__/ssao-data.test.d.ts +0 -2
  753. package/dist/__tests__/ssao-data.test.d.ts.map +0 -1
  754. package/dist/__tests__/ssao-errors.test.d.ts +0 -2
  755. package/dist/__tests__/ssao-errors.test.d.ts.map +0 -1
  756. package/dist/__tests__/ssao-manifest.test.d.ts +0 -2
  757. package/dist/__tests__/ssao-manifest.test.d.ts.map +0 -1
  758. package/dist/__tests__/ssao-passes.test.d.ts +0 -2
  759. package/dist/__tests__/ssao-passes.test.d.ts.map +0 -1
  760. package/dist/__tests__/ssao-pipelines.test.d.ts +0 -2
  761. package/dist/__tests__/ssao-pipelines.test.d.ts.map +0 -1
  762. package/dist/__tests__/ssao-uniform-layout.test.d.ts +0 -2
  763. package/dist/__tests__/ssao-uniform-layout.test.d.ts.map +0 -1
  764. package/dist/__tests__/static-rig.integration.test.d.ts +0 -2
  765. package/dist/__tests__/static-rig.integration.test.d.ts.map +0 -1
  766. package/dist/__tests__/stencil-outline-pixel.dawn.test.d.ts +0 -2
  767. package/dist/__tests__/stencil-outline-pixel.dawn.test.d.ts.map +0 -1
  768. package/dist/__tests__/storage-buffer-caps.cases.unit.test.d.ts +0 -2
  769. package/dist/__tests__/storage-buffer-caps.cases.unit.test.d.ts.map +0 -1
  770. package/dist/__tests__/swap-chain-format.unit.test.d.ts +0 -2
  771. package/dist/__tests__/swap-chain-format.unit.test.d.ts.map +0 -1
  772. package/dist/__tests__/systems.cases.unit.test.d.ts +0 -2
  773. package/dist/__tests__/systems.cases.unit.test.d.ts.map +0 -1
  774. package/dist/__tests__/template-game-default-api-contract.test.d.ts +0 -2
  775. package/dist/__tests__/template-game-default-api-contract.test.d.ts.map +0 -1
  776. package/dist/__tests__/text.unit.test.d.ts +0 -2
  777. package/dist/__tests__/text.unit.test.d.ts.map +0 -1
  778. package/dist/__tests__/texture-dimensions.browser.test.d.ts +0 -2
  779. package/dist/__tests__/texture-dimensions.browser.test.d.ts.map +0 -1
  780. package/dist/__tests__/tilemap-childed-despawn.test.d.ts +0 -2
  781. package/dist/__tests__/tilemap-childed-despawn.test.d.ts.map +0 -1
  782. package/dist/__tests__/tilemap-chunk-extract.overhang-bounds.test.d.ts +0 -2
  783. package/dist/__tests__/tilemap-chunk-extract.overhang-bounds.test.d.ts.map +0 -1
  784. package/dist/__tests__/tilemap-chunk-extract.propagate-order.test.d.ts +0 -2
  785. package/dist/__tests__/tilemap-chunk-extract.propagate-order.test.d.ts.map +0 -1
  786. package/dist/__tests__/tilemap-chunk-extract.terrain-rewrite.unit.test.d.ts +0 -2
  787. package/dist/__tests__/tilemap-chunk-extract.terrain-rewrite.unit.test.d.ts.map +0 -1
  788. package/dist/__tests__/tilemap-chunk-extract.test.d.ts +0 -2
  789. package/dist/__tests__/tilemap-chunk-extract.test.d.ts.map +0 -1
  790. package/dist/__tests__/tilemap-chunk-extract.unit.test.d.ts +0 -2
  791. package/dist/__tests__/tilemap-chunk-extract.unit.test.d.ts.map +0 -1
  792. package/dist/__tests__/tilemap-chunk-y-sort-bench.unit.test.d.ts +0 -2
  793. package/dist/__tests__/tilemap-chunk-y-sort-bench.unit.test.d.ts.map +0 -1
  794. package/dist/__tests__/tilemap-dirty-rebuild.test.d.ts +0 -2
  795. package/dist/__tests__/tilemap-dirty-rebuild.test.d.ts.map +0 -1
  796. package/dist/__tests__/tilemap-material-cache.test.d.ts +0 -2
  797. package/dist/__tests__/tilemap-material-cache.test.d.ts.map +0 -1
  798. package/dist/__tests__/tilemap-multi-atlas.test.d.ts +0 -2
  799. package/dist/__tests__/tilemap-multi-atlas.test.d.ts.map +0 -1
  800. package/dist/__tests__/tilemap-owner-boundary.unit.test.d.ts +0 -2
  801. package/dist/__tests__/tilemap-owner-boundary.unit.test.d.ts.map +0 -1
  802. package/dist/__tests__/tilemap-region-pack.test.d.ts +0 -2
  803. package/dist/__tests__/tilemap-region-pack.test.d.ts.map +0 -1
  804. package/dist/__tests__/tilemap-spawn-flip-pivot.test.d.ts +0 -2
  805. package/dist/__tests__/tilemap-spawn-flip-pivot.test.d.ts.map +0 -1
  806. package/dist/__tests__/tilemap-uv-inset.test.d.ts +0 -2
  807. package/dist/__tests__/tilemap-uv-inset.test.d.ts.map +0 -1
  808. package/dist/__tests__/tilemap-validate.test.d.ts +0 -2
  809. package/dist/__tests__/tilemap-validate.test.d.ts.map +0 -1
  810. package/dist/__tests__/tileset-asset-validate.test.d.ts +0 -2
  811. package/dist/__tests__/tileset-asset-validate.test.d.ts.map +0 -1
  812. package/dist/__tests__/tonemap-hdr-target.cases.unit.test.d.ts +0 -2
  813. package/dist/__tests__/tonemap-hdr-target.cases.unit.test.d.ts.map +0 -1
  814. package/dist/__tests__/tonemap-pipeline-split.cases.unit.test.d.ts +0 -2
  815. package/dist/__tests__/tonemap-pipeline-split.cases.unit.test.d.ts.map +0 -1
  816. package/dist/__tests__/tonemap.cases.unit.test.d.ts +0 -2
  817. package/dist/__tests__/tonemap.cases.unit.test.d.ts.map +0 -1
  818. package/dist/__tests__/transcode-fallback.unit.test.d.ts +0 -2
  819. package/dist/__tests__/transcode-fallback.unit.test.d.ts.map +0 -1
  820. package/dist/__tests__/transform-hierarchy-pixel-diff.dawn.test.d.ts +0 -2
  821. package/dist/__tests__/transform-hierarchy-pixel-diff.dawn.test.d.ts.map +0 -1
  822. package/dist/__tests__/transient-fields-collect.test.d.ts +0 -2
  823. package/dist/__tests__/transient-fields-collect.test.d.ts.map +0 -1
  824. package/dist/__tests__/transient-runtime-behavior.test.d.ts +0 -2
  825. package/dist/__tests__/transient-runtime-behavior.test.d.ts.map +0 -1
  826. package/dist/__tests__/transitional-authoring.integration.test.d.ts +0 -2
  827. package/dist/__tests__/transitional-authoring.integration.test.d.ts.map +0 -1
  828. package/dist/__tests__/transparent-sort-config-get.cases.unit.test.d.ts +0 -2
  829. package/dist/__tests__/transparent-sort-config-get.cases.unit.test.d.ts.map +0 -1
  830. package/dist/__tests__/transparent-sort-config-set.cases.unit.test.d.ts +0 -2
  831. package/dist/__tests__/transparent-sort-config-set.cases.unit.test.d.ts.map +0 -1
  832. package/dist/__tests__/transparent-sort-tilemap-sprite-interleave.test.d.ts +0 -2
  833. package/dist/__tests__/transparent-sort-tilemap-sprite-interleave.test.d.ts.map +0 -1
  834. package/dist/__tests__/transparent-sort.cases.unit.test.d.ts +0 -2
  835. package/dist/__tests__/transparent-sort.cases.unit.test.d.ts.map +0 -1
  836. package/dist/__tests__/upload-texture-consistency.cases.unit.test.d.ts +0 -2
  837. package/dist/__tests__/upload-texture-consistency.cases.unit.test.d.ts.map +0 -1
  838. package/dist/__tests__/variant-selection.unit.test.d.ts +0 -2
  839. package/dist/__tests__/variant-selection.unit.test.d.ts.map +0 -1
  840. package/dist/__tests__/verify-revisions.cases.unit.test.d.ts +0 -2
  841. package/dist/__tests__/verify-revisions.cases.unit.test.d.ts.map +0 -1
  842. package/dist/__tests__/vertex-attribute-layout.test.d.ts +0 -2
  843. package/dist/__tests__/vertex-attribute-layout.test.d.ts.map +0 -1
  844. package/dist/__tests__/video-extract-bindgroup.dawn.test.d.ts +0 -2
  845. package/dist/__tests__/video-extract-bindgroup.dawn.test.d.ts.map +0 -1
  846. package/dist/__tests__/video-loader-consumption.test.d.ts +0 -2
  847. package/dist/__tests__/video-loader-consumption.test.d.ts.map +0 -1
  848. package/dist/__tests__/video-loader-smoke.dawn.test.d.ts +0 -2
  849. package/dist/__tests__/video-loader-smoke.dawn.test.d.ts.map +0 -1
  850. package/dist/__tests__/view-ubo-layout.browser.test.d.ts +0 -2
  851. package/dist/__tests__/view-ubo-layout.browser.test.d.ts.map +0 -1
  852. package/dist/__tests__/volumetric-fog-record-recovery.integration.test.d.ts +0 -2
  853. package/dist/__tests__/volumetric-fog-record-recovery.integration.test.d.ts.map +0 -1
  854. package/dist/__tests__/wire-default-loaders.cases.unit.test.d.ts +0 -2
  855. package/dist/__tests__/wire-default-loaders.cases.unit.test.d.ts.map +0 -1
  856. package/dist/__tests__/world-entity-key.test.d.ts +0 -2
  857. package/dist/__tests__/world-entity-key.test.d.ts.map +0 -1
  858. package/dist/__tests__/world-scene-despawn.test.d.ts +0 -2
  859. package/dist/__tests__/world-scene-despawn.test.d.ts.map +0 -1
  860. package/dist/__tests__/world-scene-instantiate.test.d.ts +0 -2
  861. package/dist/__tests__/world-scene-instantiate.test.d.ts.map +0 -1
  862. package/dist/__tests__/world-scene-nested.test.d.ts +0 -2
  863. package/dist/__tests__/world-scene-nested.test.d.ts.map +0 -1
  864. package/dist/__tests__/world-scene-override.test.d.ts +0 -2
  865. package/dist/__tests__/world-scene-override.test.d.ts.map +0 -1
  866. package/dist/__tests__/zero-camera-clear-fallback.cases.unit.test.d.ts +0 -2
  867. package/dist/__tests__/zero-camera-clear-fallback.cases.unit.test.d.ts.map +0 -1
  868. package/dist/__tests__/zero-compression-zero-load.integration.test.d.ts +0 -2
  869. package/dist/__tests__/zero-compression-zero-load.integration.test.d.ts.map +0 -1
  870. package/dist/components/__tests__/camera.test-d.d.ts +0 -2
  871. package/dist/components/__tests__/camera.test-d.d.ts.map +0 -1
  872. package/dist/components/__tests__/camera.test.d.ts +0 -2
  873. package/dist/components/__tests__/camera.test.d.ts.map +0 -1
  874. package/dist/components/__tests__/child-of.test.d.ts +0 -2
  875. package/dist/components/__tests__/child-of.test.d.ts.map +0 -1
  876. package/dist/components/__tests__/sprite-animation.test-d.d.ts +0 -2
  877. package/dist/components/__tests__/sprite-animation.test-d.d.ts.map +0 -1
  878. package/dist/components/__tests__/sprite-instances.unit.test.d.ts +0 -2
  879. package/dist/components/__tests__/sprite-instances.unit.test.d.ts.map +0 -1
  880. package/dist/components/__tests__/sprite-region-override.test-d.d.ts +0 -2
  881. package/dist/components/__tests__/sprite-region-override.test-d.d.ts.map +0 -1
  882. package/dist/components/__tests__/tile-layer.test-d.d.ts +0 -2
  883. package/dist/components/__tests__/tile-layer.test-d.d.ts.map +0 -1
  884. package/dist/components/__tests__/tile-layer.unit.test.d.ts +0 -2
  885. package/dist/components/__tests__/tile-layer.unit.test.d.ts.map +0 -1
  886. package/dist/components/__tests__/tilemap.test-d.d.ts +0 -2
  887. package/dist/components/__tests__/tilemap.test-d.d.ts.map +0 -1
  888. package/dist/components/__tests__/transform-vec-schema.test.d.ts +0 -2
  889. package/dist/components/__tests__/transform-vec-schema.test.d.ts.map +0 -1
  890. package/dist/scene-instances/__tests__/post-spawn-resolve-joints.unit.test.d.ts +0 -2
  891. package/dist/scene-instances/__tests__/post-spawn-resolve-joints.unit.test.d.ts.map +0 -1
  892. package/dist/systems/__tests__/_xorshift.d.ts +0 -28
  893. package/dist/systems/__tests__/_xorshift.d.ts.map +0 -1
  894. package/dist/systems/__tests__/argsort-in-place.test.d.ts +0 -2
  895. package/dist/systems/__tests__/argsort-in-place.test.d.ts.map +0 -1
  896. package/dist/systems/__tests__/transparent-sort.bench.d.ts +0 -2
  897. package/dist/systems/__tests__/transparent-sort.bench.d.ts.map +0 -1
@@ -0,0 +1,164 @@
1
+ import { HANDLE_CUBE } from '@forgeax/engine-assets-runtime';
2
+ import { World } from '@forgeax/engine-ecs';
3
+ import { Camera, Instances, MeshFilter, MeshRenderer } from '@forgeax/engine-render';
4
+ import { RhiNullAdapter, rhi } from '@forgeax/engine-rhi-null';
5
+ import { Transform } from '@forgeax/engine-scene';
6
+ import { ok } from '@forgeax/engine-types';
7
+ import { expect, it } from 'vitest';
8
+ import { constructRendererHost } from '../../../render/src/construct-renderer';
9
+
10
+ function requireValue<T>(
11
+ result:
12
+ | { readonly ok: true; readonly value: T }
13
+ | { readonly ok: false; readonly error: unknown },
14
+ ): T {
15
+ if (!result.ok) throw result.error;
16
+ return result.value;
17
+ }
18
+
19
+ const manifest = `data:application/json,${encodeURIComponent(
20
+ JSON.stringify({
21
+ schemaVersion: '1.0.0',
22
+ entries: [
23
+ { hash: 'pbr00000', wgsl: 'f_schlick(', glsl: '', bindings: '' },
24
+ { hash: 'unlit000', wgsl: 'unlit', glsl: '', bindings: '' },
25
+ { hash: 'tonemap0', wgsl: 'struct TonemapParams {}', glsl: '', bindings: '' },
26
+ ],
27
+ materialShaders: [
28
+ {
29
+ identifier: 'forgeax::default-unlit',
30
+ sourcePath: 'unlit.wgsl',
31
+ composedWgsl: '/* null backend shader */',
32
+ paramSchema: '[]',
33
+ variants: [],
34
+ },
35
+ ],
36
+ }),
37
+ )}`;
38
+ function canvas(): HTMLCanvasElement {
39
+ return { width: 32, height: 32, getContext: () => null } as unknown as HTMLCanvasElement;
40
+ }
41
+ function matrices(x: number, count = 1): Float32Array {
42
+ const result = new Float32Array(16 * count);
43
+ for (let i = 0; i < count; i++)
44
+ result.set([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, x, 0, 0, 1], i * 16);
45
+ return result;
46
+ }
47
+
48
+ // Coverage instrumentation plus a contended heavy runner can make the
49
+ // 20,000-instance recovery case exceed the normal one-minute budget even
50
+ // though the operation remains bounded and completes quickly uninstrumented.
51
+ it.each([
52
+ 1, 129, 20000,
53
+ ])('renders %i World instances after replacing and recovering the Renderer', async (count) => {
54
+ const adapter = new RhiNullAdapter();
55
+ const device = (await adapter.requestDevice()).unwrap();
56
+ const replacementDevice = (await adapter.requestDevice()).unwrap();
57
+ const replacement = new Proxy(replacementDevice, {
58
+ get(target, property) {
59
+ if (property === 'caps' && count < 20000)
60
+ return { ...target.caps, storageBuffer: false, compute: false };
61
+ const value = Reflect.get(target, property, target);
62
+ return typeof value === 'function' ? value.bind(target) : value;
63
+ },
64
+ });
65
+ let lose!: (reason: unknown) => void;
66
+ const lost = new Promise<never>((_, reject) => {
67
+ lose = reject;
68
+ });
69
+ const first = new Proxy(device, {
70
+ get(target, property) {
71
+ if (property === 'lost') return lost;
72
+ if (property === 'caps' && count < 20000)
73
+ return { ...target.caps, storageBuffer: false, compute: false };
74
+ const value = Reflect.get(target, property, target);
75
+ return typeof value === 'function' ? value.bind(target) : value;
76
+ },
77
+ });
78
+ let requests = 0;
79
+ const recoverable = {
80
+ // Recorder-wrapped backends expose only the asynchronous shader factory.
81
+ acquireCanvasContext: rhi.acquireCanvasContext,
82
+ createShaderModule: rhi.createShaderModule,
83
+ requestAdapter: async () =>
84
+ ok({
85
+ features: adapter.features,
86
+ limits: adapter.limits,
87
+ requestDevice: async () => ok(++requests === 1 ? first : replacement),
88
+ } as never),
89
+ } as never;
90
+ const world = new World();
91
+ const material = world.allocSharedRef('MaterialAsset', {
92
+ kind: 'material',
93
+ passes: [
94
+ {
95
+ name: 'Forward',
96
+ program: { module: 'forgeax::default-unlit' },
97
+ renderState: { tags: { LightMode: 'Forward' }, queue: 2000 },
98
+ },
99
+ ],
100
+ values: { baseColor: [1, 0, 0] },
101
+ });
102
+ const entity = world
103
+ .spawn(
104
+ { component: Transform, data: {} },
105
+ { component: MeshFilter, data: { assetHandle: HANDLE_CUBE } },
106
+ { component: MeshRenderer, data: { materials: [material] } },
107
+ { component: Instances, data: { transforms: matrices(0, count) } },
108
+ )
109
+ .unwrap();
110
+ world
111
+ .spawn(
112
+ { component: Transform, data: { pos: [0, 0, 5] } },
113
+ { component: Camera, data: { fov: Math.PI / 4, aspect: 1, near: 0.1, far: 100 } },
114
+ )
115
+ .unwrap();
116
+ const a = requireValue(
117
+ await constructRendererHost(canvas(), { rhi }, { shaderManifestUrl: manifest }),
118
+ ).renderer;
119
+ const b = requireValue(
120
+ await constructRendererHost(canvas(), { rhi: recoverable }, { shaderManifestUrl: manifest }),
121
+ ).renderer;
122
+ const la = requireValue(a.attach(world));
123
+ const lb = requireValue(b.attach(world));
124
+ const ra = { leases: [la], camera: { lease: la }, environment: { lease: la } };
125
+ const rb = { leases: [lb], camera: { lease: lb }, environment: { lease: lb } };
126
+ world.update(0).unwrap();
127
+ requireValue(a.draw(ra));
128
+ requireValue(b.draw(rb));
129
+ expect(a.inspect().instanceCollections[0]?.count).toBe(count);
130
+ expect(b.inspect().instanceCollections[0]?.count).toBe(count);
131
+ expect(b.inspect().instanceCollections[0]?.uploadedBytes).toBeGreaterThan(0);
132
+ requireValue(b.draw(rb));
133
+ expect(b.inspect().instanceCollections[0]?.uploadedBytes).toBe(0);
134
+ const firstRevision = b.inspect().instanceCollections[0]?.revision;
135
+ world.set(entity, Instances, { transforms: matrices(0.25, count) }).unwrap();
136
+ requireValue(a.draw(ra));
137
+ world.set(entity, Instances, { transforms: matrices(0.5, count) }).unwrap();
138
+ requireValue(a.draw(ra));
139
+ await a.dispose();
140
+ expect(world.get(entity, Instances).unwrap().transforms[12]).toBe(0.5);
141
+ requireValue(b.draw(rb));
142
+ expect(b.inspect().instanceCollections[0]?.revision).toBeGreaterThan(firstRevision ?? 0);
143
+ lose({ reason: 'unknown', message: 'instance recovery regression' });
144
+ await Promise.resolve();
145
+ await Promise.resolve();
146
+ expect(b.state()).toBe('device-lost');
147
+ const finalX = count === 129 ? 0.75 : 0.5;
148
+ if (count === 129) world.set(entity, Instances, { transforms: matrices(finalX, count) }).unwrap();
149
+ const recovered = await b.recover();
150
+ expect(recovered.ok, recovered.ok ? '' : JSON.stringify(recovered.error)).toBe(true);
151
+ requireValue(b.draw(rb));
152
+ expect(b.inspect().instanceCollections[0]?.uploadedBytes).toBe(count === 129 ? count * 64 : 0);
153
+ expect(b.inspect().recoveryEvidence.submissions.lastGeneration).toBe(1);
154
+ expect(b.inspect().frame.deviceGeneration).toBe(1);
155
+ // The GPU-driven primary lane owns no legacy instance buffer; its published
156
+ // device generation is evidenced by the submitted frame above.
157
+ if (count < 20000) expect(b.inspect().instanceCollections[0]?.residentGeneration).toBe(1);
158
+ const retained = world.get(entity, Instances).unwrap().transforms;
159
+ expect(retained.length).toBe(count * 16);
160
+ expect(retained[12]).toBe(finalX);
161
+ expect(retained[(count - 1) * 16 + 12]).toBe(finalX);
162
+ expect(b.inspect().instanceCollections[0]?.count).toBe(count);
163
+ await b.dispose();
164
+ }, 120_000);
@@ -99,24 +99,25 @@ describe('loader-extract graceful handoff (M4 w24)', () => {
99
99
  expect('baseColorTexture' in pv).toBe(false);
100
100
  });
101
101
 
102
- it('(3) shader NOT registered (R-4 cross-worktree) -> graceful "try every int" fallback', () => {
103
- // No paramSchema lookup available -> getMaterialShaderTextureFieldNames
104
- // returns undefined for every shader id.
102
+ it('(3) shader NOT registered (R-4 cross-worktree) -> graceful structured texture fallback', () => {
103
+ // No paramSchema lookup is available, so the loader cannot classify bare
104
+ // integers as texture refs. Explicit structured texture values remain
105
+ // resolvable across worktrees without guessing at scalar fields.
105
106
  const ctx = makeCtx({
106
107
  shaderTextureFieldNames: () => undefined,
107
108
  });
108
109
  const out = materialLoader.load(
109
110
  {
110
111
  passes: [{ program: { module: 'forgeax::user-defined' } }],
111
- values: { customTexture: 0 },
112
+ values: { customTexture: { texture: 0 } },
112
113
  },
113
114
  ['tex-guid'],
114
115
  ctx,
115
116
  );
116
117
  expect(out).toMatchObject({ kind: 'material' });
117
118
  const pv = (out as { values: Record<string, unknown> }).values;
118
- // Graceful fallback resolves any in-range int to its refs[] GUID string.
119
- expect(pv.customTexture).toBe('tex-guid');
119
+ // Explicit structured refs resolve to the enclosing refs[] GUID.
120
+ expect(pv.customTexture).toEqual({ texture: 'tex-guid' });
120
121
  });
121
122
 
122
123
  it('(4) shader registered + scalar paramValue with refs[] index in range -> NOT misclassified', () => {
@@ -546,29 +546,22 @@ type __MergedKeep =
546
546
  expect(out).toMatchObject({ kind: 'material', parentGuid: 'parent-guid' });
547
547
  });
548
548
 
549
- it('materialLoader resolves heightTexture from refs index to its GUID (M4 / w22, D-19)', () => {
550
- // feat-20260613-material-paramschema-driven-binding M4 / w22:
551
- // the legacy hardcoded texture-field allowlist Set has been deleted.
552
- // When the shader is not yet registered (mock ctx returns undefined
553
- // from getMaterialShaderTextureFieldNames), the loader falls back to
554
- // a graceful "try every int paramValue in [0, refs.length)" walk and
555
- // resolves heightTexture (any field name) to the refs[] entry.
556
- //
557
- // feat-20260614 M8 (D-19): the embedded sub-asset ref is stored as its
558
- // GUID string verbatim (dash-form) -- the ECS/render side resolves the
559
- // GUID -> column handle at use time via world.allocSharedRef; the loader
560
- // no longer mints a numeric handle (resolveRefSync is deleted). Mirrors
561
- // the sibling `parentGuid` contract (refs index -> GUID string).
549
+ it('materialLoader resolves an explicit heightTexture ref index to its GUID (M4 / w22, D-19)', () => {
550
+ // Texture references use the explicit `{ texture: refsIndex }` wire
551
+ // shape. This remains safe when the shader is not registered because
552
+ // the loader does not guess whether a bare integer is a scalar.
562
553
  const out = materialLoader.load(
563
554
  {
564
555
  passes: [{ shader: 'test' }],
565
- values: { heightTexture: 0 },
556
+ values: { heightTexture: { texture: 0 } },
566
557
  },
567
558
  ['height-guid'],
568
559
  mockCtx(),
569
560
  );
570
561
  expect(out).toMatchObject({ kind: 'material' });
571
- expect((out as Record<string, unknown>)?.values?.heightTexture).toBe('height-guid');
562
+ expect((out as Record<string, unknown>)?.values?.heightTexture).toEqual({
563
+ texture: 'height-guid',
564
+ });
572
565
  });
573
566
 
574
567
  it('materialLoader returns normally when values has no heightTexture field', () => {
@@ -0,0 +1,145 @@
1
+ import { HANDLE_CUBE } from '@forgeax/engine-assets-runtime';
2
+ import { World } from '@forgeax/engine-ecs';
3
+ import { Camera, MeshFilter, MeshRenderer } from '@forgeax/engine-render';
4
+ import { Transform } from '@forgeax/engine-scene';
5
+ import type { MaterialAsset } from '@forgeax/engine-types';
6
+ import { expect, it } from 'vitest';
7
+ import { page } from 'vitest/browser';
8
+ import { constructRuntimeRendererHost } from '../renderer-host';
9
+ import { drawPublished } from './draw-published';
10
+
11
+ it.each([
12
+ false,
13
+ true,
14
+ ])('draws every selected material Pass with mixed blending=%s', async (mixed) => {
15
+ if (!navigator.gpu) throw new Error('WebGPU is required');
16
+ const canvas = document.createElement('canvas');
17
+ canvas.width = 384;
18
+ canvas.height = 256;
19
+ document.body.append(canvas);
20
+ const requestAdapter = navigator.gpu.requestAdapter.bind(navigator.gpu);
21
+ const validation: string[] = [];
22
+ const entries: string[] = [];
23
+ const devices: GPUDevice[] = [];
24
+ navigator.gpu.requestAdapter = async (options) => {
25
+ const adapter = await requestAdapter(options);
26
+ if (adapter === null) return adapter;
27
+ const requestDevice = adapter.requestDevice.bind(adapter);
28
+ adapter.requestDevice = async (descriptor) => {
29
+ const device = await requestDevice(descriptor);
30
+ devices.push(device);
31
+ device.addEventListener('uncapturederror', (event) => validation.push(event.error.message));
32
+ const record = (descriptor: GPURenderPipelineDescriptor) =>
33
+ entries.push(`${descriptor.vertex.entryPoint}/${descriptor.fragment?.entryPoint}`);
34
+ const create = device.createRenderPipeline.bind(device);
35
+ device.createRenderPipeline = (descriptor) => {
36
+ record(descriptor);
37
+ return create(descriptor);
38
+ };
39
+ const createAsync = device.createRenderPipelineAsync.bind(device);
40
+ device.createRenderPipelineAsync = async (descriptor) => {
41
+ record(descriptor);
42
+ return createAsync(descriptor);
43
+ };
44
+ return device;
45
+ };
46
+ return adapter;
47
+ };
48
+ const host = await constructRuntimeRendererHost(
49
+ canvas,
50
+ {},
51
+ { shaderManifestUrl: '/shaders/manifest.json' },
52
+ );
53
+ if (!host.ok) {
54
+ navigator.gpu.requestAdapter = requestAdapter;
55
+ canvas.remove();
56
+ throw host.error;
57
+ }
58
+ const errors: string[] = [];
59
+ const unsubscribe = host.value.renderer.subscribe((event) => {
60
+ if (event.kind === 'error') errors.push(event.error.message);
61
+ });
62
+ try {
63
+ const assets = host.value.assets;
64
+ assets.configurePackIndex(
65
+ mixed ? '/__material-programs-mixed/pack-index.json' : '/__material-programs/pack-index.json',
66
+ );
67
+ const material = (
68
+ await assets.loadByGuid<MaterialAsset>(
69
+ assets.parseGuid('8f50ae65-6e0a-40b4-8949-b47006edab90'),
70
+ )
71
+ ).unwrap();
72
+ const projection = assets.getMaterialProjectionForPayload(material);
73
+ expect(
74
+ new Set(
75
+ projection?.passes.flatMap((pass) =>
76
+ pass.programs.map((program) => program.specializationKey),
77
+ ),
78
+ ).size,
79
+ ).toBe(2);
80
+ const world = new World();
81
+ const handle = world.allocSharedRef<'MaterialAsset', MaterialAsset>('MaterialAsset', material);
82
+ world
83
+ .spawn(
84
+ { component: Transform, data: { pos: [0, 0, 3], scale: [1, 1, 1], quat: [0, 0, 0, 1] } },
85
+ {
86
+ component: Camera,
87
+ data: {
88
+ fov: Math.PI / 4,
89
+ aspect: 1.5,
90
+ near: 0.1,
91
+ far: 100,
92
+ clearColor: [0.02, 0.02, 0.02, 1],
93
+ },
94
+ },
95
+ )
96
+ .unwrap();
97
+ world
98
+ .spawn(
99
+ { component: Transform, data: { pos: [0, 0, 0], scale: [1, 1, 1], quat: [0, 0, 0, 1] } },
100
+ { component: MeshFilter, data: { assetHandle: HANDLE_CUBE } },
101
+ { component: MeshRenderer, data: { materials: [handle] } },
102
+ )
103
+ .unwrap();
104
+ for (let frame = 0; frame < 40; frame++) {
105
+ const receipt = drawPublished(host.value.renderer, world);
106
+ if (!receipt.ok) throw receipt.error;
107
+ const completed = await receipt.value.completed;
108
+ if (!completed.ok) throw completed.error;
109
+ await new Promise<void>((resolve) => requestAnimationFrame(() => resolve()));
110
+ }
111
+ await Promise.all(devices.map((device) => device.queue.onSubmittedWorkDone()));
112
+ const shot = await page.elementLocator(canvas).screenshot({ base64: true });
113
+ const bytes = Uint8Array.from(atob(typeof shot === 'string' ? shot : shot.base64), (char) =>
114
+ char.charCodeAt(0),
115
+ );
116
+ const bitmap = await createImageBitmap(new Blob([bytes], { type: 'image/png' }));
117
+ const surface = new OffscreenCanvas(bitmap.width, bitmap.height);
118
+ const ctx = surface.getContext('2d');
119
+ if (ctx === null) throw new Error('pixel readback unavailable');
120
+ ctx.drawImage(bitmap, 0, 0);
121
+ bitmap.close();
122
+ const pixels = ctx.getImageData(0, 0, surface.width, surface.height);
123
+ for (const [fraction, channel] of [
124
+ [0.2, 0],
125
+ [0.5, 1],
126
+ [0.8, 2],
127
+ ] as const) {
128
+ const offset =
129
+ (Math.floor(surface.height * 0.5) * surface.width + Math.floor(surface.width * fraction)) *
130
+ 4;
131
+ const color = [...pixels.data.slice(offset, offset + 3)];
132
+ expect(color[channel], `Pass color at ${fraction}: ${color}`).toBeGreaterThan(200);
133
+ expect(color.filter((_, index) => index !== channel).every((value) => value < 40)).toBe(true);
134
+ }
135
+ expect(entries).toContain('vs_right/fs_blue');
136
+ expect(validation).toEqual([]);
137
+ expect(errors).toEqual([]);
138
+ } finally {
139
+ unsubscribe();
140
+ host.value.renderer.dispose();
141
+ for (const device of devices) device.destroy();
142
+ navigator.gpu.requestAdapter = requestAdapter;
143
+ canvas.remove();
144
+ }
145
+ }, 60_000);
@@ -80,10 +80,10 @@ describe('Materials.standard multi-pass (w14)', () => {
80
80
  expect(shadowPass).toBeDefined();
81
81
  });
82
82
 
83
- it('shadow-caster pass uses forgeax_material::standard shader', () => {
83
+ it('shadow-caster pass uses the canonical depth-only shader', () => {
84
84
  const mat = Materials.standard({ baseColor: [0.5, 0.5, 0.5, 1] });
85
85
  const shadowPass = mat.passes?.find((p) => p.name === ('shadow-caster' as PassKind));
86
- expect(shadowPass?.program.module).toBe('forgeax_material::standard');
86
+ expect(shadowPass?.program.module).toBe('forgeax::default-shadow-caster');
87
87
  });
88
88
 
89
89
  it('castShadow=false suppresses the shadow-caster pass', () => {
@@ -502,7 +502,7 @@ type __MergedKeep =
502
502
  expect(asset).toBeUndefined();
503
503
  });
504
504
 
505
- it('(AC-06) payload with parent ref + valid passes -> returns MaterialAsset with both passes and parentGuid', () => {
505
+ it('(AC-06) payload with parent ref + own passes -> returns undefined (strict child contract)', () => {
506
506
  const reg = new AssetRegistry(makeMockShaderRegistry());
507
507
  const fn = makeParseFn(reg);
508
508
 
@@ -520,18 +520,8 @@ type __MergedKeep =
520
520
  };
521
521
  const refs = [PARENT_GUID];
522
522
 
523
- const asset = fn('material', payload, refs) as
524
- | (MaterialAsset & { parentGuid?: string })
525
- | undefined;
526
-
527
- expect(asset).toBeDefined();
528
- if (!asset) return;
529
- expect(asset.kind).toBe('material');
530
- expect(asset.passes).toBeDefined();
531
- expect(asset.passes?.length).toBe(1);
532
- expect(asset.parentGuid).toBe(PARENT_GUID);
533
- // values should still be present when both passes + parent are provided
534
- expect(asset.values).toEqual({ baseColor: [1, 0, 0, 1] });
523
+ // A child may override values only; root-owned passes must be inherited.
524
+ expect(fn('material', payload, refs)).toBeUndefined();
535
525
  });
536
526
 
537
527
  it('(regression) payload with passes and without parent ref -> returns MaterialAsset with passes, no parentGuid', () => {
@@ -53,6 +53,18 @@ function specOf(
53
53
  describe('cacheKeyOf passKind dimension', () => {
54
54
  const SHADER_ID = 'forgeax::default-unlit';
55
55
 
56
+ it('separates authored entry selections within one published module', () => {
57
+ const base = specOf('custom::two-entries', false);
58
+ const first = {
59
+ ...base,
60
+ shader: { ...base.shader, vertexEntry: 'vs_main', fragmentEntry: 'fs_main' },
61
+ };
62
+ const second = { ...base, shader: { ...first.shader, fragmentEntry: 'fs_readability' } };
63
+ const shadow = { ...base, shader: { ...first.shader, vertexEntry: 'vs_shadow' } };
64
+ expect(new Set([first, second, shadow].map(cacheKeyOf)).size).toBe(3);
65
+ expect(cacheKeyOf({ ...first })).toBe(cacheKeyOf(first));
66
+ });
67
+
56
68
  it('same shaderId + entries produce different keys for forward vs shadow-caster', () => {
57
69
  const forwardKey = cacheKeyOf(specOf(SHADER_ID, false, 'forward'));
58
70
  const shadowKey = cacheKeyOf(specOf(SHADER_ID, false, 'shadow-caster'));
@@ -490,6 +490,20 @@ describe('buildPipelineDescriptor (M2-T3-TEST)', () => {
490
490
  };
491
491
  }
492
492
 
493
+ it('uses the entry selection carried by the pipeline spec', () => {
494
+ const base = makeForwardSpec();
495
+ const spec: PipelineSpec = {
496
+ ...base,
497
+ shader: { ...base.shader, vertexEntry: 'vs_custom', fragmentEntry: 'fs_readability' },
498
+ };
499
+ const descriptor = buildPipelineDescriptor(spec, {
500
+ vertex: mockVertexModule,
501
+ fragment: mockFragmentModule,
502
+ });
503
+ expect(descriptor.vertex.entryPoint).toBe('vs_custom');
504
+ expect(descriptor.fragment?.entryPoint).toBe('fs_readability');
505
+ });
506
+
493
507
  function makeShadowCasterSpec(sampleCount: 1 | 4 = 1): PipelineSpec {
494
508
  return {
495
509
  shader: { id: 'forgeax::shadow-caster', passKind: 'shadow-caster', variantSet: undefined },
@@ -14,8 +14,12 @@
14
14
  import { describe, expect, it } from 'vitest';
15
15
  import { drawPublished } from './draw-published';
16
16
 
17
- const WIDTH = 512;
18
- const HEIGHT = 512;
17
+ const LIGHTWEIGHT_DAWN = process.env.FORGEAX_DAWN_LIGHTWEIGHT === '1';
18
+ // The comparison-sampler contract only depends on cube topology and depth
19
+ // ordering. Keep the local/nightly 512px atlas for diagnostics, but avoid
20
+ // allocating six 512px lavapipe depth attachments on the overloaded PR lane.
21
+ const WIDTH = LIGHTWEIGHT_DAWN ? 64 : 512;
22
+ const HEIGHT = LIGHTWEIGHT_DAWN ? 64 : 512;
19
23
  const LAYERS = 6; // one cube (6 faces)
20
24
 
21
25
  // WebGPU bitmask constants per spec (avoids needing @webgpu/types globals
@@ -37,6 +41,11 @@ const navWithGpu = globalThis.navigator as unknown as NavigatorWithGpu | undefin
37
41
  const dawnReady =
38
42
  typeof globalThis.navigator !== 'undefined' && navWithGpu?.gpu?.requestAdapter !== undefined;
39
43
 
44
+ // The renderer/readback e2e includes the first full point-shadow setup. Hosted
45
+ // Linux Dawn cold starts can exceed the project-wide 30-second timeout while
46
+ // still completing inside the bounded Dawn job budget.
47
+ const POINT_LIGHT_SHADOW_DAWN_TEST_TIMEOUT_MS = 120_000;
48
+
40
49
  describe('M0 cube_array comparison sampler (dawn)', () => {
41
50
  it.skipIf(!dawnReady)("'dawn-binding-missing' -- dawn.node binding injection failed", () => {
42
51
  expect(dawnReady).toBe(true);
@@ -536,8 +545,15 @@ async function doReadPixelsM5(
536
545
  }
537
546
 
538
547
  describe('Round-2 F-3 / Issue 3: createRenderer e2e dawn (T-M5-1)', () => {
548
+ // The isolated fresh-process Dawn lane can spend ~90s constructing the
549
+ // shader manifest and two renderer states on lavapipe. Keep this owner-
550
+ // specific budget above that cold-start cost instead of treating a valid
551
+ // integration probe as a default-30s timeout failure.
539
552
  it.skipIf(!dawnReady)(
540
553
  "'createRenderer e2e' -- spawn PointLight + PointLightShadow + cube + camera; renderer.draw runs; frame is non-black AND pixel-differs vs no-shadow baseline",
554
+ {
555
+ timeout: POINT_LIGHT_SHADOW_DAWN_TEST_TIMEOUT_MS,
556
+ },
541
557
  async () => {
542
558
  // Lazy-load the runtime + manifest builder (matches fxaa-pixel-diff
543
559
  // pattern). buildEngineShaderManifest produces the data: URL the
@@ -556,8 +572,11 @@ describe('Round-2 F-3 / Issue 3: createRenderer e2e dawn (T-M5-1)', () => {
556
572
  const manifestUrl = `data:application/json,${encodeURIComponent(JSON.stringify(manifest))}`;
557
573
 
558
574
  const TEX_USAGE_E2E = TEX_USAGE_RENDER_ATTACHMENT | TEX_USAGE_COPY_SRC;
559
- const FRAME_W = 128;
560
- const FRAME_H = 128;
575
+ // The end-to-end assertion is non-black output, not a resolution
576
+ // benchmark. Preserve the local 128px target while bounding the PR
577
+ // readback and point-shadow atlas work on software Vulkan.
578
+ const FRAME_W = LIGHTWEIGHT_DAWN ? 64 : 128;
579
+ const FRAME_H = LIGHTWEIGHT_DAWN ? 64 : 128;
561
580
 
562
581
  let sharedDevice: GPUDevice | undefined;
563
582
  const originalRequestAdapter = globalThis.navigator.gpu.requestAdapter.bind(
@@ -762,7 +781,7 @@ describe('Round-2 F-3 / Issue 3: createRenderer e2e dawn (T-M5-1)', () => {
762
781
  },
763
782
  {
764
783
  component: PointLightShadow,
765
- data: { mapSize: 256, nearPlane: 0.1, farPlane: 25 },
784
+ data: { mapSize: LIGHTWEIGHT_DAWN ? 128 : 256, nearPlane: 0.1, farPlane: 25 },
766
785
  },
767
786
  );
768
787
 
@@ -45,7 +45,7 @@ function expectWorldEntityKeyAt(
45
45
 
46
46
  for (let i = start; i < end; i++) {
47
47
  const l = lines[i];
48
- if (l?.includes('worldEntityKey')) {
48
+ if (l?.includes('worldEntityKey') || l?.includes('instanceCollectionCacheKey')) {
49
49
  // Found — passes
50
50
  return;
51
51
  }
@@ -103,7 +103,6 @@ const SPRITE_FILE = fileURLToPath(
103
103
  describe('production-path shared instance bind-group resolver', () => {
104
104
  it('sprite identity and sprite-instance paths use the shared resolver', () => {
105
105
  const src = readFileSync(SPRITE_FILE, 'utf8');
106
- expect(src).toContain('const identityInstBg = resolveGeometryInstancesBindGroup(');
107
106
  expect(src).toContain('const spriteInstBg = resolveGeometryInstancesBindGroup(');
108
107
  expect(src).toContain('const spriteInstancesBg = resolveGeometryInstancesBindGroup(');
109
108
  });
@@ -156,20 +155,11 @@ const SHADOW_FILE = fileURLToPath(
156
155
  );
157
156
 
158
157
  describe('production-path shadow instanceBuffers worldEntityKey', () => {
159
- it('shadowInst.cacheKey get uses worldEntityKey', () => {
160
- expectWorldEntityKeyAt(
161
- SHADOW_FILE,
162
- findLine(SHADOW_FILE, 'c.frameState.instanceBuffers.get(', 0),
163
- 'shadow-pass instanceBuffers.get',
164
- );
165
- });
166
-
167
- it('shadowInst.cacheKey set uses worldEntityKey', () => {
168
- expectWorldEntityKeyAt(
169
- SHADOW_FILE,
170
- findLine(SHADOW_FILE, 'c.frameState.instanceBuffers.set('),
171
- 'shadow-pass instanceBuffers.set',
172
- );
158
+ it('shares the world-aware geometry instance residency owner', () => {
159
+ const src = readFileSync(SHADOW_FILE, 'utf8');
160
+ expect(src).toMatch(/resolveGeometryInstanceBuffer\(\s*c,\s*entry,/);
161
+ expect(src).not.toContain('instanceBuffers.get(');
162
+ expect(src).not.toContain('instanceBuffers.set(');
173
163
  });
174
164
 
175
165
  it('spot shadow uses the shared world-aware caster recorder', () => {
@@ -183,16 +173,6 @@ describe('production-path shadow instanceBuffers worldEntityKey', () => {
183
173
  });
184
174
  });
185
175
 
186
- describe('production-path shadow shared instance bind-group resolver', () => {
187
- it('shadow pass resolves the bind group from the world-aware buffer cache', () => {
188
- const src = readFileSync(SHADOW_FILE, 'utf8');
189
- expect(src).toContain(
190
- 'const shadowInstancesBg = resolveGeometryInstancesBindGroup(c, shadowInstanceBuffer);',
191
- );
192
- expect(src).toContain('worldEntityKey(entry.source.worldId, shadowInst.cacheKey)');
193
- });
194
- });
195
-
196
176
  // ── Fold-bucket negative half NOT worldEntityKey (D-1a #1 invariant) ───────
197
177
 
198
178
  describe('production-path fold-bucket key NOT worldEntityKey', () => {