@forgeax/engine-render 0.1.28 → 0.1.29

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 (642) hide show
  1. package/README.md +627 -124
  2. package/dist/assembly/atmosphere-shader-prewarm.d.ts +6 -0
  3. package/dist/assembly/atmosphere-shader-prewarm.d.ts.map +1 -0
  4. package/dist/assembly/dynamic-geometry-host.d.ts +21 -0
  5. package/dist/assembly/dynamic-geometry-host.d.ts.map +1 -1
  6. package/dist/assembly/dynamic-geometry-runtime.d.ts +20 -0
  7. package/dist/assembly/dynamic-geometry-runtime.d.ts.map +1 -0
  8. package/dist/assembly/factory.d.ts +3 -1
  9. package/dist/assembly/factory.d.ts.map +1 -1
  10. package/dist/assembly/gpu-driven-owner.d.ts +10 -0
  11. package/dist/assembly/gpu-driven-owner.d.ts.map +1 -0
  12. package/dist/assembly/host-contract.d.ts +8 -0
  13. package/dist/assembly/host-contract.d.ts.map +1 -1
  14. package/dist/assembly/material/assembly.d.ts +7 -0
  15. package/dist/assembly/material/assembly.d.ts.map +1 -1
  16. package/dist/assembly/material-shader-policy.d.ts +3 -1
  17. package/dist/assembly/material-shader-policy.d.ts.map +1 -1
  18. package/dist/assembly/recovery/failure-location.d.ts +12 -0
  19. package/dist/assembly/recovery/failure-location.d.ts.map +1 -0
  20. package/dist/assembly/recovery/renderer-recover.d.ts +6 -4
  21. package/dist/assembly/recovery/renderer-recover.d.ts.map +1 -1
  22. package/dist/assembly/renderer-facade.d.ts.map +1 -1
  23. package/dist/assembly/renderer-feature-inspection.d.ts +5 -0
  24. package/dist/assembly/renderer-feature-inspection.d.ts.map +1 -0
  25. package/dist/assembly/renderer-frame-transaction.d.ts +19 -0
  26. package/dist/assembly/renderer-frame-transaction.d.ts.map +1 -1
  27. package/dist/assembly/renderer-helpers.d.ts +3 -0
  28. package/dist/assembly/renderer-helpers.d.ts.map +1 -1
  29. package/dist/assembly/renderer-inspection.d.ts +4 -0
  30. package/dist/assembly/renderer-inspection.d.ts.map +1 -1
  31. package/dist/assembly/shader-prewarm-policy.d.ts +6 -0
  32. package/dist/assembly/shader-prewarm-policy.d.ts.map +1 -1
  33. package/dist/assembly/skin-palette-owner.d.ts +8 -0
  34. package/dist/assembly/skin-palette-owner.d.ts.map +1 -0
  35. package/dist/assembly/ssr-shader-prewarm.d.ts +6 -0
  36. package/dist/assembly/ssr-shader-prewarm.d.ts.map +1 -0
  37. package/dist/assembly/webgpu-device-loss.d.ts +15 -0
  38. package/dist/assembly/webgpu-device-loss.d.ts.map +1 -0
  39. package/dist/assembly/webgpu-pbr-ready.d.ts +38 -0
  40. package/dist/assembly/webgpu-pbr-ready.d.ts.map +1 -0
  41. package/dist/assembly/webgpu-ready-mipmap.d.ts +11 -0
  42. package/dist/assembly/webgpu-ready-mipmap.d.ts.map +1 -0
  43. package/dist/assembly/webgpu-ready.d.ts +7 -3
  44. package/dist/assembly/webgpu-ready.d.ts.map +1 -1
  45. package/dist/assembly/webgpu-renderer-bootstrap.d.ts +10 -0
  46. package/dist/assembly/webgpu-renderer-bootstrap.d.ts.map +1 -0
  47. package/dist/assembly/webgpu-renderer-contract.d.ts +62 -0
  48. package/dist/assembly/webgpu-renderer-contract.d.ts.map +1 -0
  49. package/dist/assembly/webgpu-renderer-guards.d.ts +9 -0
  50. package/dist/assembly/webgpu-renderer-guards.d.ts.map +1 -0
  51. package/dist/assembly/webgpu-renderer-observation.d.ts +6 -0
  52. package/dist/assembly/webgpu-renderer-observation.d.ts.map +1 -0
  53. package/dist/assembly/webgpu-renderer-recovery-failure.d.ts +12 -0
  54. package/dist/assembly/webgpu-renderer-recovery-failure.d.ts.map +1 -0
  55. package/dist/assembly/webgpu-renderer.d.ts +7 -141
  56. package/dist/assembly/webgpu-renderer.d.ts.map +1 -1
  57. package/dist/assembly/webgpu-vertex-layouts.d.ts +28 -84
  58. package/dist/assembly/webgpu-vertex-layouts.d.ts.map +1 -1
  59. package/dist/authoring.mjs +2 -2
  60. package/dist/{chunk-JAASCMXA.mjs → chunk-33XZFTQU.mjs} +245 -39
  61. package/dist/chunk-33XZFTQU.mjs.map +1 -0
  62. package/dist/{chunk-GF523LHF.mjs → chunk-BLXGONR2.mjs} +30 -12
  63. package/dist/chunk-BLXGONR2.mjs.map +1 -0
  64. package/dist/{chunk-J52NMQKR.mjs → chunk-BQVQOQJH.mjs} +1086 -838
  65. package/dist/chunk-BQVQOQJH.mjs.map +1 -0
  66. package/dist/{chunk-IQMKJLNU.mjs → chunk-BTWH7BP4.mjs} +386 -17
  67. package/dist/chunk-BTWH7BP4.mjs.map +1 -0
  68. package/dist/{chunk-MBU4ZVE7.mjs → chunk-FUODTTIA.mjs} +3921 -671
  69. package/dist/chunk-FUODTTIA.mjs.map +1 -0
  70. package/dist/{chunk-MYJ5RPJO.mjs → chunk-JQTSEI3Z.mjs} +3 -3
  71. package/dist/{chunk-MYJ5RPJO.mjs.map → chunk-JQTSEI3Z.mjs.map} +1 -1
  72. package/dist/{chunk-GE3SDD72.mjs → chunk-NICXSHAT.mjs} +16 -38
  73. package/dist/chunk-NICXSHAT.mjs.map +1 -0
  74. package/dist/{chunk-J6KACNOH.mjs → chunk-NRNXBLIJ.mjs} +577 -7
  75. package/dist/chunk-NRNXBLIJ.mjs.map +1 -0
  76. package/dist/{chunk-RBDBZ5R7.mjs → chunk-PA5DRJNI.mjs} +2 -2
  77. package/dist/chunk-PA5DRJNI.mjs.map +1 -0
  78. package/dist/{chunk-VSL23LZE.mjs → chunk-S4DNKQYQ.mjs} +1117 -445
  79. package/dist/chunk-S4DNKQYQ.mjs.map +1 -0
  80. package/dist/components/camera.d.ts +62 -2
  81. package/dist/components/camera.d.ts.map +1 -1
  82. package/dist/components/index.d.ts +1 -0
  83. package/dist/components/index.d.ts.map +1 -1
  84. package/dist/components/instances.d.ts +6 -20
  85. package/dist/components/instances.d.ts.map +1 -1
  86. package/dist/components/scene-instance.d.ts +2 -1
  87. package/dist/components/scene-instance.d.ts.map +1 -1
  88. package/dist/components/screen-space-reflection.d.ts +14 -0
  89. package/dist/components/screen-space-reflection.d.ts.map +1 -0
  90. package/dist/construct-renderer.mjs +12888 -7025
  91. package/dist/construct-renderer.mjs.map +1 -1
  92. package/dist/device/gpu-residency.d.ts +1 -12
  93. package/dist/device/gpu-residency.d.ts.map +1 -1
  94. package/dist/environment/background.d.ts +6 -0
  95. package/dist/environment/background.d.ts.map +1 -0
  96. package/dist/errors/gpu-driven.d.ts +6 -3
  97. package/dist/errors/gpu-driven.d.ts.map +1 -1
  98. package/dist/errors/render.d.ts +7 -4
  99. package/dist/errors/render.d.ts.map +1 -1
  100. package/dist/extract/camera.d.ts.map +1 -1
  101. package/dist/extract/gpu-driven.d.ts +33 -3
  102. package/dist/extract/gpu-driven.d.ts.map +1 -1
  103. package/dist/features/host.d.ts +23 -1
  104. package/dist/features/host.d.ts.map +1 -1
  105. package/dist/features/noise-texture.d.ts +17 -0
  106. package/dist/features/noise-texture.d.ts.map +1 -0
  107. package/dist/features/plan.d.ts +83 -2
  108. package/dist/features/plan.d.ts.map +1 -1
  109. package/dist/features/prepared-gpu-work.d.ts +37 -4
  110. package/dist/features/prepared-gpu-work.d.ts.map +1 -1
  111. package/dist/features/prepared-graphics-store.d.ts.map +1 -1
  112. package/dist/features/prepared-graphics.d.ts +5 -0
  113. package/dist/features/prepared-graphics.d.ts.map +1 -1
  114. package/dist/features/render-graph-compute.d.ts +5 -3
  115. package/dist/features/render-graph-compute.d.ts.map +1 -1
  116. package/dist/features/render-graph-contribution.d.ts +11 -3
  117. package/dist/features/render-graph-contribution.d.ts.map +1 -1
  118. package/dist/features/render-graph-raster.d.ts +19 -3
  119. package/dist/features/render-graph-raster.d.ts.map +1 -1
  120. package/dist/features/types.d.ts +11 -0
  121. package/dist/features/types.d.ts.map +1 -1
  122. package/dist/fullscreen-post-process-pass.d.ts +2 -0
  123. package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
  124. package/dist/gpu-driven/batch-topology.d.ts +34 -1
  125. package/dist/gpu-driven/batch-topology.d.ts.map +1 -1
  126. package/dist/gpu-driven/pbr-program.d.ts +10 -0
  127. package/dist/gpu-driven/pbr-program.d.ts.map +1 -0
  128. package/dist/gpu-driven/prepared-draw.d.ts.map +1 -1
  129. package/dist/gpu-driven/production-raster.d.ts +144 -23
  130. package/dist/gpu-driven/production-raster.d.ts.map +1 -1
  131. package/dist/gpu-driven/shadow-views.d.ts +126 -0
  132. package/dist/gpu-driven/shadow-views.d.ts.map +1 -0
  133. package/dist/gpu-driven/view-gpu.d.ts +18 -2
  134. package/dist/gpu-driven/view-gpu.d.ts.map +1 -1
  135. package/dist/gpu-scene-schema.d.ts +2 -8
  136. package/dist/gpu-scene-schema.d.ts.map +1 -1
  137. package/dist/gpu-scene.d.ts +14 -0
  138. package/dist/gpu-scene.d.ts.map +1 -1
  139. package/dist/gpu-texture-usage.d.ts +1 -0
  140. package/dist/gpu-texture-usage.d.ts.map +1 -1
  141. package/dist/hdrp-buffers.d.ts +6 -0
  142. package/dist/hdrp-buffers.d.ts.map +1 -1
  143. package/dist/ibl/frame-resources.d.ts +8 -0
  144. package/dist/ibl/frame-resources.d.ts.map +1 -0
  145. package/dist/ibl/skylight-bind-group.d.ts.map +1 -1
  146. package/dist/index.d.ts +18 -8
  147. package/dist/index.d.ts.map +1 -1
  148. package/dist/index.mjs +8 -8
  149. package/dist/inspection-types.d.ts +164 -0
  150. package/dist/inspection-types.d.ts.map +1 -1
  151. package/dist/instances-derived-bounds.d.ts +11 -0
  152. package/dist/instances-derived-bounds.d.ts.map +1 -1
  153. package/dist/instances.d.ts +89 -44
  154. package/dist/instances.d.ts.map +1 -1
  155. package/dist/internal.d.ts +3 -0
  156. package/dist/internal.d.ts.map +1 -1
  157. package/dist/internal.mjs +117 -9
  158. package/dist/internal.mjs.map +1 -1
  159. package/dist/lifecycle.d.ts +2 -1
  160. package/dist/lifecycle.d.ts.map +1 -1
  161. package/dist/material-row.d.ts +5 -0
  162. package/dist/material-row.d.ts.map +1 -0
  163. package/dist/materials.d.ts +15 -0
  164. package/dist/materials.d.ts.map +1 -1
  165. package/dist/pbr-pipeline.d.ts +21 -5
  166. package/dist/pbr-pipeline.d.ts.map +1 -1
  167. package/dist/pipeline/standard-forward-lane.d.ts.map +1 -1
  168. package/dist/pipeline/standard-output/auto-exposure/capability.d.ts +12 -0
  169. package/dist/pipeline/standard-output/auto-exposure/capability.d.ts.map +1 -0
  170. package/dist/pipeline/standard-output/auto-exposure/gpu.d.ts +70 -0
  171. package/dist/pipeline/standard-output/auto-exposure/gpu.d.ts.map +1 -0
  172. package/dist/pipeline/standard-output/auto-exposure/graph.d.ts +75 -0
  173. package/dist/pipeline/standard-output/auto-exposure/graph.d.ts.map +1 -0
  174. package/dist/pipeline/standard-output/auto-exposure/inspection.d.ts +111 -0
  175. package/dist/pipeline/standard-output/auto-exposure/inspection.d.ts.map +1 -0
  176. package/dist/pipeline/standard-output/auto-exposure/oracle.d.ts +16 -0
  177. package/dist/pipeline/standard-output/auto-exposure/oracle.d.ts.map +1 -0
  178. package/dist/pipeline/standard-output/auto-exposure/preset.d.ts +14 -0
  179. package/dist/pipeline/standard-output/auto-exposure/preset.d.ts.map +1 -0
  180. package/dist/pipeline/standard-output/auto-exposure/state.d.ts +46 -0
  181. package/dist/pipeline/standard-output/auto-exposure/state.d.ts.map +1 -0
  182. package/dist/pipeline/standard-output/color-transform.d.ts +27 -0
  183. package/dist/pipeline/standard-output/color-transform.d.ts.map +1 -0
  184. package/dist/pipeline/standard-output/graph.d.ts +15 -0
  185. package/dist/pipeline/standard-output/graph.d.ts.map +1 -0
  186. package/dist/pipeline/standard-output/lut-admission.d.ts +29 -0
  187. package/dist/pipeline/standard-output/lut-admission.d.ts.map +1 -0
  188. package/dist/pipeline/standard-output/lut-gpu.d.ts +48 -0
  189. package/dist/pipeline/standard-output/lut-gpu.d.ts.map +1 -0
  190. package/dist/pipeline/standard-output/lut-state.d.ts +68 -0
  191. package/dist/pipeline/standard-output/lut-state.d.ts.map +1 -0
  192. package/dist/pipeline/standard-output/resources.d.ts +10 -0
  193. package/dist/pipeline/standard-output/resources.d.ts.map +1 -0
  194. package/dist/pipeline/standard-output/types.d.ts +39 -0
  195. package/dist/pipeline/standard-output/types.d.ts.map +1 -0
  196. package/dist/pipeline/standard-pipeline.d.ts.map +1 -1
  197. package/dist/pipeline/standard-post.d.ts +2 -2
  198. package/dist/pipeline/standard-post.d.ts.map +1 -1
  199. package/dist/pipeline-builder.d.ts +2 -1
  200. package/dist/pipeline-builder.d.ts.map +1 -1
  201. package/dist/pipeline-spec-types.d.ts +4 -0
  202. package/dist/pipeline-spec-types.d.ts.map +1 -1
  203. package/dist/pipeline-spec.d.ts +1 -9
  204. package/dist/pipeline-spec.d.ts.map +1 -1
  205. package/dist/points-lines/standard-owner.d.ts +1 -1
  206. package/dist/points-lines/standard-owner.d.ts.map +1 -1
  207. package/dist/prepare/prepared-graphics-resolver.d.ts +6 -1
  208. package/dist/prepare/prepared-graphics-resolver.d.ts.map +1 -1
  209. package/dist/record/dynamic-geometry-consumption.d.ts +15 -0
  210. package/dist/record/dynamic-geometry-consumption.d.ts.map +1 -0
  211. package/dist/record/frame-lighting.d.ts +3 -3
  212. package/dist/record/frame-lighting.d.ts.map +1 -1
  213. package/dist/record/frame-snapshot.d.ts +106 -5
  214. package/dist/record/frame-snapshot.d.ts.map +1 -1
  215. package/dist/record/frame-targets.d.ts.map +1 -1
  216. package/dist/record/frame.d.ts +39 -4
  217. package/dist/record/frame.d.ts.map +1 -1
  218. package/dist/record/main-pass-geometry.d.ts +7 -8
  219. package/dist/record/main-pass-geometry.d.ts.map +1 -1
  220. package/dist/record/main-pass-material.d.ts +38 -1
  221. package/dist/record/main-pass-material.d.ts.map +1 -1
  222. package/dist/record/main-pass-sprite-draws.d.ts +2 -10
  223. package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
  224. package/dist/record/main-pass.d.ts +12 -2
  225. package/dist/record/main-pass.d.ts.map +1 -1
  226. package/dist/record/mesh-ssbo.d.ts +15 -6
  227. package/dist/record/mesh-ssbo.d.ts.map +1 -1
  228. package/dist/record/prepared-material-bindings.d.ts +19 -0
  229. package/dist/record/prepared-material-bindings.d.ts.map +1 -0
  230. package/dist/record/recovery-pipeline.d.ts +2 -9
  231. package/dist/record/recovery-pipeline.d.ts.map +1 -1
  232. package/dist/record/render-context.d.ts +74 -26
  233. package/dist/record/render-context.d.ts.map +1 -1
  234. package/dist/record/shadow-pass.d.ts +62 -7
  235. package/dist/record/shadow-pass.d.ts.map +1 -1
  236. package/dist/record/skybox-post-pass.d.ts +1 -1
  237. package/dist/record/skybox-post-pass.d.ts.map +1 -1
  238. package/dist/record/typed-frame-graph.d.ts +35 -7
  239. package/dist/record/typed-frame-graph.d.ts.map +1 -1
  240. package/dist/record/view-ubo.d.ts +1 -0
  241. package/dist/record/view-ubo.d.ts.map +1 -1
  242. package/dist/recovery/render-system-candidate.d.ts +10 -2
  243. package/dist/recovery/render-system-candidate.d.ts.map +1 -1
  244. package/dist/recovery/render-system-roots.d.ts +11 -0
  245. package/dist/recovery/render-system-roots.d.ts.map +1 -0
  246. package/dist/recovery/types.d.ts +76 -0
  247. package/dist/recovery/types.d.ts.map +1 -0
  248. package/dist/reflection/record-owner.d.ts +0 -2
  249. package/dist/reflection/record-owner.d.ts.map +1 -1
  250. package/dist/render-contract.d.ts +173 -30
  251. package/dist/render-contract.d.ts.map +1 -1
  252. package/dist/render-graph-primitives.d.ts +1 -0
  253. package/dist/render-graph-primitives.d.ts.map +1 -1
  254. package/dist/render-pipeline.d.ts +64 -5
  255. package/dist/render-pipeline.d.ts.map +1 -1
  256. package/dist/render-system-extract-tail.d.ts +7 -5
  257. package/dist/render-system-extract-tail.d.ts.map +1 -1
  258. package/dist/render-system-extract.d.ts +101 -41
  259. package/dist/render-system-extract.d.ts.map +1 -1
  260. package/dist/render-system-projections.d.ts +22 -0
  261. package/dist/render-system-projections.d.ts.map +1 -0
  262. package/dist/render-system.d.ts +27 -77
  263. package/dist/render-system.d.ts.map +1 -1
  264. package/dist/scene/render-scene-types.d.ts +14 -7
  265. package/dist/scene/render-scene-types.d.ts.map +1 -1
  266. package/dist/scene/render-scene.d.ts +29 -11
  267. package/dist/scene/render-scene.d.ts.map +1 -1
  268. package/dist/scene/shadow-visibility.d.ts +5 -0
  269. package/dist/scene/shadow-visibility.d.ts.map +1 -0
  270. package/dist/ssr/admission.d.ts +70 -1
  271. package/dist/ssr/admission.d.ts.map +1 -1
  272. package/dist/ssr/compose.d.ts +13 -0
  273. package/dist/ssr/compose.d.ts.map +1 -0
  274. package/dist/ssr/errors.d.ts +35 -0
  275. package/dist/ssr/errors.d.ts.map +1 -1
  276. package/dist/ssr/graph.d.ts +60 -0
  277. package/dist/ssr/graph.d.ts.map +1 -0
  278. package/dist/ssr/history.d.ts +97 -0
  279. package/dist/ssr/history.d.ts.map +1 -0
  280. package/dist/ssr/hiz.d.ts +37 -0
  281. package/dist/ssr/hiz.d.ts.map +1 -0
  282. package/dist/ssr/inspection.d.ts +42 -0
  283. package/dist/ssr/inspection.d.ts.map +1 -0
  284. package/dist/ssr/resources.d.ts +58 -0
  285. package/dist/ssr/resources.d.ts.map +1 -0
  286. package/dist/ssr/temporal.d.ts +38 -0
  287. package/dist/ssr/temporal.d.ts.map +1 -0
  288. package/dist/systems/skin-palette-allocator.d.ts +32 -10
  289. package/dist/systems/skin-palette-allocator.d.ts.map +1 -1
  290. package/dist/systems/skin-palette-types.d.ts +15 -0
  291. package/dist/systems/skin-palette-types.d.ts.map +1 -1
  292. package/dist/systems/transparent-dispatch.d.ts +9 -0
  293. package/dist/systems/transparent-dispatch.d.ts.map +1 -0
  294. package/dist/targets/material-source.d.ts +7 -0
  295. package/dist/targets/material-source.d.ts.map +1 -1
  296. package/dist/temporal/frame-coordinator.d.ts +7 -0
  297. package/dist/temporal/frame-coordinator.d.ts.map +1 -1
  298. package/dist/temporal/gpu.d.ts +8 -0
  299. package/dist/temporal/gpu.d.ts.map +1 -1
  300. package/dist/temporal/history.d.ts.map +1 -1
  301. package/dist/temporal/index.mjs +6 -6
  302. package/dist/temporal/inspection.d.ts.map +1 -1
  303. package/dist/temporal/standard-scene-data.d.ts +2 -1
  304. package/dist/temporal/standard-scene-data.d.ts.map +1 -1
  305. package/dist/temporal/temporal-view.d.ts +2 -0
  306. package/dist/temporal/temporal-view.d.ts.map +1 -1
  307. package/dist/typed-render-graph-primitives.d.ts +35 -1
  308. package/dist/typed-render-graph-primitives.d.ts.map +1 -1
  309. package/dist/typed-shadow-passes.d.ts +3 -1
  310. package/dist/typed-shadow-passes.d.ts.map +1 -1
  311. package/dist/volume/temporal.d.ts +6 -0
  312. package/dist/volume/temporal.d.ts.map +1 -1
  313. package/package.json +21 -20
  314. package/src/__tests__/auto-exposure-gpu-evidence.ts +291 -0
  315. package/src/__tests__/auto-exposure-inspection.unit.test.ts +80 -0
  316. package/src/__tests__/auto-exposure-transaction.integration.test.ts +99 -0
  317. package/src/__tests__/auto-exposure.browser.test.ts +33 -0
  318. package/src/__tests__/auto-exposure.dawn.test.ts +33 -0
  319. package/src/__tests__/detached-inspection.integration.test.ts +5 -0
  320. package/src/__tests__/device-scope-lifecycle.unit.test.ts +18 -0
  321. package/src/__tests__/device-scope-stale-matrix.unit.test.ts +18 -0
  322. package/src/__tests__/docs-gate-green.unit.test.ts +3 -3
  323. package/src/__tests__/factory-contract.integration.test.ts +67 -8
  324. package/src/__tests__/fallback-row-stride-surface.unit.test.ts +19 -0
  325. package/src/__tests__/feature-depth-input.dawn.test.ts +121 -0
  326. package/src/__tests__/feature-noise.unit.test.ts +38 -0
  327. package/src/__tests__/fixtures/taa-resolve-pinned-baseline.wgsl +301 -0
  328. package/src/__tests__/frame-camera-selection.unit.test.ts +131 -0
  329. package/src/__tests__/frame-plan-contract.unit.test.ts +24 -0
  330. package/src/__tests__/frame-targets.unit.test.ts +24 -0
  331. package/src/__tests__/fullscreen-feature-plan.unit.test.ts +3 -0
  332. package/src/__tests__/gpu-driven-baseline.characterization.test.ts +79 -0
  333. package/src/__tests__/gpu-driven-batch-topology-pbr.unit.test.ts +287 -6
  334. package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +122 -142
  335. package/src/__tests__/gpu-driven-indirect-raster.browser.test.ts +10 -1
  336. package/src/__tests__/gpu-driven-lod-cache.unit.test.ts +264 -0
  337. package/src/__tests__/gpu-driven-mesh-world-identity.unit.test.ts +349 -0
  338. package/src/__tests__/gpu-driven-pbr.dawn.test.ts +1417 -0
  339. package/src/__tests__/gpu-driven-pbr.integration.test.ts +21 -0
  340. package/src/__tests__/gpu-driven-production-fixture.ts +96 -0
  341. package/src/__tests__/gpu-driven-production.integration.test.ts +1075 -93
  342. package/src/__tests__/gpu-driven-scaling.unit.test.ts +1 -3
  343. package/src/__tests__/gpu-driven-shadow-views.browser.test.ts +63 -0
  344. package/src/__tests__/gpu-driven-shadow-views.dawn.test.ts +294 -0
  345. package/src/__tests__/gpu-driven-shadow-views.integration.test.ts +97 -0
  346. package/src/__tests__/gpu-driven-shadow-views.unit.test.ts +168 -0
  347. package/src/__tests__/gpu-driven-skin-contract.test-d.ts +11 -0
  348. package/src/__tests__/gpu-driven-view-gpu-evidence.ts +72 -20
  349. package/src/__tests__/gpu-driven-view-graph.integration.test.ts +30 -9
  350. package/src/__tests__/gpu-driven-view.unit.test.ts +159 -52
  351. package/src/__tests__/gpu-pass-timing.browser.test.ts +6 -1
  352. package/src/__tests__/gpu-resource-store-stride.unit.test.ts +42 -0
  353. package/src/__tests__/gpu-scene-render-graph-gpu.ts +19 -5
  354. package/src/__tests__/gpu-scene.dawn.test.ts +40 -13
  355. package/src/__tests__/gpu-scene.unit.test.ts +559 -33
  356. package/src/__tests__/instances-culling.integration.test.ts +36 -10
  357. package/src/__tests__/instances-derived-bounds.unit.test.ts +54 -0
  358. package/src/__tests__/instances-store.unit.test.ts +242 -39
  359. package/src/__tests__/ktx2-basis-gpu-consumer.dawn.test.ts +6 -0
  360. package/src/__tests__/lighting-scene-roundtrip.integration.test.ts +13 -16
  361. package/src/__tests__/lut-lkg-transaction.integration.test.ts +122 -0
  362. package/src/__tests__/material-contract-inventory.unit.test.ts +5 -6
  363. package/src/__tests__/material-dispatch-shader-id.unit.test.ts +51 -0
  364. package/src/__tests__/material-lane-selection.unit.test.ts +60 -0
  365. package/src/__tests__/material-numeric-upload.unit.test.ts +53 -0
  366. package/src/__tests__/material-texture-handles.unit.test.ts +18 -0
  367. package/src/__tests__/material-texture-source.unit.test.ts +87 -0
  368. package/src/__tests__/materials-authoring-validation.unit.test.ts +41 -0
  369. package/src/__tests__/materials-standard-contract.unit.test.ts +52 -2
  370. package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +4 -0
  371. package/src/__tests__/normal-fallback.dawn.test.ts +122 -0
  372. package/src/__tests__/particle-material-input-layout.unit.test.ts +104 -0
  373. package/src/__tests__/physical-clearcoat.integration.test.ts +37 -3
  374. package/src/__tests__/pipeline-texture-specialization.unit.test.ts +138 -0
  375. package/src/__tests__/point-shadow-inspection.unit.test.ts +2 -0
  376. package/src/__tests__/prepared-gpu-driven-pbr-contract.test-d.ts +31 -0
  377. package/src/__tests__/prepared-gpu-driven-pbr-contract.unit.test.ts +39 -0
  378. package/src/__tests__/prepared-gpu-driven-pbr.integration.test.ts +35 -4
  379. package/src/__tests__/prepared-graphics-capability.unit.test.ts +21 -0
  380. package/src/__tests__/prepared-graphics-pipeline-warmup.unit.test.ts +6 -2
  381. package/src/__tests__/profiler-phase-catalog.test.ts +5 -0
  382. package/src/__tests__/public-surface.test-d.ts +3 -0
  383. package/src/__tests__/recovery-candidate-prepare.contract.test.ts +30 -12
  384. package/src/__tests__/reflection-fallback-async-publication.unit.test.ts +104 -0
  385. package/src/__tests__/reflection-probe-record-owner.characterization.unit.test.ts +2 -1
  386. package/src/__tests__/render-error-code-owner.test-d.ts +4 -0
  387. package/src/__tests__/render-error-detail-ssot.test-d.ts +22 -0
  388. package/src/__tests__/render-error-exhaustive.test-d.ts +15 -0
  389. package/src/__tests__/render-feature-gpu-work.integration.test.ts +285 -2
  390. package/src/__tests__/render-feature-plan.unit.test.ts +245 -0
  391. package/src/__tests__/render-feature-shadow-order.unit.test.ts +228 -0
  392. package/src/__tests__/render-feature-zero-work.unit.test.ts +35 -1
  393. package/src/__tests__/render-graph-fallback.integration.test.ts +2 -2
  394. package/src/__tests__/render-owner-cohesion.unit.test.ts +55 -0
  395. package/src/__tests__/render-scene-mixed-updates.integration.test.ts +426 -0
  396. package/src/__tests__/render-scene-projection.unit.test.ts +914 -23
  397. package/src/__tests__/render-scene-resource-updates.integration.test.ts +214 -0
  398. package/src/__tests__/render-scene-skin-lifecycle.integration.test.ts +173 -0
  399. package/src/__tests__/render-scene-temporal-retry.unit.test.ts +133 -0
  400. package/src/__tests__/render-target-material-source.test-d.ts +27 -3
  401. package/src/__tests__/renderer-factory-material-contract.unit.test.ts +60 -0
  402. package/src/__tests__/renderer-frame-transaction.integration.test.ts +923 -5
  403. package/src/__tests__/shader-manifest-fixture.ts +39 -0
  404. package/src/__tests__/skin-motion-regression.unit.test.ts +0 -33
  405. package/src/__tests__/skin-palette-persistent.integration.test.ts +28 -0
  406. package/src/__tests__/skin-palette-persistent.unit.test.ts +247 -0
  407. package/src/__tests__/skinned-shadow-caster.test.ts +118 -14
  408. package/src/__tests__/specular-environment-scale.dawn.test.ts +156 -0
  409. package/src/__tests__/ssr-admission-matrix.integration.test.ts +7 -1
  410. package/src/__tests__/ssr-confidence-compose.unit.test.ts +84 -0
  411. package/src/__tests__/ssr-coordinate-oracle.unit.test.ts +28 -0
  412. package/src/__tests__/ssr-format-probe-gating.integration.test.ts +82 -0
  413. package/src/__tests__/ssr-gpu-dispatch.browser.test.ts +91 -0
  414. package/src/__tests__/ssr-gpu-dispatch.dawn.test.ts +112 -0
  415. package/src/__tests__/ssr-gpu-dispatch.ts +946 -0
  416. package/src/__tests__/ssr-graph-topology.unit.test.ts +104 -0
  417. package/src/__tests__/ssr-history-filter.dawn.test.ts +198 -0
  418. package/src/__tests__/ssr-hit-color.dawn.test.ts +273 -0
  419. package/src/__tests__/ssr-hiz-odd-reduction.dawn.test.ts +569 -0
  420. package/src/__tests__/ssr-hiz-rescue.dawn.test.ts +279 -0
  421. package/src/__tests__/ssr-hiz.browser.test.ts +150 -0
  422. package/src/__tests__/ssr-hiz.dawn.test.ts +150 -0
  423. package/src/__tests__/ssr-hiz.unit.test.ts +56 -0
  424. package/src/__tests__/ssr-inspection.unit.test.ts +105 -0
  425. package/src/__tests__/ssr-memory-budget.unit.test.ts +45 -0
  426. package/src/__tests__/ssr-performance-sequence-aggregation.unit.test.ts +15 -0
  427. package/src/__tests__/ssr-public-surface.test-d.ts +37 -0
  428. package/src/__tests__/ssr-receiver-coverage.dawn.test.ts +387 -0
  429. package/src/__tests__/ssr-reflection-mip-reducer.dawn.test.ts +309 -0
  430. package/src/__tests__/ssr-reprojection-probe.ts +90 -0
  431. package/src/__tests__/ssr-roughness-mip.dawn.test.ts +163 -0
  432. package/src/__tests__/ssr-shader-prewarm.unit.test.ts +59 -0
  433. package/src/__tests__/ssr-spatial.integration.test.ts +141 -0
  434. package/src/__tests__/ssr-stable-lattice.dawn.test.ts +475 -0
  435. package/src/__tests__/ssr-temporal-history.unit.test.ts +202 -0
  436. package/src/__tests__/ssr-texel-crossing.dawn.test.ts +448 -0
  437. package/src/__tests__/ssr-zero-work.integration.test.ts +87 -0
  438. package/src/__tests__/standard-cluster-variant-resolution.unit.test.ts +44 -12
  439. package/src/__tests__/standard-clustered-pipeline.unit.test.ts +29 -0
  440. package/src/__tests__/standard-output-chain-contract.unit.test.ts +99 -0
  441. package/src/__tests__/standard-output-chain.integration.test.ts +73 -0
  442. package/src/__tests__/standard-output-gpu-evidence.ts +205 -0
  443. package/src/__tests__/standard-output.browser.test.ts +15 -0
  444. package/src/__tests__/standard-output.dawn.test.ts +15 -0
  445. package/src/__tests__/standard-pbr-artifact-assembly.unit.test.ts +38 -0
  446. package/src/__tests__/standard-pipeline.integration.test.ts +320 -3
  447. package/src/__tests__/standard-profile-oracle.unit.test.ts +22 -0
  448. package/src/__tests__/standard-surface-lighting.unit.test.ts +41 -0
  449. package/src/__tests__/standard-texture-specialization.dawn.test.ts +141 -0
  450. package/src/__tests__/surface-adjacent-regressions.integration.test.ts +6 -3
  451. package/src/__tests__/taa-coverage-edge.dawn.test.ts +193 -0
  452. package/src/__tests__/taa-history-clipping.dawn.test.ts +328 -0
  453. package/src/__tests__/taa-neighborhood-equivalence.dawn.test.ts +778 -0
  454. package/src/__tests__/taa-stability-feedback.browser.test.ts +23 -0
  455. package/src/__tests__/taa-stability-feedback.dawn.test.ts +68 -0
  456. package/src/__tests__/taa-stability-feedback.ts +341 -0
  457. package/src/__tests__/temporal-history-lifecycle.unit.test.ts +49 -7
  458. package/src/__tests__/temporal-reset-matrix.unit.test.ts +9 -0
  459. package/src/__tests__/temporal-transaction.integration.test.ts +28 -0
  460. package/src/__tests__/texture-usage-surface.unit.test.ts +4 -2
  461. package/src/__tests__/typed-pipeline-topology.unit.test.ts +109 -4
  462. package/src/__tests__/typed-scene-pass-material-cache.integration.test.ts +126 -0
  463. package/src/__tests__/vertex-layouts-ssot.unit.test.ts +47 -0
  464. package/src/__tests__/visibility-extract.perf.test.ts +20 -8
  465. package/src/__tests__/visibility-instances.integration.test.ts +19 -7
  466. package/src/__tests__/visibility-producer-matrix.integration.test.ts +20 -9
  467. package/src/assembly/atmosphere-shader-prewarm.ts +38 -0
  468. package/src/assembly/dynamic-geometry-host.ts +48 -0
  469. package/src/assembly/dynamic-geometry-runtime.ts +71 -0
  470. package/src/assembly/factory.ts +4 -0
  471. package/src/assembly/gpu-driven-owner.ts +29 -0
  472. package/src/assembly/host-contract.ts +10 -0
  473. package/src/assembly/material/assembly.ts +38 -0
  474. package/src/assembly/material-shader-policy.ts +71 -28
  475. package/src/assembly/recovery/failure-location.ts +62 -0
  476. package/src/assembly/recovery/renderer-recover.ts +19 -17
  477. package/src/assembly/renderer-facade.ts +12 -0
  478. package/src/assembly/renderer-feature-inspection.ts +13 -0
  479. package/src/assembly/renderer-frame-transaction.ts +63 -0
  480. package/src/assembly/renderer-helpers.ts +26 -0
  481. package/src/assembly/renderer-inspection.ts +6 -0
  482. package/src/assembly/shader-prewarm-policy.ts +32 -0
  483. package/src/assembly/skin-palette-owner.ts +21 -0
  484. package/src/assembly/ssr-shader-prewarm.ts +41 -0
  485. package/src/assembly/webgpu-device-loss.ts +75 -0
  486. package/src/assembly/webgpu-pbr-ready.ts +232 -0
  487. package/src/assembly/webgpu-ready-mipmap.ts +26 -0
  488. package/src/assembly/webgpu-ready.ts +142 -121
  489. package/src/assembly/webgpu-renderer-bootstrap.ts +85 -0
  490. package/src/assembly/webgpu-renderer-contract.ts +69 -0
  491. package/src/assembly/webgpu-renderer-guards.ts +32 -0
  492. package/src/assembly/webgpu-renderer-observation.ts +43 -0
  493. package/src/assembly/webgpu-renderer-recovery-failure.ts +62 -0
  494. package/src/assembly/webgpu-renderer.ts +666 -652
  495. package/src/assembly/webgpu-vertex-layouts.ts +233 -87
  496. package/src/components/__tests__/camera-exposure.contract.unit.test.ts +153 -0
  497. package/src/components/camera.ts +287 -7
  498. package/src/components/index.ts +1 -0
  499. package/src/components/instances.ts +45 -18
  500. package/src/components/scene-instance.ts +2 -1
  501. package/src/components/screen-space-reflection.ts +21 -0
  502. package/src/components/sprite-animation.ts +2 -2
  503. package/src/components/sprite-instances.ts +1 -1
  504. package/src/device/gpu-residency.ts +34 -31
  505. package/src/environment/background.ts +263 -0
  506. package/src/errors/gpu-driven.ts +39 -5
  507. package/src/errors/render.ts +27 -3
  508. package/src/extract/camera.ts +26 -1
  509. package/src/extract/gpu-driven.ts +185 -10
  510. package/src/features/host.ts +237 -19
  511. package/src/features/noise-texture.ts +91 -0
  512. package/src/features/plan.ts +553 -24
  513. package/src/features/prepared-gpu-work.ts +631 -49
  514. package/src/features/prepared-graphics-store.ts +31 -0
  515. package/src/features/prepared-graphics.ts +5 -0
  516. package/src/features/render-graph-compute.ts +41 -8
  517. package/src/features/render-graph-contribution.ts +141 -3
  518. package/src/features/render-graph-raster.ts +143 -30
  519. package/src/features/types.ts +11 -0
  520. package/src/fullscreen-post-process-pass.ts +3 -0
  521. package/src/gpu-driven/batch-topology.ts +424 -102
  522. package/src/gpu-driven/pbr-program.ts +31 -0
  523. package/src/gpu-driven/prepared-draw.ts +29 -4
  524. package/src/gpu-driven/production-raster.ts +2267 -694
  525. package/src/gpu-driven/shadow-views.ts +539 -0
  526. package/src/gpu-driven/view-gpu.ts +188 -41
  527. package/src/gpu-scene-schema.ts +52 -11
  528. package/src/gpu-scene.ts +186 -99
  529. package/src/gpu-texture-usage.ts +1 -0
  530. package/src/hdrp-buffers.ts +72 -36
  531. package/src/ibl/frame-resources.ts +38 -0
  532. package/src/ibl/skylight-bind-group.ts +5 -4
  533. package/src/index.ts +109 -1
  534. package/src/inspection-types.ts +191 -0
  535. package/src/instances-derived-bounds.ts +258 -34
  536. package/src/instances.ts +459 -150
  537. package/src/internal.ts +22 -0
  538. package/src/lifecycle.ts +2 -0
  539. package/src/material-row.ts +145 -0
  540. package/src/materials.ts +44 -8
  541. package/src/pbr-pipeline.ts +159 -17
  542. package/src/pipeline/standard-forward-lane.ts +52 -24
  543. package/src/pipeline/standard-output/__tests__/lut-admission.unit.test.ts +103 -0
  544. package/src/pipeline/standard-output/auto-exposure/__tests__/capability.unit.test.ts +40 -0
  545. package/src/pipeline/standard-output/auto-exposure/__tests__/gpu.contract.unit.test.ts +125 -0
  546. package/src/pipeline/standard-output/auto-exposure/__tests__/graph.contract.unit.test.ts +94 -0
  547. package/src/pipeline/standard-output/auto-exposure/__tests__/oracle.test.ts +108 -0
  548. package/src/pipeline/standard-output/auto-exposure/__tests__/preset.test.ts +26 -0
  549. package/src/pipeline/standard-output/auto-exposure/capability.ts +38 -0
  550. package/src/pipeline/standard-output/auto-exposure/gpu.ts +567 -0
  551. package/src/pipeline/standard-output/auto-exposure/graph.ts +221 -0
  552. package/src/pipeline/standard-output/auto-exposure/inspection.ts +231 -0
  553. package/src/pipeline/standard-output/auto-exposure/oracle.ts +291 -0
  554. package/src/pipeline/standard-output/auto-exposure/preset.ts +28 -0
  555. package/src/pipeline/standard-output/auto-exposure/state.ts +156 -0
  556. package/src/pipeline/standard-output/color-transform.ts +124 -0
  557. package/src/pipeline/standard-output/graph.ts +139 -0
  558. package/src/pipeline/standard-output/lut-admission.ts +121 -0
  559. package/src/pipeline/standard-output/lut-gpu.ts +399 -0
  560. package/src/pipeline/standard-output/lut-state.ts +176 -0
  561. package/src/pipeline/standard-output/resources.ts +121 -0
  562. package/src/pipeline/standard-output/types.ts +58 -0
  563. package/src/pipeline/standard-pipeline.ts +192 -59
  564. package/src/pipeline/standard-post.ts +186 -27
  565. package/src/pipeline-builder.ts +16 -6
  566. package/src/pipeline-spec-types.ts +4 -0
  567. package/src/pipeline-spec.ts +37 -29
  568. package/src/points-lines/standard-owner.ts +6 -14
  569. package/src/prepare/prepared-graphics-resolver.ts +9 -2
  570. package/src/record/__tests__/material-slot-plan.unit.test.ts +48 -0
  571. package/src/record/__tests__/mesh-ssbo.unit.test.ts +40 -1
  572. package/src/record/__tests__/recovery-pipeline.unit.test.ts +2 -29
  573. package/src/record/__tests__/sprite-material-abi.unit.test.ts +36 -5
  574. package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +45 -0
  575. package/src/record/__tests__/view-ubo-layout.unit.test.ts +5 -0
  576. package/src/record/dynamic-geometry-consumption.ts +59 -0
  577. package/src/record/frame-lighting.ts +12 -11
  578. package/src/record/frame-snapshot.ts +133 -23
  579. package/src/record/frame-targets.ts +9 -0
  580. package/src/record/frame.ts +725 -133
  581. package/src/record/main-pass-geometry.ts +149 -94
  582. package/src/record/main-pass-material.ts +115 -26
  583. package/src/record/main-pass-sprite-draws.ts +16 -107
  584. package/src/record/main-pass.ts +78 -8
  585. package/src/record/material-uniforms.ts +1 -1
  586. package/src/record/mesh-ssbo.ts +59 -15
  587. package/src/record/prepared-material-bindings.ts +234 -0
  588. package/src/record/recovery-pipeline.ts +59 -136
  589. package/src/record/render-context.ts +90 -22
  590. package/src/record/shadow-pass.ts +1231 -209
  591. package/src/record/skybox-post-pass.ts +14 -3
  592. package/src/record/typed-frame-graph.ts +1004 -44
  593. package/src/record/view-ubo.ts +11 -0
  594. package/src/recovery/render-system-candidate.ts +90 -66
  595. package/src/recovery/render-system-roots.ts +113 -0
  596. package/src/recovery/types.ts +77 -0
  597. package/src/reflection/record-owner.ts +26 -54
  598. package/src/render-contract.ts +195 -25
  599. package/src/render-graph-primitives.ts +6 -2
  600. package/src/render-pipeline.ts +70 -1
  601. package/src/render-system-extract-tail.ts +409 -160
  602. package/src/render-system-extract.ts +376 -102
  603. package/src/render-system-projections.ts +241 -0
  604. package/src/render-system.ts +681 -822
  605. package/src/scene/render-scene-types.ts +13 -4
  606. package/src/scene/render-scene.ts +569 -355
  607. package/src/scene/shadow-visibility.ts +21 -0
  608. package/src/ssr/admission.ts +380 -14
  609. package/src/ssr/compose.ts +144 -0
  610. package/src/ssr/errors.ts +48 -0
  611. package/src/ssr/graph.ts +777 -0
  612. package/src/ssr/history.ts +436 -0
  613. package/src/ssr/hiz.ts +124 -0
  614. package/src/ssr/inspection.ts +124 -0
  615. package/src/ssr/resources.ts +202 -0
  616. package/src/ssr/temporal.ts +164 -0
  617. package/src/systems/skin-palette-allocator.ts +495 -148
  618. package/src/systems/skin-palette-types.ts +17 -0
  619. package/src/systems/transparent-dispatch.ts +90 -0
  620. package/src/targets/material-source.ts +34 -0
  621. package/src/temporal/coverage.ts +1 -1
  622. package/src/temporal/frame-coordinator.ts +23 -2
  623. package/src/temporal/gpu.ts +74 -12
  624. package/src/temporal/history.ts +3 -1
  625. package/src/temporal/inspection.ts +2 -1
  626. package/src/temporal/standard-scene-data.ts +3 -1
  627. package/src/temporal/temporal-view.ts +3 -0
  628. package/src/transmission/__tests__/standard-transmission.dawn.test.ts +204 -139
  629. package/src/typed-render-graph-primitives.ts +266 -74
  630. package/src/typed-shadow-passes.ts +122 -12
  631. package/src/volume/temporal.ts +10 -0
  632. package/dist/chunk-GE3SDD72.mjs.map +0 -1
  633. package/dist/chunk-GF523LHF.mjs.map +0 -1
  634. package/dist/chunk-IQMKJLNU.mjs.map +0 -1
  635. package/dist/chunk-J52NMQKR.mjs.map +0 -1
  636. package/dist/chunk-J6KACNOH.mjs.map +0 -1
  637. package/dist/chunk-JAASCMXA.mjs.map +0 -1
  638. package/dist/chunk-MBU4ZVE7.mjs.map +0 -1
  639. package/dist/chunk-RBDBZ5R7.mjs.map +0 -1
  640. package/dist/chunk-VSL23LZE.mjs.map +0 -1
  641. package/src/__tests__/instances-world-ownership.integration.test.ts +0 -62
  642. package/src/scene/__tests__/changed-block-summary.candidate.test.ts +0 -36
