@forgeax/engine-render 0.1.29 → 0.1.31

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 (350) hide show
  1. package/README.md +248 -21
  2. package/dist/assembly/atmosphere-shader-prewarm.d.ts +1 -1
  3. package/dist/assembly/atmosphere-shader-prewarm.d.ts.map +1 -1
  4. package/dist/assembly/device-feature-admission.d.ts +4 -3
  5. package/dist/assembly/device-feature-admission.d.ts.map +1 -1
  6. package/dist/assembly/dynamic-geometry-host.d.ts +6 -0
  7. package/dist/assembly/dynamic-geometry-host.d.ts.map +1 -1
  8. package/dist/assembly/host-contract.d.ts +6 -0
  9. package/dist/assembly/host-contract.d.ts.map +1 -1
  10. package/dist/assembly/material/assembly.d.ts +26 -3
  11. package/dist/assembly/material/assembly.d.ts.map +1 -1
  12. package/dist/assembly/material/pipeline-helpers.d.ts +24 -0
  13. package/dist/assembly/material/pipeline-helpers.d.ts.map +1 -0
  14. package/dist/assembly/material-shader-policy.d.ts.map +1 -1
  15. package/dist/assembly/recovery/device-loss-fanout.d.ts.map +1 -1
  16. package/dist/assembly/recovery/recovery-attempt.d.ts +1 -6
  17. package/dist/assembly/recovery/recovery-attempt.d.ts.map +1 -1
  18. package/dist/assembly/recovery/renderer-recover.d.ts +1 -0
  19. package/dist/assembly/recovery/renderer-recover.d.ts.map +1 -1
  20. package/dist/assembly/renderer-facade.d.ts.map +1 -1
  21. package/dist/assembly/shader-prewarm-policy.d.ts +1 -1
  22. package/dist/assembly/shader-prewarm-policy.d.ts.map +1 -1
  23. package/dist/assembly/webgpu-ready.d.ts +1 -1
  24. package/dist/assembly/webgpu-ready.d.ts.map +1 -1
  25. package/dist/assembly/webgpu-renderer.d.ts.map +1 -1
  26. package/dist/capture/scene-projection.d.ts +41 -0
  27. package/dist/capture/scene-projection.d.ts.map +1 -0
  28. package/dist/{chunk-BQVQOQJH.mjs → chunk-7MQ3XBSP.mjs} +20 -14
  29. package/dist/chunk-7MQ3XBSP.mjs.map +1 -0
  30. package/dist/{chunk-S4DNKQYQ.mjs → chunk-C3DDSXYK.mjs} +86 -33
  31. package/dist/chunk-C3DDSXYK.mjs.map +1 -0
  32. package/dist/{chunk-BTWH7BP4.mjs → chunk-FUUO4UND.mjs} +73 -29
  33. package/dist/chunk-FUUO4UND.mjs.map +1 -0
  34. package/dist/{chunk-NRNXBLIJ.mjs → chunk-JRBDO2KB.mjs} +46 -6
  35. package/dist/chunk-JRBDO2KB.mjs.map +1 -0
  36. package/dist/{chunk-NICXSHAT.mjs → chunk-MDQJPY3T.mjs} +8 -6
  37. package/dist/chunk-MDQJPY3T.mjs.map +1 -0
  38. package/dist/{chunk-JQTSEI3Z.mjs → chunk-NO4WZCAH.mjs} +3 -3
  39. package/dist/chunk-NO4WZCAH.mjs.map +1 -0
  40. package/dist/{chunk-FUODTTIA.mjs → chunk-PSEQ6QPH.mjs} +621 -108
  41. package/dist/chunk-PSEQ6QPH.mjs.map +1 -0
  42. package/dist/{chunk-33XZFTQU.mjs → chunk-S5UE2T5P.mjs} +48 -6
  43. package/dist/chunk-S5UE2T5P.mjs.map +1 -0
  44. package/dist/components/directional-light.d.ts +2 -2
  45. package/dist/components/dynamic-resolution.d.ts +15 -0
  46. package/dist/components/dynamic-resolution.d.ts.map +1 -0
  47. package/dist/components/index.d.ts +1 -0
  48. package/dist/components/index.d.ts.map +1 -1
  49. package/dist/components/light-helpers.d.ts.map +1 -1
  50. package/dist/components/reflection-probe.d.ts +1 -0
  51. package/dist/components/reflection-probe.d.ts.map +1 -1
  52. package/dist/components/skylight.d.ts +4 -1
  53. package/dist/components/skylight.d.ts.map +1 -1
  54. package/dist/construct-renderer.mjs +2172 -796
  55. package/dist/construct-renderer.mjs.map +1 -1
  56. package/dist/device/device-scope.d.ts +2 -0
  57. package/dist/device/device-scope.d.ts.map +1 -1
  58. package/dist/device/gpu-residency.d.ts +2 -2
  59. package/dist/device/gpu-residency.d.ts.map +1 -1
  60. package/dist/dynamic-geometry.d.ts.map +1 -1
  61. package/dist/environment/background.d.ts +3 -2
  62. package/dist/environment/background.d.ts.map +1 -1
  63. package/dist/environment/ibl.d.ts +11 -0
  64. package/dist/environment/ibl.d.ts.map +1 -0
  65. package/dist/environment/storage.d.ts +14 -0
  66. package/dist/environment/storage.d.ts.map +1 -0
  67. package/dist/errors/gpu-driven.d.ts +2 -2
  68. package/dist/errors/gpu-driven.d.ts.map +1 -1
  69. package/dist/errors/render.d.ts +35 -1
  70. package/dist/errors/render.d.ts.map +1 -1
  71. package/dist/extract/camera.d.ts.map +1 -1
  72. package/dist/extract/contracts.d.ts +7 -0
  73. package/dist/extract/contracts.d.ts.map +1 -1
  74. package/dist/extract/gpu-driven.d.ts +18 -1
  75. package/dist/extract/gpu-driven.d.ts.map +1 -1
  76. package/dist/gpu-driven/batch-topology.d.ts.map +1 -1
  77. package/dist/gpu-driven/material-artifacts.d.ts +24 -0
  78. package/dist/gpu-driven/material-artifacts.d.ts.map +1 -0
  79. package/dist/gpu-driven/material-bindings.d.ts +7 -0
  80. package/dist/gpu-driven/material-bindings.d.ts.map +1 -0
  81. package/dist/gpu-driven/prepared-draw.d.ts +2 -0
  82. package/dist/gpu-driven/prepared-draw.d.ts.map +1 -1
  83. package/dist/gpu-driven/production-raster.d.ts +27 -6
  84. package/dist/gpu-driven/production-raster.d.ts.map +1 -1
  85. package/dist/gpu-resource.d.ts +5 -2
  86. package/dist/gpu-resource.d.ts.map +1 -1
  87. package/dist/gpu-scene-schema.d.ts.map +1 -1
  88. package/dist/gpu-scene.d.ts.map +1 -1
  89. package/dist/hdrp-buffers.d.ts +3 -0
  90. package/dist/hdrp-buffers.d.ts.map +1 -1
  91. package/dist/ibl/IblPipelineCache.d.ts +2 -0
  92. package/dist/ibl/IblPipelineCache.d.ts.map +1 -1
  93. package/dist/ibl/skylight-bind-group.d.ts +3 -1
  94. package/dist/ibl/skylight-bind-group.d.ts.map +1 -1
  95. package/dist/index.d.ts +83 -81
  96. package/dist/index.d.ts.map +1 -1
  97. package/dist/index.mjs +7 -5
  98. package/dist/index.mjs.map +1 -1
  99. package/dist/inspection-types.d.ts +16 -1
  100. package/dist/inspection-types.d.ts.map +1 -1
  101. package/dist/internal.mjs +6 -6
  102. package/dist/material-row.d.ts +10 -0
  103. package/dist/material-row.d.ts.map +1 -1
  104. package/dist/pbr-pipeline.d.ts +3 -1
  105. package/dist/pbr-pipeline.d.ts.map +1 -1
  106. package/dist/pipeline/render-extent.d.ts +51 -0
  107. package/dist/pipeline/render-extent.d.ts.map +1 -0
  108. package/dist/pipeline/standard-build-context.d.ts +7 -0
  109. package/dist/pipeline/standard-build-context.d.ts.map +1 -0
  110. package/dist/pipeline/standard-forward-lane.d.ts +3 -2
  111. package/dist/pipeline/standard-forward-lane.d.ts.map +1 -1
  112. package/dist/pipeline/standard-pipeline.d.ts.map +1 -1
  113. package/dist/pipeline/standard-post.d.ts +1 -1
  114. package/dist/pipeline/standard-post.d.ts.map +1 -1
  115. package/dist/pipeline/standard-profile.d.ts +2 -1
  116. package/dist/pipeline/standard-profile.d.ts.map +1 -1
  117. package/dist/pipeline-builder.d.ts +3 -1
  118. package/dist/pipeline-builder.d.ts.map +1 -1
  119. package/dist/plugin.d.ts.map +1 -1
  120. package/dist/post-process-errors.d.ts +9 -2
  121. package/dist/post-process-errors.d.ts.map +1 -1
  122. package/dist/prepare/extended-lighting/resources.d.ts +3 -3
  123. package/dist/record/frame-lighting.d.ts.map +1 -1
  124. package/dist/record/frame-snapshot.d.ts +3 -8
  125. package/dist/record/frame-snapshot.d.ts.map +1 -1
  126. package/dist/record/frame.d.ts +3 -2
  127. package/dist/record/frame.d.ts.map +1 -1
  128. package/dist/record/main-pass-geometry.d.ts +7 -2
  129. package/dist/record/main-pass-geometry.d.ts.map +1 -1
  130. package/dist/record/main-pass-material.d.ts +6 -3
  131. package/dist/record/main-pass-material.d.ts.map +1 -1
  132. package/dist/record/main-pass.d.ts +2 -0
  133. package/dist/record/main-pass.d.ts.map +1 -1
  134. package/dist/record/prepared-material-bindings.d.ts.map +1 -1
  135. package/dist/record/recovery-pipeline.d.ts +9 -1
  136. package/dist/record/recovery-pipeline.d.ts.map +1 -1
  137. package/dist/record/render-context.d.ts +34 -3
  138. package/dist/record/render-context.d.ts.map +1 -1
  139. package/dist/record/shadow-pass.d.ts +2 -2
  140. package/dist/record/shadow-pass.d.ts.map +1 -1
  141. package/dist/record/typed-frame-graph.d.ts +5 -2
  142. package/dist/record/typed-frame-graph.d.ts.map +1 -1
  143. package/dist/recovery/render-system-candidate.d.ts.map +1 -1
  144. package/dist/reflection/background.d.ts +14 -0
  145. package/dist/reflection/background.d.ts.map +1 -0
  146. package/dist/reflection/filter.d.ts.map +1 -1
  147. package/dist/reflection/projection.d.ts +1 -0
  148. package/dist/reflection/projection.d.ts.map +1 -1
  149. package/dist/reflection/record-owner.d.ts +4 -2
  150. package/dist/reflection/record-owner.d.ts.map +1 -1
  151. package/dist/render-contract.d.ts +47 -32
  152. package/dist/render-contract.d.ts.map +1 -1
  153. package/dist/render-graph-primitives.d.ts.map +1 -1
  154. package/dist/render-pipeline.d.ts +17 -1
  155. package/dist/render-pipeline.d.ts.map +1 -1
  156. package/dist/render-system-extract-tail.d.ts +9 -2
  157. package/dist/render-system-extract-tail.d.ts.map +1 -1
  158. package/dist/render-system-extract.d.ts +29 -2
  159. package/dist/render-system-extract.d.ts.map +1 -1
  160. package/dist/render-system.d.ts.map +1 -1
  161. package/dist/scene/render-scene.d.ts +2 -0
  162. package/dist/scene/render-scene.d.ts.map +1 -1
  163. package/dist/ssao-config.d.ts +8 -6
  164. package/dist/ssao-config.d.ts.map +1 -1
  165. package/dist/ssr/graph.d.ts.map +1 -1
  166. package/dist/temporal/gpu.d.ts.map +1 -1
  167. package/dist/temporal/index.mjs +5 -5
  168. package/dist/temporal/standard-scene-data.d.ts +2 -1
  169. package/dist/temporal/standard-scene-data.d.ts.map +1 -1
  170. package/dist/temporal/target-coverage-attachment.d.ts +15 -0
  171. package/dist/temporal/target-coverage-attachment.d.ts.map +1 -0
  172. package/dist/temporal/temporal-view.d.ts +6 -2
  173. package/dist/temporal/temporal-view.d.ts.map +1 -1
  174. package/dist/temporal/view.d.ts +6 -0
  175. package/dist/temporal/view.d.ts.map +1 -1
  176. package/dist/typed-render-graph-primitives.d.ts +6 -0
  177. package/dist/typed-render-graph-primitives.d.ts.map +1 -1
  178. package/dist/volume/component.d.ts +1 -0
  179. package/dist/volume/component.d.ts.map +1 -1
  180. package/package.json +21 -21
  181. package/src/__tests__/capture-scene-projection.unit.test.ts +24 -0
  182. package/src/__tests__/device-feature-admission.unit.test.ts +15 -24
  183. package/src/__tests__/device-loss-fanout.unit.test.ts +43 -0
  184. package/src/__tests__/dynamic-geometry-batch.unit.test.ts +157 -0
  185. package/src/__tests__/dynamic-geometry.unit.test.ts +36 -0
  186. package/src/__tests__/dynamic-resolution-plugin.integration.test.ts +81 -0
  187. package/src/__tests__/factory-contract.integration.test.ts +164 -1
  188. package/src/__tests__/frame-observation.contract.test.ts +21 -0
  189. package/src/__tests__/gpu-driven-baseline.characterization.test.ts +1 -1
  190. package/src/__tests__/gpu-driven-batch-topology-pbr.unit.test.ts +20 -1
  191. package/src/__tests__/gpu-driven-lod-cache.unit.test.ts +0 -3
  192. package/src/__tests__/gpu-driven-mesh-world-identity.unit.test.ts +0 -3
  193. package/src/__tests__/gpu-driven-pbr.dawn.test.ts +11 -6
  194. package/src/__tests__/gpu-driven-production.integration.test.ts +13 -25
  195. package/src/__tests__/gpu-driven-view.unit.test.ts +1 -0
  196. package/src/__tests__/gpu-pass-timing-browser-runner.ts +15 -0
  197. package/src/__tests__/gpu-pass-timing.browser.test.ts +14 -1
  198. package/src/__tests__/gpu-resource-scope.unit.test.ts +71 -0
  199. package/src/__tests__/gpu-scene.unit.test.ts +55 -1
  200. package/src/__tests__/materials-standard-contract.unit.test.ts +5 -1
  201. package/src/__tests__/mesh-submission-lifetime.unit.test.ts +8 -0
  202. package/src/__tests__/morph-neutral-admission.unit.test.ts +19 -0
  203. package/src/__tests__/physical-clearcoat.integration.test.ts +6 -1
  204. package/src/__tests__/post-process-error-policy-owner.unit.test.ts +6 -5
  205. package/src/__tests__/prepared-gpu-driven-pbr.integration.test.ts +216 -5
  206. package/src/__tests__/reflection-fallback-async-publication.unit.test.ts +68 -1
  207. package/src/__tests__/reflection-probe-authoring.unit.test.ts +12 -10
  208. package/src/__tests__/reflection-probe-box.dawn.test.ts +71 -0
  209. package/src/__tests__/reflection-probe-filter.unit.test.ts +9 -0
  210. package/src/__tests__/reflection-probe-orientation.dawn.test.ts +294 -0
  211. package/src/__tests__/reflection-probe-record-owner.characterization.unit.test.ts +5 -15
  212. package/src/__tests__/reflection-probe-updates.unit.test.ts +129 -0
  213. package/src/__tests__/render-error-code-owner.test-d.ts +3 -0
  214. package/src/__tests__/render-error-detail-ssot.test-d.ts +5 -1
  215. package/src/__tests__/render-extent.unit.test.ts +63 -0
  216. package/src/__tests__/render-scene-projection.unit.test.ts +3 -2
  217. package/src/__tests__/renderer-factory-material-contract.unit.test.ts +173 -9
  218. package/src/__tests__/shader-manifest-fixture.ts +6 -0
  219. package/src/__tests__/skinned-shadow-caster.test.ts +8 -1
  220. package/src/__tests__/specular-environment-scale.dawn.test.ts +4 -2
  221. package/src/__tests__/ssao-config.unit.test.ts +7 -0
  222. package/src/__tests__/ssao-surface.dawn.test.ts +252 -0
  223. package/src/__tests__/ssr-cube-silhouette.dawn.test.ts +270 -0
  224. package/src/__tests__/ssr-gpu-dispatch.browser.test.ts +51 -43
  225. package/src/__tests__/ssr-gpu-dispatch.dawn.test.ts +4 -0
  226. package/src/__tests__/ssr-gpu-dispatch.ts +10 -5
  227. package/src/__tests__/ssr-graph-topology.unit.test.ts +2 -2
  228. package/src/__tests__/ssr-hiz.browser.test.ts +1 -1
  229. package/src/__tests__/ssr-hiz.dawn.test.ts +1 -1
  230. package/src/__tests__/ssr-spatial.integration.test.ts +1 -1
  231. package/src/__tests__/standard-cluster-variant-resolution.unit.test.ts +40 -0
  232. package/src/__tests__/standard-pbr-artifact-assembly.unit.test.ts +238 -1
  233. package/src/__tests__/standard-profile-oracle.unit.test.ts +27 -0
  234. package/src/__tests__/taa-coverage-edge.dawn.test.ts +6 -0
  235. package/src/__tests__/taa-neighborhood-equivalence.dawn.test.ts +5 -1
  236. package/src/__tests__/taa-stability-feedback.ts +1 -0
  237. package/src/__tests__/temporal-reset-matrix.unit.test.ts +2 -2
  238. package/src/__tests__/temporal-view.unit.test.ts +17 -0
  239. package/src/__tests__/transmission-prewarm.unit.test.ts +57 -0
  240. package/src/__tests__/volumetric-fog-stage-readback.dawn.test.ts +62 -13
  241. package/src/__tests__/volumetric-fog-topology.unit.test.ts +7 -7
  242. package/src/assembly/atmosphere-shader-prewarm.ts +3 -2
  243. package/src/assembly/device-feature-admission.ts +9 -4
  244. package/src/assembly/dynamic-geometry-host.ts +236 -163
  245. package/src/assembly/host-contract.ts +9 -0
  246. package/src/assembly/material/assembly.ts +350 -6
  247. package/src/assembly/material/pipeline-helpers.ts +100 -0
  248. package/src/assembly/material-shader-policy.ts +39 -18
  249. package/src/assembly/recovery/device-loss-fanout.ts +5 -0
  250. package/src/assembly/recovery/recovery-attempt.ts +2 -29
  251. package/src/assembly/recovery/renderer-recover.ts +6 -9
  252. package/src/assembly/renderer-facade.ts +22 -1
  253. package/src/assembly/shader-prewarm-policy.ts +14 -1
  254. package/src/assembly/webgpu-ready.ts +28 -19
  255. package/src/assembly/webgpu-renderer.ts +95 -95
  256. package/src/capture/scene-projection.ts +37 -0
  257. package/src/components/__tests__/dynamic-resolution-schema.unit.test.ts +65 -0
  258. package/src/components/__tests__/light-radius.integration.test.ts +59 -0
  259. package/src/components/directional-light.ts +3 -3
  260. package/src/components/dynamic-resolution.ts +67 -0
  261. package/src/components/index.ts +1 -0
  262. package/src/components/light-helpers.ts +6 -1
  263. package/src/components/reflection-probe.ts +1 -0
  264. package/src/components/skylight.ts +4 -1
  265. package/src/device/device-scope.ts +13 -7
  266. package/src/device/gpu-residency.ts +11 -11
  267. package/src/dynamic-geometry.ts +13 -8
  268. package/src/environment/background.ts +30 -12
  269. package/src/environment/ibl.ts +211 -0
  270. package/src/environment/storage.ts +63 -0
  271. package/src/errors/gpu-driven.ts +10 -3
  272. package/src/errors/render.ts +64 -0
  273. package/src/extract/camera.ts +12 -1
  274. package/src/extract/contracts.ts +10 -0
  275. package/src/extract/gpu-driven.ts +72 -17
  276. package/src/gpu-driven/batch-topology.ts +33 -11
  277. package/src/gpu-driven/material-artifacts.ts +179 -0
  278. package/src/gpu-driven/material-bindings.ts +41 -0
  279. package/src/gpu-driven/prepared-draw.ts +13 -2
  280. package/src/gpu-driven/production-raster.ts +681 -164
  281. package/src/gpu-resource.ts +21 -2
  282. package/src/gpu-scene-schema.ts +11 -2
  283. package/src/gpu-scene.ts +14 -3
  284. package/src/hdrp-buffers.ts +69 -0
  285. package/src/ibl/IblPipelineCache.ts +5 -0
  286. package/src/ibl/skylight-bind-group.ts +27 -17
  287. package/src/index.ts +92 -81
  288. package/src/inspection-types.ts +16 -1
  289. package/src/material-row.ts +60 -11
  290. package/src/pbr-pipeline.ts +13 -2
  291. package/src/pipeline/render-extent.ts +111 -0
  292. package/src/pipeline/standard-build-context.ts +7 -0
  293. package/src/pipeline/standard-forward-lane.ts +41 -24
  294. package/src/pipeline/standard-pipeline.ts +47 -18
  295. package/src/pipeline/standard-post.ts +4 -0
  296. package/src/pipeline/standard-profile.ts +2 -1
  297. package/src/pipeline-builder.ts +12 -3
  298. package/src/plugin.ts +4 -0
  299. package/src/post-process-errors.ts +26 -18
  300. package/src/prepare/__tests__/extended-lighting-capability.unit.test.ts +2 -2
  301. package/src/prepare/extended-lighting/resources.ts +3 -3
  302. package/src/record/__tests__/main-pass-geometry.unit.test.ts +68 -0
  303. package/src/record/__tests__/material-bg-cache.unit.test.ts +45 -0
  304. package/src/record/__tests__/material-slot-plan.unit.test.ts +9 -0
  305. package/src/record/__tests__/recovery-pipeline.unit.test.ts +47 -1
  306. package/src/record/__tests__/sprite-material-abi.unit.test.ts +7 -3
  307. package/src/record/__tests__/temporal-payload.unit.test.ts +2 -0
  308. package/src/record/frame-lighting.ts +3 -1
  309. package/src/record/frame-snapshot.ts +13 -11
  310. package/src/record/frame.ts +150 -74
  311. package/src/record/main-pass-geometry.ts +60 -9
  312. package/src/record/main-pass-material.ts +47 -19
  313. package/src/record/main-pass.ts +63 -4
  314. package/src/record/prepared-material-bindings.ts +4 -0
  315. package/src/record/recovery-pipeline.ts +56 -0
  316. package/src/record/render-context.ts +34 -3
  317. package/src/record/shadow-pass.ts +187 -50
  318. package/src/record/typed-frame-graph.ts +60 -3
  319. package/src/record/view-ubo.ts +1 -1
  320. package/src/recovery/render-system-candidate.ts +54 -11
  321. package/src/reflection/background.ts +151 -0
  322. package/src/reflection/filter.ts +3 -0
  323. package/src/reflection/projection.ts +16 -6
  324. package/src/reflection/record-owner.ts +282 -86
  325. package/src/render-contract.ts +50 -32
  326. package/src/render-graph-primitives.ts +28 -3
  327. package/src/render-pipeline.ts +20 -1
  328. package/src/render-system-extract-tail.ts +23 -3
  329. package/src/render-system-extract.ts +127 -42
  330. package/src/render-system.ts +35 -7
  331. package/src/scene/render-scene.ts +8 -0
  332. package/src/ssao-config.ts +25 -8
  333. package/src/ssr/graph.ts +78 -58
  334. package/src/temporal/gpu.ts +5 -0
  335. package/src/temporal/standard-scene-data.ts +7 -1
  336. package/src/temporal/target-coverage-attachment.ts +72 -0
  337. package/src/temporal/temporal-view.ts +10 -4
  338. package/src/temporal/view.ts +12 -2
  339. package/src/transmission/__tests__/standard-transmission.dawn.test.ts +24 -9
  340. package/src/typed-render-graph-primitives.ts +38 -0
  341. package/src/volume/component.ts +1 -0
  342. package/src/volume/passes.ts +3 -3
  343. package/dist/chunk-33XZFTQU.mjs.map +0 -1
  344. package/dist/chunk-BQVQOQJH.mjs.map +0 -1
  345. package/dist/chunk-BTWH7BP4.mjs.map +0 -1
  346. package/dist/chunk-FUODTTIA.mjs.map +0 -1
  347. package/dist/chunk-JQTSEI3Z.mjs.map +0 -1
  348. package/dist/chunk-NICXSHAT.mjs.map +0 -1
  349. package/dist/chunk-NRNXBLIJ.mjs.map +0 -1
  350. package/dist/chunk-S4DNKQYQ.mjs.map +0 -1
