@forgeax/engine-render 0.1.6 → 0.1.19

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 (713) hide show
  1. package/README.md +279 -2
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/assembly/backend-contract.d.ts +12 -0
  4. package/dist/assembly/backend-contract.d.ts.map +1 -1
  5. package/dist/assembly/factory.d.ts +19 -2
  6. package/dist/assembly/factory.d.ts.map +1 -1
  7. package/dist/assembly/host-contract.d.ts +4 -0
  8. package/dist/assembly/host-contract.d.ts.map +1 -1
  9. package/dist/assembly/material/assembly.d.ts.map +1 -1
  10. package/dist/assembly/renderer-frame-transaction.d.ts +39 -0
  11. package/dist/assembly/renderer-frame-transaction.d.ts.map +1 -0
  12. package/dist/assembly/renderer-inspection.d.ts +22 -0
  13. package/dist/assembly/renderer-inspection.d.ts.map +1 -0
  14. package/dist/assembly/renderer-lifecycle.d.ts +4 -0
  15. package/dist/assembly/renderer-lifecycle.d.ts.map +1 -0
  16. package/dist/authoring.d.ts +1 -0
  17. package/dist/authoring.d.ts.map +1 -1
  18. package/dist/authoring.mjs +4 -2
  19. package/dist/authoring.mjs.map +1 -1
  20. package/dist/chunk-FJ6P52EE.mjs +46 -0
  21. package/dist/chunk-FJ6P52EE.mjs.map +1 -0
  22. package/dist/chunk-IPXCABEP.mjs +73 -0
  23. package/dist/chunk-IPXCABEP.mjs.map +1 -0
  24. package/dist/chunk-JDWARUOI.mjs +44 -0
  25. package/dist/chunk-JDWARUOI.mjs.map +1 -0
  26. package/dist/chunk-LOSO4CTV.mjs +901 -0
  27. package/dist/chunk-LOSO4CTV.mjs.map +1 -0
  28. package/dist/chunk-PCHBPYML.mjs +385 -0
  29. package/dist/chunk-PCHBPYML.mjs.map +1 -0
  30. package/dist/chunk-RJRUS55L.mjs +9323 -0
  31. package/dist/chunk-RJRUS55L.mjs.map +1 -0
  32. package/dist/{chunk-QC4VW3XJ.mjs → chunk-RXZ3RGOU.mjs} +4 -30
  33. package/dist/chunk-RXZ3RGOU.mjs.map +1 -0
  34. package/dist/{chunk-CQXZC5XI.mjs → chunk-VFPLTKCU.mjs} +79 -69
  35. package/dist/chunk-VFPLTKCU.mjs.map +1 -0
  36. package/dist/{chunk-SCRSAK5B.mjs → chunk-YTQ5C7YQ.mjs} +231 -127
  37. package/dist/chunk-YTQ5C7YQ.mjs.map +1 -0
  38. package/dist/components/atmosphere.d.ts +9 -0
  39. package/dist/components/atmosphere.d.ts.map +1 -0
  40. package/dist/components/camera.d.ts +2 -1
  41. package/dist/components/camera.d.ts.map +1 -1
  42. package/dist/components/fog.d.ts +8 -0
  43. package/dist/components/fog.d.ts.map +1 -0
  44. package/dist/components/index.d.ts +5 -0
  45. package/dist/components/index.d.ts.map +1 -1
  46. package/dist/components/lines.d.ts +5 -0
  47. package/dist/components/lines.d.ts.map +1 -0
  48. package/dist/components/motion-blur.d.ts +7 -0
  49. package/dist/components/motion-blur.d.ts.map +1 -0
  50. package/dist/components/points.d.ts +15 -0
  51. package/dist/components/points.d.ts.map +1 -0
  52. package/dist/construct-renderer.d.ts +2 -2
  53. package/dist/construct-renderer.d.ts.map +1 -1
  54. package/dist/construct-renderer.mjs +11419 -16442
  55. package/dist/construct-renderer.mjs.map +1 -1
  56. package/dist/device/device-scope.d.ts +4 -0
  57. package/dist/device/device-scope.d.ts.map +1 -1
  58. package/dist/environment/frame.d.ts +60 -0
  59. package/dist/environment/frame.d.ts.map +1 -0
  60. package/dist/environment/generation.d.ts +21 -0
  61. package/dist/environment/generation.d.ts.map +1 -0
  62. package/dist/environment/graph.d.ts +4 -0
  63. package/dist/environment/graph.d.ts.map +1 -0
  64. package/dist/environment/inspection.d.ts +48 -0
  65. package/dist/environment/inspection.d.ts.map +1 -0
  66. package/dist/environment/lifecycle.d.ts +39 -0
  67. package/dist/environment/lifecycle.d.ts.map +1 -0
  68. package/dist/environment/signature.d.ts +25 -0
  69. package/dist/environment/signature.d.ts.map +1 -0
  70. package/dist/errors/render.d.ts +217 -1
  71. package/dist/errors/render.d.ts.map +1 -1
  72. package/dist/extract/camera.d.ts +5 -0
  73. package/dist/extract/camera.d.ts.map +1 -0
  74. package/dist/extract/environment.d.ts +74 -0
  75. package/dist/extract/environment.d.ts.map +1 -0
  76. package/dist/extract/visibility.d.ts +1 -1
  77. package/dist/extract/visibility.d.ts.map +1 -1
  78. package/dist/features/host.d.ts +9 -2
  79. package/dist/features/host.d.ts.map +1 -1
  80. package/dist/features/motion-blur/motion-blur-feature.d.ts +16 -0
  81. package/dist/features/motion-blur/motion-blur-feature.d.ts.map +1 -0
  82. package/dist/features/motion-blur/motion-blur-params.d.ts +25 -0
  83. package/dist/features/motion-blur/motion-blur-params.d.ts.map +1 -0
  84. package/dist/features/plan.d.ts +17 -2
  85. package/dist/features/plan.d.ts.map +1 -1
  86. package/dist/features/prepared-gpu-work.d.ts +3 -1
  87. package/dist/features/prepared-gpu-work.d.ts.map +1 -1
  88. package/dist/features/prepared-graphics.d.ts +2 -1
  89. package/dist/features/prepared-graphics.d.ts.map +1 -1
  90. package/dist/features/render-graph-raster.d.ts +7 -2
  91. package/dist/features/render-graph-raster.d.ts.map +1 -1
  92. package/dist/features/targets.d.ts +3 -0
  93. package/dist/features/targets.d.ts.map +1 -1
  94. package/dist/features/types.d.ts +12 -0
  95. package/dist/features/types.d.ts.map +1 -1
  96. package/dist/fullscreen-post-process-pass.d.ts +7 -1
  97. package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
  98. package/dist/gpu-driven/production-raster.d.ts.map +1 -1
  99. package/dist/gpu-scene.d.ts +2 -0
  100. package/dist/gpu-scene.d.ts.map +1 -1
  101. package/dist/ibl/skylight-bind-group.d.ts +5 -6
  102. package/dist/ibl/skylight-bind-group.d.ts.map +1 -1
  103. package/dist/index.d.ts +21 -6
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.mjs +8 -4
  106. package/dist/index.mjs.map +1 -1
  107. package/dist/inspection-types.d.ts +46 -1
  108. package/dist/inspection-types.d.ts.map +1 -1
  109. package/dist/internal.d.ts +2 -0
  110. package/dist/internal.d.ts.map +1 -1
  111. package/dist/internal.mjs +2 -0
  112. package/dist/materials.d.ts +22 -0
  113. package/dist/materials.d.ts.map +1 -1
  114. package/dist/pbr-pipeline.d.ts +12 -6
  115. package/dist/pbr-pipeline.d.ts.map +1 -1
  116. package/dist/pipeline/standard-forward-lane.d.ts.map +1 -1
  117. package/dist/pipeline/standard-pipeline.d.ts +3 -0
  118. package/dist/pipeline/standard-pipeline.d.ts.map +1 -1
  119. package/dist/pipeline/standard-post.d.ts +48 -0
  120. package/dist/pipeline/standard-post.d.ts.map +1 -0
  121. package/dist/pipeline/standard-profile.d.ts +3 -6
  122. package/dist/pipeline/standard-profile.d.ts.map +1 -1
  123. package/dist/pipeline-builder.d.ts +18 -0
  124. package/dist/pipeline-builder.d.ts.map +1 -1
  125. package/dist/pipeline-spec.d.ts.map +1 -1
  126. package/dist/plugin.d.ts.map +1 -1
  127. package/dist/points-lines/admission.d.ts +36 -0
  128. package/dist/points-lines/admission.d.ts.map +1 -0
  129. package/dist/points-lines/bounds.d.ts +8 -0
  130. package/dist/points-lines/bounds.d.ts.map +1 -0
  131. package/dist/points-lines/expansion-cache.d.ts +28 -0
  132. package/dist/points-lines/expansion-cache.d.ts.map +1 -0
  133. package/dist/points-lines/inspection.d.ts +53 -0
  134. package/dist/points-lines/inspection.d.ts.map +1 -0
  135. package/dist/points-lines/prepare.d.ts +67 -0
  136. package/dist/points-lines/prepare.d.ts.map +1 -0
  137. package/dist/points-lines/record.d.ts +60 -0
  138. package/dist/points-lines/record.d.ts.map +1 -0
  139. package/dist/points-lines/snapshot.d.ts +49 -0
  140. package/dist/points-lines/snapshot.d.ts.map +1 -0
  141. package/dist/record/frame-lighting.d.ts.map +1 -1
  142. package/dist/record/frame-snapshot.d.ts +100 -5
  143. package/dist/record/frame-snapshot.d.ts.map +1 -1
  144. package/dist/record/frame-targets.d.ts.map +1 -1
  145. package/dist/record/frame.d.ts +4 -2
  146. package/dist/record/frame.d.ts.map +1 -1
  147. package/dist/record/main-pass-geometry.d.ts +18 -0
  148. package/dist/record/main-pass-geometry.d.ts.map +1 -1
  149. package/dist/record/main-pass-material.d.ts +8 -5
  150. package/dist/record/main-pass-material.d.ts.map +1 -1
  151. package/dist/record/main-pass-sprite-draws.d.ts +8 -1
  152. package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
  153. package/dist/record/main-pass.d.ts +2 -0
  154. package/dist/record/main-pass.d.ts.map +1 -1
  155. package/dist/record/mesh-ssbo.d.ts.map +1 -1
  156. package/dist/record/render-context.d.ts +93 -18
  157. package/dist/record/render-context.d.ts.map +1 -1
  158. package/dist/record/shadow-pass.d.ts.map +1 -1
  159. package/dist/record/skybox-post-pass.d.ts +1 -11
  160. package/dist/record/skybox-post-pass.d.ts.map +1 -1
  161. package/dist/record/typed-frame-graph.d.ts +26 -2
  162. package/dist/record/typed-frame-graph.d.ts.map +1 -1
  163. package/dist/record/view-ubo.d.ts +10 -1
  164. package/dist/record/view-ubo.d.ts.map +1 -1
  165. package/dist/render-contract.d.ts +102 -10
  166. package/dist/render-contract.d.ts.map +1 -1
  167. package/dist/render-graph-primitives.d.ts.map +1 -1
  168. package/dist/render-pipeline.d.ts +50 -6
  169. package/dist/render-pipeline.d.ts.map +1 -1
  170. package/dist/render-system-extract.d.ts +32 -5
  171. package/dist/render-system-extract.d.ts.map +1 -1
  172. package/dist/render-system.d.ts +27 -5
  173. package/dist/render-system.d.ts.map +1 -1
  174. package/dist/scene/render-scene-types.d.ts +3 -0
  175. package/dist/scene/render-scene-types.d.ts.map +1 -1
  176. package/dist/scene/render-scene.d.ts +43 -2
  177. package/dist/scene/render-scene.d.ts.map +1 -1
  178. package/dist/temporal/coverage.d.ts +42 -0
  179. package/dist/temporal/coverage.d.ts.map +1 -0
  180. package/dist/temporal/frame-coordinator.d.ts +99 -0
  181. package/dist/temporal/frame-coordinator.d.ts.map +1 -0
  182. package/dist/temporal/gpu.d.ts +39 -0
  183. package/dist/temporal/gpu.d.ts.map +1 -0
  184. package/dist/temporal/history.d.ts +37 -0
  185. package/dist/temporal/history.d.ts.map +1 -0
  186. package/dist/temporal/index.d.ts +7 -0
  187. package/dist/temporal/index.d.ts.map +1 -0
  188. package/dist/temporal/index.mjs +8 -0
  189. package/dist/temporal/index.mjs.map +1 -0
  190. package/dist/temporal/inspection.d.ts +36 -0
  191. package/dist/temporal/inspection.d.ts.map +1 -0
  192. package/dist/temporal/scene-data-catalog.d.ts +48 -0
  193. package/dist/temporal/scene-data-catalog.d.ts.map +1 -0
  194. package/dist/temporal/scene-data.d.ts +43 -0
  195. package/dist/temporal/scene-data.d.ts.map +1 -0
  196. package/dist/temporal/standard-scene-data.d.ts +61 -0
  197. package/dist/temporal/standard-scene-data.d.ts.map +1 -0
  198. package/dist/temporal/taa-history-resources.d.ts +22 -0
  199. package/dist/temporal/taa-history-resources.d.ts.map +1 -0
  200. package/dist/temporal/taa-history-store.d.ts +27 -0
  201. package/dist/temporal/taa-history-store.d.ts.map +1 -0
  202. package/dist/temporal/taa-resolve.d.ts +15 -0
  203. package/dist/temporal/taa-resolve.d.ts.map +1 -0
  204. package/dist/temporal/temporal-view.d.ts +40 -0
  205. package/dist/temporal/temporal-view.d.ts.map +1 -0
  206. package/dist/temporal/transaction.d.ts +9 -0
  207. package/dist/temporal/transaction.d.ts.map +1 -0
  208. package/dist/temporal/view.d.ts +56 -0
  209. package/dist/temporal/view.d.ts.map +1 -0
  210. package/dist/transmission/backdrop.d.ts +147 -0
  211. package/dist/transmission/backdrop.d.ts.map +1 -0
  212. package/dist/transmission/inspection.d.ts +57 -0
  213. package/dist/transmission/inspection.d.ts.map +1 -0
  214. package/dist/transmission/oracle.d.ts +42 -0
  215. package/dist/transmission/oracle.d.ts.map +1 -0
  216. package/dist/transmission/projection.d.ts +37 -0
  217. package/dist/transmission/projection.d.ts.map +1 -0
  218. package/dist/typed-render-graph-primitives.d.ts +25 -2
  219. package/dist/typed-render-graph-primitives.d.ts.map +1 -1
  220. package/package.json +24 -19
  221. package/src/__tests__/ai-user-cold-start.integration.test.ts +59 -0
  222. package/src/__tests__/ai-user-public-surface.test-d.ts +45 -0
  223. package/src/__tests__/authoring-path.unit.test.ts +9 -0
  224. package/src/__tests__/bloom-exact-zero.unit.test.ts +202 -0
  225. package/src/__tests__/bloom-lifecycle.integration.test.ts +125 -0
  226. package/src/__tests__/construct-renderer-identity.unit.test.ts +4 -3
  227. package/src/__tests__/detached-inspection.integration.test.ts +177 -0
  228. package/src/__tests__/environment-fog-lanes.integration.test.ts +219 -0
  229. package/src/__tests__/environment-generation.integration.test.ts +141 -0
  230. package/src/__tests__/environment-selection.unit.test.ts +245 -0
  231. package/src/__tests__/factory-contract.integration.test.ts +1380 -9
  232. package/src/__tests__/frame-plan-contract.unit.test.ts +90 -0
  233. package/src/__tests__/fullscreen-feature-plan.unit.test.ts +7 -0
  234. package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +12 -2
  235. package/src/__tests__/gpu-driven-production.integration.test.ts +74 -22
  236. package/src/__tests__/gpu-driven-view-graph.integration.test.ts +37 -0
  237. package/src/__tests__/gpu-scene.unit.test.ts +10 -0
  238. package/src/__tests__/injection-kind-owner.test-d.ts +2 -1
  239. package/src/__tests__/material-contract-inventory.unit.test.ts +62 -0
  240. package/src/__tests__/material-cooked-projection.unit.test.ts +18 -124
  241. package/src/__tests__/material-static-dynamic-route.unit.test.ts +28 -28
  242. package/src/__tests__/materials-transmission-validation.unit.test.ts +36 -0
  243. package/src/__tests__/morph-feature-plan.unit.test.ts +7 -0
  244. package/src/__tests__/motion-blur.pixel.integration.test.ts +121 -0
  245. package/src/__tests__/public-surface.test-d.ts +15 -1
  246. package/src/__tests__/render-error-code-owner.test-d.ts +15 -0
  247. package/src/__tests__/render-error-detail-ssot.test-d.ts +11 -2
  248. package/src/__tests__/render-error-exhaustive.test-d.ts +22 -0
  249. package/src/__tests__/render-feature-errors.unit.test.ts +33 -3
  250. package/src/__tests__/render-feature-gpu-work.integration.test.ts +44 -0
  251. package/src/__tests__/render-feature-plan.test-d.ts +22 -89
  252. package/src/__tests__/render-scene-projection.unit.test.ts +28 -0
  253. package/src/__tests__/render-temporal-environment-consumer.browser.test.ts +26 -0
  254. package/src/__tests__/render-temporal-environment-consumer.dawn.test.ts +21 -0
  255. package/src/__tests__/renderer-factory-material-contract.unit.test.ts +433 -1
  256. package/src/__tests__/renderer-frame-transaction.integration.test.ts +405 -0
  257. package/src/__tests__/renderer-lifecycle.integration.test.ts +22 -0
  258. package/src/__tests__/scene-data-catalog.unit.test.ts +59 -0
  259. package/src/__tests__/scene-data-consumer.integration.test.ts +67 -0
  260. package/src/__tests__/scene-data-contract.test-d.ts +35 -0
  261. package/src/__tests__/scene-data-inspection.unit.test.ts +41 -0
  262. package/src/__tests__/scene-data-public-surface.test-d.ts +34 -0
  263. package/src/__tests__/shader-manifest-fixture.ts +111 -0
  264. package/src/__tests__/skinned-shadow-caster.test.ts +102 -0
  265. package/src/__tests__/standard-clustered-pipeline.unit.test.ts +24 -3
  266. package/src/__tests__/standard-pipeline.dawn.test.ts +15 -0
  267. package/src/__tests__/standard-pipeline.integration.test.ts +543 -1
  268. package/src/__tests__/standard-profile-oracle.unit.test.ts +10 -2
  269. package/src/__tests__/standard-temporal-producer.integration.test.ts +35 -0
  270. package/src/__tests__/surface-configuration.unit.test.ts +211 -12
  271. package/src/__tests__/taa-transaction.integration.test.ts +30 -0
  272. package/src/__tests__/temporal-admission.integration.test.ts +40 -0
  273. package/src/__tests__/temporal-coverage.unit.test.ts +35 -0
  274. package/src/__tests__/temporal-demand.unit.test.ts +44 -0
  275. package/src/__tests__/temporal-frame-coordinator.unit.test.ts +64 -0
  276. package/src/__tests__/temporal-graph-topology.unit.test.ts +51 -0
  277. package/src/__tests__/temporal-history-lifecycle.unit.test.ts +170 -0
  278. package/src/__tests__/temporal-performance.integration.test.ts +615 -0
  279. package/src/__tests__/temporal-reset-matrix.unit.test.ts +97 -0
  280. package/src/__tests__/temporal-transaction.integration.test.ts +60 -0
  281. package/src/__tests__/temporal-view.unit.test.ts +152 -0
  282. package/src/__tests__/transmission-prewarm.unit.test.ts +93 -0
  283. package/src/__tests__/typed-pipeline-topology.unit.test.ts +230 -1
  284. package/src/__tests__/urp-pipeline-targets.unit.test.ts +25 -1
  285. package/src/__tests__/urp-pipeline.unit.test.ts +4 -3
  286. package/src/__tests__/visibility-extract.integration.test.ts +27 -1
  287. package/src/__tests__/visibility-producer-matrix.integration.test.ts +10 -0
  288. package/src/assembly/backend-contract.ts +47 -1
  289. package/src/assembly/factory.ts +1295 -507
  290. package/src/assembly/host-contract.ts +4 -0
  291. package/src/assembly/material/assembly.ts +2 -5
  292. package/src/assembly/renderer-frame-transaction.ts +75 -0
  293. package/src/assembly/renderer-inspection.ts +112 -0
  294. package/src/assembly/renderer-lifecycle.ts +6 -0
  295. package/src/authoring.ts +1 -0
  296. package/src/components/__tests__/motion-blur.unit.test.ts +14 -0
  297. package/src/components/__tests__/points-lines-admission.unit.test.ts +219 -0
  298. package/src/components/__tests__/points-lines-schema.unit.test.ts +56 -0
  299. package/src/components/__tests__/schema-contract.unit.test.ts +6 -1
  300. package/src/components/atmosphere.ts +10 -0
  301. package/src/components/camera.ts +2 -1
  302. package/src/components/fog.ts +9 -0
  303. package/src/components/index.ts +10 -0
  304. package/src/components/lines.ts +18 -0
  305. package/src/components/motion-blur.ts +8 -0
  306. package/src/components/points.ts +40 -0
  307. package/src/construct-renderer.ts +40 -3
  308. package/src/device/device-scope.ts +15 -1
  309. package/src/environment/frame.ts +185 -0
  310. package/src/environment/generation.ts +23 -0
  311. package/src/environment/graph.ts +9 -0
  312. package/src/environment/inspection.ts +87 -0
  313. package/src/environment/lifecycle.ts +250 -0
  314. package/src/environment/signature.ts +55 -0
  315. package/src/errors/render.ts +429 -1
  316. package/src/extract/camera.ts +78 -0
  317. package/src/extract/environment.ts +171 -0
  318. package/src/extract/visibility.ts +38 -19
  319. package/src/features/host.ts +36 -5
  320. package/src/features/motion-blur/__tests__/motion-blur-feature.unit.test.ts +67 -0
  321. package/src/features/motion-blur/__tests__/motion-blur-params.unit.test.ts +53 -0
  322. package/src/features/motion-blur/motion-blur-feature.ts +119 -0
  323. package/src/features/motion-blur/motion-blur-params.ts +89 -0
  324. package/src/features/plan.ts +32 -3
  325. package/src/features/prepared-gpu-work.ts +21 -6
  326. package/src/features/prepared-graphics.ts +2 -1
  327. package/src/features/render-graph-raster.ts +24 -4
  328. package/src/features/targets.ts +24 -2
  329. package/src/features/types.ts +13 -0
  330. package/src/fullscreen-post-process-pass.ts +34 -4
  331. package/src/gpu-driven/production-raster.ts +6 -1
  332. package/src/gpu-scene.ts +24 -0
  333. package/src/ibl/skylight-bind-group.ts +30 -38
  334. package/src/index.ts +83 -6
  335. package/src/inspection-types.ts +52 -0
  336. package/src/internal.ts +5 -0
  337. package/src/materials.ts +119 -24
  338. package/src/pbr-pipeline.ts +66 -20
  339. package/src/pipeline/standard-forward-lane.ts +158 -101
  340. package/src/pipeline/standard-pipeline.ts +156 -105
  341. package/src/pipeline/standard-post.ts +373 -0
  342. package/src/pipeline/standard-profile.ts +11 -11
  343. package/src/pipeline-builder.ts +102 -12
  344. package/src/pipeline-spec.ts +9 -0
  345. package/src/plugin.ts +6 -0
  346. package/src/points-lines/__tests__/bounds.unit.test.ts +21 -0
  347. package/src/points-lines/__tests__/cache-recovery.unit.test.ts +157 -0
  348. package/src/points-lines/__tests__/inspection-lanes.integration.test.ts +146 -0
  349. package/src/points-lines/__tests__/inspection.unit.test.ts +173 -0
  350. package/src/points-lines/__tests__/lane-structural.integration.test.ts +122 -0
  351. package/src/points-lines/__tests__/points-lines.bench.ts +400 -0
  352. package/src/points-lines/__tests__/raster-lane.integration.test.ts +44 -0
  353. package/src/points-lines/__tests__/snapshot.unit.test.ts +101 -0
  354. package/src/points-lines/__tests__/view-ubo.unit.test.ts +73 -0
  355. package/src/points-lines/admission.ts +238 -0
  356. package/src/points-lines/bounds.ts +23 -0
  357. package/src/points-lines/expansion-cache.ts +215 -0
  358. package/src/points-lines/inspection.ts +97 -0
  359. package/src/points-lines/prepare.ts +177 -0
  360. package/src/points-lines/record.ts +125 -0
  361. package/src/points-lines/snapshot.ts +130 -0
  362. package/src/record/__tests__/fullscreen-temporal-routing.unit.test.ts +25 -0
  363. package/src/record/__tests__/main-pass-geometry.unit.test.ts +47 -0
  364. package/src/record/__tests__/material-bg-cache.unit.test.ts +12 -1
  365. package/src/record/__tests__/material-pipeline-pending-cache.unit.test.ts +22 -0
  366. package/src/record/__tests__/sprite-material-abi.unit.test.ts +75 -0
  367. package/src/record/__tests__/standard-pbr-ubo-layout.unit.test.ts +67 -0
  368. package/src/record/__tests__/temporal-payload.unit.test.ts +164 -0
  369. package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +127 -0
  370. package/src/record/frame-lighting.ts +14 -2
  371. package/src/record/frame-snapshot.ts +129 -5
  372. package/src/record/frame-targets.ts +15 -6
  373. package/src/record/frame.ts +119 -4
  374. package/src/record/main-pass-geometry.ts +178 -40
  375. package/src/record/main-pass-material.ts +114 -66
  376. package/src/record/main-pass-sprite-draws.ts +79 -102
  377. package/src/record/main-pass.ts +83 -7
  378. package/src/record/mesh-ssbo.ts +22 -3
  379. package/src/record/render-context.ts +209 -23
  380. package/src/record/shadow-pass.ts +129 -28
  381. package/src/record/skybox-post-pass.ts +99 -42
  382. package/src/record/typed-frame-graph.ts +582 -42
  383. package/src/record/view-ubo.ts +99 -4
  384. package/src/render-contract.ts +121 -7
  385. package/src/render-graph-primitives.ts +18 -1
  386. package/src/render-pipeline.ts +100 -27
  387. package/src/render-system-extract.ts +264 -77
  388. package/src/render-system.ts +786 -43
  389. package/src/scene/render-scene-types.ts +3 -0
  390. package/src/scene/render-scene.ts +307 -9
  391. package/src/temporal/__tests__/taa-history-resources.unit.test.ts +45 -0
  392. package/src/temporal/coverage.ts +76 -0
  393. package/src/temporal/frame-coordinator.ts +311 -0
  394. package/src/temporal/gpu.ts +287 -0
  395. package/src/temporal/history.ts +92 -0
  396. package/src/temporal/index.ts +6 -0
  397. package/src/temporal/inspection.ts +97 -0
  398. package/src/temporal/scene-data-catalog.ts +200 -0
  399. package/src/temporal/scene-data.ts +149 -0
  400. package/src/temporal/standard-scene-data.ts +182 -0
  401. package/src/temporal/taa-history-resources.ts +128 -0
  402. package/src/temporal/taa-history-store.ts +79 -0
  403. package/src/temporal/taa-resolve.ts +34 -0
  404. package/src/temporal/temporal-view.ts +169 -0
  405. package/src/temporal/transaction.ts +17 -0
  406. package/src/temporal/view.ts +161 -0
  407. package/src/transmission/__tests__/capability.unit.test.ts +83 -0
  408. package/src/transmission/__tests__/composition.integration.test.ts +161 -0
  409. package/src/transmission/__tests__/inspection.unit.test.ts +241 -0
  410. package/src/transmission/__tests__/lifecycle.integration.test.ts +96 -0
  411. package/src/transmission/__tests__/oracle.unit.test.ts +131 -0
  412. package/src/transmission/__tests__/projection.unit.test.ts +71 -0
  413. package/src/transmission/__tests__/standard-transmission.dawn.test.ts +438 -0
  414. package/src/transmission/__tests__/transmission-backdrop-topology.unit.test.ts +109 -0
  415. package/src/transmission/__tests__/transmission-backdrop.dawn.test.ts +105 -0
  416. package/src/transmission/backdrop.ts +572 -0
  417. package/src/transmission/inspection.ts +190 -0
  418. package/src/transmission/oracle.ts +141 -0
  419. package/src/transmission/projection.ts +83 -0
  420. package/src/typed-render-graph-primitives.ts +162 -9
  421. package/dist/__tests__/authoring-path.unit.test.d.ts +0 -2
  422. package/dist/__tests__/authoring-path.unit.test.d.ts.map +0 -1
  423. package/dist/__tests__/backend-selection-rhi-capture.test-d.d.ts +0 -2
  424. package/dist/__tests__/backend-selection-rhi-capture.test-d.d.ts.map +0 -1
  425. package/dist/__tests__/callback-inference.test-d.d.ts +0 -2
  426. package/dist/__tests__/callback-inference.test-d.d.ts.map +0 -1
  427. package/dist/__tests__/cluster-binner.test.d.ts +0 -2
  428. package/dist/__tests__/cluster-binner.test.d.ts.map +0 -1
  429. package/dist/__tests__/cluster-grid-default-surface.unit.test.d.ts +0 -2
  430. package/dist/__tests__/cluster-grid-default-surface.unit.test.d.ts.map +0 -1
  431. package/dist/__tests__/construct-renderer-identity.unit.test.d.ts +0 -2
  432. package/dist/__tests__/construct-renderer-identity.unit.test.d.ts.map +0 -1
  433. package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts +0 -2
  434. package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts.map +0 -1
  435. package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts +0 -2
  436. package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts.map +0 -1
  437. package/dist/__tests__/direct-extract-consumer-contract.test-d.d.ts +0 -2
  438. package/dist/__tests__/direct-extract-consumer-contract.test-d.d.ts.map +0 -1
  439. package/dist/__tests__/direct-light-snapshot.unit.test.d.ts +0 -2
  440. package/dist/__tests__/direct-light-snapshot.unit.test.d.ts.map +0 -1
  441. package/dist/__tests__/factory-contract.integration.test.d.ts +0 -2
  442. package/dist/__tests__/factory-contract.integration.test.d.ts.map +0 -1
  443. package/dist/__tests__/fallback-row-stride-surface.unit.test.d.ts +0 -2
  444. package/dist/__tests__/fallback-row-stride-surface.unit.test.d.ts.map +0 -1
  445. package/dist/__tests__/frame-observation.contract.test.d.ts +0 -2
  446. package/dist/__tests__/frame-observation.contract.test.d.ts.map +0 -1
  447. package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts +0 -2
  448. package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts.map +0 -1
  449. package/dist/__tests__/glyph-text-layout-recovery.unit.test.d.ts +0 -2
  450. package/dist/__tests__/glyph-text-layout-recovery.unit.test.d.ts.map +0 -1
  451. package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts +0 -6
  452. package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts.map +0 -1
  453. package/dist/__tests__/gpu-driven-indirect-raster.browser.test.d.ts +0 -2
  454. package/dist/__tests__/gpu-driven-indirect-raster.browser.test.d.ts.map +0 -1
  455. package/dist/__tests__/gpu-driven-indirect-raster.dawn.test.d.ts +0 -2
  456. package/dist/__tests__/gpu-driven-indirect-raster.dawn.test.d.ts.map +0 -1
  457. package/dist/__tests__/gpu-driven-production.integration.test.d.ts +0 -2
  458. package/dist/__tests__/gpu-driven-production.integration.test.d.ts.map +0 -1
  459. package/dist/__tests__/gpu-driven-scaling.unit.test.d.ts +0 -2
  460. package/dist/__tests__/gpu-driven-scaling.unit.test.d.ts.map +0 -1
  461. package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts +0 -18
  462. package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts.map +0 -1
  463. package/dist/__tests__/gpu-driven-view-graph.integration.test.d.ts +0 -2
  464. package/dist/__tests__/gpu-driven-view-graph.integration.test.d.ts.map +0 -1
  465. package/dist/__tests__/gpu-driven-view-reference.d.ts +0 -15
  466. package/dist/__tests__/gpu-driven-view-reference.d.ts.map +0 -1
  467. package/dist/__tests__/gpu-driven-view.browser.test.d.ts +0 -2
  468. package/dist/__tests__/gpu-driven-view.browser.test.d.ts.map +0 -1
  469. package/dist/__tests__/gpu-driven-view.dawn.test.d.ts +0 -2
  470. package/dist/__tests__/gpu-driven-view.dawn.test.d.ts.map +0 -1
  471. package/dist/__tests__/gpu-driven-view.unit.test.d.ts +0 -2
  472. package/dist/__tests__/gpu-driven-view.unit.test.d.ts.map +0 -1
  473. package/dist/__tests__/gpu-resource-store-stride.unit.test.d.ts +0 -2
  474. package/dist/__tests__/gpu-resource-store-stride.unit.test.d.ts.map +0 -1
  475. package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts +0 -7
  476. package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts.map +0 -1
  477. package/dist/__tests__/gpu-scene-render-graph.browser.test.d.ts +0 -2
  478. package/dist/__tests__/gpu-scene-render-graph.browser.test.d.ts.map +0 -1
  479. package/dist/__tests__/gpu-scene-render-graph.dawn.test.d.ts +0 -2
  480. package/dist/__tests__/gpu-scene-render-graph.dawn.test.d.ts.map +0 -1
  481. package/dist/__tests__/gpu-scene-schema.unit.test.d.ts +0 -2
  482. package/dist/__tests__/gpu-scene-schema.unit.test.d.ts.map +0 -1
  483. package/dist/__tests__/gpu-scene.dawn.test.d.ts +0 -2
  484. package/dist/__tests__/gpu-scene.dawn.test.d.ts.map +0 -1
  485. package/dist/__tests__/gpu-scene.unit.test.d.ts +0 -2
  486. package/dist/__tests__/gpu-scene.unit.test.d.ts.map +0 -1
  487. package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts +0 -2
  488. package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts.map +0 -1
  489. package/dist/__tests__/infinite-grid-no-vertex-probe.unit.test.d.ts +0 -2
  490. package/dist/__tests__/infinite-grid-no-vertex-probe.unit.test.d.ts.map +0 -1
  491. package/dist/__tests__/injection-kind-owner.test-d.d.ts +0 -2
  492. package/dist/__tests__/injection-kind-owner.test-d.d.ts.map +0 -1
  493. package/dist/__tests__/ktx2-basis-gpu-consumer.dawn.test.d.ts +0 -2
  494. package/dist/__tests__/ktx2-basis-gpu-consumer.dawn.test.d.ts.map +0 -1
  495. package/dist/__tests__/light-buffer-layout.unit.test.d.ts +0 -2
  496. package/dist/__tests__/light-buffer-layout.unit.test.d.ts.map +0 -1
  497. package/dist/__tests__/material-contract-inventory.unit.test.d.ts +0 -2
  498. package/dist/__tests__/material-contract-inventory.unit.test.d.ts.map +0 -1
  499. package/dist/__tests__/material-cooked-projection.unit.test.d.ts +0 -2
  500. package/dist/__tests__/material-cooked-projection.unit.test.d.ts.map +0 -1
  501. package/dist/__tests__/material-snapshot-mutation.integration.test.d.ts +0 -2
  502. package/dist/__tests__/material-snapshot-mutation.integration.test.d.ts.map +0 -1
  503. package/dist/__tests__/material-static-dynamic-route.unit.test.d.ts +0 -2
  504. package/dist/__tests__/material-static-dynamic-route.unit.test.d.ts.map +0 -1
  505. package/dist/__tests__/material-stride-surface.unit.test.d.ts +0 -2
  506. package/dist/__tests__/material-stride-surface.unit.test.d.ts.map +0 -1
  507. package/dist/__tests__/mesh-buffer-usage-surface.unit.test.d.ts +0 -2
  508. package/dist/__tests__/mesh-buffer-usage-surface.unit.test.d.ts.map +0 -1
  509. package/dist/__tests__/mesh-material-bindings.unit.test.d.ts +0 -2
  510. package/dist/__tests__/mesh-material-bindings.unit.test.d.ts.map +0 -1
  511. package/dist/__tests__/mesh-stride-surface.unit.test.d.ts +0 -2
  512. package/dist/__tests__/mesh-stride-surface.unit.test.d.ts.map +0 -1
  513. package/dist/__tests__/morph-culling-reentry.dawn.test.d.ts +0 -2
  514. package/dist/__tests__/morph-culling-reentry.dawn.test.d.ts.map +0 -1
  515. package/dist/__tests__/morph-feature-gpu-work.integration.test.d.ts +0 -2
  516. package/dist/__tests__/morph-feature-gpu-work.integration.test.d.ts.map +0 -1
  517. package/dist/__tests__/morph-feature-plan.unit.test.d.ts +0 -2
  518. package/dist/__tests__/morph-feature-plan.unit.test.d.ts.map +0 -1
  519. package/dist/__tests__/morph-visual-evidence.integration.test.d.ts +0 -2
  520. package/dist/__tests__/morph-visual-evidence.integration.test.d.ts.map +0 -1
  521. package/dist/__tests__/nineslice-handle-surface.unit.test.d.ts +0 -2
  522. package/dist/__tests__/nineslice-handle-surface.unit.test.d.ts.map +0 -1
  523. package/dist/__tests__/post-process-error-policy-owner.unit.test.d.ts +0 -2
  524. package/dist/__tests__/post-process-error-policy-owner.unit.test.d.ts.map +0 -1
  525. package/dist/__tests__/prepared-buffer-kind-owner.test-d.d.ts +0 -2
  526. package/dist/__tests__/prepared-buffer-kind-owner.test-d.d.ts.map +0 -1
  527. package/dist/__tests__/prepared-graphics-capability.unit.test.d.ts +0 -2
  528. package/dist/__tests__/prepared-graphics-capability.unit.test.d.ts.map +0 -1
  529. package/dist/__tests__/prepared-graphics-generation.unit.test.d.ts +0 -2
  530. package/dist/__tests__/prepared-graphics-generation.unit.test.d.ts.map +0 -1
  531. package/dist/__tests__/prepared-graphics-lifecycle.unit.test.d.ts +0 -2
  532. package/dist/__tests__/prepared-graphics-lifecycle.unit.test.d.ts.map +0 -1
  533. package/dist/__tests__/prepared-graphics-pipeline-warmup.unit.test.d.ts +0 -2
  534. package/dist/__tests__/prepared-graphics-pipeline-warmup.unit.test.d.ts.map +0 -1
  535. package/dist/__tests__/prepared-graphics-resolver.unit.test.d.ts +0 -2
  536. package/dist/__tests__/prepared-graphics-resolver.unit.test.d.ts.map +0 -1
  537. package/dist/__tests__/prepared-graphics-snapshot.unit.test.d.ts +0 -2
  538. package/dist/__tests__/prepared-graphics-snapshot.unit.test.d.ts.map +0 -1
  539. package/dist/__tests__/prepared-graphics-store.unit.test.d.ts +0 -2
  540. package/dist/__tests__/prepared-graphics-store.unit.test.d.ts.map +0 -1
  541. package/dist/__tests__/prepared-graphics-validation.unit.test.d.ts +0 -2
  542. package/dist/__tests__/prepared-graphics-validation.unit.test.d.ts.map +0 -1
  543. package/dist/__tests__/profiler-default-off.test.d.ts +0 -2
  544. package/dist/__tests__/profiler-default-off.test.d.ts.map +0 -1
  545. package/dist/__tests__/profiler-phase-catalog.test.d.ts +0 -2
  546. package/dist/__tests__/profiler-phase-catalog.test.d.ts.map +0 -1
  547. package/dist/__tests__/profiler-phase-integration.test.d.ts +0 -2
  548. package/dist/__tests__/profiler-phase-integration.test.d.ts.map +0 -1
  549. package/dist/__tests__/profiler-phase-token.test.d.ts +0 -2
  550. package/dist/__tests__/profiler-phase-token.test.d.ts.map +0 -1
  551. package/dist/__tests__/public-surface.test-d.d.ts +0 -2
  552. package/dist/__tests__/public-surface.test-d.d.ts.map +0 -1
  553. package/dist/__tests__/recover-error-policy-owner.unit.test.d.ts +0 -2
  554. package/dist/__tests__/recover-error-policy-owner.unit.test.d.ts.map +0 -1
  555. package/dist/__tests__/render-error-code-owner.test-d.d.ts +0 -2
  556. package/dist/__tests__/render-error-code-owner.test-d.d.ts.map +0 -1
  557. package/dist/__tests__/render-error-detail-ssot.test-d.d.ts +0 -2
  558. package/dist/__tests__/render-error-detail-ssot.test-d.d.ts.map +0 -1
  559. package/dist/__tests__/render-error-exhaustive.test-d.d.ts +0 -2
  560. package/dist/__tests__/render-error-exhaustive.test-d.d.ts.map +0 -1
  561. package/dist/__tests__/render-feature-assembly.test-d.d.ts +0 -2
  562. package/dist/__tests__/render-feature-assembly.test-d.d.ts.map +0 -1
  563. package/dist/__tests__/render-feature-context.test-d.d.ts +0 -2
  564. package/dist/__tests__/render-feature-context.test-d.d.ts.map +0 -1
  565. package/dist/__tests__/render-feature-contract.test-d.d.ts +0 -2
  566. package/dist/__tests__/render-feature-contract.test-d.d.ts.map +0 -1
  567. package/dist/__tests__/render-feature-diagnostics.unit.test.d.ts +0 -2
  568. package/dist/__tests__/render-feature-diagnostics.unit.test.d.ts.map +0 -1
  569. package/dist/__tests__/render-feature-docs.unit.test.d.ts +0 -2
  570. package/dist/__tests__/render-feature-docs.unit.test.d.ts.map +0 -1
  571. package/dist/__tests__/render-feature-errors.unit.test.d.ts +0 -2
  572. package/dist/__tests__/render-feature-errors.unit.test.d.ts.map +0 -1
  573. package/dist/__tests__/render-feature-gpu-work.integration.test.d.ts +0 -2
  574. package/dist/__tests__/render-feature-gpu-work.integration.test.d.ts.map +0 -1
  575. package/dist/__tests__/render-feature-plan.test-d.d.ts +0 -2
  576. package/dist/__tests__/render-feature-plan.test-d.d.ts.map +0 -1
  577. package/dist/__tests__/render-feature-plan.unit.test.d.ts +0 -2
  578. package/dist/__tests__/render-feature-plan.unit.test.d.ts.map +0 -1
  579. package/dist/__tests__/render-feature-prepared-diagnostics.unit.test.d.ts +0 -2
  580. package/dist/__tests__/render-feature-prepared-diagnostics.unit.test.d.ts.map +0 -1
  581. package/dist/__tests__/render-feature-prepared-errors.test-d.d.ts +0 -2
  582. package/dist/__tests__/render-feature-prepared-errors.test-d.d.ts.map +0 -1
  583. package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts +0 -2
  584. package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts.map +0 -1
  585. package/dist/__tests__/render-feature-prepared-graphics-isolation.unit.test.d.ts +0 -2
  586. package/dist/__tests__/render-feature-prepared-graphics-isolation.unit.test.d.ts.map +0 -1
  587. package/dist/__tests__/render-feature-prepared-graphics-negative.test-d.d.ts +0 -2
  588. package/dist/__tests__/render-feature-prepared-graphics-negative.test-d.d.ts.map +0 -1
  589. package/dist/__tests__/render-feature-prepared-graphics.test-d.d.ts +0 -2
  590. package/dist/__tests__/render-feature-prepared-graphics.test-d.d.ts.map +0 -1
  591. package/dist/__tests__/render-feature-prepared-graphics.unit.test.d.ts +0 -2
  592. package/dist/__tests__/render-feature-prepared-graphics.unit.test.d.ts.map +0 -1
  593. package/dist/__tests__/render-feature-public-surface.test-d.d.ts +0 -2
  594. package/dist/__tests__/render-feature-public-surface.test-d.d.ts.map +0 -1
  595. package/dist/__tests__/render-feature-retry.unit.test.d.ts +0 -2
  596. package/dist/__tests__/render-feature-retry.unit.test.d.ts.map +0 -1
  597. package/dist/__tests__/render-feature-scheduling.unit.test.d.ts +0 -2
  598. package/dist/__tests__/render-feature-scheduling.unit.test.d.ts.map +0 -1
  599. package/dist/__tests__/render-feature-stage-failed-policy-owner.unit.test.d.ts +0 -2
  600. package/dist/__tests__/render-feature-stage-failed-policy-owner.unit.test.d.ts.map +0 -1
  601. package/dist/__tests__/render-feature-stage-fault-recovery.unit.test.d.ts +0 -2
  602. package/dist/__tests__/render-feature-stage-fault-recovery.unit.test.d.ts.map +0 -1
  603. package/dist/__tests__/render-feature-visibility-context.test-d.d.ts +0 -2
  604. package/dist/__tests__/render-feature-visibility-context.test-d.d.ts.map +0 -1
  605. package/dist/__tests__/render-feature-visibility-context.unit.test.d.ts +0 -2
  606. package/dist/__tests__/render-feature-visibility-context.unit.test.d.ts.map +0 -1
  607. package/dist/__tests__/render-feature-zero-work.unit.test.d.ts +0 -2
  608. package/dist/__tests__/render-feature-zero-work.unit.test.d.ts.map +0 -1
  609. package/dist/__tests__/render-graph-compute-raster-gpu.d.ts +0 -7
  610. package/dist/__tests__/render-graph-compute-raster-gpu.d.ts.map +0 -1
  611. package/dist/__tests__/render-graph-compute-raster.browser.test.d.ts +0 -2
  612. package/dist/__tests__/render-graph-compute-raster.browser.test.d.ts.map +0 -1
  613. package/dist/__tests__/render-graph-compute-raster.dawn.test.d.ts +0 -2
  614. package/dist/__tests__/render-graph-compute-raster.dawn.test.d.ts.map +0 -1
  615. package/dist/__tests__/render-graph-hzb-gpu.d.ts +0 -7
  616. package/dist/__tests__/render-graph-hzb-gpu.d.ts.map +0 -1
  617. package/dist/__tests__/render-graph-hzb.browser.test.d.ts +0 -2
  618. package/dist/__tests__/render-graph-hzb.browser.test.d.ts.map +0 -1
  619. package/dist/__tests__/render-graph-hzb.dawn.test.d.ts +0 -2
  620. package/dist/__tests__/render-graph-hzb.dawn.test.d.ts.map +0 -1
  621. package/dist/__tests__/render-graph-primitives.unit.test.d.ts +0 -2
  622. package/dist/__tests__/render-graph-primitives.unit.test.d.ts.map +0 -1
  623. package/dist/__tests__/render-graph-storage-indirect-gpu.d.ts +0 -12
  624. package/dist/__tests__/render-graph-storage-indirect-gpu.d.ts.map +0 -1
  625. package/dist/__tests__/render-graph-storage-indirect.browser.test.d.ts +0 -2
  626. package/dist/__tests__/render-graph-storage-indirect.browser.test.d.ts.map +0 -1
  627. package/dist/__tests__/render-graph-storage-indirect.dawn.test.d.ts +0 -2
  628. package/dist/__tests__/render-graph-storage-indirect.dawn.test.d.ts.map +0 -1
  629. package/dist/__tests__/render-scene-projection.unit.test.d.ts +0 -2
  630. package/dist/__tests__/render-scene-projection.unit.test.d.ts.map +0 -1
  631. package/dist/__tests__/renderer-factory-material-contract.unit.test.d.ts +0 -2
  632. package/dist/__tests__/renderer-factory-material-contract.unit.test.d.ts.map +0 -1
  633. package/dist/__tests__/renderer-lifecycle.integration.test.d.ts +0 -2
  634. package/dist/__tests__/renderer-lifecycle.integration.test.d.ts.map +0 -1
  635. package/dist/__tests__/rhi-backend-package-boundary.unit.test.d.ts +0 -2
  636. package/dist/__tests__/rhi-backend-package-boundary.unit.test.d.ts.map +0 -1
  637. package/dist/__tests__/scriptable-pack-consumer.test-d.d.ts +0 -2
  638. package/dist/__tests__/scriptable-pack-consumer.test-d.d.ts.map +0 -1
  639. package/dist/__tests__/shader-stage-surface.unit.test.d.ts +0 -2
  640. package/dist/__tests__/shader-stage-surface.unit.test.d.ts.map +0 -1
  641. package/dist/__tests__/ssao-config.unit.test.d.ts +0 -2
  642. package/dist/__tests__/ssao-config.unit.test.d.ts.map +0 -1
  643. package/dist/__tests__/ssao-kernel-surface.unit.test.d.ts +0 -2
  644. package/dist/__tests__/ssao-kernel-surface.unit.test.d.ts.map +0 -1
  645. package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts +0 -2
  646. package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts.map +0 -1
  647. package/dist/__tests__/standard-descriptors.test-d.d.ts +0 -2
  648. package/dist/__tests__/standard-descriptors.test-d.d.ts.map +0 -1
  649. package/dist/__tests__/standard-pipeline.dawn.test.d.ts +0 -2
  650. package/dist/__tests__/standard-pipeline.dawn.test.d.ts.map +0 -1
  651. package/dist/__tests__/standard-pipeline.integration.test.d.ts +0 -2
  652. package/dist/__tests__/standard-pipeline.integration.test.d.ts.map +0 -1
  653. package/dist/__tests__/standard-profile-oracle.unit.test.d.ts +0 -2
  654. package/dist/__tests__/standard-profile-oracle.unit.test.d.ts.map +0 -1
  655. package/dist/__tests__/surface-configuration.unit.test.d.ts +0 -2
  656. package/dist/__tests__/surface-configuration.unit.test.d.ts.map +0 -1
  657. package/dist/__tests__/texture-usage-surface.unit.test.d.ts +0 -2
  658. package/dist/__tests__/texture-usage-surface.unit.test.d.ts.map +0 -1
  659. package/dist/__tests__/typed-pipeline-topology.unit.test.d.ts +0 -2
  660. package/dist/__tests__/typed-pipeline-topology.unit.test.d.ts.map +0 -1
  661. package/dist/__tests__/urp-pipeline-targets.unit.test.d.ts +0 -2
  662. package/dist/__tests__/urp-pipeline-targets.unit.test.d.ts.map +0 -1
  663. package/dist/__tests__/urp-pipeline.unit.test.d.ts +0 -2
  664. package/dist/__tests__/urp-pipeline.unit.test.d.ts.map +0 -1
  665. package/dist/__tests__/vertex-color-pipeline.unit.test.d.ts +0 -2
  666. package/dist/__tests__/vertex-color-pipeline.unit.test.d.ts.map +0 -1
  667. package/dist/__tests__/vertex-layout-consumer.unit.test.d.ts +0 -2
  668. package/dist/__tests__/vertex-layout-consumer.unit.test.d.ts.map +0 -1
  669. package/dist/__tests__/visibility-diagnostics.integration.test.d.ts +0 -2
  670. package/dist/__tests__/visibility-diagnostics.integration.test.d.ts.map +0 -1
  671. package/dist/__tests__/visibility-extract.integration.test.d.ts +0 -2
  672. package/dist/__tests__/visibility-extract.integration.test.d.ts.map +0 -1
  673. package/dist/__tests__/visibility-extract.perf.test.d.ts +0 -2
  674. package/dist/__tests__/visibility-extract.perf.test.d.ts.map +0 -1
  675. package/dist/__tests__/visibility-feature-dedup.integration.test.d.ts +0 -2
  676. package/dist/__tests__/visibility-feature-dedup.integration.test.d.ts.map +0 -1
  677. package/dist/__tests__/visibility-hidden-report.unit.test.d.ts +0 -2
  678. package/dist/__tests__/visibility-hidden-report.unit.test.d.ts.map +0 -1
  679. package/dist/__tests__/visibility-instances.integration.test.d.ts +0 -2
  680. package/dist/__tests__/visibility-instances.integration.test.d.ts.map +0 -1
  681. package/dist/__tests__/visibility-multi-world.integration.test.d.ts +0 -2
  682. package/dist/__tests__/visibility-multi-world.integration.test.d.ts.map +0 -1
  683. package/dist/__tests__/visibility-producer-matrix.integration.test.d.ts +0 -2
  684. package/dist/__tests__/visibility-producer-matrix.integration.test.d.ts.map +0 -1
  685. package/dist/__tests__/visibility-producer-matrix.unit.test.d.ts +0 -2
  686. package/dist/__tests__/visibility-producer-matrix.unit.test.d.ts.map +0 -1
  687. package/dist/__tests__/visibility-public-surface.test-d.d.ts +0 -2
  688. package/dist/__tests__/visibility-public-surface.test-d.d.ts.map +0 -1
  689. package/dist/__tests__/visibility-resolver.unit.test.d.ts +0 -2
  690. package/dist/__tests__/visibility-resolver.unit.test.d.ts.map +0 -1
  691. package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts +0 -2
  692. package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts.map +0 -1
  693. package/dist/__tests__/visibility-snapshot-contract.unit.test.d.ts +0 -2
  694. package/dist/__tests__/visibility-snapshot-contract.unit.test.d.ts.map +0 -1
  695. package/dist/__tests__/vocabulary.unit.test.d.ts +0 -2
  696. package/dist/__tests__/vocabulary.unit.test.d.ts.map +0 -1
  697. package/dist/chunk-CQXZC5XI.mjs.map +0 -1
  698. package/dist/chunk-QC4VW3XJ.mjs.map +0 -1
  699. package/dist/chunk-SCRSAK5B.mjs.map +0 -1
  700. package/dist/components/__tests__/schema-contract.unit.test.d.ts +0 -2
  701. package/dist/components/__tests__/schema-contract.unit.test.d.ts.map +0 -1
  702. package/dist/components/__tests__/schema-parity.unit.test.d.ts +0 -2
  703. package/dist/components/__tests__/schema-parity.unit.test.d.ts.map +0 -1
  704. package/dist/components/__tests__/visibility-schema.unit.test.d.ts +0 -2
  705. package/dist/components/__tests__/visibility-schema.unit.test.d.ts.map +0 -1
  706. package/dist/record/__tests__/material-bg-cache.unit.test.d.ts +0 -2
  707. package/dist/record/__tests__/material-bg-cache.unit.test.d.ts.map +0 -1
  708. package/dist/record/__tests__/material-slot-plan.unit.test.d.ts +0 -2
  709. package/dist/record/__tests__/material-slot-plan.unit.test.d.ts.map +0 -1
  710. package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts +0 -2
  711. package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts.map +0 -1
  712. package/dist/record/__tests__/video-texture-view.unit.test.d.ts +0 -2
  713. package/dist/record/__tests__/video-texture-view.unit.test.d.ts.map +0 -1