@@ -5,7 +5,7 @@ export type { MaterialShaderManifestEntry } from '@forgeax/engine-shader';
5
5
  import type { GpuResidencyCache } from '../device/gpu-residency';
6
6
  import type { DeviceScope, RhiErrorListenerRegistry } from '../lifecycle';
7
7
  import { type PipelineGroup2Contract } from '../pbr-pipeline';
8
- import { type VolumetricFogShaderSources } from '../render-contract';
8
+ import { type AtmosphereShaderSources, type SsrShaderSources, type VolumetricFogShaderSources } from '../render-contract';
9
9
  import { type PipelineState } from '../render-system';
10
10
  import { type MeshSsboGrowResult, type MeshSsboState } from './mesh-ssbo-grow';
11
11
  /**
@@ -39,7 +39,7 @@ export declare function buildReadyWebGPU(rhiDevice: RhiDevice, rendererScope: De
39
39
  * during Renderer.initialization so prepared graphics do not fail on their first
40
40
  * frame while the shared async shader adapter is still warming up.
41
41
  */
42
- requiredMaterialShaders: readonly string[],
42
+ requiredMaterialShaders: readonly string[], standardPbrShaderUvSetCount: number,
43
43
  /** Fullscreen feature modules compiled before the first synchronous frame. */