@@ -1,17 +1,19 @@
1
- import { type Result } from '@forgeax/engine-types';
1
+ import { type RenderPipelineAsset, type Result } from '@forgeax/engine-types';
2
2
  import { PostProcessError } from './post-process-errors';
3
3
  export declare const SSAO_DEFAULT_RADIUS = 0.5;
4
4
  export declare const SSAO_DEFAULT_BIAS = 0.025;
5
5
  export declare const SSAO_DEFAULT_INTENSITY = 1;
6
- export interface SsaoParameterConfig {
7
- readonly radius?: number | undefined;
8
- readonly bias?: number | undefined;
9
- readonly intensity?: number | undefined;
10
- }
6
+ export type SsaoParameterConfig = Omit<NonNullable<NonNullable<RenderPipelineAsset['config']>['ssao']>, 'enabled'>;
7
+ export declare const SSAO_SAMPLE_COUNTS: {
8
+ readonly low: 16;
9
+ readonly medium: 32;
10
+ readonly high: 64;
11
+ };
11
12
  export interface ResolvedSsaoParameters {
12
13
  readonly radius: number;
13
14
  readonly bias: number;
14
15
  readonly intensity: number;
16
+ readonly quality: 'low' | 'medium' | 'high';
15
17
  }
16
18
  /**
17
19
  * Apply the public defaults without deciding whether the values are valid.
@@ -1 +1 @@
1
- {"version":3,"file":"ssao-config.d.ts","sourceRoot":"","sources":["../src/ssao-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,sBAAsB,IAAM,CAAC;AAE1C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,GAAG,sBAAsB,CAMjG;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,mBAAmB,GAAG,SAAS,GACtC,MAAM,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,CAmBlD"}
1
+ {"version":3,"file":"ssao-config.d.ts","sourceRoot":"","sources":["../src/ssao-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,mBAAmB,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,sBAAsB,IAAM,CAAC;AAE1C,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,WAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAC/D,SAAS,CACV,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;CAA6C,CAAC;AAE7E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC7C;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,GAAG,sBAAsB,CAOjG;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,mBAAmB,GAAG,SAAS,GACtC,MAAM,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,CAiClD"}
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/ssr/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAK7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElF,eAAO,MAAM,sBAAsB,EAAG,EAAW,CAAC;AAClD,eAAO,MAAM,sBAAsB,EAAG,CAAU,CAAC;AAEjD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,OAAO,sBAAsB,CAAC;IACpD,QAAQ,CAAC,WAAW,EAAE,OAAO,sBAAsB,CAAC;CACrD;AAED,wBAAgB,iBAAiB,IAAI,YAAY,CAMhD;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAW1E;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAClC,kFAAkF;IAClF,QAAQ,CAAC,eAAe,CAAC,EAAE,gBAAgB,CAAC;IAC5C,mFAAmF;IACnF,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IACrC,yEAAyE;IACzE,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC;QAC3C,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;QACzC,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC;QAC3C,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;QACzC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAAC;CAC1C;AA+HD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,SAAS,gBAAgB,EACnE,KAAK,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EACnC,KAAK,EAAE,qBAAqB,GAC3B,MAAM,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAwiBrD"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/ssr/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAK7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElF,eAAO,MAAM,sBAAsB,EAAG,EAAW,CAAC;AAClD,eAAO,MAAM,sBAAsB,EAAG,CAAU,CAAC;AAEjD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,OAAO,sBAAsB,CAAC;IACpD,QAAQ,CAAC,WAAW,EAAE,OAAO,sBAAsB,CAAC;CACrD;AAED,wBAAgB,iBAAiB,IAAI,YAAY,CAMhD;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAW1E;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAClC,kFAAkF;IAClF,QAAQ,CAAC,eAAe,CAAC,EAAE,gBAAgB,CAAC;IAC5C,mFAAmF;IACnF,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IACrC,yEAAyE;IACzE,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC;QAC3C,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;QACzC,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC;QAC3C,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;QACzC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAAC;CAC1C;AA+HD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,SAAS,gBAAgB,EACnE,KAAK,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EACnC,KAAK,EAAE,qBAAqB,GAC3B,MAAM,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CA4jBrD"}
@@ -1 +1 @@
1
- {"version":3,"file":"gpu.d.ts","sourceRoot":"","sources":["../../src/temporal/gpu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,MAAM,EACN,SAAS,EACT,QAAQ,EACR,OAAO,EACP,OAAO,EAEP,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAO1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,eAAO,MAAM,wBAAwB;;;;EAI1B,CAAC;AAEZ,UAAU,eAAe;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;IACjB,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IACvD,eAAe,EAAE,eAAe,GAAG,SAAS,CAAC;IAC7C,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC;CACpB;AAyGD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAsBvE;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,gBAAgB,EAC5B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,gBAAgB,CAsBlB;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,gBAAgB,GAAG;IACtE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1C,CA4EA;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAEhE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAEjE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAEpE;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAE5E;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAOxE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAEpE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CASpE;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,GAAG,CAAC,gBAAgB,CAAC,EAC/B,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAClC,IAAI,CAeN"}
1
+ {"version":3,"file":"gpu.d.ts","sourceRoot":"","sources":["../../src/temporal/gpu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,MAAM,EACN,SAAS,EACT,QAAQ,EACR,OAAO,EACP,OAAO,EAEP,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAO1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,eAAO,MAAM,wBAAwB;;;;EAI1B,CAAC;AAEZ,UAAU,eAAe;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;IACjB,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IACvD,eAAe,EAAE,eAAe,GAAG,SAAS,CAAC;IAC7C,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC;CACpB;AAyGD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAsBvE;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,gBAAgB,EAC5B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,gBAAgB,CAsBlB;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,gBAAgB,GAAG;IACtE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1C,CAiFA;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAEhE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAEjE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAEpE;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAE5E;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAOxE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAEpE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CASpE;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,GAAG,CAAC,gBAAgB,CAAC,EAC/B,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAClC,IAAI,CAeN"}
@@ -1,9 +1,9 @@
1
- export { addStandardSceneDataPass, addTaaResolvePass, aggregateTemporalDemand, createStandardSceneDataTarget, describeTemporalDemand, standardTemporalLaneAdmission, standardTemporalPostOrder } from '../chunk-FUODTTIA.mjs';
1
+ export { addStandardSceneDataPass, addTaaResolvePass, aggregateTemporalDemand, createStandardSceneDataTarget, describeTemporalDemand, standardTemporalLaneAdmission, standardTemporalPostOrder } from '../chunk-PSEQ6QPH.mjs';
2
2
  import '../chunk-RXZ3RGOU.mjs';
3
- export { SCENE_DATA_TEMPORAL_V1_DESCRIPTOR, SCENE_DATA_TEMPORAL_V1_SCHEMA, createSceneDataCatalog, isSceneDataTarget, registerSceneDataTarget, sceneDataError, sceneDataTargetAsAttachment, sceneDataTargetOwner, sceneDataTokenMismatch } from '../chunk-JQTSEI3Z.mjs';
3
+ export { SCENE_DATA_TEMPORAL_V1_DESCRIPTOR, SCENE_DATA_TEMPORAL_V1_SCHEMA, createSceneDataCatalog, isSceneDataTarget, registerSceneDataTarget, sceneDataError, sceneDataTargetAsAttachment, sceneDataTargetOwner, sceneDataTokenMismatch } from '../chunk-NO4WZCAH.mjs';
4
4
  import '../chunk-BLXGONR2.mjs';
5
- export { TEMPORAL_JITTER_SAMPLE_COUNT, TEMPORAL_TAAU_DEPENDENCY_STATUS, TemporalFrameCoordinator, projectTemporalView, snapshotSubmittedTemporalView, temporalJitterSample, temporalViewId } from '../chunk-NICXSHAT.mjs';
6
- export { classifySceneDataCoverage, createTemporalCoverage, scanSceneDataCoverage } from '../chunk-BTWH7BP4.mjs';
7
- import '../chunk-NRNXBLIJ.mjs';
5
+ export { TEMPORAL_JITTER_SAMPLE_COUNT, TEMPORAL_TAAU_DEPENDENCY_STATUS, TemporalFrameCoordinator, projectTemporalView, snapshotSubmittedTemporalView, temporalJitterSample, temporalViewId } from '../chunk-MDQJPY3T.mjs';
6
+ export { classifySceneDataCoverage, createTemporalCoverage, scanSceneDataCoverage } from '../chunk-FUUO4UND.mjs';
7
+ import '../chunk-JRBDO2KB.mjs';
8
8
  //# sourceMappingURL=index.mjs.map
9
9
  //# sourceMappingURL=index.mjs.map
@@ -1,5 +1,6 @@
1
1
  import type { RenderGraphBuilder, RenderGraphError } from '@forgeax/engine-render-graph';
2
2
  import { type Result } from '@forgeax/engine-types';
3
+ import type { RenderExtent } from '../pipeline/render-extent';
3
4
  import type { RenderPipelineFrame, RenderPipelineTarget } from '../render-pipeline';
4
5
  export interface StandardTemporalDemandInput {
5
6
  readonly taa: boolean;
@@ -56,7 +57,7 @@ export interface StandardSceneDataTargets {
56
57
  readonly temporal: RenderPipelineTarget;
57
58
  }
58
59
  /** The single Standard TAA current-frame producer target. */