@@ -0,0 +1,901 @@
1
+ import { err, ok } from '@forgeax/engine-types';
2
+
3
+ // src/errors/render.ts
4
+ var LifecycleConstructionError = class extends Error {
5
+ code = "lifecycle-construction-failed";
6
+ expected = "all DeviceScope resources establish and terminate in order";
7
+ hint = "inspect detail and cleanupFailures, then recover or rebuild the DeviceScope";
8
+ detail;
9
+ constructor(detail) {
10
+ super(`lifecycle-construction-failed: ${detail.resourceKind} lifecycle transaction failed`);
11
+ this.name = "LifecycleConstructionError";
12
+ this.detail = detail;
13
+ }
14
+ };
15
+ var ShadowInvalidConfigError = class extends Error {
16
+ code = "shadow-invalid-config";
17
+ expected;
18
+ hint;
19
+ detail;
20
+ constructor(field, value, min, maxOrComparator) {
21
+ const isComparator = maxOrComparator === ">" || maxOrComparator === ">=";
22
+ const max = !isComparator && typeof maxOrComparator === "number" ? maxOrComparator : void 0;
23
+ const comparator = isComparator ? maxOrComparator : ">=";
24
+ const isInteger = field === "cascadeCount" || field === "pcfKernelSize";
25
+ const isOdd = field === "pcfKernelSize";
26
+ const hint = max !== void 0 ? isInteger ? `set ${field} to an integer in [${min}, ${max}]; got ${value}` : `set ${field} to a value in [${min}, ${max}]; got ${value}` : isOdd ? `set ${field} to an odd integer ${comparator} ${min}; got ${value}` : `set ${field} to a value ${comparator} ${min}; got ${value}`;
27
+ const expected = max !== void 0 ? `${field} in [${min}, ${max}]` : `${field} ${comparator} ${min}`;
28
+ super(
29
+ max !== void 0 ? `shadow component .${field} must be in [${min}, ${max}], got ${value}` : `shadow component .${field} must be ${comparator} ${min}, got ${value}`
30
+ );
31
+ this.name = "ShadowInvalidConfigError";
32
+ this.hint = hint;
33
+ this.expected = expected;
34
+ this.detail = { field, value, min, ...max !== void 0 ? { max } : {} };
35
+ }
36
+ };
37
+ var EquirectProjectionFailedError = class extends Error {
38
+ code = "equirect-projection-failed";
39
+ expected;
40
+ hint;
41
+ detail;
42
+ constructor(handle) {
43
+ const expected = `equirect handle ${handle} projects to a GPU cubemap + IBL precompute`;
44
+ const hint = `equirect handle ${handle} referenced by Skylight/SkyboxBackground failed projection; declare Skylight{equirect} with a valid HDR equirect source and check device.caps.rgba16floatRenderable. The projection is internal (no user upload call); the record arm does not retry`;
45
+ super(`equirect handle ${handle} cubemap projection failed`);
46
+ this.name = "EquirectProjectionFailedError";
47
+ this.expected = expected;
48
+ this.hint = hint;
49
+ this.detail = { handle };
50
+ }
51
+ };
52
+ var HdrpLightBudgetExceededError = class extends Error {
53
+ code = "hdrp-light-budget-exceeded";
54
+ expected;
55
+ hint;
56
+ detail;
57
+ constructor(actual, budget) {
58
+ const expected = `light count <= ${budget}`;
59
+ const hint = `${actual} lights exceed HDRP budget ${budget}; truncating to 256. Reduce light count or wait for OOS-hdrp-larger-budget`;
60
+ super(`HDRP light budget exceeded: ${actual} > ${budget}`);
61
+ this.name = "HdrpLightBudgetExceededError";
62
+ this.expected = expected;
63
+ this.hint = hint;
64
+ this.detail = { actual, budget };
65
+ }
66
+ };
67
+ var HdrpIndexListOverflowError = class extends Error {
68
+ code = "hdrp-index-list-overflow";
69
+ expected;
70
+ hint;
71
+ detail;
72
+ constructor(actual, capacity) {
73
+ const expected = `light index list entries <= ${capacity}`;
74
+ const hint = `cluster binner overflow: writeCount ${actual} exceeds capacity ${capacity}; reduce lights, shrink cluster grid, or increase LIGHT_INDEX_LIST_CAPACITY`;
75
+ super(`HDRP index list overflow: ${actual} > ${capacity}`);
76
+ this.name = "HdrpIndexListOverflowError";
77
+ this.expected = expected;
78
+ this.hint = hint;
79
+ this.detail = { actual, capacity };
80
+ }
81
+ };
82
+ var HdrpDeferredCapsInsufficientError = class extends Error {
83
+ code = "hdrp-deferred-caps-insufficient";
84
+ expected;
85
+ hint;
86
+ detail;
87
+ constructor(actual) {
88
+ const _expected = 4;
89
+ const _expectedStr = `maxColorAttachments >= ${_expected}`;
90
+ const hint = `WebGPU maxColorAttachments = ${actual} (need >= ${_expected}). Upgrade browser to latest Chrome/Edge/Safari, or use URP (forgeax::urp) instead of HDRP.`;
91
+ super(
92
+ `HDRP deferred caps insufficient: maxColorAttachments = ${actual} (need >= ${_expected})`
93
+ );
94
+ this.name = "HdrpDeferredCapsInsufficientError";
95
+ this.expected = _expectedStr;
96
+ this.hint = hint;
97
+ this.detail = { actual, expected: _expected };
98
+ }
99
+ };
100
+ var PointShadowAtlasUninitializedError = class extends Error {
101
+ code = "point-shadow-atlas-uninitialized";
102
+ expected;
103
+ hint;
104
+ constructor() {
105
+ const expected = "ShadowAtlas.ensure() invoked before faceView()";
106
+ const hint = "Gate faceView on isAllocated() or call ensure() once in the per-frame extract step before iterating face views";
107
+ super("ShadowAtlas.faceView called before ensure(); the cube_array texture is not allocated");
108
+ this.name = "PointShadowAtlasUninitializedError";
109
+ this.expected = expected;
110
+ this.hint = hint;
111
+ }
112
+ };
113
+ var PointShadowAtlasBoundsViolationError = class extends Error {
114
+ code = "point-shadow-atlas-bounds-violation";
115
+ expected;
116
+ hint;
117
+ detail;
118
+ constructor(axis, value, max) {
119
+ const expected = `0 <= ${axis} < ${max}`;
120
+ const hint = axis === "layer" ? `clamp PointLight.shadowAtlasLayer to [0, ${max}); the cap on layers equals PointLightShadow cardinality (4)` : `clamp face index to [0, ${max}); cube faces are indexed 0..5 in +X/-X/+Y/-Y/+Z/-Z order`;
121
+ super(`ShadowAtlas.faceView ${axis} out of range: ${value} (must be in [0, ${max}))`);
122
+ this.name = "PointShadowAtlasBoundsViolationError";
123
+ this.expected = expected;
124
+ this.hint = hint;
125
+ this.detail = { axis, value, max };
126
+ }
127
+ };
128
+ var VideoUploadUnsupportedError = class extends Error {
129
+ code = "video-upload-unsupported";
130
+ expected;
131
+ hint;
132
+ constructor() {
133
+ const expected = "at least one video upload path available: a host HTMLVideoElement (general copyExternalImageToTexture path) or GPUExternalTexture capability (high-perf path)";
134
+ const hint = "this backend exposes no usable video upload path; render a static texture instead, or switch to a WebGPU backend that supports video texture upload";
135
+ super("video upload unsupported \u2014 no general or high-perf path available");
136
+ this.name = "VideoUploadUnsupportedError";
137
+ this.expected = expected;
138
+ this.hint = hint;
139
+ }
140
+ };
141
+ var VertexColorVariantConflictError = class extends Error {
142
+ code = "vertex-color-variant-conflict";
143
+ expected;
144
+ hint;
145
+ detail;
146
+ constructor(authoredValue, projected) {
147
+ const expected = `VERTEX_COLOR_AVAILABLE=${projected ? "true" : "false"}`;
148
+ const hint = "derive the shader variant from the mesh VertexLayoutProjection; COLOR_0 presence is a geometry fact";
149
+ super(`authored vertex-color variant ${authoredValue} disagrees with projected ${expected}`);
150
+ this.name = "VertexColorVariantConflictError";
151
+ this.expected = expected;
152
+ this.hint = hint;
153
+ this.detail = { authored: true, authoredValue, projected };
154
+ }
155
+ };
156
+ var SkinPaletteOverflowError = class extends Error {
157
+ code = "skin-palette-overflow";
158
+ expected;
159
+ hint;
160
+ detail;
161
+ constructor(requestedBytes, limit) {
162
+ const expected = `skinned joint palette (${requestedBytes} B) fits within device.limits.maxStorageBufferBindingSize (${limit} B)`;
163
+ const hint = "palette buffer exceeds device maxStorageBufferBindingSize; reduce skinned entity count or split into multiple palette buffers (OOS-skin-palette-batch)";
164
+ super(`skin palette buffer needs ${requestedBytes} B, exceeds device limit ${limit} B`);
165
+ this.name = "SkinPaletteOverflowError";
166
+ this.expected = expected;
167
+ this.hint = hint;
168
+ this.detail = { requestedBytes, limit };
169
+ }
170
+ };
171
+ var SkinMaterialMismatchError = class extends Error {
172
+ code = "skin-material-mismatch";
173
+ expected;
174
+ hint;
175
+ detail;
176
+ constructor(entity, actualShader) {
177
+ const expected = "Skin entity's first material program module === 'forgeax::pbr-skin'";
178
+ const hint = `entity ${entity} has Skin but the first material program module is ${actualShader ?? "<empty>"}; load the mesh via the gltf importer (cooker auto-routes 'forgeax::pbr-skin' for skinned primitives), or remove the Skin component to render the entity unskinned with Materials.standard / Materials.unlit`;
179
+ super(
180
+ `Skin / material mismatch on entity ${entity}: expected forgeax::pbr-skin, got ${actualShader ?? "<empty>"}`
181
+ );
182
+ this.name = "SkinMaterialMismatchError";
183
+ this.expected = expected;
184
+ this.hint = hint;
185
+ this.detail = { entity, actualShader };
186
+ }
187
+ };
188
+ var MaterialSkinAttrMissingError = class extends Error {
189
+ code = "material-skin-attr-missing";
190
+ expected;
191
+ hint;
192
+ detail;
193
+ constructor(entity, missing) {
194
+ const expected = "pbr-skin material requires mesh.attributes.skinIndex + skinWeight";
195
+ const hint = `entity ${entity} uses forgeax::pbr-skin but its MeshAsset is missing ${missing}; switch the entity to a skinned glTF mesh authored with JOINTS_0 + WEIGHTS_0, or change the material to a non-skin shader via Materials.standard / Materials.unlit`;
196
+ super(
197
+ `material/skin attribute mismatch on entity ${entity}: pbr-skin material with mesh missing ${missing}`
198
+ );
199
+ this.name = "MaterialSkinAttrMissingError";
200
+ this.expected = expected;
201
+ this.hint = hint;
202
+ this.detail = { entity, missing };
203
+ }
204
+ };
205
+ var TransmissionCapabilityMissingError = class extends Error {
206
+ code = "transmission-capability-missing";
207
+ expected = "the renderer exposes the transmission capability for this material";
208
+ hint = "disable transmission or provide the renderer capability before drawing";
209
+ detail;
210
+ constructor(material, stage, evidence) {
211
+ super(`transmission capability is missing for material '${material}'`);
212
+ this.name = "TransmissionCapabilityMissingError";
213
+ this.detail = { material, capability: "transmission", stage, ...evidence };
214
+ }
215
+ };
216
+ var renderFeatureRecoveryHintByRecovery = {
217
+ "next-frame": (featureIdentity, stage) => `correct '${featureIdentity}' ${stage} data and retry on the next frame`,
218
+ "renderer-recover": (featureIdentity, _stage) => `wait for renderer recovery before retrying '${featureIdentity}'`,
219
+ registration: (featureIdentity, _stage) => `correct '${featureIdentity}' registration before retrying`
220
+ };
221
+ var RenderFeatureRegistrationConflictError = class extends Error {
222
+ code = "render-feature-registration-conflict";
223
+ expected;
224
+ hint;
225
+ detail;
226
+ constructor(featureIdentity, order, conflictingOrder) {
227
+ const expected = `feature identity '${featureIdentity}' is unique`;
228
+ const hint = `rename '${featureIdentity}' or remove the duplicate feature before registration`;
229
+ super(`render feature registration conflict for '${featureIdentity}'`);
230
+ this.name = "RenderFeatureRegistrationConflictError";
231
+ this.expected = expected;
232
+ this.hint = hint;
233
+ this.detail = { featureIdentity, order, conflictingOrder };
234
+ }
235
+ };
236
+ var RenderFeatureStageFailedError = class extends Error {
237
+ code = "render-feature-stage-failed";
238
+ expected;
239
+ hint;
240
+ detail;
241
+ constructor(featureIdentity, order, stage, recovery) {
242
+ const expected = `feature '${featureIdentity}' completes its ${stage} stage without an error`;
243
+ const hint = renderFeatureRecoveryHintByRecovery[recovery](featureIdentity, stage);
244
+ super(`render feature '${featureIdentity}' failed during ${stage}`);
245
+ this.name = "RenderFeatureStageFailedError";
246
+ this.expected = expected;
247
+ this.hint = hint;
248
+ this.detail = { featureIdentity, order, stage, recovery };
249
+ }
250
+ };
251
+ var RenderFeatureCapabilityMissingError = class extends Error {
252
+ code = "render-feature-capability-missing";
253
+ expected;
254
+ hint;
255
+ detail;
256
+ constructor(featureIdentity, order, capability) {
257
+ const expected = `device capability '${capability}' is available for feature '${featureIdentity}'`;
258
+ const hint = `disable '${featureIdentity}' or use a device with '${capability}' capability`;
259
+ super(`render feature '${featureIdentity}' requires missing capability '${capability}'`);
260
+ this.name = "RenderFeatureCapabilityMissingError";
261
+ this.expected = expected;
262
+ this.hint = hint;
263
+ this.detail = { featureIdentity, order, capability };
264
+ }
265
+ };
266
+ var RenderFeaturePreparationFailedError = class extends Error {
267
+ code = "render-feature-preparation-failed";
268
+ expected;
269
+ hint;
270
+ detail;
271
+ constructor(featureIdentity, order, operation, resourceKind, resourceName, reason, recovery) {
272
+ const expected = `${resourceKind} '${resourceName}' is prepared during ${operation}`;
273
+ const hint = `repair '${resourceName}' and retry feature '${featureIdentity}' on ${recovery}`;
274
+ super(`render feature '${featureIdentity}' preparation failed for '${resourceName}'`);
275
+ this.name = "RenderFeaturePreparationFailedError";
276
+ this.expected = expected;
277
+ this.hint = hint;
278
+ this.detail = {
279
+ featureIdentity,
280
+ order,
281
+ stage: "prepare",
282
+ operation,
283
+ resourceKind,
284
+ resourceName,
285
+ reason,
286
+ recovery
287
+ };
288
+ }
289
+ };
290
+ var RenderFeaturePreparedStateMismatchError = class extends Error {
291
+ code = "render-feature-prepared-state-mismatch";
292
+ expected;
293
+ hint;
294
+ detail;
295
+ constructor(detail) {
296
+ const expected = `${detail.resourceKind} state is compatible for '${detail.operation}'`;
297
+ const hint = `repair '${detail.reason}' for feature '${detail.featureIdentity}' and retry`;
298
+ super(`render feature '${detail.featureIdentity}' prepared state mismatch`);
299
+ this.name = "RenderFeaturePreparedStateMismatchError";
300
+ this.expected = expected;
301
+ this.hint = hint;
302
+ this.detail = detail;
303
+ }
304
+ };
305
+ var RenderFeatureDrawRecordingFailedError = class extends Error {
306
+ code = "render-feature-draw-recording-failed";
307
+ expected;
308
+ hint;
309
+ detail;
310
+ constructor(featureIdentity, order, operation, resourceKind, reason, backendReason, recovery) {
311
+ const expected = `${resourceKind} recording succeeds for '${operation}'`;
312
+ const hint = `repair '${reason}' and retry feature '${featureIdentity}' after ${recovery}`;
313
+ super(`render feature '${featureIdentity}' draw recording failed`);
314
+ this.name = "RenderFeatureDrawRecordingFailedError";
315
+ this.expected = expected;
316
+ this.hint = hint;
317
+ this.detail = {
318
+ featureIdentity,
319
+ order,
320
+ stage: "record",
321
+ operation,
322
+ resourceKind,
323
+ reason,
324
+ backendReason,
325
+ recovery
326
+ };
327
+ }
328
+ };
329
+ var ObservationUnavailableError = class extends Error {
330
+ code = "observation-unavailable";
331
+ expected;
332
+ hint;
333
+ detail;
334
+ constructor(reason, hint) {
335
+ let recovery;
336
+ if (reason === "copy-src") recovery = "enable-copy-src";
337
+ else if (reason === "resource" || reason === "readback-failed") recovery = "retry-readback";
338
+ else recovery = "draw-current-frame";
339
+ super(`current-frame observation unavailable: ${reason}`);
340
+ this.name = "ObservationUnavailableError";
341
+ this.expected = "a fresh producer-owned rgba16float current-frame observation";
342
+ this.hint = hint;
343
+ this.detail = { reason, recovery };
344
+ }
345
+ };
346
+ var SceneDataUnavailableError = class extends Error {
347
+ code = "scene-data-unavailable";
348
+ expected = "the requested semantic scene data is available for the active plan";
349
+ hint;
350
+ detail;
351
+ constructor(detail) {
352
+ const hint = detail.recovery === "enable-capability" ? "enable rgba16floatRenderable and retry the current frame" : detail.recovery === "renderer-recover" ? "wait for renderer recovery, then retry the frame" : "restore the producer coverage and retry on the next frame";
353
+ super(`scene data '${detail.schema}' unavailable for '${detail.featureIdentity}'`);
354
+ this.name = "SceneDataUnavailableError";
355
+ this.hint = hint;
356
+ this.detail = Object.freeze({
357
+ ...detail,
358
+ missingContributorIds: Object.freeze([...detail.missingContributorIds].slice(0, 32)),
359
+ omittedMissingContributorCount: Math.max(
360
+ detail.omittedMissingContributorCount,
361
+ Math.max(0, detail.missingContributorIds.length - 32)
362
+ )
363
+ });
364
+ }
365
+ };
366
+ var FrameReceiptStaleError = class extends Error {
367
+ code = "frame-receipt-stale";
368
+ expected = "the observation receipt belongs to the active device generation";
369
+ hint = "draw a new frame and call observe with its returned FrameReceipt";
370
+ detail;
371
+ constructor(detail) {
372
+ super("frame receipt belongs to a retired device generation");
373
+ this.name = "FrameReceiptStaleError";
374
+ this.detail = detail;
375
+ }
376
+ };
377
+ var RendererContractFailureError = class extends Error {
378
+ code = "renderer-contract-failed";
379
+ expected = "renderer owner contracts remain valid at the public boundary";
380
+ hint = "repair the owner contract and retry the operation";
381
+ detail;
382
+ constructor(operation, cause) {
383
+ super(`renderer ${operation} contract failed: ${cause}`);
384
+ this.name = "RendererContractFailureError";
385
+ this.detail = { operation, cause };
386
+ }
387
+ };
388
+ var EnvironmentSourceConflictError = class extends Error {
389
+ code = "environment-source-conflict";
390
+ expected = "exactly one environment source owns the frame";
391
+ hint = "remove all but one image or atmosphere environment owner";
392
+ detail;
393
+ constructor(owners) {
394
+ super("environment source owners conflict");
395
+ this.name = "EnvironmentSourceConflictError";
396
+ this.detail = { owners: owners.map((owner) => Object.freeze({ ...owner })) };
397
+ }
398
+ };
399
+ var FogCardinalityError = class extends Error {
400
+ code = "fog-cardinality";
401
+ expected = "zero or one Fog owner contributes to a frame";
402
+ hint = "remove extra Fog owners so the resource owner has at most one";
403
+ detail;
404
+ constructor(count) {
405
+ super(`Fog owner cardinality is ${count}`);
406
+ this.name = "FogCardinalityError";
407
+ this.detail = { count };
408
+ }
409
+ };
410
+ var TaaCapsInsufficientError = class extends Error {
411
+ code = "taa-caps-insufficient";
412
+ expected = "the backend exposes the capabilities required by TAA";
413
+ hint = "select a backend with the required TAA capabilities or disable TAA on Camera";
414
+ detail;
415
+ constructor(required, available) {
416
+ super("TAA capabilities are insufficient");
417
+ this.name = "TaaCapsInsufficientError";
418
+ this.detail = { required: [...required], available: [...available] };
419
+ }
420
+ };
421
+ var EnvironmentGenerationFailedError = class extends Error {
422
+ code = "environment-generation-failed";
423
+ expected = "the selected environment generation completes its owner stage";
424
+ hint = "inspect the stage and sourceKey, then retry after correcting the environment";
425
+ detail;
426
+ constructor(sourceKey, stage) {
427
+ super(`environment generation failed during ${stage}`);
428
+ this.name = "EnvironmentGenerationFailedError";
429
+ this.detail = { sourceKey, stage };
430
+ }
431
+ };
432
+ var AtmosphereInvalidParameterError = class extends Error {
433
+ code = "atmosphere-invalid-parameter";
434
+ expected;
435
+ hint;
436
+ detail;
437
+ constructor(field, value, range) {
438
+ super(`Atmosphere.${field} is invalid`);
439
+ this.name = "AtmosphereInvalidParameterError";
440
+ this.detail = { field, value };
441
+ const rangeText = Number.isFinite(range.max) ? `[${range.min}, ${range.max}]` : `>= ${range.min}`;
442
+ this.expected = `Atmosphere.${field} must be finite and ${rangeText}`;
443
+ this.hint = `set Atmosphere.${field} to a finite value ${rangeText}`;
444
+ }
445
+ };
446
+ var OwnerStageFailedError = class extends Error {
447
+ code = "owner-stage-failed";
448
+ expected = "the owner completes its current frame stage";
449
+ hint = "inspect the owner and stage, keep the last-known-good frame, and retry";
450
+ detail;
451
+ constructor(owner, stage) {
452
+ super(`${owner} owner failed during ${stage}`);
453
+ this.name = "OwnerStageFailedError";
454
+ this.detail = { owner, stage };
455
+ }
456
+ };
457
+ var RENDERER_OPERATION_ERROR_POLICY = {
458
+ "world-lease-invalid": {
459
+ expected: "every render World is represented by a live lease owned by this Renderer",
460
+ hint: "attach the World to this Renderer and use the returned lease"
461
+ },
462
+ "frame-input-invalid": {
463
+ expected: "the frame input references attached leases and a valid immutable RenderProfile",
464
+ hint: "repair the frame input and retry draw or setProfile"
465
+ },
466
+ "scene-projection-failed": {
467
+ expected: "the attached World projects into the renderer-owned RenderScene",
468
+ hint: "inspect the structured cause, repair the World publication, and retry draw"
469
+ },
470
+ "asset-binding-failed": {
471
+ expected: "all frame assets resolve to valid renderer-owned bindings",
472
+ hint: "inspect the structured cause, rebuild or cold-cook the asset, and retry draw"
473
+ },
474
+ "feature-plan-failed": {
475
+ expected: "every installed RenderFeature produces a valid declarative plan",
476
+ hint: "inspect the feature cause, repair its plan, and retry draw"
477
+ },
478
+ "graph-build-failed": {
479
+ expected: "the Standard graph builds from the active profile and feature plans",
480
+ hint: "inspect the graph cause, repair the profile or plan, and retry"
481
+ },
482
+ "device-operation-failed": {
483
+ expected: "the active device generation completes the renderer-owned operation",
484
+ hint: "inspect renderer state and the structured cause, then retry or recover"
485
+ },
486
+ "surface-unavailable": {
487
+ expected: "the presentation surface accepts the requested lifecycle operation",
488
+ hint: "inspect renderer state, then restore the surface or create a new Renderer"
489
+ },
490
+ "renderer-state-invalid": {
491
+ expected: "the Renderer is in a state that accepts the requested operation",
492
+ hint: "inspect renderer state and choose retry, restoreSurface, recover, or stop"
493
+ },
494
+ "recovery-failed": {
495
+ expected: "one recovery attempt publishes a complete replacement device generation",
496
+ hint: "inspect the structured cause and retry recover after the host-selected delay"
497
+ },
498
+ "cleanup-failed": {
499
+ expected: "Renderer disposal completes every registered cleanup in reverse ownership order",
500
+ hint: "inspect the ordered cleanup causes; the Renderer remains disposed and must not be reused"
501
+ }
502
+ };
503
+ var RendererOperationError = class extends Error {
504
+ code;
505
+ expected;
506
+ hint;
507
+ detail;
508
+ constructor(code, detail) {
509
+ const policy = RENDERER_OPERATION_ERROR_POLICY[code];
510
+ super(`${code}: ${policy.expected}`);
511
+ this.name = "RendererOperationError";
512
+ this.code = code;
513
+ this.expected = policy.expected;
514
+ this.hint = policy.hint;
515
+ this.detail = detail;
516
+ }
517
+ };
518
+ var PointsLinesInvalidStyleError = class extends Error {
519
+ code = "points-lines-invalid-style";
520
+ expected;
521
+ hint;
522
+ detail;
523
+ constructor(detail) {
524
+ super(`invalid ${detail.component} style at ${detail.field}`);
525
+ this.name = "PointsLinesInvalidStyleError";
526
+ this.expected = detail.expected;
527
+ this.hint = `repair entity ${detail.entity} ${detail.component}.${detail.field} and retry admission`;
528
+ this.detail = detail;
529
+ }
530
+ };
531
+ var PointsLinesTopologyMismatchError = class extends Error {
532
+ code = "points-lines-topology-mismatch";
533
+ expected;
534
+ hint;
535
+ detail;
536
+ constructor(detail) {
537
+ super(`Points/Lines topology mismatch at submesh ${detail.submesh}`);
538
+ this.name = "PointsLinesTopologyMismatchError";
539
+ this.expected = `submesh ${detail.submesh} topology is ${detail.expected}`;
540
+ this.hint = `rebuild entity ${detail.entity} with ${detail.expected} geometry before retrying Points/Lines admission`;
541
+ this.detail = detail;
542
+ }
543
+ };
544
+ var PointsLinesStyleUnsupportedError = class extends Error {
545
+ code = "points-lines-style-unsupported";
546
+ expected;
547
+ hint;
548
+ detail;
549
+ constructor(detail) {
550
+ super(`unsupported Points/Lines ${detail.field} member ${detail.member}`);
551
+ this.name = "PointsLinesStyleUnsupportedError";
552
+ this.expected = `${detail.field} is one of ${detail.supported.join(", ")}`;
553
+ this.hint = `use a supported Points/Lines ${detail.field} member or wait for a later milestone`;
554
+ this.detail = detail;
555
+ }
556
+ };
557
+ var PointsLinesMaterialUnsupportedError = class extends Error {
558
+ code = "points-lines-material-unsupported";
559
+ expected = "one engine-owned unlit forward MaterialAsset pass";
560
+ hint;
561
+ detail;
562
+ constructor(detail) {
563
+ super(`Points/Lines material is unsupported on entity ${detail.entity}`);
564
+ this.name = "PointsLinesMaterialUnsupportedError";
565
+ this.hint = `use Materials.unlit without a shadow-caster pass for entity ${detail.entity}`;
566
+ this.detail = detail;
567
+ }
568
+ };
569
+ var PointsLinesBudgetExceededError = class extends Error {
570
+ code = "points-lines-budget-exceeded";
571
+ expected;
572
+ hint;
573
+ detail;
574
+ constructor(detail) {
575
+ super(`Points/Lines ${detail.unit} budget exceeded`);
576
+ this.name = "PointsLinesBudgetExceededError";
577
+ this.expected = `${detail.unit} <= ${detail.limit}`;
578
+ this.hint = `reduce Points/Lines ${detail.unit} or split the entity into bounded equivalent batches`;
579
+ this.detail = detail;
580
+ }
581
+ };
582
+ var PointsLinesPrepareFailedError = class extends Error {
583
+ code = "points-lines-prepare-failed";
584
+ expected = "the complete Points/Lines candidate validates before publication";
585
+ hint;
586
+ detail;
587
+ constructor(detail) {
588
+ super(`Points/Lines prepare failed at generation ${detail.generation}`);
589
+ this.name = "PointsLinesPrepareFailedError";
590
+ this.hint = detail.lastKnownGood ? "retain the last known good candidate, repair the producer, and retry prepare" : "repair the producer and retry prepare; the failed first candidate produces zero draw";
591
+ this.detail = detail;
592
+ }
593
+ };
594
+
595
+ // src/temporal/scene-data.ts
596
+ var SCENE_DATA_TEMPORAL_V1_SCHEMA = "forgeax::scene-data::temporal-v1";
597
+ var SCENE_DATA_TEMPORAL_V1_DESCRIPTOR = Object.freeze({
598
+ schema: SCENE_DATA_TEMPORAL_V1_SCHEMA,
599
+ format: "rgba16float",
600
+ sampleCount: 1,
601
+ extent: "render-resolution",
602
+ clearValue: [0, 0, -1, 1],
603
+ channels: Object.freeze({
604
+ motionUv: "rg",
605
+ viewDepth: "b-log2-1-plus-depth",
606
+ reactive: "a"
607
+ })
608
+ });
609
+ var targetOwners = /* @__PURE__ */ new WeakMap();
610
+ function registerSceneDataTarget(target, owner) {
611
+ targetOwners.set(target, owner);
612
+ }
613
+ function sceneDataTargetOwner(target) {
614
+ return typeof target === "object" && target !== null ? targetOwners.get(target) : void 0;
615
+ }
616
+ function sceneDataTokenMismatch(operation, reason, owner, target) {
617
+ const detail = reason === "generation-mismatch" ? {
618
+ featureIdentity: owner.featureIdentity,
619
+ order: -1,
620
+ stage: "contribute",
621
+ operation,
622
+ resourceKind: "attachment",
623
+ reason,
624
+ expectedGeneration: owner.generation,
625
+ actualGeneration: targetOwners.get(target)?.generation ?? -1,
626
+ recovery: "renderer-recover"
627
+ } : reason === "foreign-feature" ? {
628
+ featureIdentity: owner.featureIdentity,
629
+ order: -1,
630
+ stage: "contribute",
631
+ operation,
632
+ resourceKind: "attachment",
633
+ reason,
634
+ expectedFeatureIdentity: owner.featureIdentity,
635
+ actualFeatureIdentity: targetOwners.get(target)?.featureIdentity ?? "unknown",
636
+ recovery: "next-frame"
637
+ } : reason === "foreign-kind" ? {
638
+ featureIdentity: owner.featureIdentity,
639
+ order: -1,
640
+ stage: "contribute",
641
+ operation,
642
+ resourceKind: "attachment",
643
+ reason,
644
+ expectedKind: "attachment",
645
+ actualKind: "pipeline",
646
+ recovery: "next-frame"
647
+ } : {
648
+ featureIdentity: owner.featureIdentity,
649
+ order: -1,
650
+ stage: "contribute",
651
+ operation,
652
+ resourceKind: "attachment",
653
+ reason,
654
+ expectedLayout: "sampled-read-temporal-v1",
655
+ actualLayout: target?.access ?? "unknown",
656
+ recovery: "next-frame"
657
+ };
658
+ return new RenderFeaturePreparedStateMismatchError(detail);
659
+ }
660
+ function isSceneDataTarget(value) {
661
+ if (value === null || typeof value !== "object") return false;
662
+ const candidate = value;
663
+ return candidate.kind === "scene-data" && candidate.schema === SCENE_DATA_TEMPORAL_V1_SCHEMA && candidate.access === "sampled-read" && candidate.format === "rgba16float" && candidate.sampleCount === 1 && candidate.extent === "render-resolution" && targetOwners.has(value);
664
+ }
665
+ function sceneDataTargetAsAttachment(_target) {
666
+ throw new TypeError("SceneDataTarget is sampled-read-only and cannot be used as an attachment");
667
+ }
668
+ function sceneDataError(error) {
669
+ return error;
670
+ }
671
+ function availability(options) {
672
+ if (options.recovering) return { status: "unavailable", reason: "renderer-recovering" };
673
+ if (!options.rgba16floatRenderable)
674
+ return { status: "unavailable", reason: "capability-missing" };
675
+ if (options.producerPresent === false)
676
+ return { status: "unavailable", reason: "producer-missing" };
677
+ if (options.coverageComplete === false)
678
+ return { status: "unavailable", reason: "coverage-incomplete" };
679
+ return {
680
+ status: "available",
681
+ completeness: options.reactiveFallback ? "exact-with-reactive-fallback" : "exact"
682
+ };
683
+ }
684
+ function createTarget(owner) {
685
+ const target = Object.freeze({
686
+ kind: "scene-data",
687
+ schema: SCENE_DATA_TEMPORAL_V1_SCHEMA,
688
+ access: "sampled-read",
689
+ format: "rgba16float",
690
+ sampleCount: 1,
691
+ extent: "render-resolution"
692
+ });
693
+ registerSceneDataTarget(target, {
694
+ featureIdentity: owner.featureIdentity,
695
+ planIdentity: owner.planIdentity,
696
+ generation: owner.generation
697
+ });
698
+ return target;
699
+ }
700
+ function tokenError(catalog, operation) {
701
+ return sceneDataTokenMismatch(
702
+ operation,
703
+ "foreign-kind",
704
+ {
705
+ featureIdentity: catalog.featureIdentity,
706
+ planIdentity: catalog.planIdentity,
707
+ generation: catalog.generation
708
+ },
709
+ void 0
710
+ );
711
+ }
712
+ function unavailableError(options, reason) {
713
+ const recovery = reason === "capability-missing" ? "enable-capability" : reason === "renderer-recovering" ? "renderer-recover" : "next-frame";
714
+ return new SceneDataUnavailableError({
715
+ featureIdentity: options.featureIdentity,
716
+ schema: SCENE_DATA_TEMPORAL_V1_SCHEMA,
717
+ lane: options.lane ?? "direct",
718
+ reason,
719
+ missingContributorIds: options.missingContributorIds ?? [],
720
+ omittedMissingContributorCount: 0,
721
+ recovery
722
+ });
723
+ }
724
+ function createSceneDataCatalog(options) {
725
+ const state = availability(options);
726
+ const owner = {
727
+ featureIdentity: options.featureIdentity,
728
+ planIdentity: options.planIdentity,
729
+ generation: options.generation
730
+ };
731
+ const missing = [...options.missingContributorIds ?? []];
732
+ const inspectionBase = {
733
+ schema: SCENE_DATA_TEMPORAL_V1_SCHEMA,
734
+ generation: options.generation,
735
+ planIdentity: options.planIdentity,
736
+ lane: options.lane ?? "direct",
737
+ missingContributorIds: Object.freeze(missing.slice(0, 32)),
738
+ omittedMissingContributorCount: Math.max(0, missing.length - 32)
739
+ };
740
+ return {
741
+ schema: SCENE_DATA_TEMPORAL_V1_SCHEMA,
742
+ generation: options.generation,
743
+ planIdentity: options.planIdentity,
744
+ availability: state,
745
+ require(schema) {
746
+ if (schema !== SCENE_DATA_TEMPORAL_V1_SCHEMA || state.status !== "available") {
747
+ if (state.status === "unavailable") throw unavailableError(options, state.reason);
748
+ throw tokenError(options, "require scene-data target");
749
+ }
750
+ return createTarget(options);
751
+ },
752
+ validate(target, generation = options.generation) {
753
+ const targetOwner = sceneDataTargetOwner(target);
754
+ if (targetOwner === void 0) {
755
+ return err(
756
+ sceneDataTokenMismatch("validate scene-data target", "foreign-feature", owner, target)
757
+ );
758
+ }
759
+ if (targetOwner.planIdentity !== owner.planIdentity || targetOwner.featureIdentity !== owner.featureIdentity) {
760
+ return err(
761
+ sceneDataTokenMismatch("validate scene-data target", "foreign-feature", owner, target)
762
+ );
763
+ }
764
+ if (generation !== owner.generation || targetOwner.generation !== owner.generation) {
765
+ return err(
766
+ sceneDataTokenMismatch(
767
+ "validate scene-data target",
768
+ "generation-mismatch",
769
+ owner,
770
+ target
771
+ )
772
+ );
773
+ }
774
+ if (target.access !== "sampled-read") {
775
+ return err(
776
+ sceneDataTokenMismatch("validate scene-data target", "layout-mismatch", owner, target)
777
+ );
778
+ }
779
+ return ok(target);
780
+ },
781
+ inspect() {
782
+ return Object.freeze(
783
+ state.status === "available" ? { ...inspectionBase, status: state.status, completeness: state.completeness } : { ...inspectionBase, status: state.status, reason: state.reason }
784
+ );
785
+ }
786
+ };
787
+ }
788
+
789
+ // src/pipeline/standard-profile.ts
790
+ var STANDARD_PIPELINE_ID = "forgeax::standard";
791
+ var STANDARD_LIGHT_COUNTS = [1, 32, 256];
792
+ var DEFAULT_CLUSTER_GRID = { x: 16, y: 9, z: 24 };
793
+ var CLUSTER_GRID_STRIDE_U32 = 2;
794
+ var LIGHT_INDEX_LIST_CAPACITY = 1048576;
795
+ var MAX_LIGHTS = 256;
796
+ var STANDARD_POST_STAGE_NAMES = [
797
+ "transparent-blend",
798
+ "bloom",
799
+ "output-transform",
800
+ "fxaa",
801
+ "post-effect",
802
+ "present"
803
+ ];
804
+ var DEFAULT_STANDARD_PROFILE = Object.freeze({
805
+ pipelineId: STANDARD_PIPELINE_ID,
806
+ lightCount: 32,
807
+ lighting: "direct",
808
+ shadows: "filtered",
809
+ pbr: true,
810
+ ibl: true,
811
+ ssao: false,
812
+ fallback: "native",
813
+ postStages: STANDARD_POST_STAGE_NAMES
814
+ });
815
+ function resolveStandardLane(profile, capabilities) {
816
+ if (!capabilities.compute || !capabilities.storageBuffer) return "cpu-webgl2";
817
+ return profile.lighting;
818
+ }
819
+
820
+ // src/render-contract.ts
821
+ var STANDARD_OUTPUT_TRANSFORM_FEATURE_ID = "forgeax::standard::output-transform";
822
+ var RENDER_GRAPH_EXECUTION_PHASE_CATALOG = [
823
+ "record/graph-execute/point-shadow",
824
+ "record/graph-execute/cluster-binner-upload",
825
+ "record/graph-execute/g-buffer",
826
+ "record/graph-execute/g-buffer/geometry-loop",
827
+ "record/graph-execute/g-buffer/material-bind-groups",
828
+ "record/graph-execute/g-buffer/pipeline-selection",
829
+ "record/graph-execute/g-buffer/draw-submit",
830
+ "record/graph-execute/ssao-calc",
831
+ "record/graph-execute/ssao-blur",
832
+ "record/graph-execute/lighting",
833
+ "record/graph-execute/forward",
834
+ "record/graph-execute/forward/geometry-loop",
835
+ "record/graph-execute/forward/material-bind-groups",
836
+ "record/graph-execute/forward/pipeline-selection",
837
+ "record/graph-execute/forward/draw-submit",
838
+ "record/graph-execute/output-transform",
839
+ "record/graph-execute/present",
840
+ "record/graph-execute/debug-overlay",
841
+ "record/graph-execute/shadow",
842
+ "record/graph-execute/spot-shadow",
843
+ "record/graph-execute/skybox",
844
+ "record/graph-execute/main",
845
+ "record/graph-execute/fxaa",
846
+ "record/graph-execute/bloom-bright",
847
+ "record/graph-execute/bloom-blur-h",
848
+ "record/graph-execute/bloom-blur-v",
849
+ "record/graph-execute/bloom-composite",
850
+ "record/graph-execute/other"
851
+ ];
852
+ var RENDER_HDRP_BINNER_PHASE_CATALOG = [
853
+ "record/scene-state/hdrp-cluster/binner/light-bounds-and-occupancy",
854
+ "record/scene-state/hdrp-cluster/binner/light-bounds-and-occupancy/light-aabb",
855
+ "record/scene-state/hdrp-cluster/binner/light-bounds-and-occupancy/cluster-occupancy",
856
+ "record/scene-state/hdrp-cluster/binner/cluster-reserve",
857
+ "record/scene-state/hdrp-cluster/binner/input-preparation",
858
+ "record/scene-state/hdrp-cluster/binner/bin-core",
859
+ "record/scene-state/hdrp-cluster/binner/light-index-write",
860
+ "record/scene-state/hdrp-cluster/binner/light-index-write/bounds-read",
861
+ "record/scene-state/hdrp-cluster/binner/light-index-write/cluster-write"
862
+ ];
863
+ var RENDER_HDRP_CLUSTER_PHASE_CATALOG = [
864
+ "record/scene-state/hdrp-cluster/binner",
865
+ ...RENDER_HDRP_BINNER_PHASE_CATALOG,
866
+ "record/scene-state/hdrp-cluster/payload-packing",
867
+ "record/scene-state/hdrp-cluster/buffer-upload"
868
+ ];
869
+ var RENDER_SCENE_STATE_PHASE_CATALOG = [
870
+ "record/scene-state/fold-buckets",
871
+ "record/scene-state/lighting-prep",
872
+ "record/scene-state/ambient-resolution",
873
+ "record/scene-state/directional-shadow-cache",
874
+ "record/scene-state/hdrp-cluster",
875
+ ...RENDER_HDRP_CLUSTER_PHASE_CATALOG
876
+ ];
877
+ var RENDER_RECORD_PHASE_CATALOG = [
878
+ "record/scene-state",
879
+ ...RENDER_SCENE_STATE_PHASE_CATALOG,
880
+ "record/swapchain",
881
+ "record/render-graph",
882
+ "record/target-views",
883
+ "record/validation",
884
+ "record/dispatch-plan",
885
+ "record/uploads",
886
+ "record/bind-groups",
887
+ "record/graph-execute",
888
+ ...RENDER_GRAPH_EXECUTION_PHASE_CATALOG
889
+ ];
890
+ var RENDER_PHASE_CATALOG = [
891
+ "extract",
892
+ "bind-groups",
893
+ "features",
894
+ "sort",
895
+ "record",
896
+ ...RENDER_RECORD_PHASE_CATALOG
897
+ ];
898
+
899
+ export { AtmosphereInvalidParameterError, CLUSTER_GRID_STRIDE_U32, DEFAULT_CLUSTER_GRID, DEFAULT_STANDARD_PROFILE, EnvironmentGenerationFailedError, EnvironmentSourceConflictError, EquirectProjectionFailedError, FogCardinalityError, FrameReceiptStaleError, HdrpDeferredCapsInsufficientError, HdrpIndexListOverflowError, HdrpLightBudgetExceededError, LIGHT_INDEX_LIST_CAPACITY, LifecycleConstructionError, MAX_LIGHTS, MaterialSkinAttrMissingError, ObservationUnavailableError, OwnerStageFailedError, PointShadowAtlasBoundsViolationError, PointShadowAtlasUninitializedError, PointsLinesBudgetExceededError, PointsLinesInvalidStyleError, PointsLinesMaterialUnsupportedError, PointsLinesPrepareFailedError, PointsLinesStyleUnsupportedError, PointsLinesTopologyMismatchError, RENDER_PHASE_CATALOG, RenderFeatureCapabilityMissingError, RenderFeatureDrawRecordingFailedError, RenderFeaturePreparationFailedError, RenderFeaturePreparedStateMismatchError, RenderFeatureRegistrationConflictError, RenderFeatureStageFailedError, RendererContractFailureError, RendererOperationError, SCENE_DATA_TEMPORAL_V1_DESCRIPTOR, SCENE_DATA_TEMPORAL_V1_SCHEMA, STANDARD_LIGHT_COUNTS, STANDARD_OUTPUT_TRANSFORM_FEATURE_ID, STANDARD_PIPELINE_ID, STANDARD_POST_STAGE_NAMES, SceneDataUnavailableError, ShadowInvalidConfigError, SkinMaterialMismatchError, SkinPaletteOverflowError, TaaCapsInsufficientError, TransmissionCapabilityMissingError, VertexColorVariantConflictError, VideoUploadUnsupportedError, createSceneDataCatalog, isSceneDataTarget, registerSceneDataTarget, resolveStandardLane, sceneDataError, sceneDataTargetAsAttachment, sceneDataTargetOwner, sceneDataTokenMismatch };
900
+ //# sourceMappingURL=chunk-LOSO4CTV.mjs.map
901
+ //# sourceMappingURL=chunk-LOSO4CTV.mjs.map