44
44
  requiredFullscreenPostProcesses: readonly {
45
45
  readonly identity: string;
@@ -51,5 +51,9 @@ registerBuiltinFxaa: (source: string) => void, registerBuiltinTemporalPostProces
51
51
  readonly taaResolve?: string;
52
52
  }) => void,
53
53
  /** Install manifest-owned volume utility sources only after all four modules compile. */
54
- setVolumetricFogShaderSources: (sources: VolumetricFogShaderSources) => void): Promise<PipelineState>;
54
+ setVolumetricFogShaderSources: (sources: VolumetricFogShaderSources) => void,
55
+ /** Install manifest-owned SSR utility sources only after all five modules compile. */
56
+ setSsrShaderSources: (sources: SsrShaderSources) => void,
57
+ /** Install manifest-owned atmosphere utility sources only after both modules compile. */
58
+ setAtmosphereShaderSources: (sources: AtmosphereShaderSources) => void): Promise<PipelineState>;
55
59
  //# sourceMappingURL=webgpu-ready.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-ready.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-ready.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAKV,cAAc,EACd,MAAM,EACN,SAAS,EAET,YAAY,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAM,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAI9E,YAAY,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,KAAK,EAAE,iBAAiB,EAAkB,MAAM,yBAAyB,CAAC;AAwBjF,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAIL,KAAK,sBAAsB,EAE5B,MAAM,iBAAiB,CAAC;AAmBzB,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAEnB,MAAM,kBAAkB,CAAC;AAkB1B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,WAAW,EAC1B,SAAS,EAAE,MAAM,aAAa,EAC9B,QAAQ,EAAE,iBAAiB,EAC3B,uBAAuB,EACnB,CAAC,CACC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,KAC/C,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,GAC7C,SAAS,EACb,aAAa,EAAE,wBAAwB;AACvC;;;;GAIG;AACH,uBAAuB,EAAE,SAAS,MAAM,EAAE;AAC1C,8EAA8E;AAC9E,+BAA+B,EAAE,SAAS;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,EAAE,EAUH,mBAAmB,EAAE,CACnB,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,kBAAkB,EACjD,KAAK,EAAE,aAAa,KACjB,IAAI,EAQT,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,EAQ/D,+BAA+B,EAAE,CAC/B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,cAAc,EACnB,cAAc,EAAE,sBAAsB,KACnC,IAAI,EAST,sBAAsB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;AAChD,sEAAsE;AACtE,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,EAC7C,oCAAoC,EAAE,CAAC,OAAO,EAAE;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,KAAK,IAAI;AACV,yFAAyF;AACzF,6BAA6B,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI,GAC3E,OAAO,CAAC,aAAa,CAAC,CAwwHxB"}