59
- export declare function createStandardSceneDataTarget(graph: RenderGraphBuilder<RenderPipelineFrame>): Result<StandardSceneDataTargets, RenderGraphError>;
60
+ export declare function createStandardSceneDataTarget(graph: RenderGraphBuilder<RenderPipelineFrame>, extent?: RenderExtent): Result<StandardSceneDataTargets, RenderGraphError>;
60
61
  export declare function addStandardSceneDataPass(graph: RenderGraphBuilder<RenderPipelineFrame>, target: RenderPipelineTarget, depth: RenderPipelineTarget): Result<void, RenderGraphError>;
61
62
  export declare function addTaaResolvePass(graph: RenderGraphBuilder<RenderPipelineFrame>, current: RenderPipelineTarget, currentTemporal: RenderPipelineTarget, previousColor: RenderPipelineTarget, previousTemporal: RenderPipelineTarget, output: RenderPipelineTarget): Result<void, RenderGraphError>;
62
63
  //# sourceMappingURL=standard-scene-data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"standard-scene-data.d.ts","sourceRoot":"","sources":["../../src/temporal/standard-scene-data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standard-scene-data.d.ts","sourceRoot":"","sources":["../../src/temporal/standard-scene-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAIpF,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,KAAK,GAAG,aAAa,GAAG,KAAK,CAAC,EAAE,CAAC;IACjE,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC;IAC5B,QAAQ,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC;IAC5B,QAAQ,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;CAC5B;AAED,+EAA+E;AAC/E,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,2BAA2B,GACjC,sBAAsB,CAaxB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,sBAAsB,GAC7B,iCAAiC,CAQnC;AAED,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC;AAEtF,MAAM,MAAM,6BAA6B,GACrC;IACE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,cAAc,cAAc,EAAE,6BAA6B,CAAC;IAC7E,QAAQ,CAAC,UAAU,EAAE,+BAA+B,CAAC;IACrD,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;CAChC,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,oBAAoB,GAAG,kBAAkB,GAAG,WAAW,CAAC;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;CACzB,CAAC;AAEN,wBAAgB,6BAA6B,CAAC,KAAK,EAAE;IACnD,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE;QACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;QAC1B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;QAChC,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;QACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAC5B,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;KACpC,CAAC;CACH,GAAG,6BAA6B,CAmBhC;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,GAAG,SAAS,MAAM,EAAE,CAQpB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;CACzC;AAQD,6DAA6D;AAC7D,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,MAAM,CAAC,EAAE,YAAY,GACpB,MAAM,CAAC,wBAAwB,EAAE,gBAAgB,CAAC,CAMpD;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,oBAAoB,GAC1B,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAgBhC;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,OAAO,EAAE,oBAAoB,EAC7B,eAAe,EAAE,oBAAoB,EACrC,aAAa,EAAE,oBAAoB,EACnC,gBAAgB,EAAE,oBAAoB,EACtC,MAAM,EAAE,oBAAoB,GAC3B,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAYhC"}
