@forgeax/engine-runtime 0.1.24 → 0.1.25

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 (888) 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 +31 -9
  5. package/src/__tests__/fullscreen-post-process-pass.dawn.test.ts +6 -2
  6. package/src/__tests__/instances-renderer-lifecycle.integration.test.ts +161 -0
  7. package/src/__tests__/parse-asset-payload-material.cases.unit.test.ts +3 -13
  8. package/src/__tests__/point-light-shadow.dawn.test.ts +24 -5
  9. package/src/__tests__/record-worldid-isolation.test.ts +6 -25
  10. package/src/__tests__/render-system-extract.test.ts +76 -1
  11. package/src/__tests__/shadow-caster-empty-schema.test.ts +11 -14
  12. package/src/__tests__/shadow-csm-runtime-vary.dawn.test.ts +10 -5
  13. package/src/__tests__/shadow-fields-observable.dawn.test.ts +2 -2
  14. package/src/__tests__/surface-standard-pipeline.browser.test.ts +350 -0
  15. package/src/__tests__/surface-standard-pipeline.dawn.test.ts +346 -0
  16. package/src/__tests__/surface-standard-pipeline.runtime-fixture.ts +184 -0
  17. package/src/__tests__/surface-standard-pipeline.vite.d.ts +12 -0
  18. package/src/__tests__/tonemap-hdr-target.cases.unit.test.ts +7 -1
  19. package/dist/__tests__/active-camera.unit.test.d.ts +0 -2
  20. package/dist/__tests__/active-camera.unit.test.d.ts.map +0 -1
  21. package/dist/__tests__/advance-animation-player.cases.unit.test.d.ts +0 -2
  22. package/dist/__tests__/advance-animation-player.cases.unit.test.d.ts.map +0 -1
  23. package/dist/__tests__/animation-graph-add.unit.test.d.ts +0 -2
  24. package/dist/__tests__/animation-graph-add.unit.test.d.ts.map +0 -1
  25. package/dist/__tests__/animation-graph-asset-union.test-d.d.ts +0 -2
  26. package/dist/__tests__/animation-graph-asset-union.test-d.d.ts.map +0 -1
  27. package/dist/__tests__/animation-graph-blend.unit.test.d.ts +0 -2
  28. package/dist/__tests__/animation-graph-blend.unit.test.d.ts.map +0 -1
  29. package/dist/__tests__/animation-graph-build.unit.test.d.ts +0 -2
  30. package/dist/__tests__/animation-graph-build.unit.test.d.ts.map +0 -1
  31. package/dist/__tests__/animation-graph-clip-missing.unit.test.d.ts +0 -2
  32. package/dist/__tests__/animation-graph-clip-missing.unit.test.d.ts.map +0 -1
  33. package/dist/__tests__/animation-graph-clip.unit.test.d.ts +0 -2
  34. package/dist/__tests__/animation-graph-clip.unit.test.d.ts.map +0 -1
  35. package/dist/__tests__/animation-graph-collect-roundtrip.test.d.ts +0 -2
  36. package/dist/__tests__/animation-graph-collect-roundtrip.test.d.ts.map +0 -1
  37. package/dist/__tests__/animation-graph-default-path.integration.test.d.ts +0 -2
  38. package/dist/__tests__/animation-graph-default-path.integration.test.d.ts.map +0 -1
  39. package/dist/__tests__/animation-graph-describe.unit.test.d.ts +0 -2
  40. package/dist/__tests__/animation-graph-describe.unit.test.d.ts.map +0 -1
  41. package/dist/__tests__/animation-graph-errors.unit.test.d.ts +0 -2
  42. package/dist/__tests__/animation-graph-errors.unit.test.d.ts.map +0 -1
  43. package/dist/__tests__/animation-graph-nesting.unit.test.d.ts +0 -2
  44. package/dist/__tests__/animation-graph-nesting.unit.test.d.ts.map +0 -1
  45. package/dist/__tests__/animation-graph-orthogonal-weight.unit.test.d.ts +0 -2
  46. package/dist/__tests__/animation-graph-orthogonal-weight.unit.test.d.ts.map +0 -1
  47. package/dist/__tests__/animation-graph-serialize.unit.test.d.ts +0 -2
  48. package/dist/__tests__/animation-graph-serialize.unit.test.d.ts.map +0 -1
  49. package/dist/__tests__/animation-graph-slot-fill.unit.test.d.ts +0 -2
  50. package/dist/__tests__/animation-graph-slot-fill.unit.test.d.ts.map +0 -1
  51. package/dist/__tests__/animation-nslot.unit.test.d.ts +0 -2
  52. package/dist/__tests__/animation-nslot.unit.test.d.ts.map +0 -1
  53. package/dist/__tests__/animation-slot-length-guard.unit.test.d.ts +0 -2
  54. package/dist/__tests__/animation-slot-length-guard.unit.test.d.ts.map +0 -1
  55. package/dist/__tests__/append-injection.test.d.ts +0 -2
  56. package/dist/__tests__/append-injection.test.d.ts.map +0 -1
  57. package/dist/__tests__/asi-world-baseline-export.unit.test.d.ts +0 -2
  58. package/dist/__tests__/asi-world-baseline-export.unit.test.d.ts.map +0 -1
  59. package/dist/__tests__/asi-world-ci-config.unit.test.d.ts +0 -2
  60. package/dist/__tests__/asi-world-ci-config.unit.test.d.ts.map +0 -1
  61. package/dist/__tests__/asi-world-smoke.unit.test.d.ts +0 -2
  62. package/dist/__tests__/asi-world-smoke.unit.test.d.ts.map +0 -1
  63. package/dist/__tests__/asset-brand-and-name-retirement.test.d.ts +0 -2
  64. package/dist/__tests__/asset-brand-and-name-retirement.test.d.ts.map +0 -1
  65. package/dist/__tests__/asset-error-exhaustive.test-d.d.ts +0 -11
  66. package/dist/__tests__/asset-error-exhaustive.test-d.d.ts.map +0 -1
  67. package/dist/__tests__/asset-registry-aabb.cases.unit.test.d.ts +0 -2
  68. package/dist/__tests__/asset-registry-aabb.cases.unit.test.d.ts.map +0 -1
  69. package/dist/__tests__/asset-registry-bootstrap.cases.unit.test.d.ts +0 -2
  70. package/dist/__tests__/asset-registry-bootstrap.cases.unit.test.d.ts.map +0 -1
  71. package/dist/__tests__/asset-registry-builtin-nineslice.cases.unit.test.d.ts +0 -2
  72. package/dist/__tests__/asset-registry-builtin-nineslice.cases.unit.test.d.ts.map +0 -1
  73. package/dist/__tests__/asset-registry-d9-tile-sampler-soft-warn.cases.unit.test.d.ts +0 -2
  74. package/dist/__tests__/asset-registry-d9-tile-sampler-soft-warn.cases.unit.test.d.ts.map +0 -1
  75. package/dist/__tests__/asset-registry-guid-reverse.test.d.ts +0 -2
  76. package/dist/__tests__/asset-registry-guid-reverse.test.d.ts.map +0 -1
  77. package/dist/__tests__/asset-registry-guid.cases.unit.test.d.ts +0 -2
  78. package/dist/__tests__/asset-registry-guid.cases.unit.test.d.ts.map +0 -1
  79. package/dist/__tests__/asset-registry-hdr-equirect.test.d.ts +0 -2
  80. package/dist/__tests__/asset-registry-hdr-equirect.test.d.ts.map +0 -1
  81. package/dist/__tests__/asset-registry-material-validate.cases.unit.test.d.ts +0 -2
  82. package/dist/__tests__/asset-registry-material-validate.cases.unit.test.d.ts.map +0 -1
  83. package/dist/__tests__/asset-registry-mesh-fail-fast.cases.unit.test.d.ts +0 -2
  84. package/dist/__tests__/asset-registry-mesh-fail-fast.cases.unit.test.d.ts.map +0 -1
  85. package/dist/__tests__/asset-registry-mesh-pack-payload.dawn.test.d.ts +0 -2
  86. package/dist/__tests__/asset-registry-mesh-pack-payload.dawn.test.d.ts.map +0 -1
  87. package/dist/__tests__/asset-registry-mounts.test.d.ts +0 -2
  88. package/dist/__tests__/asset-registry-mounts.test.d.ts.map +0 -1
  89. package/dist/__tests__/asset-registry-scene.cases.unit.test.d.ts +0 -2
  90. package/dist/__tests__/asset-registry-scene.cases.unit.test.d.ts.map +0 -1
  91. package/dist/__tests__/asset-registry-scene.test-d.d.ts +0 -2
  92. package/dist/__tests__/asset-registry-scene.test-d.d.ts.map +0 -1
  93. package/dist/__tests__/asset-registry-sprite-slices-validate.cases.unit.test.d.ts +0 -2
  94. package/dist/__tests__/asset-registry-sprite-slices-validate.cases.unit.test.d.ts.map +0 -1
  95. package/dist/__tests__/asset-registry.browser.test.d.ts +0 -2
  96. package/dist/__tests__/asset-registry.browser.test.d.ts.map +0 -1
  97. package/dist/__tests__/asset-registry.dawn.test.d.ts +0 -2
  98. package/dist/__tests__/asset-registry.dawn.test.d.ts.map +0 -1
  99. package/dist/__tests__/asset-registry.listCatalog.test.d.ts +0 -2
  100. package/dist/__tests__/asset-registry.listCatalog.test.d.ts.map +0 -1
  101. package/dist/__tests__/asset-registry.mesh-bin.test.d.ts +0 -2
  102. package/dist/__tests__/asset-registry.mesh-bin.test.d.ts.map +0 -1
  103. package/dist/__tests__/asset-registry.pack-cache.test.d.ts +0 -2
  104. package/dist/__tests__/asset-registry.pack-cache.test.d.ts.map +0 -1
  105. package/dist/__tests__/asset-registry.raw-container-failfast.test.d.ts +0 -2
  106. package/dist/__tests__/asset-registry.raw-container-failfast.test.d.ts.map +0 -1
  107. package/dist/__tests__/asset-registry.recursive.spec.d.ts +0 -2
  108. package/dist/__tests__/asset-registry.recursive.spec.d.ts.map +0 -1
  109. package/dist/__tests__/asset-registry.unit.test.d.ts +0 -2
  110. package/dist/__tests__/asset-registry.unit.test.d.ts.map +0 -1
  111. package/dist/__tests__/asset-renderer-assembly.cases.unit.test.d.ts +0 -2
  112. package/dist/__tests__/asset-renderer-assembly.cases.unit.test.d.ts.map +0 -1
  113. package/dist/__tests__/asset.cases.unit.test.d.ts +0 -2
  114. package/dist/__tests__/asset.cases.unit.test.d.ts.map +0 -1
  115. package/dist/__tests__/audio-load-by-guid.unit.test.d.ts +0 -2
  116. package/dist/__tests__/audio-load-by-guid.unit.test.d.ts.map +0 -1
  117. package/dist/__tests__/backend-selection.integration.test.d.ts +0 -2
  118. package/dist/__tests__/backend-selection.integration.test.d.ts.map +0 -1
  119. package/dist/__tests__/basis-catalog-dispatch.integration.test.d.ts +0 -2
  120. package/dist/__tests__/basis-catalog-dispatch.integration.test.d.ts.map +0 -1
  121. package/dist/__tests__/bind-group-cache-keying.test.d.ts +0 -2
  122. package/dist/__tests__/bind-group-cache-keying.test.d.ts.map +0 -1
  123. package/dist/__tests__/block-upload-math.unit.test.d.ts +0 -2
  124. package/dist/__tests__/block-upload-math.unit.test.d.ts.map +0 -1
  125. package/dist/__tests__/bloom-gating.cases.unit.test.d.ts +0 -2
  126. package/dist/__tests__/bloom-gating.cases.unit.test.d.ts.map +0 -1
  127. package/dist/__tests__/builtin-asset-registry.unit.test.d.ts +0 -2
  128. package/dist/__tests__/builtin-asset-registry.unit.test.d.ts.map +0 -1
  129. package/dist/__tests__/builtin-guid-ssot.cases.unit.test.d.ts +0 -2
  130. package/dist/__tests__/builtin-guid-ssot.cases.unit.test.d.ts.map +0 -1
  131. package/dist/__tests__/builtin-pack.cases.unit.test.d.ts +0 -2
  132. package/dist/__tests__/builtin-pack.cases.unit.test.d.ts.map +0 -1
  133. package/dist/__tests__/builtin-shader-register-e2e.test.d.ts +0 -2
  134. package/dist/__tests__/builtin-shader-register-e2e.test.d.ts.map +0 -1
  135. package/dist/__tests__/cache-false-eviction.test.d.ts +0 -2
  136. package/dist/__tests__/cache-false-eviction.test.d.ts.map +0 -1
  137. package/dist/__tests__/cache-isolation-matrix.test.d.ts +0 -2
  138. package/dist/__tests__/cache-isolation-matrix.test.d.ts.map +0 -1
  139. package/dist/__tests__/camera-antialias.cases.unit.test.d.ts +0 -2
  140. package/dist/__tests__/camera-antialias.cases.unit.test.d.ts.map +0 -1
  141. package/dist/__tests__/camera-bloom.cases.unit.test.d.ts +0 -2
  142. package/dist/__tests__/camera-bloom.cases.unit.test.d.ts.map +0 -1
  143. package/dist/__tests__/camera-clear-schema.cases.unit.test.d.ts +0 -2
  144. package/dist/__tests__/camera-clear-schema.cases.unit.test.d.ts.map +0 -1
  145. package/dist/__tests__/camera-clear-snapshot-equivalence.unit.test.d.ts +0 -2
  146. package/dist/__tests__/camera-clear-snapshot-equivalence.unit.test.d.ts.map +0 -1
  147. package/dist/__tests__/camera-ortho.cases.unit.test.d.ts +0 -2
  148. package/dist/__tests__/camera-ortho.cases.unit.test.d.ts.map +0 -1
  149. package/dist/__tests__/clamp-to-last.e2e.browser.test.d.ts +0 -2
  150. package/dist/__tests__/clamp-to-last.e2e.browser.test.d.ts.map +0 -1
  151. package/dist/__tests__/clamp-to-last.e2e.dawn.test.d.ts +0 -2
  152. package/dist/__tests__/clamp-to-last.e2e.dawn.test.d.ts.map +0 -1
  153. package/dist/__tests__/cluster-binner.cases.unit.test.d.ts +0 -2
  154. package/dist/__tests__/cluster-binner.cases.unit.test.d.ts.map +0 -1
  155. package/dist/__tests__/collect-scene-asset.test.d.ts +0 -2
  156. package/dist/__tests__/collect-scene-asset.test.d.ts.map +0 -1
  157. package/dist/__tests__/collect-scene-mount-collapse.test.d.ts +0 -2
  158. package/dist/__tests__/collect-scene-mount-collapse.test.d.ts.map +0 -1
  159. package/dist/__tests__/collect-subtree.unit.test.d.ts +0 -2
  160. package/dist/__tests__/collect-subtree.unit.test.d.ts.map +0 -1
  161. package/dist/__tests__/collect-transient-children-absent.test.d.ts +0 -2
  162. package/dist/__tests__/collect-transient-children-absent.test.d.ts.map +0 -1
  163. package/dist/__tests__/collect-transient-roundtrip.test.d.ts +0 -2
  164. package/dist/__tests__/collect-transient-roundtrip.test.d.ts.map +0 -1
  165. package/dist/__tests__/collect-transient-skip.test.d.ts +0 -2
  166. package/dist/__tests__/collect-transient-skip.test.d.ts.map +0 -1
  167. package/dist/__tests__/components.test-d.d.ts +0 -2
  168. package/dist/__tests__/components.test-d.d.ts.map +0 -1
  169. package/dist/__tests__/components.unit.test.d.ts +0 -2
  170. package/dist/__tests__/components.unit.test.d.ts.map +0 -1
  171. package/dist/__tests__/composite-skybox-cross-world.browser.test.d.ts +0 -2
  172. package/dist/__tests__/composite-skybox-cross-world.browser.test.d.ts.map +0 -1
  173. package/dist/__tests__/compressed-texture-physical-extent.integration.test.d.ts +0 -2
  174. package/dist/__tests__/compressed-texture-physical-extent.integration.test.d.ts.map +0 -1
  175. package/dist/__tests__/create-renderer-assembly.integration.test.d.ts +0 -2
  176. package/dist/__tests__/create-renderer-assembly.integration.test.d.ts.map +0 -1
  177. package/dist/__tests__/create-renderer-fallback-shader-manifest.cases.unit.test.d.ts +0 -2
  178. package/dist/__tests__/create-renderer-fallback-shader-manifest.cases.unit.test.d.ts.map +0 -1
  179. package/dist/__tests__/create-renderer-gpu-pass-timing.unit.test.d.ts +0 -2
  180. package/dist/__tests__/create-renderer-gpu-pass-timing.unit.test.d.ts.map +0 -1
  181. package/dist/__tests__/create-renderer-uniform-fallback.cases.unit.test.d.ts +0 -2
  182. package/dist/__tests__/create-renderer-uniform-fallback.cases.unit.test.d.ts.map +0 -1
  183. package/dist/__tests__/createRenderer-dispose.test.d.ts +0 -2
  184. package/dist/__tests__/createRenderer-dispose.test.d.ts.map +0 -1
  185. package/dist/__tests__/createRenderer-requiredFeatures.unit.test.d.ts +0 -2
  186. package/dist/__tests__/createRenderer-requiredFeatures.unit.test.d.ts.map +0 -1
  187. package/dist/__tests__/createRenderer.browser-no-webgpu.test.d.ts +0 -2
  188. package/dist/__tests__/createRenderer.browser-no-webgpu.test.d.ts.map +0 -1
  189. package/dist/__tests__/createRenderer.unit.test.d.ts +0 -2
  190. package/dist/__tests__/createRenderer.unit.test.d.ts.map +0 -1
  191. package/dist/__tests__/cubemap-upload.cases.unit.test.d.ts +0 -2
  192. package/dist/__tests__/cubemap-upload.cases.unit.test.d.ts.map +0 -1
  193. package/dist/__tests__/dawn/hello-sprite-nineslice-section.dawn.test.d.ts +0 -2
  194. package/dist/__tests__/dawn/hello-sprite-nineslice-section.dawn.test.d.ts.map +0 -1
  195. package/dist/__tests__/dawn/ibl-compose.dawn.test.d.ts +0 -2
  196. package/dist/__tests__/dawn/ibl-compose.dawn.test.d.ts.map +0 -1
  197. package/dist/__tests__/dawn/ibl-modules-compose.dawn.test.d.ts +0 -2
  198. package/dist/__tests__/dawn/ibl-modules-compose.dawn.test.d.ts.map +0 -1
  199. package/dist/__tests__/dawn/ibl-precompute-readback.dawn.test.d.ts +0 -2
  200. package/dist/__tests__/dawn/ibl-precompute-readback.dawn.test.d.ts.map +0 -1
  201. package/dist/__tests__/dawn/instances-per-instance-pbr.dawn.test.d.ts +0 -2
  202. package/dist/__tests__/dawn/instances-per-instance-pbr.dawn.test.d.ts.map +0 -1
  203. package/dist/__tests__/dawn/instances-shadow.dawn.test.d.ts +0 -2
  204. package/dist/__tests__/dawn/instances-shadow.dawn.test.d.ts.map +0 -1
  205. package/dist/__tests__/dawn/instances-uniform-fallback.dawn.test.d.ts +0 -2
  206. package/dist/__tests__/dawn/instances-uniform-fallback.dawn.test.d.ts.map +0 -1
  207. package/dist/__tests__/dawn/material-alpha.dawn.test.d.ts +0 -2
  208. package/dist/__tests__/dawn/material-alpha.dawn.test.d.ts.map +0 -1
  209. package/dist/__tests__/dawn/material-cooked-fixture.dawn.test.d.ts +0 -2
  210. package/dist/__tests__/dawn/material-cooked-fixture.dawn.test.d.ts.map +0 -1
  211. package/dist/__tests__/dawn/mesh-ssbo-normal-matrix.dawn.test.d.ts +0 -2
  212. package/dist/__tests__/dawn/mesh-ssbo-normal-matrix.dawn.test.d.ts.map +0 -1
  213. package/dist/__tests__/dawn/mesh-update-dawn.test.d.ts +0 -2
  214. package/dist/__tests__/dawn/mesh-update-dawn.test.d.ts.map +0 -1
  215. package/dist/__tests__/dawn/mipmap-srgb-linear.dawn.test.d.ts +0 -2
  216. package/dist/__tests__/dawn/mipmap-srgb-linear.dawn.test.d.ts.map +0 -1
  217. package/dist/__tests__/dawn/per-entity-material-texture-isolation.dawn.test.d.ts +0 -2
  218. package/dist/__tests__/dawn/per-entity-material-texture-isolation.dawn.test.d.ts.map +0 -1
  219. package/dist/__tests__/dawn/sprite-nineslice-mesh-bind.dawn.test.d.ts +0 -2
  220. package/dist/__tests__/dawn/sprite-nineslice-mesh-bind.dawn.test.d.ts.map +0 -1
  221. package/dist/__tests__/dawn/tonemap.dawn.test.d.ts +0 -2
  222. package/dist/__tests__/dawn/tonemap.dawn.test.d.ts.map +0 -1
  223. package/dist/__tests__/dawn/upload-texture.dawn.test.d.ts +0 -2
  224. package/dist/__tests__/dawn/upload-texture.dawn.test.d.ts.map +0 -1
  225. package/dist/__tests__/dawn/user-handle-mesh-render.dawn.test.d.ts +0 -2
  226. package/dist/__tests__/dawn/user-handle-mesh-render.dawn.test.d.ts.map +0 -1
  227. package/dist/__tests__/dawn/user-mesh-upload.dawn.test.d.ts +0 -2
  228. package/dist/__tests__/dawn/user-mesh-upload.dawn.test.d.ts.map +0 -1
  229. package/dist/__tests__/dawn/zero-manifest-mesh-fail.dawn.test.d.ts +0 -2
  230. package/dist/__tests__/dawn/zero-manifest-mesh-fail.dawn.test.d.ts.map +0 -1
  231. package/dist/__tests__/dawn/zero-manifest-ready.dawn.test.d.ts +0 -2
  232. package/dist/__tests__/dawn/zero-manifest-ready.dawn.test.d.ts.map +0 -1
  233. package/dist/__tests__/demo-sortscope-migration.unit.test.d.ts +0 -2
  234. package/dist/__tests__/demo-sortscope-migration.unit.test.d.ts.map +0 -1
  235. package/dist/__tests__/derive-bgl-integration.test.d.ts +0 -2
  236. package/dist/__tests__/derive-bgl-integration.test.d.ts.map +0 -1
  237. package/dist/__tests__/derive-render-data-skin.unit.test.d.ts +0 -2
  238. package/dist/__tests__/derive-render-data-skin.unit.test.d.ts.map +0 -1
  239. package/dist/__tests__/dev-import-transport.cases.unit.test.d.ts +0 -2
  240. package/dist/__tests__/dev-import-transport.cases.unit.test.d.ts.map +0 -1
  241. package/dist/__tests__/draw-published.d.ts +0 -5
  242. package/dist/__tests__/draw-published.d.ts.map +0 -1
  243. package/dist/__tests__/dynamic-texture-store.unit.test.d.ts +0 -2
  244. package/dist/__tests__/dynamic-texture-store.unit.test.d.ts.map +0 -1
  245. package/dist/__tests__/engine-metrics.cases.unit.test.d.ts +0 -2
  246. package/dist/__tests__/engine-metrics.cases.unit.test.d.ts.map +0 -1
  247. package/dist/__tests__/environment-error-exhaustive.test-d.d.ts +0 -8
  248. package/dist/__tests__/environment-error-exhaustive.test-d.d.ts.map +0 -1
  249. package/dist/__tests__/equirect-bc6h.integration.test.d.ts +0 -2
  250. package/dist/__tests__/equirect-bc6h.integration.test.d.ts.map +0 -1
  251. package/dist/__tests__/equirect-projection-error.cases.unit.test.d.ts +0 -2
  252. package/dist/__tests__/equirect-projection-error.cases.unit.test.d.ts.map +0 -1
  253. package/dist/__tests__/error-exhaustive.test.d.ts +0 -2
  254. package/dist/__tests__/error-exhaustive.test.d.ts.map +0 -1
  255. package/dist/__tests__/errors.unit.test.d.ts +0 -2
  256. package/dist/__tests__/errors.unit.test.d.ts.map +0 -1
  257. package/dist/__tests__/extract-frames-graceful-degradation.test.d.ts +0 -2
  258. package/dist/__tests__/extract-frames-graceful-degradation.test.d.ts.map +0 -1
  259. package/dist/__tests__/extract-frames-merge.test.d.ts +0 -2
  260. package/dist/__tests__/extract-frames-merge.test.d.ts.map +0 -1
  261. package/dist/__tests__/extract-frames-reset.test.d.ts +0 -2
  262. package/dist/__tests__/extract-frames-reset.test.d.ts.map +0 -1
  263. package/dist/__tests__/extract-record-no-hardcoded-texture-fields.test.d.ts +0 -2
  264. package/dist/__tests__/extract-record-no-hardcoded-texture-fields.test.d.ts.map +0 -1
  265. package/dist/__tests__/extract-skin-mismatch.unit.test.d.ts +0 -2
  266. package/dist/__tests__/extract-skin-mismatch.unit.test.d.ts.map +0 -1
  267. package/dist/__tests__/fetch-binary-decompress.test.d.ts +0 -2
  268. package/dist/__tests__/fetch-binary-decompress.test.d.ts.map +0 -1
  269. package/dist/__tests__/font-asset-load.cases.unit.test.d.ts +0 -2
  270. package/dist/__tests__/font-asset-load.cases.unit.test.d.ts.map +0 -1
  271. package/dist/__tests__/four-path-compression.integration.test.d.ts +0 -2
  272. package/dist/__tests__/four-path-compression.integration.test.d.ts.map +0 -1
  273. package/dist/__tests__/frame-targets-shadow-regression.unit.test.d.ts +0 -2
  274. package/dist/__tests__/frame-targets-shadow-regression.unit.test.d.ts.map +0 -1
  275. package/dist/__tests__/fullscreen-feature-host.dawn.test.d.ts +0 -2
  276. package/dist/__tests__/fullscreen-feature-host.dawn.test.d.ts.map +0 -1
  277. package/dist/__tests__/fullscreen-post-bgl-depth.test.d.ts +0 -2
  278. package/dist/__tests__/fullscreen-post-bgl-depth.test.d.ts.map +0 -1
  279. package/dist/__tests__/fullscreen-post-depth-params-arity.test.d.ts +0 -2
  280. package/dist/__tests__/fullscreen-post-depth-params-arity.test.d.ts.map +0 -1
  281. package/dist/__tests__/fullscreen-post-process-pass.dawn.test.d.ts +0 -2
  282. package/dist/__tests__/fullscreen-post-process-pass.dawn.test.d.ts.map +0 -1
  283. package/dist/__tests__/fullscreen-post-process-pass.unit.test.d.ts +0 -2
  284. package/dist/__tests__/fullscreen-post-process-pass.unit.test.d.ts.map +0 -1
  285. package/dist/__tests__/fxaa-intermediate-texture.cases.unit.test.d.ts +0 -2
  286. package/dist/__tests__/fxaa-intermediate-texture.cases.unit.test.d.ts.map +0 -1
  287. package/dist/__tests__/fxaa-pipeline.cases.unit.test.d.ts +0 -2
  288. package/dist/__tests__/fxaa-pipeline.cases.unit.test.d.ts.map +0 -1
  289. package/dist/__tests__/fxaa-pixel-diff.dawn.test.d.ts +0 -2
  290. package/dist/__tests__/fxaa-pixel-diff.dawn.test.d.ts.map +0 -1
  291. package/dist/__tests__/fxaa-validation-and-resize.dawn.test.d.ts +0 -2
  292. package/dist/__tests__/fxaa-validation-and-resize.dawn.test.d.ts.map +0 -1
  293. package/dist/__tests__/fxaa-zero-overhead.dawn.test.d.ts +0 -2
  294. package/dist/__tests__/fxaa-zero-overhead.dawn.test.d.ts.map +0 -1
  295. package/dist/__tests__/geometry.unit.test.d.ts +0 -2
  296. package/dist/__tests__/geometry.unit.test.d.ts.map +0 -1
  297. package/dist/__tests__/glyph-tilemap-worldid.test.d.ts +0 -2
  298. package/dist/__tests__/glyph-tilemap-worldid.test.d.ts.map +0 -1
  299. package/dist/__tests__/gpu-residency.cases.unit.test.d.ts +0 -2
  300. package/dist/__tests__/gpu-residency.cases.unit.test.d.ts.map +0 -1
  301. package/dist/__tests__/gpu-resource-cow-survivor.test.d.ts +0 -2
  302. package/dist/__tests__/gpu-resource-cow-survivor.test.d.ts.map +0 -1
  303. package/dist/__tests__/gpu-resource-release.cases.unit.test.d.ts +0 -2
  304. package/dist/__tests__/gpu-resource-release.cases.unit.test.d.ts.map +0 -1
  305. package/dist/__tests__/guid-for-asset.unit.test.d.ts +0 -2
  306. package/dist/__tests__/guid-for-asset.unit.test.d.ts.map +0 -1
  307. package/dist/__tests__/handle-migration.test.d.ts +0 -2
  308. package/dist/__tests__/handle-migration.test.d.ts.map +0 -1
  309. package/dist/__tests__/handle-quad.cases.unit.test.d.ts +0 -2
  310. package/dist/__tests__/handle-quad.cases.unit.test.d.ts.map +0 -1
  311. package/dist/__tests__/hdrp-bgl-slots.cases.unit.test.d.ts +0 -2
  312. package/dist/__tests__/hdrp-bgl-slots.cases.unit.test.d.ts.map +0 -1
  313. package/dist/__tests__/hdrp-grid-invalid.cases.unit.test.d.ts +0 -2
  314. package/dist/__tests__/hdrp-grid-invalid.cases.unit.test.d.ts.map +0 -1
  315. package/dist/__tests__/hdrp-index-list-overflow-once.cases.unit.test.d.ts +0 -2
  316. package/dist/__tests__/hdrp-index-list-overflow-once.cases.unit.test.d.ts.map +0 -1
  317. package/dist/__tests__/hdrp-light-budget.cases.unit.test.d.ts +0 -2
  318. package/dist/__tests__/hdrp-light-budget.cases.unit.test.d.ts.map +0 -1
  319. package/dist/__tests__/hdrp-pipeline-asset-config.cases.unit.test.d.ts +0 -2
  320. package/dist/__tests__/hdrp-pipeline-asset-config.cases.unit.test.d.ts.map +0 -1
  321. package/dist/__tests__/hello-tilemap-smoke-upgrade.unit.test.d.ts +0 -2
  322. package/dist/__tests__/hello-tilemap-smoke-upgrade.unit.test.d.ts.map +0 -1
  323. package/dist/__tests__/helpers/mock-shader-registry.d.ts +0 -11
  324. package/dist/__tests__/helpers/mock-shader-registry.d.ts.map +0 -1
  325. package/dist/__tests__/helpers/register-runtime-components.d.ts +0 -4
  326. package/dist/__tests__/helpers/register-runtime-components.d.ts.map +0 -1
  327. package/dist/__tests__/helpers/register-scene-components.d.ts +0 -4
  328. package/dist/__tests__/helpers/register-scene-components.d.ts.map +0 -1
  329. package/dist/__tests__/helpers/renderer-device-loss-dawn.d.ts +0 -25
  330. package/dist/__tests__/helpers/renderer-device-loss-dawn.d.ts.map +0 -1
  331. package/dist/__tests__/helpers/standard-material-manifest.d.ts +0 -11
  332. package/dist/__tests__/helpers/standard-material-manifest.d.ts.map +0 -1
  333. package/dist/__tests__/helpers/tilemap-assets.d.ts +0 -6
  334. package/dist/__tests__/helpers/tilemap-assets.d.ts.map +0 -1
  335. package/dist/__tests__/host-custom-kind-contract.test-d.d.ts +0 -2
  336. package/dist/__tests__/host-custom-kind-contract.test-d.d.ts.map +0 -1
  337. package/dist/__tests__/host-custom-kind-contract.test.d.ts +0 -2
  338. package/dist/__tests__/host-custom-kind-contract.test.d.ts.map +0 -1
  339. package/dist/__tests__/ibl-pipeline-cache.cases.unit.test.d.ts +0 -2
  340. package/dist/__tests__/ibl-pipeline-cache.cases.unit.test.d.ts.map +0 -1
  341. package/dist/__tests__/inspect-name.test.d.ts +0 -2
  342. package/dist/__tests__/inspect-name.test.d.ts.map +0 -1
  343. package/dist/__tests__/instances.test-d.d.ts +0 -2
  344. package/dist/__tests__/instances.test-d.d.ts.map +0 -1
  345. package/dist/__tests__/instantiate-mount-deferred-wiring.test.d.ts +0 -2
  346. package/dist/__tests__/instantiate-mount-deferred-wiring.test.d.ts.map +0 -1
  347. package/dist/__tests__/lazy-catalog.cases.unit.test.d.ts +0 -2
  348. package/dist/__tests__/lazy-catalog.cases.unit.test.d.ts.map +0 -1
  349. package/dist/__tests__/light-attenuation-formula.test.d.ts +0 -2
  350. package/dist/__tests__/light-attenuation-formula.test.d.ts.map +0 -1
  351. package/dist/__tests__/light-casters-9-light.browser.test.d.ts +0 -2
  352. package/dist/__tests__/light-casters-9-light.browser.test.d.ts.map +0 -1
  353. package/dist/__tests__/light-gpu-byte-neutral.unit.test.d.ts +0 -2
  354. package/dist/__tests__/light-gpu-byte-neutral.unit.test.d.ts.map +0 -1
  355. package/dist/__tests__/light-snapshot.test-d.d.ts +0 -2
  356. package/dist/__tests__/light-snapshot.test-d.d.ts.map +0 -1
  357. package/dist/__tests__/lights-preservation.fixup.test.d.ts +0 -2
  358. package/dist/__tests__/lights-preservation.fixup.test.d.ts.map +0 -1
  359. package/dist/__tests__/lights-vec-negative.unit.test.d.ts +0 -2
  360. package/dist/__tests__/lights-vec-negative.unit.test.d.ts.map +0 -1
  361. package/dist/__tests__/lights.unit.test.d.ts +0 -2
  362. package/dist/__tests__/lights.unit.test.d.ts.map +0 -1
  363. package/dist/__tests__/load-by-guid-hdr.cases.unit.test.d.ts +0 -2
  364. package/dist/__tests__/load-by-guid-hdr.cases.unit.test.d.ts.map +0 -1
  365. package/dist/__tests__/load-by-guid-prod-material-parent.cases.unit.test.d.ts +0 -2
  366. package/dist/__tests__/load-by-guid-prod-material-parent.cases.unit.test.d.ts.map +0 -1
  367. package/dist/__tests__/load-by-guid-prod.cases.unit.test.d.ts +0 -2
  368. package/dist/__tests__/load-by-guid-prod.cases.unit.test.d.ts.map +0 -1
  369. package/dist/__tests__/loadbyguid-payload.unit.test.d.ts +0 -2
  370. package/dist/__tests__/loadbyguid-payload.unit.test.d.ts.map +0 -1
  371. package/dist/__tests__/loadbyguid-texture-intern.unit.test.d.ts +0 -2
  372. package/dist/__tests__/loadbyguid-texture-intern.unit.test.d.ts.map +0 -1
  373. package/dist/__tests__/loader-extract-graceful.test.d.ts +0 -2
  374. package/dist/__tests__/loader-extract-graceful.test.d.ts.map +0 -1
  375. package/dist/__tests__/loader-name-survival.test.d.ts +0 -2
  376. package/dist/__tests__/loader-name-survival.test.d.ts.map +0 -1
  377. package/dist/__tests__/loader-registry.cases.unit.test.d.ts +0 -2
  378. package/dist/__tests__/loader-registry.cases.unit.test.d.ts.map +0 -1
  379. package/dist/__tests__/m3-vec-negative.unit.test.d.ts +0 -2
  380. package/dist/__tests__/m3-vec-negative.unit.test.d.ts.map +0 -1
  381. package/dist/__tests__/m5-browser-dawn-sweep.integration.test.d.ts +0 -2
  382. package/dist/__tests__/m5-browser-dawn-sweep.integration.test.d.ts.map +0 -1
  383. package/dist/__tests__/m7-hdrp-demo-shape.cases.unit.test.d.ts +0 -2
  384. package/dist/__tests__/m7-hdrp-demo-shape.cases.unit.test.d.ts.map +0 -1
  385. package/dist/__tests__/material-texture-dimension-mismatch.unit.test.d.ts +0 -2
  386. package/dist/__tests__/material-texture-dimension-mismatch.unit.test.d.ts.map +0 -1
  387. package/dist/__tests__/material-texture-uv-scale.unit.test.d.ts +0 -2
  388. package/dist/__tests__/material-texture-uv-scale.unit.test.d.ts.map +0 -1
  389. package/dist/__tests__/materials.unit.test.d.ts +0 -2
  390. package/dist/__tests__/materials.unit.test.d.ts.map +0 -1
  391. package/dist/__tests__/mesh-bin-contract.test.d.ts +0 -2
  392. package/dist/__tests__/mesh-bin-contract.test.d.ts.map +0 -1
  393. package/dist/__tests__/mesh-bin-skin-roundtrip.unit.test.d.ts +0 -2
  394. package/dist/__tests__/mesh-bin-skin-roundtrip.unit.test.d.ts.map +0 -1
  395. package/dist/__tests__/mesh-bin.test.d.ts +0 -2
  396. package/dist/__tests__/mesh-bin.test.d.ts.map +0 -1
  397. package/dist/__tests__/mesh-loader-skin-contract.unit.test.d.ts +0 -2
  398. package/dist/__tests__/mesh-loader-skin-contract.unit.test.d.ts.map +0 -1
  399. package/dist/__tests__/mesh-ssbo-grow.unit.test.d.ts +0 -2
  400. package/dist/__tests__/mesh-ssbo-grow.unit.test.d.ts.map +0 -1
  401. package/dist/__tests__/mip-gate.unit.test.d.ts +0 -2
  402. package/dist/__tests__/mip-gate.unit.test.d.ts.map +0 -1
  403. package/dist/__tests__/mipmap-formula.cases.unit.test.d.ts +0 -2
  404. package/dist/__tests__/mipmap-formula.cases.unit.test.d.ts.map +0 -1
  405. package/dist/__tests__/mipmap-pipeline-cache.cases.unit.test.d.ts +0 -2
  406. package/dist/__tests__/mipmap-pipeline-cache.cases.unit.test.d.ts.map +0 -1
  407. package/dist/__tests__/msaa-sprite-pixel-diff.dawn.test.d.ts +0 -2
  408. package/dist/__tests__/msaa-sprite-pixel-diff.dawn.test.d.ts.map +0 -1
  409. package/dist/__tests__/multi-uv-8set.e2e.dawn.test.d.ts +0 -2
  410. package/dist/__tests__/multi-uv-8set.e2e.dawn.test.d.ts.map +0 -1
  411. package/dist/__tests__/name.unit.test.d.ts +0 -2
  412. package/dist/__tests__/name.unit.test.d.ts.map +0 -1
  413. package/dist/__tests__/new-kind-refs-contract.test.d.ts +0 -2
  414. package/dist/__tests__/new-kind-refs-contract.test.d.ts.map +0 -1
  415. package/dist/__tests__/package-promotion.test.d.ts +0 -2
  416. package/dist/__tests__/package-promotion.test.d.ts.map +0 -1
  417. package/dist/__tests__/package-rename.test.d.ts +0 -2
  418. package/dist/__tests__/package-rename.test.d.ts.map +0 -1
  419. package/dist/__tests__/parse-asset-payload-material.cases.unit.test.d.ts +0 -2
  420. package/dist/__tests__/parse-asset-payload-material.cases.unit.test.d.ts.map +0 -1
  421. package/dist/__tests__/parse-asset-payload-texture.cases.unit.test.d.ts +0 -2
  422. package/dist/__tests__/parse-asset-payload-texture.cases.unit.test.d.ts.map +0 -1
  423. package/dist/__tests__/parse-scene-payload-refs.cases.unit.test.d.ts +0 -2
  424. package/dist/__tests__/parse-scene-payload-refs.cases.unit.test.d.ts.map +0 -1
  425. package/dist/__tests__/pass-selector.cases.unit.test.d.ts +0 -2
  426. package/dist/__tests__/pass-selector.cases.unit.test.d.ts.map +0 -1
  427. package/dist/__tests__/pass-selector.unit.test.d.ts +0 -2
  428. package/dist/__tests__/pass-selector.unit.test.d.ts.map +0 -1
  429. package/dist/__tests__/pbr-pipeline.unit.test.d.ts +0 -2
  430. package/dist/__tests__/pbr-pipeline.unit.test.d.ts.map +0 -1
  431. package/dist/__tests__/pipeline-builder-msaa.unit.test.d.ts +0 -2
  432. package/dist/__tests__/pipeline-builder-msaa.unit.test.d.ts.map +0 -1
  433. package/dist/__tests__/pipeline-builder.cases.unit.test.d.ts +0 -2
  434. package/dist/__tests__/pipeline-builder.cases.unit.test.d.ts.map +0 -1
  435. package/dist/__tests__/pipeline-cache-key-topology.cases.unit.test.d.ts +0 -2
  436. package/dist/__tests__/pipeline-cache-key-topology.cases.unit.test.d.ts.map +0 -1
  437. package/dist/__tests__/pipeline-cache-keying.unit.test.d.ts +0 -2
  438. package/dist/__tests__/pipeline-cache-keying.unit.test.d.ts.map +0 -1
  439. package/dist/__tests__/pipeline-spec.test.d.ts +0 -2
  440. package/dist/__tests__/pipeline-spec.test.d.ts.map +0 -1
  441. package/dist/__tests__/pipeline-vertex-stride-branch.cases.unit.test.d.ts +0 -2
  442. package/dist/__tests__/pipeline-vertex-stride-branch.cases.unit.test.d.ts.map +0 -1
  443. package/dist/__tests__/pipeline.cases.unit.test.d.ts +0 -2
  444. package/dist/__tests__/pipeline.cases.unit.test.d.ts.map +0 -1
  445. package/dist/__tests__/point-light-shadow.browser.test.d.ts +0 -2
  446. package/dist/__tests__/point-light-shadow.browser.test.d.ts.map +0 -1
  447. package/dist/__tests__/point-light-shadow.dawn.test.d.ts +0 -2
  448. package/dist/__tests__/point-light-shadow.dawn.test.d.ts.map +0 -1
  449. package/dist/__tests__/point-light-shadow.unit.test.d.ts +0 -2
  450. package/dist/__tests__/point-light-shadow.unit.test.d.ts.map +0 -1
  451. package/dist/__tests__/post-process-error-codes.unit.test.d.ts +0 -2
  452. package/dist/__tests__/post-process-error-codes.unit.test.d.ts.map +0 -1
  453. package/dist/__tests__/post-process-params-component.unit.test.d.ts +0 -2
  454. package/dist/__tests__/post-process-params-component.unit.test.d.ts.map +0 -1
  455. package/dist/__tests__/post-process-params-extract.unit.test.d.ts +0 -2
  456. package/dist/__tests__/post-process-params-extract.unit.test.d.ts.map +0 -1
  457. package/dist/__tests__/post-process-register.cases.unit.test.d.ts +0 -2
  458. package/dist/__tests__/post-process-register.cases.unit.test.d.ts.map +0 -1
  459. package/dist/__tests__/postprocess-camera-consistency.test.d.ts +0 -2
  460. package/dist/__tests__/postprocess-camera-consistency.test.d.ts.map +0 -1
  461. package/dist/__tests__/profiler-assembly.integration.test.d.ts +0 -2
  462. package/dist/__tests__/profiler-assembly.integration.test.d.ts.map +0 -1
  463. package/dist/__tests__/propagate-transforms.cases.unit.test.d.ts +0 -2
  464. package/dist/__tests__/propagate-transforms.cases.unit.test.d.ts.map +0 -1
  465. package/dist/__tests__/propagate-transforms.dawn.test.d.ts +0 -2
  466. package/dist/__tests__/propagate-transforms.dawn.test.d.ts.map +0 -1
  467. package/dist/__tests__/record-all-topology.cases.unit.test.d.ts +0 -2
  468. package/dist/__tests__/record-all-topology.cases.unit.test.d.ts.map +0 -1
  469. package/dist/__tests__/record-draw-branch.cases.unit.test.d.ts +0 -2
  470. package/dist/__tests__/record-draw-branch.cases.unit.test.d.ts.map +0 -1
  471. package/dist/__tests__/record-strip-index-format.cases.unit.test.d.ts +0 -2
  472. package/dist/__tests__/record-strip-index-format.cases.unit.test.d.ts.map +0 -1
  473. package/dist/__tests__/record-worldid-isolation.test.d.ts +0 -2
  474. package/dist/__tests__/record-worldid-isolation.test.d.ts.map +0 -1
  475. package/dist/__tests__/recover-error-exhaustive.test-d.d.ts +0 -11
  476. package/dist/__tests__/recover-error-exhaustive.test-d.d.ts.map +0 -1
  477. package/dist/__tests__/register-with-guid-rgba16float.cases.unit.test.d.ts +0 -2
  478. package/dist/__tests__/register-with-guid-rgba16float.cases.unit.test.d.ts.map +0 -1
  479. package/dist/__tests__/render-data.cases.unit.test.d.ts +0 -2
  480. package/dist/__tests__/render-data.cases.unit.test.d.ts.map +0 -1
  481. package/dist/__tests__/render-environment-consumer.integration.test.d.ts +0 -2
  482. package/dist/__tests__/render-environment-consumer.integration.test.d.ts.map +0 -1
  483. package/dist/__tests__/render-error-exhaustive.test-d.d.ts +0 -11
  484. package/dist/__tests__/render-error-exhaustive.test-d.d.ts.map +0 -1
  485. package/dist/__tests__/render-feature-assembly.test-d.d.ts +0 -2
  486. package/dist/__tests__/render-feature-assembly.test-d.d.ts.map +0 -1
  487. package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts +0 -2
  488. package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts.map +0 -1
  489. package/dist/__tests__/render-feature-prepared-graphics.browser.test.d.ts +0 -2
  490. package/dist/__tests__/render-feature-prepared-graphics.browser.test.d.ts.map +0 -1
  491. package/dist/__tests__/render-feature-prepared-graphics.dawn.test.d.ts +0 -2
  492. package/dist/__tests__/render-feature-prepared-graphics.dawn.test.d.ts.map +0 -1
  493. package/dist/__tests__/render-feature-prepared-graphics.fixture.d.ts +0 -10
  494. package/dist/__tests__/render-feature-prepared-graphics.fixture.d.ts.map +0 -1
  495. package/dist/__tests__/render-feature-prepared-graphics.integration.test.d.ts +0 -2
  496. package/dist/__tests__/render-feature-prepared-graphics.integration.test.d.ts.map +0 -1
  497. package/dist/__tests__/render-feature-prepared-graphics.regression.integration.test.d.ts +0 -2
  498. package/dist/__tests__/render-feature-prepared-graphics.regression.integration.test.d.ts.map +0 -1
  499. package/dist/__tests__/render-feature-recover.integration.test.d.ts +0 -2
  500. package/dist/__tests__/render-feature-recover.integration.test.d.ts.map +0 -1
  501. package/dist/__tests__/render-feature-runtime-surface.test-d.d.ts +0 -2
  502. package/dist/__tests__/render-feature-runtime-surface.test-d.d.ts.map +0 -1
  503. package/dist/__tests__/render-query-regression.cases.unit.test.d.ts +0 -2
  504. package/dist/__tests__/render-query-regression.cases.unit.test.d.ts.map +0 -1
  505. package/dist/__tests__/render-schema-consumer.integration.test.d.ts +0 -2
  506. package/dist/__tests__/render-schema-consumer.integration.test.d.ts.map +0 -1
  507. package/dist/__tests__/render-schema-owner-boundary.unit.test.d.ts +0 -2
  508. package/dist/__tests__/render-schema-owner-boundary.unit.test.d.ts.map +0 -1
  509. package/dist/__tests__/render-system-cross-world-overlay-queue.test.d.ts +0 -2
  510. package/dist/__tests__/render-system-cross-world-overlay-queue.test.d.ts.map +0 -1
  511. package/dist/__tests__/render-system-extract-dispatch-ordering.test.d.ts +0 -2
  512. package/dist/__tests__/render-system-extract-dispatch-ordering.test.d.ts.map +0 -1
  513. package/dist/__tests__/render-system-extract.test.d.ts +0 -2
  514. package/dist/__tests__/render-system-extract.test.d.ts.map +0 -1
  515. package/dist/__tests__/render-system-extract.unit.test.d.ts +0 -2
  516. package/dist/__tests__/render-system-extract.unit.test.d.ts.map +0 -1
  517. package/dist/__tests__/render-system-fold-bucket.unit.test.d.ts +0 -2
  518. package/dist/__tests__/render-system-fold-bucket.unit.test.d.ts.map +0 -1
  519. package/dist/__tests__/render-system-fold-fallback.unit.test.d.ts +0 -2
  520. package/dist/__tests__/render-system-fold-fallback.unit.test.d.ts.map +0 -1
  521. package/dist/__tests__/render-system-fold-material.unit.test.d.ts +0 -2
  522. package/dist/__tests__/render-system-fold-material.unit.test.d.ts.map +0 -1
  523. package/dist/__tests__/render-system-fold-metrics.unit.test.d.ts +0 -2
  524. package/dist/__tests__/render-system-fold-metrics.unit.test.d.ts.map +0 -1
  525. package/dist/__tests__/render-system-fold-modegate.unit.test.d.ts +0 -2
  526. package/dist/__tests__/render-system-fold-modegate.unit.test.d.ts.map +0 -1
  527. package/dist/__tests__/render-system-fold-scene-instances.unit.test.d.ts +0 -2
  528. package/dist/__tests__/render-system-fold-scene-instances.unit.test.d.ts.map +0 -1
  529. package/dist/__tests__/render-system-fold.dawn.test.d.ts +0 -2
  530. package/dist/__tests__/render-system-fold.dawn.test.d.ts.map +0 -1
  531. package/dist/__tests__/render-system-mega.test.d.ts +0 -2
  532. package/dist/__tests__/render-system-mega.test.d.ts.map +0 -1
  533. package/dist/__tests__/render-system-owner-split-contract.test.d.ts +0 -2
  534. package/dist/__tests__/render-system-owner-split-contract.test.d.ts.map +0 -1
  535. package/dist/__tests__/render-system-record-multi-material-textureview.test.d.ts +0 -2
  536. package/dist/__tests__/render-system-record-multi-material-textureview.test.d.ts.map +0 -1
  537. package/dist/__tests__/render-system-record-per-submesh-transparency.test.d.ts +0 -2
  538. package/dist/__tests__/render-system-record-per-submesh-transparency.test.d.ts.map +0 -1
  539. package/dist/__tests__/render-system-record-submesh.cases.unit.test.d.ts +0 -2
  540. package/dist/__tests__/render-system-record-submesh.cases.unit.test.d.ts.map +0 -1
  541. package/dist/__tests__/render-system-record-warn-once.cases.unit.test.d.ts +0 -2
  542. package/dist/__tests__/render-system-record-warn-once.cases.unit.test.d.ts.map +0 -1
  543. package/dist/__tests__/render-system-record.test.d.ts +0 -2
  544. package/dist/__tests__/render-system-record.test.d.ts.map +0 -1
  545. package/dist/__tests__/render-system-record.unit.test.d.ts +0 -2
  546. package/dist/__tests__/render-system-record.unit.test.d.ts.map +0 -1
  547. package/dist/__tests__/render-system-skin-bg.unit.test.d.ts +0 -2
  548. package/dist/__tests__/render-system-skin-bg.unit.test.d.ts.map +0 -1
  549. package/dist/__tests__/renderer-consumer.test-d.d.ts +0 -2
  550. package/dist/__tests__/renderer-consumer.test-d.d.ts.map +0 -1
  551. package/dist/__tests__/renderer-device-loss-multi-world.integration.test.d.ts +0 -2
  552. package/dist/__tests__/renderer-device-loss-multi-world.integration.test.d.ts.map +0 -1
  553. package/dist/__tests__/renderer-device-loss-provider-feasibility.dawn.test.d.ts +0 -2
  554. package/dist/__tests__/renderer-device-loss-provider-feasibility.dawn.test.d.ts.map +0 -1
  555. package/dist/__tests__/renderer-device-loss-recovery.dawn.test.d.ts +0 -2
  556. package/dist/__tests__/renderer-device-loss-recovery.dawn.test.d.ts.map +0 -1
  557. package/dist/__tests__/renderer-draw-world.cases.unit.test.d.ts +0 -2
  558. package/dist/__tests__/renderer-draw-world.cases.unit.test.d.ts.map +0 -1
  559. package/dist/__tests__/renderer-health.unit.test.d.ts +0 -2
  560. package/dist/__tests__/renderer-health.unit.test.d.ts.map +0 -1
  561. package/dist/__tests__/renderer-host-fallback.unit.test.d.ts +0 -2
  562. package/dist/__tests__/renderer-host-fallback.unit.test.d.ts.map +0 -1
  563. package/dist/__tests__/renderer-lifecycle.integration.test.d.ts +0 -2
  564. package/dist/__tests__/renderer-lifecycle.integration.test.d.ts.map +0 -1
  565. package/dist/__tests__/renderer-recover.unit.test.d.ts +0 -2
  566. package/dist/__tests__/renderer-recover.unit.test.d.ts.map +0 -1
  567. package/dist/__tests__/renderer-recovery-consumer.integration.test.d.ts +0 -2
  568. package/dist/__tests__/renderer-recovery-consumer.integration.test.d.ts.map +0 -1
  569. package/dist/__tests__/renderer-result.test-d.d.ts +0 -2
  570. package/dist/__tests__/renderer-result.test-d.d.ts.map +0 -1
  571. package/dist/__tests__/renderer-surface.unit.test.d.ts +0 -2
  572. package/dist/__tests__/renderer-surface.unit.test.d.ts.map +0 -1
  573. package/dist/__tests__/renderer-test-utils.d.ts +0 -10
  574. package/dist/__tests__/renderer-test-utils.d.ts.map +0 -1
  575. package/dist/__tests__/renderer.test-d.d.ts +0 -2
  576. package/dist/__tests__/renderer.test-d.d.ts.map +0 -1
  577. package/dist/__tests__/renderstate-pipeline-cache.cases.unit.test.d.ts +0 -2
  578. package/dist/__tests__/renderstate-pipeline-cache.cases.unit.test.d.ts.map +0 -1
  579. package/dist/__tests__/resolve-asset-handle-err.test.d.ts +0 -2
  580. package/dist/__tests__/resolve-asset-handle-err.test.d.ts.map +0 -1
  581. package/dist/__tests__/resolve-asset-handle.unit.test.d.ts +0 -2
  582. package/dist/__tests__/resolve-asset-handle.unit.test.d.ts.map +0 -1
  583. package/dist/__tests__/resolve-depth-only-view.test.d.ts +0 -2
  584. package/dist/__tests__/resolve-depth-only-view.test.d.ts.map +0 -1
  585. package/dist/__tests__/resolve-scene-guids.cases.unit.test.d.ts +0 -2
  586. package/dist/__tests__/resolve-scene-guids.cases.unit.test.d.ts.map +0 -1
  587. package/dist/__tests__/resolveName-fallback.test.d.ts +0 -2
  588. package/dist/__tests__/resolveName-fallback.test.d.ts.map +0 -1
  589. package/dist/__tests__/resolveName-null-package.test.d.ts +0 -2
  590. package/dist/__tests__/resolveName-null-package.test.d.ts.map +0 -1
  591. package/dist/__tests__/resolveName-unified-entry.test.d.ts +0 -2
  592. package/dist/__tests__/resolveName-unified-entry.test.d.ts.map +0 -1
  593. package/dist/__tests__/resolveName.test.d.ts +0 -2
  594. package/dist/__tests__/resolveName.test.d.ts.map +0 -1
  595. package/dist/__tests__/rhi-null-command-flow.unit.test.d.ts +0 -2
  596. package/dist/__tests__/rhi-null-command-flow.unit.test.d.ts.map +0 -1
  597. package/dist/__tests__/rhi-null-noop-behavior.unit.test.d.ts +0 -2
  598. package/dist/__tests__/rhi-null-noop-behavior.unit.test.d.ts.map +0 -1
  599. package/dist/__tests__/rhi-null-renderer-lifecycle.unit.test.d.ts +0 -2
  600. package/dist/__tests__/rhi-null-renderer-lifecycle.unit.test.d.ts.map +0 -1
  601. package/dist/__tests__/roots-to-scene-asset.test.d.ts +0 -2
  602. package/dist/__tests__/roots-to-scene-asset.test.d.ts.map +0 -1
  603. package/dist/__tests__/roundtrip-primitive.test.d.ts +0 -2
  604. package/dist/__tests__/roundtrip-primitive.test.d.ts.map +0 -1
  605. package/dist/__tests__/runtime-authority-scan.unit.test.d.ts +0 -2
  606. package/dist/__tests__/runtime-authority-scan.unit.test.d.ts.map +0 -1
  607. package/dist/__tests__/runtime-domain-residue.unit.test.d.ts +0 -2
  608. package/dist/__tests__/runtime-domain-residue.unit.test.d.ts.map +0 -1
  609. package/dist/__tests__/scene-bare-guid-refs-instantiate.test.d.ts +0 -2
  610. package/dist/__tests__/scene-bare-guid-refs-instantiate.test.d.ts.map +0 -1
  611. package/dist/__tests__/scene-equirect-roundtrip.test.d.ts +0 -2
  612. package/dist/__tests__/scene-equirect-roundtrip.test.d.ts.map +0 -1
  613. package/dist/__tests__/scene-instance-authoring.integration.test.d.ts +0 -2
  614. package/dist/__tests__/scene-instance-authoring.integration.test.d.ts.map +0 -1
  615. package/dist/__tests__/scene-instance-bridge.integration.test.d.ts +0 -2
  616. package/dist/__tests__/scene-instance-bridge.integration.test.d.ts.map +0 -1
  617. package/dist/__tests__/scene-instance-component.test.d.ts +0 -2
  618. package/dist/__tests__/scene-instance-component.test.d.ts.map +0 -1
  619. package/dist/__tests__/scene-instantiate-cycle-runtime.test.d.ts +0 -2
  620. package/dist/__tests__/scene-instantiate-cycle-runtime.test.d.ts.map +0 -1
  621. package/dist/__tests__/scene-mount-fixed-point.test.d.ts +0 -2
  622. package/dist/__tests__/scene-mount-fixed-point.test.d.ts.map +0 -1
  623. package/dist/__tests__/scene-mount-roundtrip.test.d.ts +0 -2
  624. package/dist/__tests__/scene-mount-roundtrip.test.d.ts.map +0 -1
  625. package/dist/__tests__/scene-mount-wrapper-roundtrip.test.d.ts +0 -2
  626. package/dist/__tests__/scene-mount-wrapper-roundtrip.test.d.ts.map +0 -1
  627. package/dist/__tests__/scene-sugar-instantiate.test.d.ts +0 -2
  628. package/dist/__tests__/scene-sugar-instantiate.test.d.ts.map +0 -1
  629. package/dist/__tests__/serialize-mounts-roundtrip.test.d.ts +0 -2
  630. package/dist/__tests__/serialize-mounts-roundtrip.test.d.ts.map +0 -1
  631. package/dist/__tests__/serialize-scene-asset.test.d.ts +0 -2
  632. package/dist/__tests__/serialize-scene-asset.test.d.ts.map +0 -1
  633. package/dist/__tests__/shadow-caster-empty-schema.test.d.ts +0 -2
  634. package/dist/__tests__/shadow-caster-empty-schema.test.d.ts.map +0 -1
  635. package/dist/__tests__/shadow-csm-atlas.test.d.ts +0 -2
  636. package/dist/__tests__/shadow-csm-atlas.test.d.ts.map +0 -1
  637. package/dist/__tests__/shadow-csm-blend.dawn.test.d.ts +0 -2
  638. package/dist/__tests__/shadow-csm-blend.dawn.test.d.ts.map +0 -1
  639. package/dist/__tests__/shadow-csm-cascade-loadop.test.d.ts +0 -2
  640. package/dist/__tests__/shadow-csm-cascade-loadop.test.d.ts.map +0 -1
  641. package/dist/__tests__/shadow-csm-component.test.d.ts +0 -2
  642. package/dist/__tests__/shadow-csm-component.test.d.ts.map +0 -1
  643. package/dist/__tests__/shadow-csm-extract.test.d.ts +0 -2
  644. package/dist/__tests__/shadow-csm-extract.test.d.ts.map +0 -1
  645. package/dist/__tests__/shadow-csm-orthoz.test.d.ts +0 -2
  646. package/dist/__tests__/shadow-csm-orthoz.test.d.ts.map +0 -1
  647. package/dist/__tests__/shadow-csm-runtime-vary.dawn.test.d.ts +0 -2
  648. package/dist/__tests__/shadow-csm-runtime-vary.dawn.test.d.ts.map +0 -1
  649. package/dist/__tests__/shadow-csm-shader.dawn.test.d.ts +0 -2
  650. package/dist/__tests__/shadow-csm-shader.dawn.test.d.ts.map +0 -1
  651. package/dist/__tests__/shadow-csm-tile-consistency.test.d.ts +0 -2
  652. package/dist/__tests__/shadow-csm-tile-consistency.test.d.ts.map +0 -1
  653. package/dist/__tests__/shadow-csm-ubo.dawn.test.d.ts +0 -2
  654. package/dist/__tests__/shadow-csm-ubo.dawn.test.d.ts.map +0 -1
  655. package/dist/__tests__/shadow-csm-ubo.test.d.ts +0 -2
  656. package/dist/__tests__/shadow-csm-ubo.test.d.ts.map +0 -1
  657. package/dist/__tests__/shadow-csm-viewport.browser.test.d.ts +0 -2
  658. package/dist/__tests__/shadow-csm-viewport.browser.test.d.ts.map +0 -1
  659. package/dist/__tests__/shadow-fields-observable.dawn.test.d.ts +0 -2
  660. package/dist/__tests__/shadow-fields-observable.dawn.test.d.ts.map +0 -1
  661. package/dist/__tests__/shadow-m1.dawn.test.d.ts +0 -2
  662. package/dist/__tests__/shadow-m1.dawn.test.d.ts.map +0 -1
  663. package/dist/__tests__/shadow-mesh-ssbo-order.test.d.ts +0 -2
  664. package/dist/__tests__/shadow-mesh-ssbo-order.test.d.ts.map +0 -1
  665. package/dist/__tests__/shadow-skip-non-triangle.cases.unit.test.d.ts +0 -2
  666. package/dist/__tests__/shadow-skip-non-triangle.cases.unit.test.d.ts.map +0 -1
  667. package/dist/__tests__/skin-error-exhaustive.test-d.d.ts +0 -11
  668. package/dist/__tests__/skin-error-exhaustive.test-d.d.ts.map +0 -1
  669. package/dist/__tests__/skin-errors-kebab-case.cases.unit.test.d.ts +0 -2
  670. package/dist/__tests__/skin-errors-kebab-case.cases.unit.test.d.ts.map +0 -1
  671. package/dist/__tests__/skin-errors.unit.test.d.ts +0 -2
  672. package/dist/__tests__/skin-errors.unit.test.d.ts.map +0 -1
  673. package/dist/__tests__/skin-extract-getarrayview-count.unit.test.d.ts +0 -2
  674. package/dist/__tests__/skin-extract-getarrayview-count.unit.test.d.ts.map +0 -1
  675. package/dist/__tests__/skin-instances-coexist.cases.unit.test.d.ts +0 -2
  676. package/dist/__tests__/skin-instances-coexist.cases.unit.test.d.ts.map +0 -1
  677. package/dist/__tests__/skin-m2-extract-happy.cases.unit.test.d.ts +0 -2
  678. package/dist/__tests__/skin-m2-extract-happy.cases.unit.test.d.ts.map +0 -1
  679. package/dist/__tests__/skin-m2-extract-joint-error.cases.unit.test.d.ts +0 -2
  680. package/dist/__tests__/skin-m2-extract-joint-error.cases.unit.test.d.ts.map +0 -1
  681. package/dist/__tests__/skin-m2-extract-null-assets.cases.unit.test.d.ts +0 -2
  682. package/dist/__tests__/skin-m2-extract-null-assets.cases.unit.test.d.ts.map +0 -1
  683. package/dist/__tests__/skin-m2-extract-skeleton-error.cases.unit.test.d.ts +0 -2
  684. package/dist/__tests__/skin-m2-extract-skeleton-error.cases.unit.test.d.ts.map +0 -1
  685. package/dist/__tests__/skin-m3-record-cache.cases.unit.test.d.ts +0 -2
  686. package/dist/__tests__/skin-m3-record-cache.cases.unit.test.d.ts.map +0 -1
  687. package/dist/__tests__/skin-palette-extract.cases.unit.test.d.ts +0 -2
  688. package/dist/__tests__/skin-palette-extract.cases.unit.test.d.ts.map +0 -1
  689. package/dist/__tests__/skin-parented-double-transform.test.d.ts +0 -14
  690. package/dist/__tests__/skin-parented-double-transform.test.d.ts.map +0 -1
  691. package/dist/__tests__/skin-pipeline-routing.cases.unit.test.d.ts +0 -2
  692. package/dist/__tests__/skin-pipeline-routing.cases.unit.test.d.ts.map +0 -1
  693. package/dist/__tests__/skin.cases.unit.test.d.ts +0 -2
  694. package/dist/__tests__/skin.cases.unit.test.d.ts.map +0 -1
  695. package/dist/__tests__/skinned-shadow-mixed.dawn.test.d.ts +0 -2
  696. package/dist/__tests__/skinned-shadow-mixed.dawn.test.d.ts.map +0 -1
  697. package/dist/__tests__/skybox-extract.cases.unit.test.d.ts +0 -2
  698. package/dist/__tests__/skybox-extract.cases.unit.test.d.ts.map +0 -1
  699. package/dist/__tests__/skybox-shader-compile.cases.unit.test.d.ts +0 -2
  700. package/dist/__tests__/skybox-shader-compile.cases.unit.test.d.ts.map +0 -1
  701. package/dist/__tests__/skylight-bind-group.cases.unit.test.d.ts +0 -2
  702. package/dist/__tests__/skylight-bind-group.cases.unit.test.d.ts.map +0 -1
  703. package/dist/__tests__/skylight-component.cases.unit.test.d.ts +0 -2
  704. package/dist/__tests__/skylight-component.cases.unit.test.d.ts.map +0 -1
  705. package/dist/__tests__/skylight-fallback-path.cases.unit.test.d.ts +0 -2
  706. package/dist/__tests__/skylight-fallback-path.cases.unit.test.d.ts.map +0 -1
  707. package/dist/__tests__/skylight-lazy-projection.test.d.ts +0 -2
  708. package/dist/__tests__/skylight-lazy-projection.test.d.ts.map +0 -1
  709. package/dist/__tests__/skylight-pipeline-layout.cases.unit.test.d.ts +0 -2
  710. package/dist/__tests__/skylight-pipeline-layout.cases.unit.test.d.ts.map +0 -1
  711. package/dist/__tests__/skylight-solid-color-extract.cases.unit.test.d.ts +0 -2
  712. package/dist/__tests__/skylight-solid-color-extract.cases.unit.test.d.ts.map +0 -1
  713. package/dist/__tests__/sparse-tag-scene-roundtrip.test.d.ts +0 -2
  714. package/dist/__tests__/sparse-tag-scene-roundtrip.test.d.ts.map +0 -1
  715. package/dist/__tests__/sprite-animation-tick-boundary.cases.unit.test.d.ts +0 -2
  716. package/dist/__tests__/sprite-animation-tick-boundary.cases.unit.test.d.ts.map +0 -1
  717. package/dist/__tests__/sprite-animation-tick-clamp.cases.unit.test.d.ts +0 -2
  718. package/dist/__tests__/sprite-animation-tick-clamp.cases.unit.test.d.ts.map +0 -1
  719. package/dist/__tests__/sprite-animation-tick-frame-duration-negative.cases.unit.test.d.ts +0 -2
  720. package/dist/__tests__/sprite-animation-tick-frame-duration-negative.cases.unit.test.d.ts.map +0 -1
  721. package/dist/__tests__/sprite-animation-tick-frame-duration-zero.cases.unit.test.d.ts +0 -2
  722. package/dist/__tests__/sprite-animation-tick-frame-duration-zero.cases.unit.test.d.ts.map +0 -1
  723. package/dist/__tests__/sprite-animation-tick-loop.cases.unit.test.d.ts +0 -2
  724. package/dist/__tests__/sprite-animation-tick-loop.cases.unit.test.d.ts.map +0 -1
  725. package/dist/__tests__/sprite-animation-tick-override-probe.cases.unit.test.d.ts +0 -2
  726. package/dist/__tests__/sprite-animation-tick-override-probe.cases.unit.test.d.ts.map +0 -1
  727. package/dist/__tests__/sprite-animation-tick-regions-mismatch.cases.unit.test.d.ts +0 -2
  728. package/dist/__tests__/sprite-animation-tick-regions-mismatch.cases.unit.test.d.ts.map +0 -1
  729. package/dist/__tests__/sprite-cullmode-flip.dawn.test.d.ts +0 -2
  730. package/dist/__tests__/sprite-cullmode-flip.dawn.test.d.ts.map +0 -1
  731. package/dist/__tests__/sprite-lit-bgl-byte-identical.test.d.ts +0 -2
  732. package/dist/__tests__/sprite-lit-bgl-byte-identical.test.d.ts.map +0 -1
  733. package/dist/__tests__/sprite-lit-extract-branch.test.d.ts +0 -2
  734. package/dist/__tests__/sprite-lit-extract-branch.test.d.ts.map +0 -1
  735. package/dist/__tests__/sprite-lit-pipeline-cache-key.test.d.ts +0 -2
  736. package/dist/__tests__/sprite-lit-pipeline-cache-key.test.d.ts.map +0 -1
  737. package/dist/__tests__/sprite-param-values.test-d.d.ts +0 -2
  738. package/dist/__tests__/sprite-param-values.test-d.d.ts.map +0 -1
  739. package/dist/__tests__/ssao-bgl.test.d.ts +0 -2
  740. package/dist/__tests__/ssao-bgl.test.d.ts.map +0 -1
  741. package/dist/__tests__/ssao-buffers.test.d.ts +0 -2
  742. package/dist/__tests__/ssao-buffers.test.d.ts.map +0 -1
  743. package/dist/__tests__/ssao-data.test.d.ts +0 -2
  744. package/dist/__tests__/ssao-data.test.d.ts.map +0 -1
  745. package/dist/__tests__/ssao-errors.test.d.ts +0 -2
  746. package/dist/__tests__/ssao-errors.test.d.ts.map +0 -1
  747. package/dist/__tests__/ssao-manifest.test.d.ts +0 -2
  748. package/dist/__tests__/ssao-manifest.test.d.ts.map +0 -1
  749. package/dist/__tests__/ssao-passes.test.d.ts +0 -2
  750. package/dist/__tests__/ssao-passes.test.d.ts.map +0 -1
  751. package/dist/__tests__/ssao-pipelines.test.d.ts +0 -2
  752. package/dist/__tests__/ssao-pipelines.test.d.ts.map +0 -1
  753. package/dist/__tests__/ssao-uniform-layout.test.d.ts +0 -2
  754. package/dist/__tests__/ssao-uniform-layout.test.d.ts.map +0 -1
  755. package/dist/__tests__/static-rig.integration.test.d.ts +0 -2
  756. package/dist/__tests__/static-rig.integration.test.d.ts.map +0 -1
  757. package/dist/__tests__/stencil-outline-pixel.dawn.test.d.ts +0 -2
  758. package/dist/__tests__/stencil-outline-pixel.dawn.test.d.ts.map +0 -1
  759. package/dist/__tests__/storage-buffer-caps.cases.unit.test.d.ts +0 -2
  760. package/dist/__tests__/storage-buffer-caps.cases.unit.test.d.ts.map +0 -1
  761. package/dist/__tests__/swap-chain-format.unit.test.d.ts +0 -2
  762. package/dist/__tests__/swap-chain-format.unit.test.d.ts.map +0 -1
  763. package/dist/__tests__/systems.cases.unit.test.d.ts +0 -2
  764. package/dist/__tests__/systems.cases.unit.test.d.ts.map +0 -1
  765. package/dist/__tests__/template-game-default-api-contract.test.d.ts +0 -2
  766. package/dist/__tests__/template-game-default-api-contract.test.d.ts.map +0 -1
  767. package/dist/__tests__/text.unit.test.d.ts +0 -2
  768. package/dist/__tests__/text.unit.test.d.ts.map +0 -1
  769. package/dist/__tests__/texture-dimensions.browser.test.d.ts +0 -2
  770. package/dist/__tests__/texture-dimensions.browser.test.d.ts.map +0 -1
  771. package/dist/__tests__/tilemap-childed-despawn.test.d.ts +0 -2
  772. package/dist/__tests__/tilemap-childed-despawn.test.d.ts.map +0 -1
  773. package/dist/__tests__/tilemap-chunk-extract.overhang-bounds.test.d.ts +0 -2
  774. package/dist/__tests__/tilemap-chunk-extract.overhang-bounds.test.d.ts.map +0 -1
  775. package/dist/__tests__/tilemap-chunk-extract.propagate-order.test.d.ts +0 -2
  776. package/dist/__tests__/tilemap-chunk-extract.propagate-order.test.d.ts.map +0 -1
  777. package/dist/__tests__/tilemap-chunk-extract.terrain-rewrite.unit.test.d.ts +0 -2
  778. package/dist/__tests__/tilemap-chunk-extract.terrain-rewrite.unit.test.d.ts.map +0 -1
  779. package/dist/__tests__/tilemap-chunk-extract.test.d.ts +0 -2
  780. package/dist/__tests__/tilemap-chunk-extract.test.d.ts.map +0 -1
  781. package/dist/__tests__/tilemap-chunk-extract.unit.test.d.ts +0 -2
  782. package/dist/__tests__/tilemap-chunk-extract.unit.test.d.ts.map +0 -1
  783. package/dist/__tests__/tilemap-chunk-y-sort-bench.unit.test.d.ts +0 -2
  784. package/dist/__tests__/tilemap-chunk-y-sort-bench.unit.test.d.ts.map +0 -1
  785. package/dist/__tests__/tilemap-dirty-rebuild.test.d.ts +0 -2
  786. package/dist/__tests__/tilemap-dirty-rebuild.test.d.ts.map +0 -1
  787. package/dist/__tests__/tilemap-material-cache.test.d.ts +0 -2
  788. package/dist/__tests__/tilemap-material-cache.test.d.ts.map +0 -1
  789. package/dist/__tests__/tilemap-multi-atlas.test.d.ts +0 -2
  790. package/dist/__tests__/tilemap-multi-atlas.test.d.ts.map +0 -1
  791. package/dist/__tests__/tilemap-owner-boundary.unit.test.d.ts +0 -2
  792. package/dist/__tests__/tilemap-owner-boundary.unit.test.d.ts.map +0 -1
  793. package/dist/__tests__/tilemap-region-pack.test.d.ts +0 -2
  794. package/dist/__tests__/tilemap-region-pack.test.d.ts.map +0 -1
  795. package/dist/__tests__/tilemap-spawn-flip-pivot.test.d.ts +0 -2
  796. package/dist/__tests__/tilemap-spawn-flip-pivot.test.d.ts.map +0 -1
  797. package/dist/__tests__/tilemap-uv-inset.test.d.ts +0 -2
  798. package/dist/__tests__/tilemap-uv-inset.test.d.ts.map +0 -1
  799. package/dist/__tests__/tilemap-validate.test.d.ts +0 -2
  800. package/dist/__tests__/tilemap-validate.test.d.ts.map +0 -1
  801. package/dist/__tests__/tileset-asset-validate.test.d.ts +0 -2
  802. package/dist/__tests__/tileset-asset-validate.test.d.ts.map +0 -1
  803. package/dist/__tests__/tonemap-hdr-target.cases.unit.test.d.ts +0 -2
  804. package/dist/__tests__/tonemap-hdr-target.cases.unit.test.d.ts.map +0 -1
  805. package/dist/__tests__/tonemap-pipeline-split.cases.unit.test.d.ts +0 -2
  806. package/dist/__tests__/tonemap-pipeline-split.cases.unit.test.d.ts.map +0 -1
  807. package/dist/__tests__/tonemap.cases.unit.test.d.ts +0 -2
  808. package/dist/__tests__/tonemap.cases.unit.test.d.ts.map +0 -1
  809. package/dist/__tests__/transcode-fallback.unit.test.d.ts +0 -2
  810. package/dist/__tests__/transcode-fallback.unit.test.d.ts.map +0 -1
  811. package/dist/__tests__/transform-hierarchy-pixel-diff.dawn.test.d.ts +0 -2
  812. package/dist/__tests__/transform-hierarchy-pixel-diff.dawn.test.d.ts.map +0 -1
  813. package/dist/__tests__/transient-fields-collect.test.d.ts +0 -2
  814. package/dist/__tests__/transient-fields-collect.test.d.ts.map +0 -1
  815. package/dist/__tests__/transient-runtime-behavior.test.d.ts +0 -2
  816. package/dist/__tests__/transient-runtime-behavior.test.d.ts.map +0 -1
  817. package/dist/__tests__/transitional-authoring.integration.test.d.ts +0 -2
  818. package/dist/__tests__/transitional-authoring.integration.test.d.ts.map +0 -1
  819. package/dist/__tests__/transparent-sort-config-get.cases.unit.test.d.ts +0 -2
  820. package/dist/__tests__/transparent-sort-config-get.cases.unit.test.d.ts.map +0 -1
  821. package/dist/__tests__/transparent-sort-config-set.cases.unit.test.d.ts +0 -2
  822. package/dist/__tests__/transparent-sort-config-set.cases.unit.test.d.ts.map +0 -1
  823. package/dist/__tests__/transparent-sort-tilemap-sprite-interleave.test.d.ts +0 -2
  824. package/dist/__tests__/transparent-sort-tilemap-sprite-interleave.test.d.ts.map +0 -1
  825. package/dist/__tests__/transparent-sort.cases.unit.test.d.ts +0 -2
  826. package/dist/__tests__/transparent-sort.cases.unit.test.d.ts.map +0 -1
  827. package/dist/__tests__/upload-texture-consistency.cases.unit.test.d.ts +0 -2
  828. package/dist/__tests__/upload-texture-consistency.cases.unit.test.d.ts.map +0 -1
  829. package/dist/__tests__/variant-selection.unit.test.d.ts +0 -2
  830. package/dist/__tests__/variant-selection.unit.test.d.ts.map +0 -1
  831. package/dist/__tests__/verify-revisions.cases.unit.test.d.ts +0 -2
  832. package/dist/__tests__/verify-revisions.cases.unit.test.d.ts.map +0 -1
  833. package/dist/__tests__/vertex-attribute-layout.test.d.ts +0 -2
  834. package/dist/__tests__/vertex-attribute-layout.test.d.ts.map +0 -1
  835. package/dist/__tests__/video-extract-bindgroup.dawn.test.d.ts +0 -2
  836. package/dist/__tests__/video-extract-bindgroup.dawn.test.d.ts.map +0 -1
  837. package/dist/__tests__/video-loader-consumption.test.d.ts +0 -2
  838. package/dist/__tests__/video-loader-consumption.test.d.ts.map +0 -1
  839. package/dist/__tests__/video-loader-smoke.dawn.test.d.ts +0 -2
  840. package/dist/__tests__/video-loader-smoke.dawn.test.d.ts.map +0 -1
  841. package/dist/__tests__/view-ubo-layout.browser.test.d.ts +0 -2
  842. package/dist/__tests__/view-ubo-layout.browser.test.d.ts.map +0 -1
  843. package/dist/__tests__/volumetric-fog-record-recovery.integration.test.d.ts +0 -2
  844. package/dist/__tests__/volumetric-fog-record-recovery.integration.test.d.ts.map +0 -1
  845. package/dist/__tests__/wire-default-loaders.cases.unit.test.d.ts +0 -2
  846. package/dist/__tests__/wire-default-loaders.cases.unit.test.d.ts.map +0 -1
  847. package/dist/__tests__/world-entity-key.test.d.ts +0 -2
  848. package/dist/__tests__/world-entity-key.test.d.ts.map +0 -1
  849. package/dist/__tests__/world-scene-despawn.test.d.ts +0 -2
  850. package/dist/__tests__/world-scene-despawn.test.d.ts.map +0 -1
  851. package/dist/__tests__/world-scene-instantiate.test.d.ts +0 -2
  852. package/dist/__tests__/world-scene-instantiate.test.d.ts.map +0 -1
  853. package/dist/__tests__/world-scene-nested.test.d.ts +0 -2
  854. package/dist/__tests__/world-scene-nested.test.d.ts.map +0 -1
  855. package/dist/__tests__/world-scene-override.test.d.ts +0 -2
  856. package/dist/__tests__/world-scene-override.test.d.ts.map +0 -1
  857. package/dist/__tests__/zero-camera-clear-fallback.cases.unit.test.d.ts +0 -2
  858. package/dist/__tests__/zero-camera-clear-fallback.cases.unit.test.d.ts.map +0 -1
  859. package/dist/__tests__/zero-compression-zero-load.integration.test.d.ts +0 -2
  860. package/dist/__tests__/zero-compression-zero-load.integration.test.d.ts.map +0 -1
  861. package/dist/components/__tests__/camera.test-d.d.ts +0 -2
  862. package/dist/components/__tests__/camera.test-d.d.ts.map +0 -1
  863. package/dist/components/__tests__/camera.test.d.ts +0 -2
  864. package/dist/components/__tests__/camera.test.d.ts.map +0 -1
  865. package/dist/components/__tests__/child-of.test.d.ts +0 -2
  866. package/dist/components/__tests__/child-of.test.d.ts.map +0 -1
  867. package/dist/components/__tests__/sprite-animation.test-d.d.ts +0 -2
  868. package/dist/components/__tests__/sprite-animation.test-d.d.ts.map +0 -1
  869. package/dist/components/__tests__/sprite-instances.unit.test.d.ts +0 -2
  870. package/dist/components/__tests__/sprite-instances.unit.test.d.ts.map +0 -1
  871. package/dist/components/__tests__/sprite-region-override.test-d.d.ts +0 -2
  872. package/dist/components/__tests__/sprite-region-override.test-d.d.ts.map +0 -1
  873. package/dist/components/__tests__/tile-layer.test-d.d.ts +0 -2
  874. package/dist/components/__tests__/tile-layer.test-d.d.ts.map +0 -1
  875. package/dist/components/__tests__/tile-layer.unit.test.d.ts +0 -2
  876. package/dist/components/__tests__/tile-layer.unit.test.d.ts.map +0 -1
  877. package/dist/components/__tests__/tilemap.test-d.d.ts +0 -2
  878. package/dist/components/__tests__/tilemap.test-d.d.ts.map +0 -1
  879. package/dist/components/__tests__/transform-vec-schema.test.d.ts +0 -2
  880. package/dist/components/__tests__/transform-vec-schema.test.d.ts.map +0 -1
  881. package/dist/scene-instances/__tests__/post-spawn-resolve-joints.unit.test.d.ts +0 -2
  882. package/dist/scene-instances/__tests__/post-spawn-resolve-joints.unit.test.d.ts.map +0 -1
  883. package/dist/systems/__tests__/_xorshift.d.ts +0 -28
  884. package/dist/systems/__tests__/_xorshift.d.ts.map +0 -1
  885. package/dist/systems/__tests__/argsort-in-place.test.d.ts +0 -2
  886. package/dist/systems/__tests__/argsort-in-place.test.d.ts.map +0 -1
  887. package/dist/systems/__tests__/transparent-sort.bench.d.ts +0 -2
  888. package/dist/systems/__tests__/transparent-sort.bench.d.ts.map +0 -1