1
+ {"version":3,"file":"webgpu-ready.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-ready.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAKV,cAAc,EACd,MAAM,EACN,SAAS,EAET,YAAY,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAM,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAM9E,YAAY,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,KAAK,EAAE,iBAAiB,EAAkB,MAAM,yBAAyB,CAAC;AAwBjF,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,EAGL,KAAK,sBAAsB,EAG5B,MAAM,iBAAiB,CAAC;AAmBzB,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EAErB,KAAK,0BAA0B,EAChC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAEnB,MAAM,kBAAkB,CAAC;AAmB1B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,WAAW,EAC1B,SAAS,EAAE,MAAM,aAAa,EAC9B,QAAQ,EAAE,iBAAiB,EAC3B,uBAAuB,EACnB,CAAC,CACC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,KAC/C,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,GAC7C,SAAS,EACb,aAAa,EAAE,wBAAwB;AACvC;;;;GAIG;AACH,uBAAuB,EAAE,SAAS,MAAM,EAAE,EAC1C,2BAA2B,EAAE,MAAM;AACnC,8EAA8E;AAC9E,+BAA+B,EAAE,SAAS;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,EAAE,EAUH,mBAAmB,EAAE,CACnB,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,kBAAkB,EACjD,KAAK,EAAE,aAAa,KACjB,IAAI,EAQT,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,EAQ/D,+BAA+B,EAAE,CAC/B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,cAAc,EACnB,cAAc,EAAE,sBAAsB,KACnC,IAAI,EAST,sBAAsB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;AAChD,sEAAsE;AACtE,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,EAC7C,oCAAoC,EAAE,CAAC,OAAO,EAAE;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,KAAK,IAAI;AACV,yFAAyF;AACzF,6BAA6B,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI;AAC5E,sFAAsF;AACtF,mBAAmB,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI;AACxD,yFAAyF;AACzF,0BAA0B,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,GACrE,OAAO,CAAC,aAAa,CAAC,CAixHxB"}
@@ -0,0 +1,10 @@
1
+ import type { RendererOptions } from '../render-contract';
2
+ import type { RhiBackendPack } from './backend-contract';
3
+ import type { BundlerOptions } from './bundler-contract';
4
+ import type { RendererAssemblyImplementation } from './host-contract';
5
+ import type { WebGPUOutcome, WebGPURendererInternals } from './webgpu-renderer-contract';
6
+ export type { WebGPUOutcome, WebGPURendererInternals } from './webgpu-renderer-contract';
7
+ export type WebGPURendererFactory = (internals: WebGPURendererInternals) => Promise<RendererAssemblyImplementation>;
8
+ /** Acquire the selected backend and build one renderer generation. */
9
+ export declare function tryCreateWebGPURenderer(canvas: HTMLCanvasElement | OffscreenCanvas, options: RendererOptions | undefined, pack: RhiBackendPack, bundler: BundlerOptions | undefined, createRenderer: WebGPURendererFactory): Promise<WebGPUOutcome>;
10
+ //# sourceMappingURL=webgpu-renderer-bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgpu-renderer-bootstrap.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-renderer-bootstrap.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,KAAK,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAEzF,YAAY,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAEzF,MAAM,MAAM,qBAAqB,GAAG,CAClC,SAAS,EAAE,uBAAuB,KAC/B,OAAO,CAAC,8BAA8B,CAAC,CAAC;AAE7C,sEAAsE;AACtE,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,iBAAiB,GAAG,eAAe,EAC3C,OAAO,EAAE,eAAe,GAAG,SAAS,EACpC,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,cAAc,EAAE,qBAAqB,GACpC,OAAO,CAAC,aAAa,CAAC,CAyDxB"}
@@ -0,0 +1,62 @@
1
+ import type { RhiCanvasContext, RhiDevice, RhiError } from '@forgeax/engine-rhi';
2
+ import type { ImportTransport } from '@forgeax/engine-types';
3
+ import type { RenderFeatureHost } from '../features/host';
4
+ import type { HealthListenerRegistry, LostListenerRegistry, RhiErrorListenerRegistry } from '../lifecycle';
5
+ import type { GpuPassTimingReason } from '../record/gpu-pass-timing/errors.js';
6
+ import type { GpuPassTimingCapture, GpuPassTimingFrameIdentity } from '../record/gpu-pass-timing/index.js';
7
+ import type { AtmosphereShaderSources, FrameObservationDomain, RenderDebugOverlay, RendererOptions, SsrShaderSources, VolumetricFogShaderSources } from '../render-contract';
8
+ import type { TypedFrameObservationCapture } from '../typed-render-graph-primitives';
9
+ import type { RhiBackendPack } from './backend-contract';
10
+ import type { BundlerOptions } from './bundler-contract';
11
+ import type { RendererAssemblyImplementation } from './host-contract';
12
+ import type { MeshSsboGrowResult, MeshSsboState } from './mesh-ssbo-grow';
13
+ export type WebGPUOutcome = {
14
+ kind: 'ok';
15
+ renderer: RendererAssemblyImplementation;
16
+ } | {
17
+ kind: 'rhi-err';
18
+ error: RhiError;
19
+ } | {
20
+ kind: 'throw';
21
+ error: Error;
22
+ };
23
+ export interface WebGPURendererInternals {
24
+ canvas: HTMLCanvasElement | OffscreenCanvas;
25
+ device: RhiDevice;
26
+ context: RhiCanvasContext;
27
+ options: RendererOptions | undefined;
28
+ bundler: BundlerOptions | undefined;
29
+ lostRegistry: LostListenerRegistry;
30
+ errorRegistry: RhiErrorListenerRegistry;
31
+ healthRegistry: HealthListenerRegistry;
32
+ pack: RhiBackendPack;
33
+ importTransport?: ImportTransport | undefined;
34
+ growMeshSsbo?: (neededSlots: number) => MeshSsboGrowResult;
35
+ meshSsboState?: MeshSsboState;
36
+ featureHost?: RenderFeatureHost;
37
+ debugOverlay?: RenderDebugOverlay;
38
+ volumetricFogShaders?: VolumetricFogShaderSources | undefined;
39
+ ssrShaders?: SsrShaderSources | undefined;
40
+ atmosphereShaders?: AtmosphereShaderSources | undefined;
41
+ gpuPassTimingSubmittedWork?: Promise<void> | undefined;
42
+ lossObserver: {
43
+ current?: (detail: string) => void;
44
+ };
45
+ generationState: {
46
+ current: number;
47
+ onStaleLoss?: () => void;
48
+ };
49
+ getMaterialShaderUvSetCount?: (materialShaderId: string) => number | undefined;
50
+ gpuPassTimingFrameIdentity?: GpuPassTimingFrameIdentity | undefined;
51
+ gpuPassTimingCapture?: GpuPassTimingCapture | undefined;
52
+ gpuPassTimingBeginReason?: GpuPassTimingReason | undefined;
53
+ observationCaptureOwner?: {
54
+ register(capture: TypedFrameObservationCapture): void;
55
+ consume(frameNumber: number): readonly TypedFrameObservationCapture[];
56
+ drain(): readonly TypedFrameObservationCapture[];
57
+ };
58
+ observationCaptureDomains?: readonly FrameObservationDomain[] | undefined;
59
+ observationFrameId?: number | undefined;
60
+ observationGraphGeneration?: number | undefined;
61
+ }
62
+ //# sourceMappingURL=webgpu-renderer-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgpu-renderer-contract.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-renderer-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EACV,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,0BAA0B,EAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE1E,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,8BAA8B,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAEpC,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,iBAAiB,GAAG,eAAe,CAAC;IAC5C,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,EAAE,eAAe,GAAG,SAAS,CAAC;IACrC,OAAO,EAAE,cAAc,GAAG,SAAS,CAAC;IACpC,YAAY,EAAE,oBAAoB,CAAC;IACnC,aAAa,EAAE,wBAAwB,CAAC;IACxC,cAAc,EAAE,sBAAsB,CAAC;IACvC,IAAI,EAAE,cAAc,CAAC;IACrB,eAAe,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAC9C,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,kBAAkB,CAAC;IAC3D,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,oBAAoB,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;IAC9D,UAAU,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC1C,iBAAiB,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAC;IACxD,0BAA0B,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IACvD,YAAY,EAAE;QAAE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;IACrD,eAAe,EAAE;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;KAC1B,CAAC;IACF,2BAA2B,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC/E,0BAA0B,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;IACpE,oBAAoB,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACxD,wBAAwB,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC3D,uBAAuB,CAAC,EAAE;QACxB,QAAQ,CAAC,OAAO,EAAE,4BAA4B,GAAG,IAAI,CAAC;QACtD,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,4BAA4B,EAAE,CAAC;QACtE,KAAK,IAAI,SAAS,4BAA4B,EAAE,CAAC;KAClD,CAAC;IACF,yBAAyB,CAAC,EAAE,SAAS,sBAAsB,EAAE,GAAG,SAAS,CAAC;IAC1E,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,0BAA0B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjD"}
@@ -0,0 +1,9 @@
1
+ import type { World } from '@forgeax/engine-ecs';
2
+ import { RendererOperationError } from '../errors/render';
3
+ /**
4
+ * Derived geometry and voxel physics publish together. A draw is rejected
5
+ * until that pair has completed its fixed-step writeback, so the renderer
6
+ * never consumes a half-published World snapshot.
7
+ */
8
+ export declare function derivedPhysicsFrameError(worlds: readonly World[]): RendererOperationError<'frame-input-invalid'> | undefined;
9
+ //# sourceMappingURL=webgpu-renderer-guards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgpu-renderer-guards.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-renderer-guards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAgC,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAExF;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,SAAS,KAAK,EAAE,GACvB,sBAAsB,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAqB3D"}
@@ -0,0 +1,6 @@
1
+ import type { Buffer } from '@forgeax/engine-rhi';
2
+ import { RendererContractFailureError } from '../errors/render';
3
+ import type { TypedFrameObservationCapture } from '../typed-render-graph-primitives';
4
+ /** Dispose receipt-bound readback buffers while retaining failed ownership. */
5
+ export declare function disposeObservationCaptureSet(captures: readonly TypedFrameObservationCapture[], destroyed: WeakSet<Buffer>, failures: WeakMap<Buffer, RendererContractFailureError>, fire: (failure: RendererContractFailureError) => void): RendererContractFailureError | undefined;
6
+ //# sourceMappingURL=webgpu-renderer-observation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgpu-renderer-observation.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-renderer-observation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAErF,+EAA+E;AAC/E,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,SAAS,4BAA4B,EAAE,EACjD,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,EAC1B,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,4BAA4B,CAAC,EACvD,IAAI,EAAE,CAAC,OAAO,EAAE,4BAA4B,KAAK,IAAI,GACpD,4BAA4B,GAAG,SAAS,CAgC1C"}
@@ -0,0 +1,12 @@
1
+ import type { DeviceResourceKind } from '../device/resource-types';
2
+ import type { RecoveryGuidance, RecoveryPhase } from './renderer-lifecycle';
3
+ export interface RecoveryFailureLocation {
4
+ readonly phase: RecoveryPhase;
5
+ readonly retryable: boolean;
6
+ readonly guidance: RecoveryGuidance;
7
+ readonly owner: string;
8
+ readonly resourceKind: DeviceResourceKind;
9
+ readonly cause: unknown;
10
+ }
11
+ export declare function createRecoveryFailureLocation(phase: RecoveryPhase, cause: unknown, overrides?: Partial<Omit<RecoveryFailureLocation, 'phase' | 'cause'>>): RecoveryFailureLocation;
12
+ //# sourceMappingURL=webgpu-renderer-recovery-failure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgpu-renderer-recovery-failure.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-renderer-recovery-failure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE5E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAaD,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,OAAO,EACd,SAAS,GAAE,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,OAAO,GAAG,OAAO,CAAC,CAAM,GACxE,uBAAuB,CAkCzB"}
@@ -1,151 +1,17 @@
1
- import type { RhiCanvasContext, RhiDevice } from '@forgeax/engine-rhi';
2
- import { RhiError } from '@forgeax/engine-rhi';
3
- import type { ImportTransport } from '@forgeax/engine-types';
4
1
  export type { MaterialShaderManifestEntry } from '@forgeax/engine-shader';