@@ -0,0 +1,15 @@
1
+ import type { RenderGraphBuilder, RenderGraphError } from '@forgeax/engine-render-graph';
2
+ import { type Result } from '@forgeax/engine-types';
3
+ import type { RenderExtent } from '../pipeline/render-extent';
4
+ import type { RenderPipelineFrame, RenderPipelineTarget } from '../render-pipeline';
5
+ export interface TargetCoverageAttachment {
6
+ readonly coverage: RenderPipelineTarget;
7
+ readonly depth: RenderPipelineTarget;
8
+ readonly outputWidth: number;
9
+ readonly outputHeight: number;
10
+ }
11
+ /** Create the per-generation output-domain coverage/depth pair. */
12
+ export declare function createTargetCoverageAttachment(graph: RenderGraphBuilder<RenderPipelineFrame>, extent: RenderExtent): Result<TargetCoverageAttachment, RenderGraphError>;
13
+ /** Rasterize the real Standard draw list into binary output-domain coverage. */
14
+ export declare function addTargetCoveragePass(graph: RenderGraphBuilder<RenderPipelineFrame>, target: TargetCoverageAttachment): Result<void, RenderGraphError>;
15
+ //# sourceMappingURL=target-coverage-attachment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target-coverage-attachment.d.ts","sourceRoot":"","sources":["../../src/temporal/target-coverage-attachment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAIpF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAeD,mEAAmE;AACnE,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,MAAM,EAAE,YAAY,GACnB,MAAM,CAAC,wBAAwB,EAAE,gBAAgB,CAAC,CAiBpD;AAED,gFAAgF;AAChF,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,MAAM,EAAE,wBAAwB,GAC/B,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAYhC"}
@@ -1,8 +1,8 @@
1
1
  import type { CameraProjection } from '../components/camera';