@@ -0,0 +1,350 @@
1
+ import { forgeaxBundlerAdapter } from 'virtual:forgeax/bundler';
2
+ import { createRuntimeAssetImportTransport, runtimeBinding } from 'virtual:forgeax/pack-runtime';
3
+ import { World } from '@forgeax/engine-ecs';
4
+ import type { Renderer } from '@forgeax/engine-render';
5
+ import type { MaterialAsset } from '@forgeax/engine-types';
6
+ import { afterEach, describe, expect, it } from 'vitest';
7
+ import { page } from 'vitest/browser';
8
+ import { constructRuntimeRendererHost } from '../renderer-host';
9
+ import {
10
+ assertMaterialPayload,
11
+ assertSurfacePixelFalsification,
12
+ parseSurfaceGuid,
13
+ populateSurfaceWorld,
14
+ SURFACE_CASES,
15
+ SURFACE_CLOSURE,
16
+ SURFACE_HEIGHT,
17
+ SURFACE_WIDTH,
18
+ } from './surface-standard-pipeline.runtime-fixture';
19
+
20
+ const evidenceEnv = (import.meta as ImportMeta & { env?: Record<string, string | undefined> }).env;
21
+ const EVIDENCE_SOURCE_SHA = evidenceEnv?.VITE_FORGEAX_EVIDENCE_SOURCE_SHA ?? 'unavailable';
22
+ const EVIDENCE_BUILD_ID = evidenceEnv?.VITE_FORGEAX_EVIDENCE_BUILD_ID ?? 'unavailable';
23
+
24
+ type SurfaceReadback = {
25
+ pixels: Uint8Array;
26
+ width: number;
27
+ height: number;
28
+ bytesPerRow: number;
29
+ format: string;
30
+ };
31
+
32
+ async function readScreenshotPixels(canvas: HTMLCanvasElement): Promise<{
33
+ pixels: Uint8Array;
34
+ width: number;
35
+ height: number;
36
+ bytesPerRow: number;
37
+ format: string;
38
+ }> {
39
+ let latest: Uint8Array | undefined;
40
+ let width = canvas.width;
41
+ let height = canvas.height;
42
+ for (let attempt = 0; attempt < 6; attempt += 1) {
43
+ await new Promise<void>((resolve) => requestAnimationFrame(() => resolve()));
44
+ await new Promise<void>((resolve) => setTimeout(resolve, 25));
45
+ const shot = await page.elementLocator(canvas).screenshot({ base64: true, save: false });
46
+ const b64 = typeof shot === 'string' ? shot : shot.base64;
47
+ const binary = atob(b64);
48
+ const bytes = new Uint8Array(binary.length);
49
+ for (let index = 0; index < binary.length; index += 1) bytes[index] = binary.charCodeAt(index);
50
+ const bitmap = await createImageBitmap(new Blob([bytes], { type: 'image/png' }));
51
+ width = bitmap.width;
52
+ height = bitmap.height;
53
+ const offscreen = new OffscreenCanvas(width, height);
54
+ const context = offscreen.getContext('2d', { willReadFrequently: true });
55
+ if (context === null) {
56
+ bitmap.close();
57
+ throw new Error('surface-standard: OffscreenCanvas 2D context unavailable for screenshot');
58
+ }
59
+ context.drawImage(bitmap, 0, 0);
60
+ const image = context.getImageData(0, 0, width, height);
61
+ bitmap.close();
62
+ latest = new Uint8Array(image.data.buffer, image.data.byteOffset, image.data.byteLength);
63
+ if (latest.some((value, index) => index % 4 !== 3 && value !== 0)) break;
64
+ }
65
+ return {
66
+ pixels: latest ?? new Uint8Array(width * height * 4),
67
+ width,
68
+ height,
69
+ bytesPerRow: width * 4,
70
+ format: 'rgba8unorm',
71
+ };
72
+ }
73
+
74
+ function hasPixelSignal(readback: SurfaceReadback): boolean {
75
+ for (let offset = 0; offset < readback.pixels.length; offset += 4) {
76
+ if (
77
+ (readback.pixels[offset] ?? 0) !== 0 ||
78
+ (readback.pixels[offset + 1] ?? 0) !== 0 ||
79
+ (readback.pixels[offset + 2] ?? 0) !== 0
80
+ ) {
81
+ return true;
82
+ }
83
+ }
84
+ return false;
85
+ }
86
+
87
+ function samplePresentedPixel(
88
+ readback: SurfaceReadback,
89
+ index: number,
90
+ ): readonly [number, number, number, number] {
91
+ const startX = Math.floor((index * readback.width) / SURFACE_CASES.length);
92
+ const endX = Math.floor(((index + 1) * readback.width) / SURFACE_CASES.length);
93
+ const candidates: Array<readonly [number, number, number, number]> = [];
94
+ for (let y = 0; y < readback.height; y += 8) {
95
+ for (let x = startX; x < endX; x += 8) {
96
+ const offset = y * readback.bytesPerRow + x * 4;
97
+ const raw = [
98
+ readback.pixels[offset] ?? 0,
99
+ readback.pixels[offset + 1] ?? 0,
100
+ readback.pixels[offset + 2] ?? 0,
101
+ readback.pixels[offset + 3] ?? 0,
102
+ ] as const;
103
+ const rgb = readback.format.startsWith('bgra') ? [raw[2], raw[1], raw[0]] : raw;
104
+ const brightness = rgb[0] + rgb[1] + rgb[2];
105
+ // The screenshot fallback is composited over a white page. Sample the
106
+ // median lit/non-white texel in each cell so a center point landing on
107
+ // that compositor background cannot hide a real Surface difference.
108
+ if (brightness > 0 && brightness < 750) {
109
+ candidates.push([rgb[0], rgb[1], rgb[2], raw[3]]);
110
+ }
111
+ }
112
+ }
113
+ candidates.sort((left, right) => left[0] + left[1] + left[2] - (right[0] + right[1] + right[2]));
114
+ const selected = candidates[Math.floor(candidates.length / 2)];
115
+ if (selected !== undefined) return selected;
116
+ const x = Math.min(
117
+ readback.width - 1,
118
+ Math.max(0, Math.floor(((index + 0.5) * readback.width) / SURFACE_CASES.length)),
119
+ );
120
+ const offset = Math.floor(readback.height / 2) * readback.bytesPerRow + x * 4;
121
+ const raw = [
122
+ readback.pixels[offset] ?? 0,
123
+ readback.pixels[offset + 1] ?? 0,
124
+ readback.pixels[offset + 2] ?? 0,
125
+ readback.pixels[offset + 3] ?? 0,
126
+ ] as const;
127
+ return readback.format.startsWith('bgra') ? [raw[2], raw[1], raw[0], raw[3]] : raw;
128
+ }
129
+
130
+ async function refreshSurfaceCatalog(
131
+ assets: { refreshCatalog(): Promise<boolean>; listCatalog(): readonly unknown[] },
132
+ expectedGuids: readonly string[],
133
+ ): Promise<readonly unknown[]> {
134
+ const deadline = Date.now() + 60_000;
135
+ while (Date.now() < deadline) {
136
+ await assets.refreshCatalog();
137
+ const catalog = assets.listCatalog();
138
+ const observed = new Set(
139
+ catalog
140
+ .filter((entry): entry is { guid: string } => {
141
+ return (
142
+ typeof entry === 'object' &&
143
+ entry !== null &&
144
+ 'guid' in entry &&
145
+ typeof entry.guid === 'string'
146
+ );
147
+ })
148
+ .map((entry) => entry.guid.toLowerCase()),
149
+ );
150
+ if (expectedGuids.every((guid) => observed.has(guid.toLowerCase()))) return catalog;
151
+ await new Promise((resolve) => setTimeout(resolve, 250));
152
+ }
153
+ return assets.listCatalog();
154
+ }
155
+
156
+ describe('Standard Surface runtime Browser WebGPU provenance', () => {
157
+ let renderer: Renderer | undefined;
158
+ let canvas: HTMLCanvasElement | undefined;
159
+
160
+ afterEach(async () => {
161
+ await renderer?.dispose();
162
+ canvas?.remove();
163
+ renderer = undefined;
164
+ canvas = undefined;
165
+ });
166
+
167
+ it('loads one published tuple per GUID and renders every cell through Runtime Renderer', {
168
+ timeout: 120_000,
169
+ }, async () => {
170
+ if (runtimeBinding === undefined) {
171
+ throw new Error('surface-standard: Pack runtime binding unavailable in Browser Vitest');
172
+ }
173
+ canvas = document.createElement('canvas');
174
+ canvas.id = 'surface-standard-pipeline-test-canvas';
175
+ canvas.width = SURFACE_WIDTH;
176
+ canvas.height = SURFACE_HEIGHT;
177
+ // Keep the full four-cell evidence surface inside the Browser Vitest
178
+ // viewport. Playwright clips an oversized element screenshot to the
179
+ // available viewport, which would otherwise turn the right two cells into
180
+ // compositor-white pixels instead of a real Surface observation.
181
+ const displayWidth = Math.min(SURFACE_WIDTH, Math.max(320, window.innerWidth - 32));
182
+ const displayHeight = Math.round((displayWidth * SURFACE_HEIGHT) / SURFACE_WIDTH);
183
+ canvas.style.width = `${displayWidth}px`;
184
+ canvas.style.height = `${displayHeight}px`;
185
+ document.body.append(canvas);
186
+ const webgpuContext = canvas.getContext('webgpu');
187
+ if (webgpuContext === null) {
188
+ throw new Error('surface-standard: WebGPU canvas context unavailable');
189
+ }
190
+ const bundler = forgeaxBundlerAdapter();
191
+ const constructed = await constructRuntimeRendererHost(
192
+ canvas,
193
+ {},
194
+ {
195
+ ...bundler,
196
+ importTransport: createRuntimeAssetImportTransport(runtimeBinding),
197
+ },
198
+ );
199
+ expect(constructed.ok).toBe(true);
200
+ if (!constructed.ok) throw constructed.error;
201
+ const runtimeHost = constructed.value;
202
+ renderer = runtimeHost.renderer;
203
+ const assets = runtimeHost.assets;
204
+ assets.configureRuntimeBinding(runtimeBinding);
205
+ const catalog = (await refreshSurfaceCatalog(
206
+ assets,
207
+ SURFACE_CASES.map((surfaceCase) => surfaceCase.guid),
208
+ )) as readonly {
209
+ guid: string;
210
+ sourceKey?: string;
211
+ packageUrl?: string;
212
+ }[];
213
+ const seenGuids = new Set<string>();
214
+ const materials: MaterialAsset[] = [];
215
+ const publications = [];
216
+ for (const surfaceCase of SURFACE_CASES) {
217
+ const row = catalog.find((entry) => entry.guid.toLowerCase() === surfaceCase.guid);
218
+ expect(row?.sourceKey).toBe(surfaceCase.sourceKey);
219
+ expect(row?.packageUrl).toBeTruthy();
220
+ const packageResponse = await fetch(row?.packageUrl ?? '');
221
+ expect(packageResponse.ok).toBe(true);
222
+ const packageBody = await packageResponse.json();
223
+ const publication = packageBody as {
224
+ generation?: unknown;
225
+ digest?: unknown;
226
+ };
227
+ expect(Number.isSafeInteger(publication.generation)).toBe(true);
228
+ expect(typeof publication.digest).toBe('string');
229
+ const loaded = await assets.loadByGuid<MaterialAsset>(parseSurfaceGuid(surfaceCase.guid));
230
+ expect(loaded.ok).toBe(true);
231
+ if (!loaded.ok) throw loaded.error;
232
+ const material = assertMaterialPayload(surfaceCase, loaded.value);
233
+ const projection = assets.getMaterialProjectionForPayload(material);
234
+ if (surfaceCase.id.startsWith('custom-')) {
235
+ expect(projection?.specializationKey).toBeTruthy();
236
+ expect(
237
+ projection === undefined
238
+ ? undefined
239
+ : assets.getMaterialArtifact(projection.specializationKey),
240
+ ).toBeDefined();
241
+ }
242
+ materials.push(material);
243
+ publications.push({ surfaceCase, row, publication, material });
244
+ seenGuids.add(surfaceCase.guid);
245
+ }
246
+ const world = new World();
247
+ populateSurfaceWorld(world, materials);
248
+ const renderErrors: Array<{ code: string; detail?: unknown; hint?: string }> = [];
249
+ const unsubscribeRenderErrors = renderer.subscribe((event) => {
250
+ if (event.kind === 'error') {
251
+ renderErrors.push({
252
+ code: event.error.code,
253
+ detail: event.error.detail,
254
+ hint: event.error.hint,
255
+ });
256
+ }
257
+ });
258
+ const attached = renderer?.attach(world);
259
+ if (attached === undefined) throw new Error('surface-standard: renderer unavailable');
260
+ expect(attached.ok).toBe(true);
261
+ if (!attached.ok) throw attached.error;
262
+ // Standard material pipelines are compiled lazily on their first use. Keep
263
+ // submitting frames until the renderer has had a chance to publish the
264
+ // ready PSOs before inspecting the presented surface.
265
+ for (let frame = 0; frame < 6; frame += 1) {
266
+ world.update(1 / 60).unwrap();
267
+ const drawn = renderer.draw({
268
+ leases: [attached.value],
269
+ camera: { lease: attached.value },
270
+ environment: { lease: attached.value },
271
+ });
272
+ expect(drawn.ok).toBe(true);
273
+ if (!drawn.ok) throw drawn.error;
274
+ const completion = await drawn.value.completed;
275
+ expect(completion.ok).toBe(true);
276
+ if (!completion.ok) throw completion.error;
277
+ }
278
+ const observed = renderer.inspect();
279
+ expect(renderErrors).toHaveLength(0);
280
+ expect(observed.perFramePassNames.some((name) => name.toLowerCase().includes('shadow'))).toBe(
281
+ true,
282
+ );
283
+ expect(observed.perFramePassNames).toContain('main');
284
+ const screenshotReadback = await readScreenshotPixels(canvas);
285
+ expect(hasPixelSignal(screenshotReadback)).toBe(true);
286
+ const readback = screenshotReadback;
287
+ const records = publications.map(({ surfaceCase, row, publication, material }, index) => {
288
+ const samples = samplePresentedPixel(readback, index);
289
+ const program = material.passes?.[0]?.program;
290
+ expect(samples[3]).toBeGreaterThan(0);
291
+ expect(samples[0] + samples[1] + samples[2]).toBeGreaterThan(0);
292
+ return {
293
+ id: surfaceCase.id,
294
+ materialGuid: surfaceCase.guid,
295
+ sourceKey: row?.sourceKey,
296
+ publicationGeneration: publication.generation,
297
+ publicationDigest: publication.digest,
298
+ closure: SURFACE_CLOSURE,
299
+ rootPlan: surfaceCase.rootPlan,
300
+ pass: surfaceCase.pass,
301
+ actualPasses: material.passes?.map((entry) => entry.name),
302
+ selectedEntries: material.passes?.map((entry) => ({
303
+ name: entry.name,
304
+ fragmentEntry: entry.program.fragmentEntry,
305
+ lightMode: (entry.renderState?.tags as Record<string, string> | undefined)?.LightMode,
306
+ })),
307
+ cookIdentity: publication.digest,
308
+ programIdentity: program?.module ?? 'unavailable',
309
+ pipelineIdentity: `${surfaceCase.pass}:${surfaceCase.rootPlan}:${program?.module ?? 'unavailable'}`,
310
+ sourceClosure: surfaceCase.sourceClosure,
311
+ samples,
312
+ frameId: observed.observation.frameId,
313
+ backend: observed.capabilities.backendKind,
314
+ artifact: row?.packageUrl,
315
+ provenance: {
316
+ sourceSha: EVIDENCE_SOURCE_SHA,
317
+ buildId: EVIDENCE_BUILD_ID,
318
+ frameId: observed.observation.frameId,
319
+ artifact: row?.packageUrl,
320
+ readbackKind: 'compositor-screenshot',
321
+ readbackFormat: readback.format,
322
+ readbackWidth: readback.width,
323
+ readbackHeight: readback.height,
324
+ clearColor: [0, 0, 0, 1],
325
+ closure: SURFACE_CLOSURE,
326
+ rootPlan: surfaceCase.rootPlan,
327
+ pass: surfaceCase.pass,
328
+ actualPasses: material.passes?.map((entry) => entry.name),
329
+ selectedEntries: material.passes?.map((entry) => ({
330
+ name: entry.name,
331
+ fragmentEntry: entry.program.fragmentEntry,
332
+ lightMode: (entry.renderState?.tags as Record<string, string> | undefined)?.LightMode,
333
+ })),
334
+ cookIdentity: publication.digest,
335
+ programIdentity: program?.module ?? 'unavailable',
336
+ pipelineIdentity: `${surfaceCase.pass}:${surfaceCase.rootPlan}:${program?.module ?? 'unavailable'}`,
337
+ sourceClosure: surfaceCase.sourceClosure,
338
+ lane: 'browser-webgpu',
339
+ },
340
+ };
341
+ });
342
+ expect(seenGuids).toHaveLength(4);
343
+ expect(records).toHaveLength(4);
344
+ assertSurfacePixelFalsification(records);
345
+ expect(records.every((record) => record.backend === 'webgpu')).toBe(true);
346
+ // biome-ignore lint/suspicious/noConsole: runtime provenance is the test artifact.
347
+ console.log(JSON.stringify({ backend: 'browser-webgpu', lane: 'runtime', records }));
348
+ unsubscribeRenderErrors();
349
+ });
350
+ });
@@ -0,0 +1,346 @@
1
+ import { execFileSync } from 'node:child_process';
2
+ import { createServer as createTcpServer } from 'node:net';
3
+ import { dirname, resolve } from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+ import { World } from '@forgeax/engine-ecs';
6
+ import type { Renderer } from '@forgeax/engine-render';
7
+ import type { MaterialAsset } from '@forgeax/engine-types';
8
+ import {
9
+ createStandaloneRuntimeAssetBinding,
10
+ type RuntimeAssetBinding,
11
+ } from '@forgeax/engine-types';
12
+ import { createServer, loadConfigFromFile } from 'vite';
13
+ import { afterEach, describe, expect, it } from 'vitest';
14
+ import { createDevImportTransport } from '../dev-import-transport';
15
+ import { constructRuntimeRendererHost } from '../renderer-host';
16
+ import {
17
+ assertMaterialPayload,
18
+ assertSurfacePixelFalsification,
19
+ parseSurfaceGuid,
20
+ populateSurfaceWorld,
21
+ SURFACE_CASES,
22
+ SURFACE_CLOSURE,
23
+ SURFACE_HEIGHT,
24
+ SURFACE_WIDTH,
25
+ } from './surface-standard-pipeline.runtime-fixture';
26
+
27
+ const rootDir = resolve(dirname(fileURLToPath(import.meta.url)), '../../../..');
28
+ const EVIDENCE_SOURCE_SHA = execFileSync('git', ['rev-parse', 'HEAD'], {
29
+ cwd: rootDir,
30
+ encoding: 'utf8',
31
+ }).trim();
32
+ const EVIDENCE_BUILD_ID = `vitest-dawn-${EVIDENCE_SOURCE_SHA.slice(0, 12)}`;
33
+
34
+ async function loadPreviewConfig() {
35
+ const previousSurfaceOnly = process.env.FORGEAX_SURFACE_ONLY;
36
+ process.env.FORGEAX_SURFACE_ONLY = '1';
37
+ try {
38
+ const loaded = await loadConfigFromFile(
39
+ { command: 'serve', mode: 'test', isSsrBuild: false, isPreview: false },
40
+ resolve(rootDir, 'apps/preview/vite.config.ts'),
41
+ rootDir,
42
+ );
43
+ if (loaded === null) throw new Error('surface-standard: Preview Vite config unavailable');
44
+ return loaded.config;
45
+ } finally {
46
+ if (previousSurfaceOnly === undefined) delete process.env.FORGEAX_SURFACE_ONLY;
47
+ else process.env.FORGEAX_SURFACE_ONLY = previousSurfaceOnly;
48
+ }
49
+ }
50
+
51
+ async function allocateLoopbackPort(): Promise<number> {
52
+ const probe = createTcpServer();
53
+ try {
54
+ await new Promise<void>((resolveListen, rejectListen) => {
55
+ const onError = (error: Error): void => {
56
+ probe.off('listening', onListening);
57
+ rejectListen(error);
58
+ };
59
+ const onListening = (): void => {
60
+ probe.off('error', onError);
61
+ resolveListen();
62
+ };
63
+ probe.once('error', onError);
64
+ probe.once('listening', onListening);
65
+ probe.listen(0, '127.0.0.1');
66
+ });
67
+ const address = probe.address();
68
+ if (address === null || typeof address === 'string') {
69
+ throw new Error('surface-standard: loopback port probe did not expose a TCP address');
70
+ }
71
+ expect(address.port).toBeGreaterThan(0);
72
+ return address.port;
73
+ } finally {
74
+ if (probe.listening) {
75
+ await new Promise<void>((resolveClose) => probe.close(() => resolveClose()));
76
+ }
77
+ }
78
+ }
79
+
80
+ const BYTES_PER_ROW = Math.ceil((SURFACE_WIDTH * 4) / 256) * 256;
81
+ const TEXTURE_USAGE_COPY_SRC = 0x01;
82
+ const TEXTURE_USAGE_RENDER_ATTACHMENT = 0x10;
83
+ const BUFFER_USAGE_MAP_READ = 0x0001;
84
+ const BUFFER_USAGE_COPY_DST = 0x0008;
85
+ const MAP_MODE_READ = 0x0001;
86
+ const DAWN_TEARDOWN_TIMEOUT_MS = 60_000;
87
+
88
+ type DawnCanvas = HTMLCanvasElement & { target?: GPUTexture };
89
+
90
+ function absoluteBinding(binding: RuntimeAssetBinding, baseUrl: string): RuntimeAssetBinding {
91
+ return {
92
+ ...binding,
93
+ catalogUrl: new URL(binding.catalogUrl, baseUrl).href,
94
+ importUrlBase: new URL(binding.importUrlBase, baseUrl).href,
95
+ packageUrlBase: new URL(binding.packageUrlBase, baseUrl).href,
96
+ };
97
+ }
98
+
99
+ function createDawnCanvas(onDevice: (device: GPUDevice) => void): DawnCanvas {
100
+ const canvas = {
101
+ width: SURFACE_WIDTH,
102
+ height: SURFACE_HEIGHT,
103
+ getContext(kind: string): unknown {
104
+ if (kind !== 'webgpu') return null;
105
+ return {
106
+ configure(descriptor: { device: GPUDevice; format?: GPUTextureFormat }) {
107
+ onDevice(descriptor.device);
108
+ canvas.target = descriptor.device.createTexture({
109
+ size: { width: SURFACE_WIDTH, height: SURFACE_HEIGHT, depthOrArrayLayers: 1 },
110
+ format: descriptor.format ?? 'rgba8unorm',
111
+ usage: TEXTURE_USAGE_RENDER_ATTACHMENT | TEXTURE_USAGE_COPY_SRC,
112
+ viewFormats: ['rgba8unorm-srgb'],
113
+ });
114
+ },
115
+ unconfigure() {},
116
+ getCurrentTexture() {
117
+ if (canvas.target === undefined)
118
+ throw new Error('surface-standard: target not configured');
119
+ return canvas.target;
120
+ },
121
+ };
122
+ },
123
+ addEventListener() {},
124
+ removeEventListener() {},
125
+ } as unknown as DawnCanvas;
126
+ return canvas;
127
+ }
128
+
129
+ async function readPresentedPixels(device: GPUDevice, texture: GPUTexture): Promise<Uint8Array> {
130
+ const buffer = device.createBuffer({
131
+ size: BYTES_PER_ROW * SURFACE_HEIGHT,
132
+ usage: BUFFER_USAGE_MAP_READ | BUFFER_USAGE_COPY_DST,
133
+ });
134
+ const encoder = device.createCommandEncoder();
135
+ encoder.copyTextureToBuffer(
136
+ { texture },
137
+ { buffer, bytesPerRow: BYTES_PER_ROW, rowsPerImage: SURFACE_HEIGHT },
138
+ { width: SURFACE_WIDTH, height: SURFACE_HEIGHT, depthOrArrayLayers: 1 },
139
+ );
140
+ device.queue.submit([encoder.finish()]);
141
+ await device.queue.onSubmittedWorkDone();
142
+ await buffer.mapAsync(MAP_MODE_READ);
143
+ const pixels = new Uint8Array(buffer.getMappedRange().slice(0));
144
+ buffer.unmap();
145
+ buffer.destroy();
146
+ return pixels;
147
+ }
148
+
149
+ function samplePresentedPixel(
150
+ pixels: Uint8Array,
151
+ index: number,
152
+ ): readonly [number, number, number, number] {
153
+ const x = Math.min(
154
+ SURFACE_WIDTH - 1,
155
+ Math.max(0, Math.floor(((index + 0.5) * SURFACE_WIDTH) / SURFACE_CASES.length)),
156
+ );
157
+ const offset = Math.floor(SURFACE_HEIGHT / 2) * BYTES_PER_ROW + x * 4;
158
+ return [
159
+ pixels[offset] ?? 0,
160
+ pixels[offset + 1] ?? 0,
161
+ pixels[offset + 2] ?? 0,
162
+ pixels[offset + 3] ?? 0,
163
+ ];
164
+ }
165
+
166
+ describe('Standard Surface runtime Dawn publication', () => {
167
+ let renderer: Renderer | undefined;
168
+ let server: Awaited<ReturnType<typeof createServer>> | undefined;
169
+ let canvas: DawnCanvas | undefined;
170
+ let device: GPUDevice | undefined;
171
+
172
+ afterEach(async () => {
173
+ await renderer?.dispose();
174
+ if (canvas?.target !== undefined) canvas.target.destroy();
175
+ device?.destroy();
176
+ await server?.close();
177
+ renderer = undefined;
178
+ canvas = undefined;
179
+ device = undefined;
180
+ server = undefined;
181
+ }, DAWN_TEARDOWN_TIMEOUT_MS);
182
+
183
+ it('publishes and renders the same four cooked GUIDs through Dawn Runtime Renderer', async () => {
184
+ const binding = createStandaloneRuntimeAssetBinding('preview');
185
+ const previewInlineConfig = await loadPreviewConfig();
186
+ const previewServer = {
187
+ host: '127.0.0.1',
188
+ port: await allocateLoopbackPort(),
189
+ strictPort: true,
190
+ ...(previewInlineConfig.server?.fs === undefined
191
+ ? {}
192
+ : { fs: previewInlineConfig.server.fs }),
193
+ };
194
+ server = await createServer({
195
+ ...previewInlineConfig,
196
+ configFile: false,
197
+ root: resolve(rootDir, 'apps/preview'),
198
+ logLevel: 'error',
199
+ server: previewServer,
200
+ });
201
+ await server.listen();
202
+ const baseUrl = server.resolvedUrls?.local[0];
203
+ if (baseUrl === undefined)
204
+ throw new Error('surface-standard: Dawn publication server URL unavailable');
205
+ const liveBinding = absoluteBinding(binding, baseUrl);
206
+ const shaderManifestUrl = new URL('shaders/manifest.json', baseUrl).href;
207
+ canvas = createDawnCanvas((created) => {
208
+ device ??= created;
209
+ });
210
+ const constructed = await constructRuntimeRendererHost(
211
+ canvas,
212
+ {},
213
+ {
214
+ shaderManifestUrl,
215
+ importTransport: createDevImportTransport(liveBinding),
216
+ },
217
+ );
218
+ expect(constructed.ok).toBe(true);
219
+ if (!constructed.ok) throw constructed.error;
220
+ renderer = constructed.value.renderer;
221
+ const assets = constructed.value.assets;
222
+ assets.configureRuntimeBinding(liveBinding);
223
+ const catalogDeadline = Date.now() + 180_000;
224
+ while (!(await assets.refreshCatalog())) {
225
+ if (Date.now() >= catalogDeadline) {
226
+ throw new Error(
227
+ `surface-standard: timed out waiting for catalog ${liveBinding.catalogUrl}`,
228
+ );
229
+ }
230
+ await new Promise<void>((resolveWait) => setTimeout(resolveWait, 100));
231
+ }
232
+ const catalog = assets.listCatalog();
233
+ const materials: MaterialAsset[] = [];
234
+ const publications = [];
235
+ for (const surfaceCase of SURFACE_CASES) {
236
+ const row = catalog.find((entry) => entry.guid.toLowerCase() === surfaceCase.guid);
237
+ expect(row?.sourceKey).toBe(surfaceCase.sourceKey);
238
+ expect(row?.packageUrl).toMatch(/^http/);
239
+ const publicationResponse = await fetch(row?.packageUrl ?? '');
240
+ expect(publicationResponse.ok).toBe(true);
241
+ const publication = (await publicationResponse.json()) as {
242
+ generation?: unknown;
243
+ digest?: unknown;
244
+ };
245
+ expect(Number.isSafeInteger(publication.generation)).toBe(true);
246
+ expect(typeof publication.digest).toBe('string');
247
+ const loaded = await assets.loadByGuid<MaterialAsset>(parseSurfaceGuid(surfaceCase.guid));
248
+ expect(loaded.ok).toBe(true);
249
+ if (!loaded.ok) throw loaded.error;
250
+ const material = assertMaterialPayload(surfaceCase, loaded.value);
251
+ materials.push(material);
252
+ publications.push({ surfaceCase, row, publication, material });
253
+ }
254
+ const world = new World();
255
+ populateSurfaceWorld(world, materials);
256
+ const attached = renderer.attach(world);
257
+ expect(attached.ok).toBe(true);
258
+ if (!attached.ok) throw attached.error;
259
+ // Standard material pipelines are compiled lazily on first use. Submit
260
+ // enough frames for the authored Surface artifacts to publish their PSOs
261
+ // before taking the Dawn readback, matching the browser evidence lane.
262
+ for (let frame = 0; frame < 6; frame += 1) {
263
+ world.update(1 / 60).unwrap();
264
+ const drawn = renderer.draw({
265
+ leases: [attached.value],
266
+ camera: { lease: attached.value },
267
+ environment: { lease: attached.value },
268
+ });
269
+ expect(drawn.ok).toBe(true);
270
+ if (!drawn.ok) throw drawn.error;
271
+ const completion = await drawn.value.completed;
272
+ expect(completion.ok).toBe(true);
273
+ if (!completion.ok) throw completion.error;
274
+ }
275
+ if (device === undefined || canvas.target === undefined)
276
+ throw new Error('surface-standard: Dawn target unavailable');
277
+ const pixels = await readPresentedPixels(device, canvas.target);
278
+ const observed = renderer.inspect();
279
+ expect(observed.perFramePassNames.some((name) => name.toLowerCase().includes('shadow'))).toBe(
280
+ true,
281
+ );
282
+ expect(observed.perFramePassNames).toContain('main');
283
+ const records = publications.map(({ surfaceCase, row, publication, material }, index) => {
284
+ const samples = samplePresentedPixel(pixels, index);
285
+ const program = material.passes?.[0]?.program;
286
+ expect(samples[3]).toBe(255);
287
+ expect(samples[0] + samples[1] + samples[2]).toBeGreaterThan(0);
288
+ return {
289
+ id: surfaceCase.id,
290
+ materialGuid: surfaceCase.guid,
291
+ sourceKey: row?.sourceKey,
292
+ publicationGeneration: publication.generation,
293
+ publicationDigest: publication.digest,
294
+ closure: SURFACE_CLOSURE,
295
+ rootPlan: surfaceCase.rootPlan,
296
+ pass: surfaceCase.pass,
297
+ actualPasses: material.passes?.map((entry) => entry.name),
298
+ selectedEntries: material.passes?.map((entry) => ({
299
+ name: entry.name,
300
+ fragmentEntry: entry.program.fragmentEntry,
301
+ lightMode: (entry.renderState?.tags as Record<string, string> | undefined)?.LightMode,
302
+ })),
303
+ cookIdentity: publication.digest,
304
+ programIdentity: program?.module ?? 'unavailable',
305
+ pipelineIdentity: `${surfaceCase.pass}:${surfaceCase.rootPlan}:${program?.module ?? 'unavailable'}`,
306
+ sourceClosure: surfaceCase.sourceClosure,
307
+ backend: 'dawn-native',
308
+ backendKind: observed.capabilities.backendKind,
309
+ frameId: observed.observation.frameId,
310
+ samples,
311
+ artifact: row?.packageUrl,
312
+ provenance: {
313
+ sourceSha: EVIDENCE_SOURCE_SHA,
314
+ buildId: EVIDENCE_BUILD_ID,
315
+ frameId: observed.observation.frameId,
316
+ artifact: row?.packageUrl,
317
+ readbackKind: 'gpu-texture-copy',
318
+ readbackFormat: 'rgba8unorm',
319
+ readbackWidth: SURFACE_WIDTH,
320
+ readbackHeight: SURFACE_HEIGHT,
321
+ clearColor: [0, 0, 0, 1],
322
+ closure: SURFACE_CLOSURE,
323
+ rootPlan: surfaceCase.rootPlan,
324
+ pass: surfaceCase.pass,
325
+ actualPasses: material.passes?.map((entry) => entry.name),
326
+ selectedEntries: material.passes?.map((entry) => ({
327
+ name: entry.name,
328
+ fragmentEntry: entry.program.fragmentEntry,
329
+ lightMode: (entry.renderState?.tags as Record<string, string> | undefined)?.LightMode,
330
+ })),
331
+ cookIdentity: publication.digest,
332
+ programIdentity: program?.module ?? 'unavailable',
333
+ pipelineIdentity: `${surfaceCase.pass}:${surfaceCase.rootPlan}:${program?.module ?? 'unavailable'}`,
334
+ sourceClosure: surfaceCase.sourceClosure,
335
+ lane: 'dawn-native',
336
+ },
337
+ };
338
+ });
339
+ assertSurfacePixelFalsification(records);
340
+ expect(new Set(records.map((record) => record.materialGuid))).toHaveLength(4);
341
+ expect(records.every((record) => record.backend === 'dawn-native')).toBe(true);
342
+ expect(records.every((record) => record.backendKind === 'webgpu')).toBe(true);
343
+ // biome-ignore lint/suspicious/noConsole: runtime provenance is the test artifact.
344
+ console.log(JSON.stringify({ backend: 'dawn-native', lane: 'runtime', records }));
345
+ }, 120000);
346
+ });