5
- import type { DeviceResourceKind } from '../device/resource-types';
6
- import { type RenderFeatureHost } from '../features/host';
7
- import { HealthListenerRegistry, LostListenerRegistry, RhiErrorListenerRegistry } from '../lifecycle';
8
- import type { RecoveryColdWorkGuard } from '../record/render-context';
9
- import type { RenderDebugOverlay, RendererOptions, VolumetricFogShaderSources } from '../render-contract';
2
+ import type { RendererOptions } from '../render-contract';
10
3
  import type { RhiBackendPack } from './backend-contract';
11
4
  import type { BundlerOptions } from './bundler-contract';
12
- import type { RendererAssemblyImplementation } from './host-contract';
13
- import type { MeshSsboGrowResult, MeshSsboState } from './mesh-ssbo-grow';
14
- import { type RecoveryGuidance, type RecoveryPhase } from './renderer-lifecycle';
5
+ export type { RecoveryFailureLocation } from './webgpu-renderer-recovery-failure';
6
+ import type { WebGPUOutcome } from './webgpu-renderer-contract';
15
7
  export type { BundlerOptions } from './bundler-contract';
16
8
  export { assembleMaterialProjection } from './material/assembly';
17
9
  export type { LayoutKind, MaterialShaderBindingContract, MaterialShaderVertexInputContract, } from './material-shader-policy';