2
2
  import type { CameraSnapshot } from '../render-contract';
3
3
  export declare const TEMPORAL_JITTER_SAMPLE_COUNT = 8;
4
- /** Current temporal view owns fixed surface dimensions; dynamic TAAU is deferred. */
5
- export declare const TEMPORAL_TAAU_DEPENDENCY_STATUS: "dependency-deferred";
4
+ /** TAAU shares the temporal view owner; its internal dimensions are optional. */
5
+ export declare const TEMPORAL_TAAU_DEPENDENCY_STATUS: "available";
6
6
  export type TemporalViewResetReason = 'first-frame' | 'camera-switch' | 'history-version-changed' | 'projection-kind-changed' | 'projection-range-changed';
7
7
  export interface SubmittedTemporalView {
8
8
  readonly viewId: string;
@@ -20,6 +20,8 @@ export interface TemporalView {
20
20
  readonly historyValid: boolean;
21
21
  readonly resetReason: TemporalViewResetReason | undefined;
22
22
  readonly currentJitterUv: readonly [number, number];
23
+ readonly internalWidth: number;
24
+ readonly internalHeight: number;
23
25
  readonly previousJitterUv: readonly [number, number];
24
26
  readonly currentJitteredViewProjection: Float32Array;
25
27
  readonly currentUnjitteredViewProjection: Float32Array;
@@ -33,6 +35,8 @@ export interface TemporalViewInput {
33
35
  readonly temporalFrameIndex: number;
34
36
  readonly surfaceWidth: number;
35
37
  readonly surfaceHeight: number;
38
+ readonly internalWidth?: number;
39
+ readonly internalHeight?: number;
36
40
  readonly lastSubmitted?: SubmittedTemporalView;
37
41
  }
38
42
  export declare function temporalViewId(worldId: number, entityKey: number): string;
@@ -1 +1 @@
1
- {"version":3,"file":"temporal-view.d.ts","sourceRoot":"","sources":["../../src/temporal/temporal-view.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C,qFAAqF;AACrF,eAAO,MAAM,+BAA+B,EAAG,qBAA8B,CAAC;AAE9E,MAAM,MAAM,uBAAuB,GAC/B,aAAa,GACb,eAAe,GACf,yBAAyB,GACzB,yBAAyB,GACzB,0BAA0B,CAAC;AAE/B,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,wBAAwB,EAAE,YAAY,CAAC;CACjD;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,uBAAuB,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,6BAA6B,EAAE,YAAY,CAAC;IACrD,QAAQ,CAAC,+BAA+B,EAAE,YAAY,CAAC;IACvD,QAAQ,CAAC,gCAAgC,EAAE,YAAY,CAAC;IACxD,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,qBAAqB,CAAC;CAChD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAKzE;AAcD,wBAAgB,oBAAoB,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAO1F;AA8CD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,CAqC1E;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,YAAY,GAAG,qBAAqB,CAUvF"}
1
+ {"version":3,"file":"temporal-view.d.ts","sourceRoot":"","sources":["../../src/temporal/temporal-view.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C,iFAAiF;AACjF,eAAO,MAAM,+BAA+B,EAAG,WAAoB,CAAC;AAEpE,MAAM,MAAM,uBAAuB,GAC/B,aAAa,GACb,eAAe,GACf,yBAAyB,GACzB,yBAAyB,GACzB,0BAA0B,CAAC;AAE/B,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,wBAAwB,EAAE,YAAY,CAAC;CACjD;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,uBAAuB,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,6BAA6B,EAAE,YAAY,CAAC;IACrD,QAAQ,CAAC,+BAA+B,EAAE,YAAY,CAAC;IACvD,QAAQ,CAAC,gCAAgC,EAAE,YAAY,CAAC;IACxD,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,qBAAqB,CAAC;CAChD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAKzE;AAcD,wBAAgB,oBAAoB,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAO1F;AA8CD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,CAuC1E;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,YAAY,GAAG,qBAAqB,CAUvF"}
@@ -5,6 +5,9 @@ export interface TemporalViewInput {
5
5
  readonly antialias: Antialias;
6
6
  readonly width: number;
7
7
  readonly height: number;
8
+ /** Internal scene extent used to normalize TAA jitter for TAAU. */
9
+ readonly internalWidth?: number;
10
+ readonly internalHeight?: number;
8
11
  readonly frameIndex?: number;
9
12
  readonly historyVersion?: number;
10
13
  readonly viewIdentity?: string;
@@ -23,6 +26,9 @@ interface TemporalViewSnapshot {
23
26
  readonly antialias: Antialias;
24
27
  readonly width: number;
25
28
  readonly height: number;
29
+ /** Internal scene extent used for TAAU jitter normalization. */
30
+ readonly internalWidth: number;
31
+ readonly internalHeight: number;
26
32
  readonly frameIndex: number;
27
33
  readonly historyVersion: number;
28
34
  readonly viewIdentity: string;
@@ -1 +1 @@
1
- {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../src/temporal/view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../src/temporal/view.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ export interface TypedFrameObservationCapture {
28
28
  }
29
29
  export declare function addTypedSkyboxPass(graph: RenderGraphBuilder<RenderPipelineFrame>, color: RenderPipelineTarget): Result<void, RenderGraphError>;
30
30
  export interface TypedScenePassOptions {
31
+ readonly environment?: import('./environment/ibl').GraphEnvironment | undefined;
31
32
  readonly name: string;
32
33
  readonly color: RenderPipelineTarget;
33
34
  readonly depth: RenderPipelineTarget;
@@ -42,6 +43,7 @@ export interface TypedScenePassOptions {
42
43
  readonly clearColor?: readonly [number, number, number, number] | undefined;
43
44
  readonly colorLoadOp?: GPULoadOp | readonly GPULoadOp[] | undefined;
44
45
  readonly depthLoadOp?: GPULoadOp | undefined;
46
+ readonly coverageOnly?: boolean | undefined;
45
47
  readonly recordMode?: 'opaque' | 'transmission' | 'transparent' | undefined;
46
48
  /** Exclude material/pass pairs consumed by an earlier graph lane. */
47
49
  readonly excludeSelector?: PassSelector | undefined;
@@ -97,6 +99,10 @@ export interface TypedFullscreenPassOptions {
97
99
  }
98
100
  export interface TypedTemporalResolveTargets {
99
101
  readonly scene: RenderPipelineTarget;
102
+ /** Output-domain coverage produced by the Standard raster witness. */
103
+ readonly coverage?: RenderPipelineTarget | undefined;
104
+ /** Paired output-domain depth used to keep the producer observable. */
105
+ readonly coverageDepth?: RenderPipelineTarget | undefined;
100
106
  /** Optional producer-owned R-channel reactivity in current screen space. */
101
107
  readonly secondaryReactivity?: GraphTextureView;
102
108
  readonly currentTemporal: RenderPipelineTarget;
@@ -1 +1 @@
1
- {"version":3,"file":"typed-render-graph-primitives.d.ts","sourceRoot":"","sources":["../src/typed-render-graph-primitives.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typed-render-graph-primitives.d.ts","sourceRoot":"","sources":["../src/typed-render-graph-primitives.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,7 @@ export interface VolumetricFogAuthoring {
26
26
  readonly light: EntityHandle;
27
27
  /** The optional same-World SpotLight paired with a PointLight. */
28
28
  readonly spotLight?: EntityHandle;
29
+ /** Linear scalar density over bounds; the renderer adds no noise or animation. */
29
30
  readonly density: VolumeDensityBinding;
30
31
  readonly bounds: VolumeBounds;
31
32
  readonly extinction: readonly [number, number, number];
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/volume/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAEL,KAAK,WAAW,EAIjB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG,UAAU,GAAG,IAAI,CAAC;QACjD,QAAQ,CAAC,MAAM,EAAE;YACf,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;YACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;YACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;SAC1B,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CACzC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,sBAAsB;IACrC,gFAAgF;IAChF,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACvD,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,MAAM,2BAA2B,GACnC;IAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,GAChE;IAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAA;CAAE,CAAC;AAEvE,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IACpE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;CACxB;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;EAWxB,CAAC;AAmBH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,sBAAsB,GAC5B,MAAM,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAsB7C"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/volume/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAEL,KAAK,WAAW,EAIjB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG,UAAU,GAAG,IAAI,CAAC;QACjD,QAAQ,CAAC,MAAM,EAAE;YACf,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;YACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;YACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;SAC1B,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CACzC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,sBAAsB;IACrC,gFAAgF;IAChF,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC;IAClC,kFAAkF;IAClF,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACvD,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,MAAM,2BAA2B,GACnC;IAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,GAChE;IAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAA;CAAE,CAAC;AAEvE,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IACpE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;CACxB;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;EAWxB,CAAC;AAmBH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,sBAAsB,GAC5B,MAAM,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAsB7C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forgeax/engine-render",
3
- "version": "0.1.29",
3
+ "version": "0.1.31",
4
4
  "description": "Canonical ECS render schemas and renderer boundary.",
5
5
  "private": false,
6
6
  "type": "module",
@@ -37,28 +37,28 @@
37
37
  "LICENSE"
38
38
  ],
39
39
  "dependencies": {
40
- "@forgeax/engine-assets-runtime": "0.1.29",
41
- "@forgeax/engine-audio-webaudio": "0.1.29",
42
- "@forgeax/engine-codec": "0.1.29",
43
- "@forgeax/engine-ecs": "0.1.29",
44
- "@forgeax/engine-geometry": "0.1.29",
45
- "@forgeax/engine-graphics-extras": "0.1.29",
46
- "@forgeax/engine-math": "0.1.29",
47
- "@forgeax/engine-pack": "0.1.29",
48
- "@forgeax/engine-plugin": "0.1.29",
49
- "@forgeax/engine-profiler": "0.1.29",
50
- "@forgeax/engine-render-graph": "0.1.29",
51
- "@forgeax/engine-rhi": "0.1.29",
52
- "@forgeax/engine-scene": "0.1.29",
53
- "@forgeax/engine-shader": "0.1.29",
54
- "@forgeax/engine-skinning": "0.1.29",
55
- "@forgeax/engine-types": "0.1.29"
40
+ "@forgeax/engine-assets-runtime": "0.1.31",
41
+ "@forgeax/engine-audio-webaudio": "0.1.31",
42
+ "@forgeax/engine-codec": "0.1.31",
43
+ "@forgeax/engine-ecs": "0.1.31",
44
+ "@forgeax/engine-geometry": "0.1.31",
45
+ "@forgeax/engine-graphics-extras": "0.1.31",
46
+ "@forgeax/engine-math": "0.1.31",
47
+ "@forgeax/engine-pack": "0.1.31",
48
+ "@forgeax/engine-plugin": "0.1.31",
49
+ "@forgeax/engine-profiler": "0.1.31",
50
+ "@forgeax/engine-render-graph": "0.1.31",
51
+ "@forgeax/engine-rhi": "0.1.31",
52
+ "@forgeax/engine-scene": "0.1.31",
53
+ "@forgeax/engine-shader": "0.1.31",
54
+ "@forgeax/engine-skinning": "0.1.31",
55
+ "@forgeax/engine-types": "0.1.31"
56
56
  },
57
57
  "devDependencies": {
58
- "@forgeax/engine-rhi-debug": "0.1.29",
59
- "@forgeax/engine-rhi-null": "0.1.29",
60
- "@forgeax/engine-rhi-webgpu": "0.1.29",
61
- "@forgeax/engine-vite-plugin-shader": "0.1.29"
58
+ "@forgeax/engine-rhi-debug": "0.1.31",
59
+ "@forgeax/engine-rhi-null": "0.1.31",
60
+ "@forgeax/engine-rhi-webgpu": "0.1.31",
61
+ "@forgeax/engine-vite-plugin-shader": "0.1.31"
62
62
  },
63
63
  "forgeax": {
64
64
  "metrics": {
@@ -0,0 +1,24 @@
1
+ import { expect, it } from 'vitest';
2
+ import { projectCaptureScene } from '../capture/scene-projection';
3
+ import type { DispatchEntry, RenderableSnapshot } from '../render-system-extract';
4
+
5
+ it('retains offscreen draws, excludes authored hidden rows, and rebases display indices across worlds', () => {
6
+ const rows = [
7
+ { worldId: 0, entityKey: 1 },
8
+ { worldId: 1, entityKey: 1 },
9
+ { worldId: 0, entityKey: 2, authorVisible: false },
10
+ ] as RenderableSnapshot[];
11
+ const dispatch = rows.map((_, renderableIndex) => ({
12
+ renderableIndex,
13
+ materialHandle: renderableIndex,
14
+ })) as DispatchEntry[];
15
+ if (rows[1] === undefined || dispatch[1] === undefined) throw new Error('Missing scene fixture');
16
+ const result = projectCaptureScene(
17
+ { renderables: rows, dispatch },
18
+ [rows[1]],
19
+ [{ ...dispatch[1], renderableIndex: 0 }],
20
+ );
21
+ expect(result.renderables).toEqual(rows.slice(0, 2));
22
+ expect(result.captureDispatch.map((row) => row.renderableIndex)).toEqual([0, 1]);
23
+ expect(result.displayDispatch.map((row) => row.renderableIndex)).toEqual([1]);
24
+ });
@@ -42,34 +42,25 @@ describe('shared device feature admission', () => {
42
42
  expect(result.requiredFeatures).toEqual(['timestamp-query']);
43
43
  });
44
44
 
45
- it('requests the largest supported sampled-texture topology for the device', () => {
45
+ it.each([
46
+ [48, 22],
47
+ [22, 22],
48
+ [21, 21],
49
+ [20, 18],
50
+ [18, 18],
51
+ [17, undefined],
52
+ [16, undefined],
53
+ ])('requests an admitted topology within adapter limit %s', (limit, requested) => {
46
54
  expect(
47
- deriveDeviceFeatureAdmission(adapter([], { maxSampledTexturesPerShaderStage: 48 })),
55
+ deriveDeviceFeatureAdmission(
56
+ adapter([], { maxSampledTexturesPerShaderStage: limit as number }),
57
+ ),
48
58
  ).toEqual({
49
59
  requiredFeatures: [],
50
- requiredLimits: { maxSampledTexturesPerShaderStage: 21 },
60
+ ...(requested === undefined
61
+ ? {}
62
+ : { requiredLimits: { maxSampledTexturesPerShaderStage: requested } }),
51
63
  });
52
- expect(
53
- deriveDeviceFeatureAdmission(adapter([], { maxSampledTexturesPerShaderStage: 20 })),
54
- ).toEqual({
55
- requiredFeatures: [],
56
- requiredLimits: { maxSampledTexturesPerShaderStage: 20 },
57
- });
58
- expect(
59
- deriveDeviceFeatureAdmission(adapter([], { maxSampledTexturesPerShaderStage: 17 })),
60
- ).toEqual({
61
- requiredFeatures: [],
62
- requiredLimits: { maxSampledTexturesPerShaderStage: 17 },
63
- });
64
- expect(
65
- deriveDeviceFeatureAdmission(adapter([], { maxSampledTexturesPerShaderStage: 18 })),
66
- ).toEqual({
67
- requiredFeatures: [],
68
- requiredLimits: { maxSampledTexturesPerShaderStage: 17 },
69
- });
70
- expect(
71
- deriveDeviceFeatureAdmission(adapter([], { maxSampledTexturesPerShaderStage: 16 })),
72
- ).toEqual({ requiredFeatures: [] });
73
64
  });
74
65
 
75
66
  it('requires both device capability and a finite positive period before admission', () => {
@@ -68,6 +68,49 @@ describe('device loss fan-out generation fence', () => {
68
68
  expect(healthRegistry.getLastSnapshot().reason).toBe('alive');
69
69
  });
70
70
 
71
+ it.each([
72
+ 'unknown',
73
+ 'destroyed',
74
+ ] as const)('reports active %s loss while isolating candidate and retired devices', async (reason) => {
75
+ for (const generation of [0, 1, 2]) {
76
+ const lost = deferred<{
77
+ readonly reason: 'unknown' | 'destroyed';
78
+ readonly message: string;
79
+ }>();
80
+ const lostRegistry = new LostListenerRegistry();
81
+ const errorRegistry = new RhiErrorListenerRegistry();
82
+ const healthRegistry = new HealthListenerRegistry();
83
+ const events: string[] = [];
84
+ lostRegistry.add(() => events.push('lost'));
85
+ errorRegistry.add(() => events.push('error'));
86
+ healthRegistry.add(() => events.push('health'));
87
+ attachDeviceLostFanout(
88
+ { lost: lost.promise } as unknown as RhiDevice,
89
+ { rhi },
90
+ {
91
+ lostRegistry,
92
+ errorRegistry,
93
+ healthRegistry,
94
+ generation,
95
+ currentGeneration: () => 1,
96
+ onStaleLoss: () => events.push('stale'),
97
+ onDeviceLost: () => events.push('device'),
98
+ },
99
+ );
100
+ lost.resolve({ reason, message: 'native device loss' });
101
+ await Promise.resolve();
102
+ await Promise.resolve();
103
+ const activeEvents =
104
+ reason === 'destroyed' ? ['device', 'lost'] : ['device', 'lost', 'health', 'error'];
105
+ expect(events).toEqual(
106
+ generation === 0 ? ['stale'] : generation === 2 ? ['device'] : activeEvents,
107
+ );
108
+ expect(healthRegistry.getLastSnapshot().reason).toBe(
109
+ generation === 1 && reason !== 'destroyed' ? 'device-lost' : 'alive',
110
+ );
111
+ }
112
+ });
113
+
71
114
  it('uses the backend loss projection for deterministic recovery fixtures', async () => {
72
115
  const native = deferred<{ readonly reason: 'unknown'; readonly message: string }>();
73
116
  const projected = deferred<{ readonly reason: 'unknown'; readonly message: string }>();
@@ -0,0 +1,157 @@
1
+ import { World } from '@forgeax/engine-ecs';
2
+ import { rhi } from '@forgeax/engine-rhi-null';
3
+ import { Transform } from '@forgeax/engine-scene';
4
+ import type { MeshAsset } from '@forgeax/engine-types';
5
+ import { describe, expect, it, vi } from 'vitest';
6
+ import { createDynamicGeometryHost } from '../assembly/dynamic-geometry-host';
7
+ import { MeshFilter } from '../components/mesh-filter';
8
+ import { MeshRenderer } from '../components/mesh-renderer';
9
+ import { GpuResidencyCache } from '../device/gpu-residency';
10
+ import { createDynamicGeometryLifecycle } from '../dynamic-geometry';
11
+
12
+ function mesh(): MeshAsset {
13
+ return {
14
+ kind: 'mesh',
15
+ vertices: new Float32Array([0, 0, 0, 1, 0, 0, 0, 1, 0]),
16
+ indices: new Uint16Array([0, 1, 2]),
17
+ attributes: { position: new Float32Array([0, 0, 0, 1, 0, 0, 0, 1, 0]) },
18
+ aabb: new Float32Array([0, 0, 0, 1, 1, 0]),
19
+ submeshes: [
20
+ { indexOffset: 0, indexCount: 3, vertexCount: 3, topology: 'triangle-list', materialSlot: 0 },
21
+ ],
22
+ materialSlots: [{ slotName: 'default' }],
23
+ };
24
+ }
25
+
26
+ async function fixture() {
27
+ const world = new World();
28
+ const device = (await (await rhi.requestAdapter()).unwrap().requestDevice()).unwrap();
29
+ const store = new GpuResidencyCache();
30
+ store.configureGpuDevice(
31
+ device,
32
+ undefined,
33
+ () => {
34
+ throw new Error('unused cubemap');
35
+ },
36
+ device.caps,
37
+ );
38
+ const topologyChanged = vi.fn();
39
+ const lifecycle = createDynamicGeometryLifecycle();
40
+ const host = createDynamicGeometryHost({
41
+ lifecycle,
42
+ attachedWorlds: new Set([world]),
43
+ getGpuStore: () => store,
44
+ currentGeneration: () => 1,
45
+ isConsumedByRenderFrame: () => true,
46
+ onTopologyChanged: topologyChanged,
47
+ });
48
+ const entities = Array.from({ length: 2 }, () =>
49
+ world
50
+ .spawn(
51
+ { component: Transform, data: {} },
52
+ { component: MeshFilter, data: { assetHandle: world.allocSharedRef('MeshAsset', mesh()) } },
53
+ { component: MeshRenderer, data: { materials: [] } },
54
+ )
55
+ .unwrap(),
56
+ );
57
+ const prepare = (revision: number) =>
58
+ entities.map((entity) => {
59
+ const source = mesh();
60
+ return host
61
+ .prepareDynamicGeometry({
62
+ world,
63
+ entity,
64
+ mesh: source,
65
+ meshHandle: world.allocSharedRef('MeshAsset', source),
66
+ revision,
67
+ })
68
+ .unwrap();
69
+ });
70
+ const handles = () =>
71
+ entities.map((entity) => world.get(entity, MeshFilter).unwrap().assetHandle);
72
+ return { world, store, host, lifecycle, entities, prepare, handles, topologyChanged };
73
+ }
74
+
75
+ describe('dynamic geometry batch admission', () => {
76
+ it('admits both meshes in one ordering and publishes both receipts', async () => {
77
+ const f = await fixture();
78
+ const prepared = f.prepare(1);
79
+ const old = f.handles();
80
+ const accepted = f.host
81
+ .acceptDynamicGeometryCandidates(prepared, { world: f.world, fixedStep: 0 })
82
+ .unwrap();
83
+ expect(f.handles()).not.toEqual(old);
84
+ expect(accepted.map((candidate) => candidate.state)).toEqual(['accepted', 'accepted']);
85
+ expect(f.topologyChanged).toHaveBeenCalledTimes(1);
86
+ const receipts = f.host.publishDynamicGeometry({ frameId: 1, deviceGeneration: 1 });
87
+ expect(receipts.map((receipt) => receipt.candidateId).sort()).toEqual(
88
+ prepared.map((candidate) => candidate.candidateId).sort(),
89
+ );
90
+ f.store.destroyAll();
91
+ });
92
+
93
+ it('retains prior unpublished candidates when the second ECS swap fails', async () => {
94
+ const f = await fixture();
95
+ const prior = f
96
+ .prepare(1)
97
+ .map((candidate) =>
98
+ f.host.acceptDynamicGeometry(candidate, { world: f.world, fixedStep: 0 }).unwrap(),
99
+ );
100
+ const old = f.handles();
101
+ const next = f.prepare(2);
102
+ const set = f.world.set.bind(f.world);
103
+ // Use the ECS's own missing-component failure without changing either live mesh.
104
+ const absent = f.world.spawn({ component: Transform, data: {} }).unwrap();
105
+ const refused = set(absent, MeshFilter, { assetHandle: old[0] });
106
+ expect(refused.ok).toBe(false);
107
+ vi.spyOn(f.world, 'set').mockImplementation((entity, component, data) =>
108
+ entity === f.entities[1] && component === MeshFilter ? refused : set(entity, component, data),
109
+ );
110
+ expect(f.host.acceptDynamicGeometryCandidates(next, { world: f.world, fixedStep: 0 }).ok).toBe(
111
+ false,
112
+ );
113
+ expect(f.handles()).toEqual(old);
114
+ const receipts = f.host.publishDynamicGeometry({ frameId: 1, deviceGeneration: 1 });
115
+ expect(receipts.map((receipt) => receipt.candidateId).sort()).toEqual(
116
+ prior.map((candidate) => candidate.candidateId).sort(),
117
+ );
118
+ vi.restoreAllMocks();
119
+ f.store.destroyAll();
120
+ });
121
+
122
+ it('throws when a failed group cannot restore its first ECS binding', async () => {
123
+ const f = await fixture();
124
+ const old = f.handles();
125
+ const next = f.prepare(1);
126
+ const set = f.world.set.bind(f.world);
127
+ const absent = f.world.spawn({ component: Transform, data: {} }).unwrap();
128
+ const refused = set(absent, MeshFilter, { assetHandle: old[0] });
129
+ let writes = 0;
130
+ vi.spyOn(f.world, 'set').mockImplementation((entity, component, data) => {
131
+ if (component === MeshFilter && ++writes >= 2) return refused;
132
+ return set(entity, component, data);
133
+ });
134
+ expect(() =>
135
+ f.host.acceptDynamicGeometryCandidates(next, { world: f.world, fixedStep: 0 }),
136
+ ).toThrow('restores every previous ECS binding');
137
+ vi.restoreAllMocks();
138
+ f.store.destroyAll();
139
+ });
140
+
141
+ it('rejects duplicate entities before changing the visible meshes', async () => {
142
+ const f = await fixture();
143
+ const candidates = f.prepare(1);
144
+ const first = candidates[0];
145
+ if (first === undefined) throw new Error('fixture requires a prepared candidate');
146
+ const old = f.handles();
147
+ expect(
148
+ f.host.acceptDynamicGeometryCandidates([first, first], {
149
+ world: f.world,
150
+ fixedStep: 0,
151
+ }).ok,
152
+ ).toBe(false);
153
+ expect(f.handles()).toEqual(old);
154
+ expect(f.topologyChanged).not.toHaveBeenCalled();
155
+ f.store.destroyAll();
156
+ });
157
+ });