18
10
  export { allowsUnlitPreparedFallback, isSharedMaterialUserRegionCompatible, normalizeMaterialShaderVariantSet, resolveMaterialShaderBackendArtifactKey, resolveMaterialShaderBindingContract, resolveMaterialShaderUvSetCount, resolveMaterialShaderVariantSet, resolveMaterialShaderVertexInputContract, selectNoColorPbrVariant, selectPipelineLayoutForVariant, shouldDeferMissingPreparedMaterialShader, } from './material-shader-policy';
19
- export type { MeshSsboBufferWrapper, MeshSsboGrowController, MeshSsboGrowControllerInit, MeshSsboGrowDevice, MeshSsboGrowErrorRegistry, MeshSsboGrowResult, MeshSsboState, } from './mesh-ssbo-grow';
20
- export { createMeshSsboGrowController, deriveStorageBufferCeiling, INITIAL_MESH_SSBO_SLOT_COUNT, requireMeshSsboBuffer, } from './mesh-ssbo-grow';
11
+ export { createMeshSsboGrowController, deriveStorageBufferCeiling, INITIAL_MESH_SSBO_SLOT_COUNT, type MeshSsboBufferWrapper, type MeshSsboGrowController, type MeshSsboGrowControllerInit, type MeshSsboGrowDevice, type MeshSsboGrowErrorRegistry, type MeshSsboGrowResult, type MeshSsboState, requireMeshSsboBuffer, } from './mesh-ssbo-grow';
21
12
  export { exposeRenderer } from './renderer-facade';
22
- export { selectHdrpPbrPrewarmVariants, selectProbePrewarmVariants, selectSkinPrewarmVariants, selectStandardPbrTransmissionPrewarmVariants, } from './shader-prewarm-policy';
23
- /**
24
- * Bundler-layer injection accepted by `createRenderer` (and proxied by
25
- * `createApp`) as the optional third argument.
26
- *
27
- * feat-20260608-create-app-param-surface-trim / M2 / D-3: aggregates the two
28
- * host-injected build-tool channels:
29
- *
30
- * - shaderManifestUrl: the URL the host's vite-plugin-shader emit step
31
- * wrote `manifest.json` to. When this field is omitted (or `bundler`
32
- * itself is omitted), createRenderer falls back to
33
- * '/shaders/manifest.json' (D-2 q5-A) so the LO 1.1 zero-config takeoff
34
- * path keeps working without explicit injection. Tests can inject via a
35
- * `data:application/json,...` URL to bypass fetch.
36
- *
37
- * - importTransport: dev-only ImportTransport forwarded verbatim to the
38
- * AssetRegistry third ctor slot so DDC-miss assets can lazy-import.
39
- * Absent => shipped form (a DDC miss fails fast with `asset-not-imported`).
40
- *
41
- * The interface is structurally shared with `@forgeax/engine-app` while this
42
- * package keeps the renderer independent from the host package.
43
- */
44
- /**
45
- * Wire the spec `device.lost` Promise into the lost / error / health channels
46
- * (research §F-4 / R2). A genuine device loss fans out through `errorRegistry`
47
- * so the public `renderer.subscribe` error event triggers, and
48
- * through `healthRegistry` so `health().reason` flips to `'device-lost'`
49
- * (feat-20260622-s5 M1/M2). Explicit renderer teardown is observable through
50
- * `onLost`, but is not a runtime error and must not manufacture an RhiError.
51
- *
52
- * Extracted to a single helper (SSOT) so the createRenderer assembly path AND
53
- * the recover() rebuild path attach byte-identical fan-out to whichever device
54
- * is current — recover() mints a fresh device whose own `lost` Promise must be
55
- * re-wired to the SAME registries the host already subscribed to.
56
- */
57
- /**
58
- * tryCreateWebGPURenderer returns three kinds of outcome (fix-f1 / w16):
59
- * - `ok` → Renderer created successfully
60
- * - `rhi-err` → RHI Result.err path (preserves the original RhiError
61
- * for AI consumers to read; now includes context acquisition
62
- * failures via pack.rhi.acquireCanvasContext)
63
- * - `throw` → exception path (caught and wrapped by the caller as
64
- * an Error)
65
- */
66
- export type WebGPUOutcome = {
67
- kind: 'ok';
68
- renderer: RendererAssemblyImplementation;
69
- } | {
70
- kind: 'rhi-err';
71
- error: RhiError;
72
- } | {
73
- kind: 'throw';
74
- error: Error;
75
- };
13
+ export { selectGpuDrivenSceneIndexVariant, selectHdrpPbrPrewarmVariants, selectProbePrewarmVariants, selectSkinPrewarmVariants, selectStandardPbrTransmissionPrewarmVariants, } from './shader-prewarm-policy';
14
+ export type { WebGPUOutcome, WebGPURendererInternals } from './webgpu-renderer-contract';
15
+ export { disposeObservationCaptureSet } from './webgpu-renderer-observation';
76
16
  export declare function tryCreateWebGPURenderer(canvas: HTMLCanvasElement | OffscreenCanvas, options: RendererOptions | undefined, pack: RhiBackendPack, bundler: BundlerOptions | undefined): Promise<WebGPUOutcome>;
77
- export interface WebGPURendererInternals {
78
- canvas: HTMLCanvasElement | OffscreenCanvas;
79
- device: RhiDevice;
80
- context: RhiCanvasContext;
81
- options: RendererOptions | undefined;
82
- /**
83
- * feat-20260608-create-app-param-surface-trim / M2 / D-3: BundlerOptions
84
- * forwarded verbatim from createRenderer's third arg. Carries
85
- * shaderManifestUrl (host-injected vite-plugin-shader emit URL; absent =>
86
- * createRenderer falls back to '/shaders/manifest.json') and the
87
- * importTransport that previously rode a dedicated internal slot.
88
- */
89
- bundler: BundlerOptions | undefined;
90
- lostRegistry: LostListenerRegistry;
91
- errorRegistry: RhiErrorListenerRegistry;
92
- healthRegistry: HealthListenerRegistry;
93
- /** M3 D-P4 auto-select pack — carries the dynamic-imported rhi-webgpu / rhi-wgpu singleton + optional async shader factory. */
94
- pack: RhiBackendPack;
95
- /**
96
- * feat-20260604-hdr-equirect-cube-importer-loader M4 / w16 (D-3): the
97
- * dev-only ImportTransport, forwarded verbatim from createRenderer to the
98
- * AssetRegistry third ctor slot. `undefined` keeps the shipped form (DDC
99
- * miss fails fast with `asset-not-imported`, AC-08).
100
- */
101
- importTransport?: ImportTransport | undefined;
102
- /**
103
- * feat-20260608-mesh-ssbo-dynamic-grow-l1-lift-1024-entity-cap M2 / T-M2-05:
104
- * mesh-SSBO grow hook surfaced by `makeWebGPURenderer` after the controller
105
- * is constructed. Undefined before `makeWebGPURenderer` runs; populated by
106
- * the time the renderer is returned to the caller. M3's record stage reads
107
- * this field via the runtime path that bridges into render-system-record.ts
108
- * (the bridging plumbing is in M3's targetFiles).
109
- *
110
- * Returns `{ ok: true }` when the grow completed (or short-circuited
111
- * idempotently); `{ ok: false, code }` with a fired structured error
112
- * (`MeshSsboCeilingReachedError` or `MeshSsboCapacityExceededError`) when
113
- * the request cannot be satisfied. Never throws (D-5).
114
- */
115
- growMeshSsbo?: (neededSlots: number) => MeshSsboGrowResult;
116
- /**
117
- * feat-20260608-mesh-ssbo-dynamic-grow-l1-lift-1024-entity-cap M3 / T-M3-04:
118
- * read-only handle to the grow controller's state (slotCount + wrapper
119
- * refs), surfaced alongside `growMeshSsbo` so `ensureMeshSsboCapacity`
120
- * (record-stage wiring) can short-circuit when slotCount already covers the
121
- * frame's renderable count and so the dev-mode info log can report the
122
- * before/after slot count transition. Undefined until buildReadyWebGPU
123
- * has wired the controller; identity stable across grow events.
124
- */
125
- meshSsboState?: MeshSsboState;
126
- /** Host-owned producer features; created before device-bound assembly starts. */
127
- featureHost?: RenderFeatureHost;
128
- /** App-owned overlay capability read by the typed graph at frame time. */
129
- debugOverlay?: RenderDebugOverlay;
130
- /** Composed renderer utility sources installed atomically at build-ready. */
131
- volumetricFogShaders?: VolumetricFogShaderSources | undefined;
132
- gpuPassTimingSubmittedWork?: Promise<void> | undefined;
133
- lossObserver: {
134
- current?: (detail: string) => void;
135
- };
136
- generationState: {
137
- current: number;
138
- onStaleLoss?: () => void;
139
- };
140
- recoveryColdWorkGuard?: RecoveryColdWorkGuard | undefined;
141
- getMaterialShaderUvSetCount?: (materialShaderId: string) => number | undefined;
142
- }
143
- export interface RecoveryFailureLocation {
144
- readonly phase: RecoveryPhase;
145
- readonly retryable: boolean;
146
- readonly guidance: RecoveryGuidance;
147
- readonly owner: string;
148
- readonly resourceKind: DeviceResourceKind;
149
- readonly cause: unknown;
150
- }
151
17
  //# sourceMappingURL=webgpu-renderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-renderer.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webgpu-renderer.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-renderer.ts"],"names":[],"mappings":"AAyCA,YAAY,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAsE1E,OAAO,KAAK,EAUV,eAAe,EAQhB,MAAM,oBAAoB,CAAC;AAgB5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AA2DzD,YAAY,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAUlF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAUhE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,YAAY,EACV,UAAU,EACV,6BAA6B,EAC7B,iCAAiC,GAClC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,2BAA2B,EAC3B,oCAAoC,EACpC,iCAAiC,EACjC,uCAAuC,EACvC,oCAAoC,EACpC,+BAA+B,EAC/B,+BAA+B,EAC/B,wCAAwC,EACxC,uBAAuB,EACvB,8BAA8B,EAC9B,wCAAwC,GACzC,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,gCAAgC,EAChC,4BAA4B,EAC5B,0BAA0B,EAC1B,yBAAyB,EACzB,4CAA4C,GAC7C,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAI7E,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,iBAAiB,GAAG,eAAe,EAC3C,OAAO,EAAE,eAAe,GAAG,SAAS,EACpC,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,cAAc,GAAG,SAAS,GAClC,OAAO,CAAC,aAAa,CAAC,CAExB"}
@@ -1,89 +1,33 @@
1
- import type { GpuVertexBufferLayoutEntry } from '@forgeax/engine-geometry';
1
+ import { type GpuVertexBufferLayoutEntry, type VertexLayoutProjection } from '@forgeax/engine-geometry';
2
2
  import type { VertexAttributeMap } from '@forgeax/engine-types';
3
- export declare const PBR_SKIN_SENTINEL_ATTR_BUFFER: ArrayBuffer;
4
- /** Default 4-attribute vertex layout used as fallback when meshAttributes is undefined. */
5
- export declare const DEFAULT_VERTEX_ATTRS: VertexAttributeMap;
3
+ /** Geometry-owned maps retained here only as feature-pipeline aliases. */
6
4
  export declare const PREPARED_INSTANCE_VERTEX_ATTRS: VertexAttributeMap;
7
5
  export declare const PREPARED_MATERIAL_INSTANCE_VERTEX_ATTRS: VertexAttributeMap;
8
- export declare const POSITION_SIZE_COLOR_INSTANCE_VERTEX_BUFFERS: {
9
- arrayStride: number;
10
- stepMode: "instance";
11
- attributes: ({
12
- shaderLocation: number;
13
- offset: number;
14
- format: "float32x3";
15
- } | {
16
- shaderLocation: number;
17
- offset: number;
18
- format: "float32x2";
19
- } | {
20
- shaderLocation: number;
21
- offset: number;
22
- format: "float32x4";
23
- })[];
24
- }[];
25
- export declare const BILLBOARD_MATERIAL_INSTANCE_VERTEX_BUFFERS: {
26
- arrayStride: number;
27
- stepMode: "instance";
28
- attributes: ({
29
- shaderLocation: number;
30
- offset: number;
31
- format: "float32x3";
32
- } | {
33
- shaderLocation: number;
34
- offset: number;
35
- format: "float32x2";
36
- } | {
37
- shaderLocation: number;
38
- offset: number;
39
- format: "float32x4";
40
- })[];
41
- }[];
42
- export declare const TOPOLOGY_SEGMENT_INSTANCE_VERTEX_BUFFERS: {
43
- arrayStride: number;
44
- stepMode: "instance";
45
- attributes: ({
46
- shaderLocation: number;
47
- offset: number;
48
- format: "float32x3";
49
- } | {
50
- shaderLocation: number;
51
- offset: number;
52
- format: "float32x4";
53
- } | {
54
- shaderLocation: number;
55
- offset: number;
56
- format: "float32x2";
57
- })[];
58
- }[];
59
- export declare const MESH_GEOMETRY_MATERIAL_INSTANCE_VERTEX_BUFFERS: ({
60
- arrayStride: number;
61
- stepMode: "vertex";
62
- attributes: ({
63
- shaderLocation: number;
64
- offset: number;
65
- format: "float32x3";
66
- } | {
67
- shaderLocation: number;
68
- offset: number;
69
- format: "float32x2";
70
- } | {
71
- shaderLocation: number;
72
- offset: number;
73
- format: "float32x4";
74
- })[];
75
- } | {
76
- arrayStride: number;
77
- stepMode: "instance";
78
- attributes: ({
79
- shaderLocation: number;
80
- offset: number;
81
- format: "float32x3";
82
- } | {
83
- shaderLocation: number;
84
- offset: number;
85
- format: "float32x4";
86
- })[];
87
- })[];
6
+ export declare const POSITION_SIZE_COLOR_INSTANCE_VERTEX_BUFFERS: GPUVertexBufferLayout[];
7
+ export declare const BILLBOARD_MATERIAL_INSTANCE_VERTEX_BUFFERS: GPUVertexBufferLayout[];
8
+ export declare const TOPOLOGY_SEGMENT_INSTANCE_VERTEX_BUFFERS: GPUVertexBufferLayout[];
9
+ /**
10
+ * The mesh stream is derived from geometry's canonical attribute projection.
11
+ * The second stream remains a feature-owned instance ABI because it carries
12
+ * particle transform/material data rather than MeshAsset attributes.
13
+ */
14
+ export declare const MESH_GEOMETRY_MATERIAL_INSTANCE_VERTEX_BUFFERS: GPUVertexBufferLayout[];
15
+ export declare function isPreparedMaterialVertexLayout(layout: string | undefined): boolean;
16
+ /**
17
+ * Derive the prepared particle layout that appends one to four material-input
18
+ * vec4 lanes to the instance stream. The base layouts stay shared with the
19
+ * no-input path; only the final stream stride and locations change, which
20
+ * keeps the vertex-data ABI and pipeline cache key in lockstep.
21
+ */
22
+ export declare function particleMaterialInputVertexBuffers(vertexLayout: string | undefined, lanes?: number): readonly GPUVertexBufferLayout[] | undefined;
88
23
  export declare function toGpuVertexBufferLayouts(entries: readonly GpuVertexBufferLayoutEntry[]): readonly GPUVertexBufferLayout[];
24
+ export declare function resolveWebGPUVertexBufferLayouts(options: {
25
+ vertexInputContract: 'none' | 'render-material';
26
+ vertexLayout: string | undefined;
27
+ vertexLayoutProjection: VertexLayoutProjection | undefined;
28
+ resolvedUvSetCount: number | undefined;
29
+ layoutKind: string;
30
+ meshAttributes: VertexAttributeMap | undefined;
31
+ particleInputLanes: number | undefined;
32
+ }): readonly GPUVertexBufferLayout[];
89
33
  //# sourceMappingURL=webgpu-vertex-layouts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-vertex-layouts.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-vertex-layouts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAOhE,eAAO,MAAM,6BAA6B,aAAqB,CAAC;AAEhE,2FAA2F;AAC3F,eAAO,MAAM,oBAAoB,EAAE,kBAKlC,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,kBAM5C,CAAC;AAEF,eAAO,MAAM,uCAAuC,EAAE,kBAOrD,CAAC;AAEF,eAAO,MAAM,2CAA2C;;;;;;;;;;;;;;;;GAUZ,CAAC;AAE7C,eAAO,MAAM,0CAA0C;;;;;;;;;;;;;;;;GAgBX,CAAC;AAE7C,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;;;;GAWT,CAAC;AAE7C,eAAO,MAAM,8CAA8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyBf,CAAC;AAgB7C,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,SAAS,0BAA0B,EAAE,GAC7C,SAAS,qBAAqB,EAAE,CAUlC"}
1
+ {"version":3,"file":"webgpu-vertex-layouts.d.ts","sourceRoot":"","sources":["../../src/assembly/webgpu-vertex-layouts.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,0BAA0B,EAE/B,KAAK,sBAAsB,EAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AA0FhE,0EAA0E;AAC1E,eAAO,MAAM,8BAA8B,oBAAoC,CAAC;AAChF,eAAO,MAAM,uCAAuC,oBAA4B,CAAC;AAUjF,eAAO,MAAM,2CAA2C,yBAEZ,CAAC;AAE7C,eAAO,MAAM,0CAA0C,yBAEX,CAAC;AAE7C,eAAO,MAAM,wCAAwC,yBAET,CAAC;AAE7C;;;;GAIG;AACH,eAAO,MAAM,8CAA8C,yBAGf,CAAC;AAW7C,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAElF;AAED;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAChD,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,KAAK,CAAC,EAAE,MAAM,GACb,SAAS,qBAAqB,EAAE,GAAG,SAAS,CA8B9C;AAgBD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,SAAS,0BAA0B,EAAE,GAC7C,SAAS,qBAAqB,EAAE,CAUlC;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE;IACxD,mBAAmB,EAAE,MAAM,GAAG,iBAAiB,CAAC;IAChD,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,sBAAsB,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAC3D,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC/C,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC,GAAG,SAAS,qBAAqB,EAAE,CAsDnC"}
@@ -1,7 +1,7 @@
1
1
  export { GlyphText, SpritePlayback, spritePlaybackModeFromU32 } from './chunk-ILQ5MEZF.mjs';
2
- export { SpriteAnimation, SpriteInstances, SpriteRegionOverride, TileLayer, Tilemap, TilemapSort, setActiveCamera } from './chunk-RBDBZ5R7.mjs';
2
+ export { SpriteAnimation, SpriteInstances, SpriteRegionOverride, TileLayer, Tilemap, TilemapSort, setActiveCamera } from './chunk-PA5DRJNI.mjs';
3
3
  export { TransparentSort } from './chunk-RXZ3RGOU.mjs';
4
- export { SPRITE_PREMULTIPLIED_ALPHA_BLEND } from './chunk-GF523LHF.mjs';
4
+ export { SPRITE_PREMULTIPLIED_ALPHA_BLEND } from './chunk-BLXGONR2.mjs';
5
5
  import { ok } from '@forgeax/engine-types';
6
6
 
7
7
  function createFullscreenRenderFeature(options) {