@forgeax/engine-render 0.1.28 → 0.1.30

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 (768) hide show
  1. package/README.md +856 -126
  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/device-feature-admission.d.ts +4 -3
  5. package/dist/assembly/device-feature-admission.d.ts.map +1 -1
  6. package/dist/assembly/dynamic-geometry-host.d.ts +27 -0
  7. package/dist/assembly/dynamic-geometry-host.d.ts.map +1 -1
  8. package/dist/assembly/dynamic-geometry-runtime.d.ts +20 -0
  9. package/dist/assembly/dynamic-geometry-runtime.d.ts.map +1 -0
  10. package/dist/assembly/factory.d.ts +3 -1
  11. package/dist/assembly/factory.d.ts.map +1 -1
  12. package/dist/assembly/gpu-driven-owner.d.ts +10 -0
  13. package/dist/assembly/gpu-driven-owner.d.ts.map +1 -0
  14. package/dist/assembly/host-contract.d.ts +14 -0
  15. package/dist/assembly/host-contract.d.ts.map +1 -1
  16. package/dist/assembly/material/assembly.d.ts +31 -1
  17. package/dist/assembly/material/assembly.d.ts.map +1 -1
  18. package/dist/assembly/material/pipeline-helpers.d.ts +24 -0
  19. package/dist/assembly/material/pipeline-helpers.d.ts.map +1 -0
  20. package/dist/assembly/material-shader-policy.d.ts +3 -1
  21. package/dist/assembly/material-shader-policy.d.ts.map +1 -1
  22. package/dist/assembly/recovery/device-loss-fanout.d.ts.map +1 -1
  23. package/dist/assembly/recovery/failure-location.d.ts +12 -0
  24. package/dist/assembly/recovery/failure-location.d.ts.map +1 -0
  25. package/dist/assembly/recovery/recovery-attempt.d.ts +1 -6
  26. package/dist/assembly/recovery/recovery-attempt.d.ts.map +1 -1
  27. package/dist/assembly/recovery/renderer-recover.d.ts +7 -4
  28. package/dist/assembly/recovery/renderer-recover.d.ts.map +1 -1
  29. package/dist/assembly/renderer-facade.d.ts.map +1 -1
  30. package/dist/assembly/renderer-feature-inspection.d.ts +5 -0
  31. package/dist/assembly/renderer-feature-inspection.d.ts.map +1 -0
  32. package/dist/assembly/renderer-frame-transaction.d.ts +19 -0
  33. package/dist/assembly/renderer-frame-transaction.d.ts.map +1 -1
  34. package/dist/assembly/renderer-helpers.d.ts +3 -0
  35. package/dist/assembly/renderer-helpers.d.ts.map +1 -1
  36. package/dist/assembly/renderer-inspection.d.ts +4 -0
  37. package/dist/assembly/renderer-inspection.d.ts.map +1 -1
  38. package/dist/assembly/shader-prewarm-policy.d.ts +7 -1
  39. package/dist/assembly/shader-prewarm-policy.d.ts.map +1 -1
  40. package/dist/assembly/skin-palette-owner.d.ts +8 -0
  41. package/dist/assembly/skin-palette-owner.d.ts.map +1 -0
  42. package/dist/assembly/ssr-shader-prewarm.d.ts +6 -0
  43. package/dist/assembly/ssr-shader-prewarm.d.ts.map +1 -0
  44. package/dist/assembly/webgpu-device-loss.d.ts +15 -0
  45. package/dist/assembly/webgpu-device-loss.d.ts.map +1 -0
  46. package/dist/assembly/webgpu-pbr-ready.d.ts +38 -0
  47. package/dist/assembly/webgpu-pbr-ready.d.ts.map +1 -0
  48. package/dist/assembly/webgpu-ready-mipmap.d.ts +11 -0
  49. package/dist/assembly/webgpu-ready-mipmap.d.ts.map +1 -0
  50. package/dist/assembly/webgpu-ready.d.ts +7 -3
  51. package/dist/assembly/webgpu-ready.d.ts.map +1 -1
  52. package/dist/assembly/webgpu-renderer-bootstrap.d.ts +10 -0
  53. package/dist/assembly/webgpu-renderer-bootstrap.d.ts.map +1 -0
  54. package/dist/assembly/webgpu-renderer-contract.d.ts +62 -0
  55. package/dist/assembly/webgpu-renderer-contract.d.ts.map +1 -0
  56. package/dist/assembly/webgpu-renderer-guards.d.ts +9 -0
  57. package/dist/assembly/webgpu-renderer-guards.d.ts.map +1 -0
  58. package/dist/assembly/webgpu-renderer-observation.d.ts +6 -0
  59. package/dist/assembly/webgpu-renderer-observation.d.ts.map +1 -0
  60. package/dist/assembly/webgpu-renderer-recovery-failure.d.ts +12 -0
  61. package/dist/assembly/webgpu-renderer-recovery-failure.d.ts.map +1 -0
  62. package/dist/assembly/webgpu-renderer.d.ts +7 -141
  63. package/dist/assembly/webgpu-renderer.d.ts.map +1 -1
  64. package/dist/assembly/webgpu-vertex-layouts.d.ts +28 -84
  65. package/dist/assembly/webgpu-vertex-layouts.d.ts.map +1 -1
  66. package/dist/authoring.mjs +2 -2
  67. package/dist/capture/scene-projection.d.ts +41 -0
  68. package/dist/capture/scene-projection.d.ts.map +1 -0
  69. package/dist/{chunk-J52NMQKR.mjs → chunk-7MQ3XBSP.mjs} +1098 -844
  70. package/dist/chunk-7MQ3XBSP.mjs.map +1 -0
  71. package/dist/{chunk-GF523LHF.mjs → chunk-BLXGONR2.mjs} +30 -12
  72. package/dist/chunk-BLXGONR2.mjs.map +1 -0
  73. package/dist/{chunk-VSL23LZE.mjs → chunk-C3DDSXYK.mjs} +1188 -463
  74. package/dist/chunk-C3DDSXYK.mjs.map +1 -0
  75. package/dist/{chunk-IQMKJLNU.mjs → chunk-FUUO4UND.mjs} +443 -30
  76. package/dist/chunk-FUUO4UND.mjs.map +1 -0
  77. package/dist/{chunk-J6KACNOH.mjs → chunk-JRBDO2KB.mjs} +617 -7
  78. package/dist/chunk-JRBDO2KB.mjs.map +1 -0
  79. package/dist/{chunk-GE3SDD72.mjs → chunk-MDQJPY3T.mjs} +20 -40
  80. package/dist/chunk-MDQJPY3T.mjs.map +1 -0
  81. package/dist/{chunk-MYJ5RPJO.mjs → chunk-NO4WZCAH.mjs} +3 -3
  82. package/dist/chunk-NO4WZCAH.mjs.map +1 -0
  83. package/dist/{chunk-RBDBZ5R7.mjs → chunk-PA5DRJNI.mjs} +2 -2
  84. package/dist/chunk-PA5DRJNI.mjs.map +1 -0
  85. package/dist/{chunk-MBU4ZVE7.mjs → chunk-PSEQ6QPH.mjs} +4655 -892
  86. package/dist/chunk-PSEQ6QPH.mjs.map +1 -0
  87. package/dist/{chunk-JAASCMXA.mjs → chunk-S5UE2T5P.mjs} +289 -41
  88. package/dist/chunk-S5UE2T5P.mjs.map +1 -0
  89. package/dist/components/camera.d.ts +62 -2
  90. package/dist/components/camera.d.ts.map +1 -1
  91. package/dist/components/directional-light.d.ts +2 -2
  92. package/dist/components/dynamic-resolution.d.ts +15 -0
  93. package/dist/components/dynamic-resolution.d.ts.map +1 -0
  94. package/dist/components/index.d.ts +2 -0
  95. package/dist/components/index.d.ts.map +1 -1
  96. package/dist/components/instances.d.ts +6 -20
  97. package/dist/components/instances.d.ts.map +1 -1
  98. package/dist/components/light-helpers.d.ts.map +1 -1
  99. package/dist/components/reflection-probe.d.ts +1 -0
  100. package/dist/components/reflection-probe.d.ts.map +1 -1
  101. package/dist/components/scene-instance.d.ts +2 -1
  102. package/dist/components/scene-instance.d.ts.map +1 -1
  103. package/dist/components/screen-space-reflection.d.ts +14 -0
  104. package/dist/components/screen-space-reflection.d.ts.map +1 -0
  105. package/dist/components/skylight.d.ts +4 -1
  106. package/dist/components/skylight.d.ts.map +1 -1
  107. package/dist/construct-renderer.mjs +14809 -7570
  108. package/dist/construct-renderer.mjs.map +1 -1
  109. package/dist/device/device-scope.d.ts +2 -0
  110. package/dist/device/device-scope.d.ts.map +1 -1
  111. package/dist/device/gpu-residency.d.ts +3 -14
  112. package/dist/device/gpu-residency.d.ts.map +1 -1
  113. package/dist/dynamic-geometry.d.ts.map +1 -1
  114. package/dist/environment/background.d.ts +7 -0
  115. package/dist/environment/background.d.ts.map +1 -0
  116. package/dist/environment/ibl.d.ts +11 -0
  117. package/dist/environment/ibl.d.ts.map +1 -0
  118. package/dist/environment/storage.d.ts +14 -0
  119. package/dist/environment/storage.d.ts.map +1 -0
  120. package/dist/errors/gpu-driven.d.ts +6 -3
  121. package/dist/errors/gpu-driven.d.ts.map +1 -1
  122. package/dist/errors/render.d.ts +41 -4
  123. package/dist/errors/render.d.ts.map +1 -1
  124. package/dist/extract/camera.d.ts.map +1 -1
  125. package/dist/extract/contracts.d.ts +7 -0
  126. package/dist/extract/contracts.d.ts.map +1 -1
  127. package/dist/extract/gpu-driven.d.ts +50 -3
  128. package/dist/extract/gpu-driven.d.ts.map +1 -1
  129. package/dist/features/host.d.ts +23 -1
  130. package/dist/features/host.d.ts.map +1 -1
  131. package/dist/features/noise-texture.d.ts +17 -0
  132. package/dist/features/noise-texture.d.ts.map +1 -0
  133. package/dist/features/plan.d.ts +83 -2
  134. package/dist/features/plan.d.ts.map +1 -1
  135. package/dist/features/prepared-gpu-work.d.ts +37 -4
  136. package/dist/features/prepared-gpu-work.d.ts.map +1 -1
  137. package/dist/features/prepared-graphics-store.d.ts.map +1 -1
  138. package/dist/features/prepared-graphics.d.ts +5 -0
  139. package/dist/features/prepared-graphics.d.ts.map +1 -1
  140. package/dist/features/render-graph-compute.d.ts +5 -3
  141. package/dist/features/render-graph-compute.d.ts.map +1 -1
  142. package/dist/features/render-graph-contribution.d.ts +11 -3
  143. package/dist/features/render-graph-contribution.d.ts.map +1 -1
  144. package/dist/features/render-graph-raster.d.ts +19 -3
  145. package/dist/features/render-graph-raster.d.ts.map +1 -1
  146. package/dist/features/types.d.ts +11 -0
  147. package/dist/features/types.d.ts.map +1 -1
  148. package/dist/fullscreen-post-process-pass.d.ts +2 -0
  149. package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
  150. package/dist/gpu-driven/batch-topology.d.ts +34 -1
  151. package/dist/gpu-driven/batch-topology.d.ts.map +1 -1
  152. package/dist/gpu-driven/material-artifacts.d.ts +24 -0
  153. package/dist/gpu-driven/material-artifacts.d.ts.map +1 -0
  154. package/dist/gpu-driven/material-bindings.d.ts +7 -0
  155. package/dist/gpu-driven/material-bindings.d.ts.map +1 -0
  156. package/dist/gpu-driven/pbr-program.d.ts +10 -0
  157. package/dist/gpu-driven/pbr-program.d.ts.map +1 -0
  158. package/dist/gpu-driven/prepared-draw.d.ts +2 -0
  159. package/dist/gpu-driven/prepared-draw.d.ts.map +1 -1
  160. package/dist/gpu-driven/production-raster.d.ts +169 -27
  161. package/dist/gpu-driven/production-raster.d.ts.map +1 -1
  162. package/dist/gpu-driven/shadow-views.d.ts +126 -0
  163. package/dist/gpu-driven/shadow-views.d.ts.map +1 -0
  164. package/dist/gpu-driven/view-gpu.d.ts +18 -2
  165. package/dist/gpu-driven/view-gpu.d.ts.map +1 -1
  166. package/dist/gpu-resource.d.ts +5 -2
  167. package/dist/gpu-resource.d.ts.map +1 -1
  168. package/dist/gpu-scene-schema.d.ts +2 -8
  169. package/dist/gpu-scene-schema.d.ts.map +1 -1
  170. package/dist/gpu-scene.d.ts +14 -0
  171. package/dist/gpu-scene.d.ts.map +1 -1
  172. package/dist/gpu-texture-usage.d.ts +1 -0
  173. package/dist/gpu-texture-usage.d.ts.map +1 -1
  174. package/dist/hdrp-buffers.d.ts +9 -0
  175. package/dist/hdrp-buffers.d.ts.map +1 -1
  176. package/dist/ibl/IblPipelineCache.d.ts +2 -0
  177. package/dist/ibl/IblPipelineCache.d.ts.map +1 -1
  178. package/dist/ibl/frame-resources.d.ts +8 -0
  179. package/dist/ibl/frame-resources.d.ts.map +1 -0
  180. package/dist/ibl/skylight-bind-group.d.ts +3 -1
  181. package/dist/ibl/skylight-bind-group.d.ts.map +1 -1
  182. package/dist/index.d.ts +87 -75
  183. package/dist/index.d.ts.map +1 -1
  184. package/dist/index.mjs +10 -8
  185. package/dist/index.mjs.map +1 -1
  186. package/dist/inspection-types.d.ts +180 -1
  187. package/dist/inspection-types.d.ts.map +1 -1
  188. package/dist/instances-derived-bounds.d.ts +11 -0
  189. package/dist/instances-derived-bounds.d.ts.map +1 -1
  190. package/dist/instances.d.ts +89 -44
  191. package/dist/instances.d.ts.map +1 -1
  192. package/dist/internal.d.ts +3 -0
  193. package/dist/internal.d.ts.map +1 -1
  194. package/dist/internal.mjs +117 -9
  195. package/dist/internal.mjs.map +1 -1
  196. package/dist/lifecycle.d.ts +2 -1
  197. package/dist/lifecycle.d.ts.map +1 -1
  198. package/dist/material-row.d.ts +15 -0
  199. package/dist/material-row.d.ts.map +1 -0
  200. package/dist/materials.d.ts +15 -0
  201. package/dist/materials.d.ts.map +1 -1
  202. package/dist/pbr-pipeline.d.ts +23 -5
  203. package/dist/pbr-pipeline.d.ts.map +1 -1
  204. package/dist/pipeline/render-extent.d.ts +51 -0
  205. package/dist/pipeline/render-extent.d.ts.map +1 -0
  206. package/dist/pipeline/standard-build-context.d.ts +7 -0
  207. package/dist/pipeline/standard-build-context.d.ts.map +1 -0
  208. package/dist/pipeline/standard-forward-lane.d.ts +3 -2
  209. package/dist/pipeline/standard-forward-lane.d.ts.map +1 -1
  210. package/dist/pipeline/standard-output/auto-exposure/capability.d.ts +12 -0
  211. package/dist/pipeline/standard-output/auto-exposure/capability.d.ts.map +1 -0
  212. package/dist/pipeline/standard-output/auto-exposure/gpu.d.ts +70 -0
  213. package/dist/pipeline/standard-output/auto-exposure/gpu.d.ts.map +1 -0
  214. package/dist/pipeline/standard-output/auto-exposure/graph.d.ts +75 -0
  215. package/dist/pipeline/standard-output/auto-exposure/graph.d.ts.map +1 -0
  216. package/dist/pipeline/standard-output/auto-exposure/inspection.d.ts +111 -0
  217. package/dist/pipeline/standard-output/auto-exposure/inspection.d.ts.map +1 -0
  218. package/dist/pipeline/standard-output/auto-exposure/oracle.d.ts +16 -0
  219. package/dist/pipeline/standard-output/auto-exposure/oracle.d.ts.map +1 -0
  220. package/dist/pipeline/standard-output/auto-exposure/preset.d.ts +14 -0
  221. package/dist/pipeline/standard-output/auto-exposure/preset.d.ts.map +1 -0
  222. package/dist/pipeline/standard-output/auto-exposure/state.d.ts +46 -0
  223. package/dist/pipeline/standard-output/auto-exposure/state.d.ts.map +1 -0
  224. package/dist/pipeline/standard-output/color-transform.d.ts +27 -0
  225. package/dist/pipeline/standard-output/color-transform.d.ts.map +1 -0
  226. package/dist/pipeline/standard-output/graph.d.ts +15 -0
  227. package/dist/pipeline/standard-output/graph.d.ts.map +1 -0
  228. package/dist/pipeline/standard-output/lut-admission.d.ts +29 -0
  229. package/dist/pipeline/standard-output/lut-admission.d.ts.map +1 -0
  230. package/dist/pipeline/standard-output/lut-gpu.d.ts +48 -0
  231. package/dist/pipeline/standard-output/lut-gpu.d.ts.map +1 -0
  232. package/dist/pipeline/standard-output/lut-state.d.ts +68 -0
  233. package/dist/pipeline/standard-output/lut-state.d.ts.map +1 -0
  234. package/dist/pipeline/standard-output/resources.d.ts +10 -0
  235. package/dist/pipeline/standard-output/resources.d.ts.map +1 -0
  236. package/dist/pipeline/standard-output/types.d.ts +39 -0
  237. package/dist/pipeline/standard-output/types.d.ts.map +1 -0
  238. package/dist/pipeline/standard-pipeline.d.ts.map +1 -1
  239. package/dist/pipeline/standard-post.d.ts +2 -2
  240. package/dist/pipeline/standard-post.d.ts.map +1 -1
  241. package/dist/pipeline/standard-profile.d.ts +2 -1
  242. package/dist/pipeline/standard-profile.d.ts.map +1 -1
  243. package/dist/pipeline-builder.d.ts +5 -2
  244. package/dist/pipeline-builder.d.ts.map +1 -1
  245. package/dist/pipeline-spec-types.d.ts +4 -0
  246. package/dist/pipeline-spec-types.d.ts.map +1 -1
  247. package/dist/pipeline-spec.d.ts +1 -9
  248. package/dist/pipeline-spec.d.ts.map +1 -1
  249. package/dist/plugin.d.ts.map +1 -1
  250. package/dist/points-lines/standard-owner.d.ts +1 -1
  251. package/dist/points-lines/standard-owner.d.ts.map +1 -1
  252. package/dist/post-process-errors.d.ts +9 -2
  253. package/dist/post-process-errors.d.ts.map +1 -1
  254. package/dist/prepare/extended-lighting/resources.d.ts +3 -3
  255. package/dist/prepare/prepared-graphics-resolver.d.ts +6 -1
  256. package/dist/prepare/prepared-graphics-resolver.d.ts.map +1 -1
  257. package/dist/record/dynamic-geometry-consumption.d.ts +15 -0
  258. package/dist/record/dynamic-geometry-consumption.d.ts.map +1 -0
  259. package/dist/record/frame-lighting.d.ts +3 -3
  260. package/dist/record/frame-lighting.d.ts.map +1 -1
  261. package/dist/record/frame-snapshot.d.ts +109 -13
  262. package/dist/record/frame-snapshot.d.ts.map +1 -1
  263. package/dist/record/frame-targets.d.ts.map +1 -1
  264. package/dist/record/frame.d.ts +41 -5
  265. package/dist/record/frame.d.ts.map +1 -1
  266. package/dist/record/main-pass-geometry.d.ts +13 -9
  267. package/dist/record/main-pass-geometry.d.ts.map +1 -1
  268. package/dist/record/main-pass-material.d.ts +43 -3
  269. package/dist/record/main-pass-material.d.ts.map +1 -1
  270. package/dist/record/main-pass-sprite-draws.d.ts +2 -10
  271. package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
  272. package/dist/record/main-pass.d.ts +14 -2
  273. package/dist/record/main-pass.d.ts.map +1 -1
  274. package/dist/record/mesh-ssbo.d.ts +15 -6
  275. package/dist/record/mesh-ssbo.d.ts.map +1 -1
  276. package/dist/record/prepared-material-bindings.d.ts +19 -0
  277. package/dist/record/prepared-material-bindings.d.ts.map +1 -0
  278. package/dist/record/recovery-pipeline.d.ts +1 -0
  279. package/dist/record/recovery-pipeline.d.ts.map +1 -1
  280. package/dist/record/render-context.d.ts +101 -22
  281. package/dist/record/render-context.d.ts.map +1 -1
  282. package/dist/record/shadow-pass.d.ts +62 -7
  283. package/dist/record/shadow-pass.d.ts.map +1 -1
  284. package/dist/record/skybox-post-pass.d.ts +1 -1
  285. package/dist/record/skybox-post-pass.d.ts.map +1 -1
  286. package/dist/record/typed-frame-graph.d.ts +39 -8
  287. package/dist/record/typed-frame-graph.d.ts.map +1 -1
  288. package/dist/record/view-ubo.d.ts +1 -0
  289. package/dist/record/view-ubo.d.ts.map +1 -1
  290. package/dist/recovery/render-system-candidate.d.ts +10 -2
  291. package/dist/recovery/render-system-candidate.d.ts.map +1 -1
  292. package/dist/recovery/render-system-roots.d.ts +11 -0
  293. package/dist/recovery/render-system-roots.d.ts.map +1 -0
  294. package/dist/recovery/types.d.ts +76 -0
  295. package/dist/recovery/types.d.ts.map +1 -0
  296. package/dist/reflection/background.d.ts +14 -0
  297. package/dist/reflection/background.d.ts.map +1 -0
  298. package/dist/reflection/filter.d.ts.map +1 -1
  299. package/dist/reflection/projection.d.ts +1 -0
  300. package/dist/reflection/projection.d.ts.map +1 -1
  301. package/dist/reflection/record-owner.d.ts +4 -4
  302. package/dist/reflection/record-owner.d.ts.map +1 -1
  303. package/dist/render-contract.d.ts +211 -53
  304. package/dist/render-contract.d.ts.map +1 -1
  305. package/dist/render-graph-primitives.d.ts +1 -0
  306. package/dist/render-graph-primitives.d.ts.map +1 -1
  307. package/dist/render-pipeline.d.ts +81 -6
  308. package/dist/render-pipeline.d.ts.map +1 -1
  309. package/dist/render-system-extract-tail.d.ts +15 -6
  310. package/dist/render-system-extract-tail.d.ts.map +1 -1
  311. package/dist/render-system-extract.d.ts +128 -41
  312. package/dist/render-system-extract.d.ts.map +1 -1
  313. package/dist/render-system-projections.d.ts +22 -0
  314. package/dist/render-system-projections.d.ts.map +1 -0
  315. package/dist/render-system.d.ts +27 -77
  316. package/dist/render-system.d.ts.map +1 -1
  317. package/dist/scene/render-scene-types.d.ts +14 -7
  318. package/dist/scene/render-scene-types.d.ts.map +1 -1
  319. package/dist/scene/render-scene.d.ts +31 -11
  320. package/dist/scene/render-scene.d.ts.map +1 -1
  321. package/dist/scene/shadow-visibility.d.ts +5 -0
  322. package/dist/scene/shadow-visibility.d.ts.map +1 -0
  323. package/dist/ssao-config.d.ts +8 -6
  324. package/dist/ssao-config.d.ts.map +1 -1
  325. package/dist/ssr/admission.d.ts +70 -1
  326. package/dist/ssr/admission.d.ts.map +1 -1
  327. package/dist/ssr/compose.d.ts +13 -0
  328. package/dist/ssr/compose.d.ts.map +1 -0
  329. package/dist/ssr/errors.d.ts +35 -0
  330. package/dist/ssr/errors.d.ts.map +1 -1
  331. package/dist/ssr/graph.d.ts +60 -0
  332. package/dist/ssr/graph.d.ts.map +1 -0
  333. package/dist/ssr/history.d.ts +97 -0
  334. package/dist/ssr/history.d.ts.map +1 -0
  335. package/dist/ssr/hiz.d.ts +37 -0
  336. package/dist/ssr/hiz.d.ts.map +1 -0
  337. package/dist/ssr/inspection.d.ts +42 -0
  338. package/dist/ssr/inspection.d.ts.map +1 -0
  339. package/dist/ssr/resources.d.ts +58 -0
  340. package/dist/ssr/resources.d.ts.map +1 -0
  341. package/dist/ssr/temporal.d.ts +38 -0
  342. package/dist/ssr/temporal.d.ts.map +1 -0
  343. package/dist/systems/skin-palette-allocator.d.ts +32 -10
  344. package/dist/systems/skin-palette-allocator.d.ts.map +1 -1
  345. package/dist/systems/skin-palette-types.d.ts +15 -0
  346. package/dist/systems/skin-palette-types.d.ts.map +1 -1
  347. package/dist/systems/transparent-dispatch.d.ts +9 -0
  348. package/dist/systems/transparent-dispatch.d.ts.map +1 -0
  349. package/dist/targets/material-source.d.ts +7 -0
  350. package/dist/targets/material-source.d.ts.map +1 -1
  351. package/dist/temporal/frame-coordinator.d.ts +7 -0
  352. package/dist/temporal/frame-coordinator.d.ts.map +1 -1
  353. package/dist/temporal/gpu.d.ts +8 -0
  354. package/dist/temporal/gpu.d.ts.map +1 -1
  355. package/dist/temporal/history.d.ts.map +1 -1
  356. package/dist/temporal/index.mjs +6 -6
  357. package/dist/temporal/inspection.d.ts.map +1 -1
  358. package/dist/temporal/standard-scene-data.d.ts +4 -2
  359. package/dist/temporal/standard-scene-data.d.ts.map +1 -1
  360. package/dist/temporal/target-coverage-attachment.d.ts +15 -0
  361. package/dist/temporal/target-coverage-attachment.d.ts.map +1 -0
  362. package/dist/temporal/temporal-view.d.ts +6 -0
  363. package/dist/temporal/temporal-view.d.ts.map +1 -1
  364. package/dist/temporal/view.d.ts +6 -0
  365. package/dist/temporal/view.d.ts.map +1 -1
  366. package/dist/typed-render-graph-primitives.d.ts +41 -1
  367. package/dist/typed-render-graph-primitives.d.ts.map +1 -1
  368. package/dist/typed-shadow-passes.d.ts +3 -1
  369. package/dist/typed-shadow-passes.d.ts.map +1 -1
  370. package/dist/volume/component.d.ts +1 -0
  371. package/dist/volume/component.d.ts.map +1 -1
  372. package/dist/volume/temporal.d.ts +6 -0
  373. package/dist/volume/temporal.d.ts.map +1 -1
  374. package/package.json +21 -20
  375. package/src/__tests__/auto-exposure-gpu-evidence.ts +291 -0
  376. package/src/__tests__/auto-exposure-inspection.unit.test.ts +80 -0
  377. package/src/__tests__/auto-exposure-transaction.integration.test.ts +99 -0
  378. package/src/__tests__/auto-exposure.browser.test.ts +33 -0
  379. package/src/__tests__/auto-exposure.dawn.test.ts +33 -0
  380. package/src/__tests__/capture-scene-projection.unit.test.ts +24 -0
  381. package/src/__tests__/detached-inspection.integration.test.ts +5 -0
  382. package/src/__tests__/device-feature-admission.unit.test.ts +15 -24
  383. package/src/__tests__/device-loss-fanout.unit.test.ts +43 -0
  384. package/src/__tests__/device-scope-lifecycle.unit.test.ts +18 -0
  385. package/src/__tests__/device-scope-stale-matrix.unit.test.ts +18 -0
  386. package/src/__tests__/docs-gate-green.unit.test.ts +3 -3
  387. package/src/__tests__/dynamic-geometry-batch.unit.test.ts +157 -0
  388. package/src/__tests__/dynamic-geometry.unit.test.ts +36 -0
  389. package/src/__tests__/dynamic-resolution-plugin.integration.test.ts +81 -0
  390. package/src/__tests__/factory-contract.integration.test.ts +231 -9
  391. package/src/__tests__/fallback-row-stride-surface.unit.test.ts +19 -0
  392. package/src/__tests__/feature-depth-input.dawn.test.ts +121 -0
  393. package/src/__tests__/feature-noise.unit.test.ts +38 -0
  394. package/src/__tests__/fixtures/taa-resolve-pinned-baseline.wgsl +301 -0
  395. package/src/__tests__/frame-camera-selection.unit.test.ts +131 -0
  396. package/src/__tests__/frame-observation.contract.test.ts +21 -0
  397. package/src/__tests__/frame-plan-contract.unit.test.ts +24 -0
  398. package/src/__tests__/frame-targets.unit.test.ts +24 -0
  399. package/src/__tests__/fullscreen-feature-plan.unit.test.ts +3 -0
  400. package/src/__tests__/gpu-driven-baseline.characterization.test.ts +79 -0
  401. package/src/__tests__/gpu-driven-batch-topology-pbr.unit.test.ts +307 -7
  402. package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +122 -142
  403. package/src/__tests__/gpu-driven-indirect-raster.browser.test.ts +10 -1
  404. package/src/__tests__/gpu-driven-lod-cache.unit.test.ts +261 -0
  405. package/src/__tests__/gpu-driven-mesh-world-identity.unit.test.ts +346 -0
  406. package/src/__tests__/gpu-driven-pbr.dawn.test.ts +1422 -0
  407. package/src/__tests__/gpu-driven-pbr.integration.test.ts +21 -0
  408. package/src/__tests__/gpu-driven-production-fixture.ts +96 -0
  409. package/src/__tests__/gpu-driven-production.integration.test.ts +1076 -106
  410. package/src/__tests__/gpu-driven-scaling.unit.test.ts +1 -3
  411. package/src/__tests__/gpu-driven-shadow-views.browser.test.ts +63 -0
  412. package/src/__tests__/gpu-driven-shadow-views.dawn.test.ts +294 -0
  413. package/src/__tests__/gpu-driven-shadow-views.integration.test.ts +97 -0
  414. package/src/__tests__/gpu-driven-shadow-views.unit.test.ts +168 -0
  415. package/src/__tests__/gpu-driven-skin-contract.test-d.ts +11 -0
  416. package/src/__tests__/gpu-driven-view-gpu-evidence.ts +72 -20
  417. package/src/__tests__/gpu-driven-view-graph.integration.test.ts +30 -9
  418. package/src/__tests__/gpu-driven-view.unit.test.ts +160 -52
  419. package/src/__tests__/gpu-pass-timing-browser-runner.ts +15 -0
  420. package/src/__tests__/gpu-pass-timing.browser.test.ts +20 -2
  421. package/src/__tests__/gpu-resource-scope.unit.test.ts +71 -0
  422. package/src/__tests__/gpu-resource-store-stride.unit.test.ts +42 -0
  423. package/src/__tests__/gpu-scene-render-graph-gpu.ts +19 -5
  424. package/src/__tests__/gpu-scene.dawn.test.ts +40 -13
  425. package/src/__tests__/gpu-scene.unit.test.ts +613 -33
  426. package/src/__tests__/instances-culling.integration.test.ts +36 -10
  427. package/src/__tests__/instances-derived-bounds.unit.test.ts +54 -0
  428. package/src/__tests__/instances-store.unit.test.ts +242 -39
  429. package/src/__tests__/ktx2-basis-gpu-consumer.dawn.test.ts +6 -0
  430. package/src/__tests__/lighting-scene-roundtrip.integration.test.ts +13 -16
  431. package/src/__tests__/lut-lkg-transaction.integration.test.ts +122 -0
  432. package/src/__tests__/material-contract-inventory.unit.test.ts +5 -6
  433. package/src/__tests__/material-dispatch-shader-id.unit.test.ts +51 -0
  434. package/src/__tests__/material-lane-selection.unit.test.ts +60 -0
  435. package/src/__tests__/material-numeric-upload.unit.test.ts +53 -0
  436. package/src/__tests__/material-texture-handles.unit.test.ts +18 -0
  437. package/src/__tests__/material-texture-source.unit.test.ts +87 -0
  438. package/src/__tests__/materials-authoring-validation.unit.test.ts +41 -0
  439. package/src/__tests__/materials-standard-contract.unit.test.ts +57 -3
  440. package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +4 -0
  441. package/src/__tests__/mesh-submission-lifetime.unit.test.ts +8 -0
  442. package/src/__tests__/morph-neutral-admission.unit.test.ts +19 -0
  443. package/src/__tests__/normal-fallback.dawn.test.ts +122 -0
  444. package/src/__tests__/particle-material-input-layout.unit.test.ts +104 -0
  445. package/src/__tests__/physical-clearcoat.integration.test.ts +42 -3
  446. package/src/__tests__/pipeline-texture-specialization.unit.test.ts +138 -0
  447. package/src/__tests__/point-shadow-inspection.unit.test.ts +2 -0
  448. package/src/__tests__/post-process-error-policy-owner.unit.test.ts +6 -5
  449. package/src/__tests__/prepared-gpu-driven-pbr-contract.test-d.ts +31 -0
  450. package/src/__tests__/prepared-gpu-driven-pbr-contract.unit.test.ts +39 -0
  451. package/src/__tests__/prepared-gpu-driven-pbr.integration.test.ts +251 -9
  452. package/src/__tests__/prepared-graphics-capability.unit.test.ts +21 -0
  453. package/src/__tests__/prepared-graphics-pipeline-warmup.unit.test.ts +6 -2
  454. package/src/__tests__/profiler-phase-catalog.test.ts +5 -0
  455. package/src/__tests__/public-surface.test-d.ts +3 -0
  456. package/src/__tests__/recovery-candidate-prepare.contract.test.ts +30 -12
  457. package/src/__tests__/reflection-fallback-async-publication.unit.test.ts +171 -0
  458. package/src/__tests__/reflection-probe-authoring.unit.test.ts +12 -10
  459. package/src/__tests__/reflection-probe-box.dawn.test.ts +71 -0
  460. package/src/__tests__/reflection-probe-filter.unit.test.ts +9 -0
  461. package/src/__tests__/reflection-probe-orientation.dawn.test.ts +294 -0
  462. package/src/__tests__/reflection-probe-record-owner.characterization.unit.test.ts +5 -14
  463. package/src/__tests__/reflection-probe-updates.unit.test.ts +129 -0
  464. package/src/__tests__/render-error-code-owner.test-d.ts +7 -0
  465. package/src/__tests__/render-error-detail-ssot.test-d.ts +27 -1
  466. package/src/__tests__/render-error-exhaustive.test-d.ts +15 -0
  467. package/src/__tests__/render-extent.unit.test.ts +63 -0
  468. package/src/__tests__/render-feature-gpu-work.integration.test.ts +285 -2
  469. package/src/__tests__/render-feature-plan.unit.test.ts +245 -0
  470. package/src/__tests__/render-feature-shadow-order.unit.test.ts +228 -0
  471. package/src/__tests__/render-feature-zero-work.unit.test.ts +35 -1
  472. package/src/__tests__/render-graph-fallback.integration.test.ts +2 -2
  473. package/src/__tests__/render-owner-cohesion.unit.test.ts +55 -0
  474. package/src/__tests__/render-scene-mixed-updates.integration.test.ts +426 -0
  475. package/src/__tests__/render-scene-projection.unit.test.ts +915 -23
  476. package/src/__tests__/render-scene-resource-updates.integration.test.ts +214 -0
  477. package/src/__tests__/render-scene-skin-lifecycle.integration.test.ts +173 -0
  478. package/src/__tests__/render-scene-temporal-retry.unit.test.ts +133 -0
  479. package/src/__tests__/render-target-material-source.test-d.ts +27 -3
  480. package/src/__tests__/renderer-factory-material-contract.unit.test.ts +233 -9
  481. package/src/__tests__/renderer-frame-transaction.integration.test.ts +923 -5
  482. package/src/__tests__/shader-manifest-fixture.ts +45 -0
  483. package/src/__tests__/skin-motion-regression.unit.test.ts +0 -33
  484. package/src/__tests__/skin-palette-persistent.integration.test.ts +28 -0
  485. package/src/__tests__/skin-palette-persistent.unit.test.ts +247 -0
  486. package/src/__tests__/skinned-shadow-caster.test.ts +125 -14
  487. package/src/__tests__/specular-environment-scale.dawn.test.ts +158 -0
  488. package/src/__tests__/ssao-config.unit.test.ts +7 -0
  489. package/src/__tests__/ssao-surface.dawn.test.ts +252 -0
  490. package/src/__tests__/ssr-admission-matrix.integration.test.ts +7 -1
  491. package/src/__tests__/ssr-confidence-compose.unit.test.ts +84 -0
  492. package/src/__tests__/ssr-coordinate-oracle.unit.test.ts +28 -0
  493. package/src/__tests__/ssr-cube-silhouette.dawn.test.ts +270 -0
  494. package/src/__tests__/ssr-format-probe-gating.integration.test.ts +82 -0
  495. package/src/__tests__/ssr-gpu-dispatch.browser.test.ts +99 -0
  496. package/src/__tests__/ssr-gpu-dispatch.dawn.test.ts +116 -0
  497. package/src/__tests__/ssr-gpu-dispatch.ts +951 -0
  498. package/src/__tests__/ssr-graph-topology.unit.test.ts +104 -0
  499. package/src/__tests__/ssr-history-filter.dawn.test.ts +198 -0
  500. package/src/__tests__/ssr-hit-color.dawn.test.ts +273 -0
  501. package/src/__tests__/ssr-hiz-odd-reduction.dawn.test.ts +569 -0
  502. package/src/__tests__/ssr-hiz-rescue.dawn.test.ts +279 -0
  503. package/src/__tests__/ssr-hiz.browser.test.ts +150 -0
  504. package/src/__tests__/ssr-hiz.dawn.test.ts +150 -0
  505. package/src/__tests__/ssr-hiz.unit.test.ts +56 -0
  506. package/src/__tests__/ssr-inspection.unit.test.ts +105 -0
  507. package/src/__tests__/ssr-memory-budget.unit.test.ts +45 -0
  508. package/src/__tests__/ssr-performance-sequence-aggregation.unit.test.ts +15 -0
  509. package/src/__tests__/ssr-public-surface.test-d.ts +37 -0
  510. package/src/__tests__/ssr-receiver-coverage.dawn.test.ts +387 -0
  511. package/src/__tests__/ssr-reflection-mip-reducer.dawn.test.ts +309 -0
  512. package/src/__tests__/ssr-reprojection-probe.ts +90 -0
  513. package/src/__tests__/ssr-roughness-mip.dawn.test.ts +163 -0
  514. package/src/__tests__/ssr-shader-prewarm.unit.test.ts +59 -0
  515. package/src/__tests__/ssr-spatial.integration.test.ts +141 -0
  516. package/src/__tests__/ssr-stable-lattice.dawn.test.ts +475 -0
  517. package/src/__tests__/ssr-temporal-history.unit.test.ts +202 -0
  518. package/src/__tests__/ssr-texel-crossing.dawn.test.ts +448 -0
  519. package/src/__tests__/ssr-zero-work.integration.test.ts +87 -0
  520. package/src/__tests__/standard-cluster-variant-resolution.unit.test.ts +84 -12
  521. package/src/__tests__/standard-clustered-pipeline.unit.test.ts +29 -0
  522. package/src/__tests__/standard-output-chain-contract.unit.test.ts +99 -0
  523. package/src/__tests__/standard-output-chain.integration.test.ts +73 -0
  524. package/src/__tests__/standard-output-gpu-evidence.ts +205 -0
  525. package/src/__tests__/standard-output.browser.test.ts +15 -0
  526. package/src/__tests__/standard-output.dawn.test.ts +15 -0
  527. package/src/__tests__/standard-pbr-artifact-assembly.unit.test.ts +275 -0
  528. package/src/__tests__/standard-pipeline.integration.test.ts +320 -3
  529. package/src/__tests__/standard-profile-oracle.unit.test.ts +49 -0
  530. package/src/__tests__/standard-surface-lighting.unit.test.ts +41 -0
  531. package/src/__tests__/standard-texture-specialization.dawn.test.ts +141 -0
  532. package/src/__tests__/surface-adjacent-regressions.integration.test.ts +6 -3
  533. package/src/__tests__/taa-coverage-edge.dawn.test.ts +199 -0
  534. package/src/__tests__/taa-history-clipping.dawn.test.ts +328 -0
  535. package/src/__tests__/taa-neighborhood-equivalence.dawn.test.ts +782 -0
  536. package/src/__tests__/taa-stability-feedback.browser.test.ts +23 -0
  537. package/src/__tests__/taa-stability-feedback.dawn.test.ts +68 -0
  538. package/src/__tests__/taa-stability-feedback.ts +342 -0
  539. package/src/__tests__/temporal-history-lifecycle.unit.test.ts +49 -7
  540. package/src/__tests__/temporal-reset-matrix.unit.test.ts +9 -0
  541. package/src/__tests__/temporal-transaction.integration.test.ts +28 -0
  542. package/src/__tests__/temporal-view.unit.test.ts +17 -0
  543. package/src/__tests__/texture-usage-surface.unit.test.ts +4 -2
  544. package/src/__tests__/transmission-prewarm.unit.test.ts +57 -0
  545. package/src/__tests__/typed-pipeline-topology.unit.test.ts +109 -4
  546. package/src/__tests__/typed-scene-pass-material-cache.integration.test.ts +126 -0
  547. package/src/__tests__/vertex-layouts-ssot.unit.test.ts +47 -0
  548. package/src/__tests__/visibility-extract.perf.test.ts +20 -8
  549. package/src/__tests__/visibility-instances.integration.test.ts +19 -7
  550. package/src/__tests__/visibility-producer-matrix.integration.test.ts +20 -9
  551. package/src/__tests__/volumetric-fog-stage-readback.dawn.test.ts +62 -13
  552. package/src/__tests__/volumetric-fog-topology.unit.test.ts +7 -7
  553. package/src/assembly/atmosphere-shader-prewarm.ts +39 -0
  554. package/src/assembly/device-feature-admission.ts +9 -4
  555. package/src/assembly/dynamic-geometry-host.ts +284 -163
  556. package/src/assembly/dynamic-geometry-runtime.ts +71 -0
  557. package/src/assembly/factory.ts +4 -0
  558. package/src/assembly/gpu-driven-owner.ts +29 -0
  559. package/src/assembly/host-contract.ts +19 -0
  560. package/src/assembly/material/assembly.ts +383 -1
  561. package/src/assembly/material/pipeline-helpers.ts +100 -0
  562. package/src/assembly/material-shader-policy.ts +110 -46
  563. package/src/assembly/recovery/device-loss-fanout.ts +5 -0
  564. package/src/assembly/recovery/failure-location.ts +62 -0
  565. package/src/assembly/recovery/recovery-attempt.ts +2 -29
  566. package/src/assembly/recovery/renderer-recover.ts +16 -17
  567. package/src/assembly/renderer-facade.ts +34 -1
  568. package/src/assembly/renderer-feature-inspection.ts +13 -0
  569. package/src/assembly/renderer-frame-transaction.ts +63 -0
  570. package/src/assembly/renderer-helpers.ts +26 -0
  571. package/src/assembly/renderer-inspection.ts +6 -0
  572. package/src/assembly/shader-prewarm-policy.ts +46 -1
  573. package/src/assembly/skin-palette-owner.ts +21 -0
  574. package/src/assembly/ssr-shader-prewarm.ts +41 -0
  575. package/src/assembly/webgpu-device-loss.ts +75 -0
  576. package/src/assembly/webgpu-pbr-ready.ts +232 -0
  577. package/src/assembly/webgpu-ready-mipmap.ts +26 -0
  578. package/src/assembly/webgpu-ready.ts +161 -131
  579. package/src/assembly/webgpu-renderer-bootstrap.ts +85 -0
  580. package/src/assembly/webgpu-renderer-contract.ts +69 -0
  581. package/src/assembly/webgpu-renderer-guards.ts +32 -0
  582. package/src/assembly/webgpu-renderer-observation.ts +43 -0
  583. package/src/assembly/webgpu-renderer-recovery-failure.ts +62 -0
  584. package/src/assembly/webgpu-renderer.ts +744 -730
  585. package/src/assembly/webgpu-vertex-layouts.ts +233 -87
  586. package/src/capture/scene-projection.ts +37 -0
  587. package/src/components/__tests__/camera-exposure.contract.unit.test.ts +153 -0
  588. package/src/components/__tests__/dynamic-resolution-schema.unit.test.ts +65 -0
  589. package/src/components/__tests__/light-radius.integration.test.ts +59 -0
  590. package/src/components/camera.ts +287 -7
  591. package/src/components/directional-light.ts +3 -3
  592. package/src/components/dynamic-resolution.ts +67 -0
  593. package/src/components/index.ts +2 -0
  594. package/src/components/instances.ts +45 -18
  595. package/src/components/light-helpers.ts +6 -1
  596. package/src/components/reflection-probe.ts +1 -0
  597. package/src/components/scene-instance.ts +2 -1
  598. package/src/components/screen-space-reflection.ts +21 -0
  599. package/src/components/skylight.ts +4 -1
  600. package/src/components/sprite-animation.ts +2 -2
  601. package/src/components/sprite-instances.ts +1 -1
  602. package/src/device/device-scope.ts +13 -7
  603. package/src/device/gpu-residency.ts +45 -42
  604. package/src/dynamic-geometry.ts +13 -8
  605. package/src/environment/background.ts +281 -0
  606. package/src/environment/ibl.ts +211 -0
  607. package/src/environment/storage.ts +63 -0
  608. package/src/errors/gpu-driven.ts +49 -8
  609. package/src/errors/render.ts +91 -3
  610. package/src/extract/camera.ts +37 -1
  611. package/src/extract/contracts.ts +10 -0
  612. package/src/extract/gpu-driven.ts +240 -10
  613. package/src/features/host.ts +237 -19
  614. package/src/features/noise-texture.ts +91 -0
  615. package/src/features/plan.ts +553 -24
  616. package/src/features/prepared-gpu-work.ts +631 -49
  617. package/src/features/prepared-graphics-store.ts +31 -0
  618. package/src/features/prepared-graphics.ts +5 -0
  619. package/src/features/render-graph-compute.ts +41 -8
  620. package/src/features/render-graph-contribution.ts +141 -3
  621. package/src/features/render-graph-raster.ts +143 -30
  622. package/src/features/types.ts +11 -0
  623. package/src/fullscreen-post-process-pass.ts +3 -0
  624. package/src/gpu-driven/batch-topology.ts +452 -108
  625. package/src/gpu-driven/material-artifacts.ts +179 -0
  626. package/src/gpu-driven/material-bindings.ts +41 -0
  627. package/src/gpu-driven/pbr-program.ts +31 -0
  628. package/src/gpu-driven/prepared-draw.ts +42 -6
  629. package/src/gpu-driven/production-raster.ts +2806 -716
  630. package/src/gpu-driven/shadow-views.ts +539 -0
  631. package/src/gpu-driven/view-gpu.ts +188 -41
  632. package/src/gpu-resource.ts +21 -2
  633. package/src/gpu-scene-schema.ts +61 -11
  634. package/src/gpu-scene.ts +197 -99
  635. package/src/gpu-texture-usage.ts +1 -0
  636. package/src/hdrp-buffers.ts +141 -36
  637. package/src/ibl/IblPipelineCache.ts +5 -0
  638. package/src/ibl/frame-resources.ts +38 -0
  639. package/src/ibl/skylight-bind-group.ts +32 -21
  640. package/src/index.ts +194 -75
  641. package/src/inspection-types.ts +207 -1
  642. package/src/instances-derived-bounds.ts +258 -34
  643. package/src/instances.ts +459 -150
  644. package/src/internal.ts +22 -0
  645. package/src/lifecycle.ts +2 -0
  646. package/src/material-row.ts +194 -0
  647. package/src/materials.ts +44 -8
  648. package/src/pbr-pipeline.ts +172 -19
  649. package/src/pipeline/render-extent.ts +111 -0
  650. package/src/pipeline/standard-build-context.ts +7 -0
  651. package/src/pipeline/standard-forward-lane.ts +74 -29
  652. package/src/pipeline/standard-output/__tests__/lut-admission.unit.test.ts +103 -0
  653. package/src/pipeline/standard-output/auto-exposure/__tests__/capability.unit.test.ts +40 -0
  654. package/src/pipeline/standard-output/auto-exposure/__tests__/gpu.contract.unit.test.ts +125 -0
  655. package/src/pipeline/standard-output/auto-exposure/__tests__/graph.contract.unit.test.ts +94 -0
  656. package/src/pipeline/standard-output/auto-exposure/__tests__/oracle.test.ts +108 -0
  657. package/src/pipeline/standard-output/auto-exposure/__tests__/preset.test.ts +26 -0
  658. package/src/pipeline/standard-output/auto-exposure/capability.ts +38 -0
  659. package/src/pipeline/standard-output/auto-exposure/gpu.ts +567 -0
  660. package/src/pipeline/standard-output/auto-exposure/graph.ts +221 -0
  661. package/src/pipeline/standard-output/auto-exposure/inspection.ts +231 -0
  662. package/src/pipeline/standard-output/auto-exposure/oracle.ts +291 -0
  663. package/src/pipeline/standard-output/auto-exposure/preset.ts +28 -0
  664. package/src/pipeline/standard-output/auto-exposure/state.ts +156 -0
  665. package/src/pipeline/standard-output/color-transform.ts +124 -0
  666. package/src/pipeline/standard-output/graph.ts +139 -0
  667. package/src/pipeline/standard-output/lut-admission.ts +121 -0
  668. package/src/pipeline/standard-output/lut-gpu.ts +399 -0
  669. package/src/pipeline/standard-output/lut-state.ts +176 -0
  670. package/src/pipeline/standard-output/resources.ts +121 -0
  671. package/src/pipeline/standard-output/types.ts +58 -0
  672. package/src/pipeline/standard-pipeline.ts +232 -70
  673. package/src/pipeline/standard-post.ts +190 -27
  674. package/src/pipeline/standard-profile.ts +2 -1
  675. package/src/pipeline-builder.ts +28 -9
  676. package/src/pipeline-spec-types.ts +4 -0
  677. package/src/pipeline-spec.ts +37 -29
  678. package/src/plugin.ts +4 -0
  679. package/src/points-lines/standard-owner.ts +6 -14
  680. package/src/post-process-errors.ts +26 -18
  681. package/src/prepare/__tests__/extended-lighting-capability.unit.test.ts +2 -2
  682. package/src/prepare/extended-lighting/resources.ts +3 -3
  683. package/src/prepare/prepared-graphics-resolver.ts +9 -2
  684. package/src/record/__tests__/main-pass-geometry.unit.test.ts +68 -0
  685. package/src/record/__tests__/material-bg-cache.unit.test.ts +45 -0
  686. package/src/record/__tests__/material-slot-plan.unit.test.ts +57 -0
  687. package/src/record/__tests__/mesh-ssbo.unit.test.ts +40 -1
  688. package/src/record/__tests__/recovery-pipeline.unit.test.ts +20 -1
  689. package/src/record/__tests__/sprite-material-abi.unit.test.ts +41 -6
  690. package/src/record/__tests__/temporal-payload.unit.test.ts +2 -0
  691. package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +45 -0
  692. package/src/record/__tests__/view-ubo-layout.unit.test.ts +5 -0
  693. package/src/record/dynamic-geometry-consumption.ts +59 -0
  694. package/src/record/frame-lighting.ts +15 -12
  695. package/src/record/frame-snapshot.ts +146 -34
  696. package/src/record/frame-targets.ts +9 -0
  697. package/src/record/frame.ts +838 -170
  698. package/src/record/main-pass-geometry.ts +209 -103
  699. package/src/record/main-pass-material.ts +157 -40
  700. package/src/record/main-pass-sprite-draws.ts +16 -107
  701. package/src/record/main-pass.ts +141 -12
  702. package/src/record/material-uniforms.ts +1 -1
  703. package/src/record/mesh-ssbo.ts +59 -15
  704. package/src/record/prepared-material-bindings.ts +238 -0
  705. package/src/record/recovery-pipeline.ts +69 -90
  706. package/src/record/render-context.ts +123 -24
  707. package/src/record/shadow-pass.ts +1389 -230
  708. package/src/record/skybox-post-pass.ts +14 -3
  709. package/src/record/typed-frame-graph.ts +1064 -47
  710. package/src/record/view-ubo.ts +12 -1
  711. package/src/recovery/render-system-candidate.ts +135 -68
  712. package/src/recovery/render-system-roots.ts +113 -0
  713. package/src/recovery/types.ts +77 -0
  714. package/src/reflection/background.ts +151 -0
  715. package/src/reflection/filter.ts +3 -0
  716. package/src/reflection/projection.ts +16 -6
  717. package/src/reflection/record-owner.ts +308 -140
  718. package/src/render-contract.ts +237 -49
  719. package/src/render-graph-primitives.ts +34 -5
  720. package/src/render-pipeline.ts +90 -2
  721. package/src/render-system-extract-tail.ts +431 -162
  722. package/src/render-system-extract.ts +478 -119
  723. package/src/render-system-projections.ts +241 -0
  724. package/src/render-system.ts +715 -828
  725. package/src/scene/render-scene-types.ts +13 -4
  726. package/src/scene/render-scene.ts +577 -355
  727. package/src/scene/shadow-visibility.ts +21 -0
  728. package/src/ssao-config.ts +25 -8
  729. package/src/ssr/admission.ts +380 -14
  730. package/src/ssr/compose.ts +144 -0
  731. package/src/ssr/errors.ts +48 -0
  732. package/src/ssr/graph.ts +797 -0
  733. package/src/ssr/history.ts +436 -0
  734. package/src/ssr/hiz.ts +124 -0
  735. package/src/ssr/inspection.ts +124 -0
  736. package/src/ssr/resources.ts +202 -0
  737. package/src/ssr/temporal.ts +164 -0
  738. package/src/systems/skin-palette-allocator.ts +495 -148
  739. package/src/systems/skin-palette-types.ts +17 -0
  740. package/src/systems/transparent-dispatch.ts +90 -0
  741. package/src/targets/material-source.ts +34 -0
  742. package/src/temporal/coverage.ts +1 -1
  743. package/src/temporal/frame-coordinator.ts +23 -2
  744. package/src/temporal/gpu.ts +79 -12
  745. package/src/temporal/history.ts +3 -1
  746. package/src/temporal/inspection.ts +2 -1
  747. package/src/temporal/standard-scene-data.ts +10 -2
  748. package/src/temporal/target-coverage-attachment.ts +72 -0
  749. package/src/temporal/temporal-view.ts +11 -2
  750. package/src/temporal/view.ts +12 -2
  751. package/src/transmission/__tests__/standard-transmission.dawn.test.ts +219 -139
  752. package/src/typed-render-graph-primitives.ts +304 -74
  753. package/src/typed-shadow-passes.ts +122 -12
  754. package/src/volume/component.ts +1 -0
  755. package/src/volume/passes.ts +3 -3
  756. package/src/volume/temporal.ts +10 -0
  757. package/dist/chunk-GE3SDD72.mjs.map +0 -1
  758. package/dist/chunk-GF523LHF.mjs.map +0 -1
  759. package/dist/chunk-IQMKJLNU.mjs.map +0 -1
  760. package/dist/chunk-J52NMQKR.mjs.map +0 -1
  761. package/dist/chunk-J6KACNOH.mjs.map +0 -1
  762. package/dist/chunk-JAASCMXA.mjs.map +0 -1
  763. package/dist/chunk-MBU4ZVE7.mjs.map +0 -1
  764. package/dist/chunk-MYJ5RPJO.mjs.map +0 -1
  765. package/dist/chunk-RBDBZ5R7.mjs.map +0 -1
  766. package/dist/chunk-VSL23LZE.mjs.map +0 -1
  767. package/src/__tests__/instances-world-ownership.integration.test.ts +0 -62
  768. package/src/scene/__tests__/changed-block-summary.candidate.test.ts +0 -36
@@ -0,0 +1,75 @@
1
+ import { type Result } from '@forgeax/engine-types';
2
+ import type { RenderPipelineFrame } from '../../../render-pipeline';
3
+ export declare const AUTO_EXPOSURE_GRAPH_PASSES: readonly ["auto-exposure-clear", "auto-exposure-histogram", "auto-exposure-adapt"];
4
+ /** The logical meter stages are encoded inside one physical compute pass. */
5
+ export declare const AUTO_EXPOSURE_FUSED_GRAPH_PASS: "auto-exposure-meter";
6
+ /**
7
+ * The meter keeps one physical compute pass, but separates its ordered
8
+ * clear/histogram/adapt dispatches so the histogram cohort can synchronize
9
+ * across workgroups through the command stream. Histogram uses 32 fixed
10
+ * workgroups of 256 invocations; the dispatch is intentionally independent of
11
+ * output resolution.
12
+ */
13
+ export declare const AUTO_EXPOSURE_HISTOGRAM_WORKGROUP_SIZE: 256;
14
+ export declare const AUTO_EXPOSURE_HISTOGRAM_WORKGROUP_COUNT: 32;
15
+ export declare const AUTO_EXPOSURE_HISTOGRAM_DISPATCH: Readonly<{
16
+ readonly x: 4;
17
+ readonly y: 8;
18
+ readonly z: 1;
19
+ }>;
20
+ export declare const AUTO_EXPOSURE_ADAPT_WORKGROUP_SIZE: 64;
21
+ export declare const AUTO_EXPOSURE_CLEAR_WORKGROUP_SIZE: 256;
22
+ export type AutoExposureGraphPassName = (typeof AUTO_EXPOSURE_GRAPH_PASSES)[number];
23
+ /**
24
+ * Built-in auto-exposure work is recorded synchronously during graph
25
+ * execution. Prefer the renderer's handle-first factory so the first frame
26
+ * does not become a false pending shader failure after async warm-up has
27
+ * already supplied a usable module.
28
+ */
29
+ export declare function resolveAutoExposureShaderModuleFactory(runtime: Pick<RenderPipelineFrame['runtime'], 'immediateShaderModuleFactory' | 'shaderModuleFactory'>): NonNullable<RenderPipelineFrame['runtime']['shaderModuleFactory']> | undefined;
30
+ export interface AutoExposureGraphPass {
31
+ readonly name: AutoExposureGraphPassName;
32
+ readonly kind: 'compute';
33
+ readonly workgroupSize: readonly [number, number, number];
34
+ }
35
+ export interface AutoExposureGraphPlan {
36
+ readonly resolution: Readonly<{
37
+ width: number;
38
+ height: number;
39
+ }>;
40
+ readonly sampleBounds: Readonly<{
41
+ x: 4;
42
+ y: 4;
43
+ }>;
44
+ readonly sampleCount: number;
45
+ readonly dispatch: Readonly<{
46
+ x: number;
47
+ y: number;
48
+ z: 1;
49
+ }>;
50
+ readonly histogramBytes: 1024;
51
+ readonly stateBytes: 32;
52
+ readonly passes: readonly AutoExposureGraphPass[];
53
+ readonly physicalPass: typeof AUTO_EXPOSURE_FUSED_GRAPH_PASS;
54
+ readonly physicalPassCount: 1;
55
+ readonly resources: readonly ['auto-exposure-histogram', 'auto-exposure-state'];
56
+ readonly cpuReadbackCount: 0;
57
+ readonly cpuUploadCount: 0;
58
+ readonly candidateAvailableSameFrame: true;
59
+ }
60
+ export declare class AutoExposureGraphError extends Error {
61
+ readonly code: "auto-exposure-graph-invalid";
62
+ readonly expected: string;
63
+ readonly hint: string;
64
+ readonly detail: Readonly<{
65
+ field: string;
66
+ actual: string;
67
+ }>;
68
+ constructor(field: string, actual: string, expected: string);
69
+ }
70
+ export declare function createAutoExposureGraphPlan(input: {
71
+ readonly width: number;
72
+ readonly height: number;
73
+ }): AutoExposureGraphPlan;
74
+ export declare function validateAutoExposureGraphPlan(plan: AutoExposureGraphPlan): Result<AutoExposureGraphPlan, AutoExposureGraphError>;
75
+ //# sourceMappingURL=graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/standard-output/auto-exposure/graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ import type { CameraExposure } from '../../../components/camera';
2
+ export type AutoExposureErrorCode = 'auto-exposure-invalid-parameter' | 'auto-exposure-capability-unavailable' | 'auto-exposure-stale-generation' | 'auto-exposure-stage-failed';
3
+ export interface AutoExposureInvalidParameterDetail {
4
+ readonly field: string;
5
+ readonly value: number;
6
+ readonly expected: string;
7
+ }
8
+ export interface AutoExposureCapabilityUnavailableDetail {
9
+ readonly capability: 'compute' | 'storage-buffer' | 'float-filterable';
10
+ readonly generation: number;
11
+ }
12
+ export interface AutoExposureStaleGenerationDetail {
13
+ readonly expectedGeneration: number;
14
+ readonly actualGeneration: number;
15
+ }
16
+ export interface AutoExposureStageFailedDetail {
17
+ readonly stage: 'prepare' | 'record';
18
+ readonly operation: string;
19
+ readonly cause: unknown;
20
+ }
21
+ export type AutoExposureErrorDetailByCode = {
22
+ 'auto-exposure-invalid-parameter': AutoExposureInvalidParameterDetail;
23
+ 'auto-exposure-capability-unavailable': AutoExposureCapabilityUnavailableDetail;
24
+ 'auto-exposure-stale-generation': AutoExposureStaleGenerationDetail;
25
+ 'auto-exposure-stage-failed': AutoExposureStageFailedDetail;
26
+ };
27
+ export type AutoExposureErrorDetail = AutoExposureErrorDetailByCode[AutoExposureErrorCode];
28
+ export declare class AutoExposureInvalidParameterError extends Error {
29
+ readonly detail: AutoExposureInvalidParameterDetail;
30
+ readonly code: "auto-exposure-invalid-parameter";
31
+ readonly expected: string;
32
+ readonly hint: string;
33
+ constructor(detail: AutoExposureInvalidParameterDetail);
34
+ }
35
+ export declare class AutoExposureCapabilityUnavailableError extends Error {
36
+ readonly detail: AutoExposureCapabilityUnavailableDetail;
37
+ readonly code: "auto-exposure-capability-unavailable";
38
+ readonly expected: string;
39
+ readonly hint: string;
40
+ constructor(detail: AutoExposureCapabilityUnavailableDetail);
41
+ }
42
+ export declare class AutoExposureStaleGenerationError extends Error {
43
+ readonly detail: AutoExposureStaleGenerationDetail;
44
+ readonly code: "auto-exposure-stale-generation";
45
+ readonly expected: string;
46
+ readonly hint: string;
47
+ constructor(detail: AutoExposureStaleGenerationDetail);
48
+ }
49
+ export declare class AutoExposureStageFailedError extends Error {
50
+ readonly detail: AutoExposureStageFailedDetail;
51
+ readonly code: "auto-exposure-stage-failed";
52
+ readonly expected: string;
53
+ readonly hint: string;
54
+ constructor(detail: AutoExposureStageFailedDetail);
55
+ }
56
+ export type AutoExposureError = AutoExposureInvalidParameterError | AutoExposureCapabilityUnavailableError | AutoExposureStaleGenerationError | AutoExposureStageFailedError;
57
+ type AutoExposureErrorInput = {
58
+ [C in AutoExposureErrorCode]: {
59
+ readonly code: C;
60
+ readonly detail: AutoExposureErrorDetailByCode[C];
61
+ };
62
+ }[AutoExposureErrorCode];
63
+ export type AutoExposureErrorRecord = {
64
+ [C in AutoExposureErrorCode]: {
65
+ readonly code: C;
66
+ readonly expected: string;
67
+ readonly hint: string;
68
+ readonly detail: AutoExposureErrorDetailByCode[C];
69
+ };
70
+ }[AutoExposureErrorCode];
71
+ export type AutoExposureResetReason = 'camera-change' | 'manual-mode' | 'device-lost' | 'stale-generation';
72
+ export interface AutoExposureCost {
73
+ readonly histogramBytes: number;
74
+ /** Logical stages retained for the inspect contract: clear, histogram, adapt. */
75
+ readonly passCount: number;
76
+ /** The logical stages share one real timestamped compute pass. */
77
+ readonly physicalPassCount: number;
78
+ }
79
+ export interface AutoExposureReceipt {
80
+ readonly frameId: number;
81
+ readonly committed: boolean;
82
+ }
83
+ /**
84
+ * Describes where the detached `actual` value came from. A successful live
85
+ * GPU submission is intentionally not a CPU observation: its numeric result
86
+ * remains resident in the GPU state buffer until an explicit readback owner
87
+ * is requested. Keeping that state distinct prevents fallback from being
88
+ * presented as the measured exposure.
89
+ */
90
+ export type AutoExposureActualState = 'accepted' | 'fallback' | 'gpu-resident';
91
+ export interface AutoExposureInspection {
92
+ readonly requested: CameraExposure;
93
+ readonly actual: number | null;
94
+ readonly actualState: AutoExposureActualState;
95
+ readonly fallback: number;
96
+ readonly lastKnownGood: number;
97
+ readonly targetGeneration: number;
98
+ readonly recentFailure?: AutoExposureError;
99
+ readonly reset: readonly AutoExposureResetReason[];
100
+ readonly cost: AutoExposureCost;
101
+ readonly receipt: AutoExposureReceipt;
102
+ }
103
+ export interface AutoExposureInspectionInput extends Omit<AutoExposureInspection, 'actualState' | 'recentFailure'> {
104
+ readonly actualState?: AutoExposureActualState;
105
+ readonly recentFailure?: AutoExposureError | AutoExposureErrorRecord;
106
+ }
107
+ export declare function createAutoExposureError(input: AutoExposureErrorInput | AutoExposureErrorRecord): AutoExposureError;
108
+ /** Project detached bounded facts; GPU handles and histogram buckets never cross this boundary. */
109
+ export declare function createAutoExposureInspection(input: AutoExposureInspectionInput): Readonly<AutoExposureInspection>;
110
+ export {};
111
+ //# sourceMappingURL=inspection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspection.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/standard-output/auto-exposure/inspection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export declare function luminanceHistogram(pixels: readonly (readonly [number, number, number, number])[], bins?: 256): Uint32Array;
2
+ /**
3
+ * Mirror the fixed shader-side center weighting for deterministic tests. The
4
+ * sample list is row-major over the metering grid (one sample per 4x4 block),
5
+ * so the helper never changes the texture-read/sample-count contract.
6
+ */
7
+ export declare function centerWeight(block: readonly [number, number], sampleGrid: readonly [number, number]): number;
8
+ export declare function weightedLuminanceHistogram(pixels: readonly (readonly [number, number, number, number])[], sampleGrid: readonly [number, number], bins?: 256): Uint32Array;
9
+ /** Fixed product target mapping used to compare GPU adaptation with a CPU oracle. */
10
+ export declare function autoExposureTarget(histogram: Uint32Array, compensationEv: number, rangeEv: readonly [number, number], fallback: number): number;
11
+ export declare function histogramPercentile(histogram: Uint32Array, percentile: number): number;
12
+ export declare function adaptExposure(current: number, target: number, deltaTime: number, upRate: number, downRate: number): number;
13
+ export declare function bradfordAdaptD65(rgb: readonly [number, number, number], temperature: number): [number, number, number];
14
+ export declare function linearRgbToLab(rgb: readonly [number, number, number]): [number, number, number];
15
+ export declare function ciede2000(first: readonly [number, number, number], second: readonly [number, number, number]): number;
16
+ //# sourceMappingURL=oracle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oracle.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/standard-output/auto-exposure/oracle.ts"],"names":[],"mappings":"AAiDA,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,EAC9D,IAAI,MAAwC,GAC3C,WAAW,CAab;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,MAAM,CASR;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,EAC9D,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EACrC,IAAI,MAAwC,GAC3C,WAAW,CAoBb;AAED,qFAAqF;AACrF,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,WAAW,EACtB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,QAAQ,EAAE,MAAM,GACf,MAAM,CA0CR;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAgBtF;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,MAAM,CAOR;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACtC,WAAW,EAAE,MAAM,GAClB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAgB1B;AAQD,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAM/F;AAED,wBAAgB,SAAS,CACvB,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACxC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GACxC,MAAM,CAuCR"}
@@ -0,0 +1,14 @@
1
+ /** Versioned product constants. External standards supply formulas, not these values. */
2
+ export interface AutoExposurePreset {
3
+ readonly version: 'auto-exposure-v1';
4
+ readonly histogramBins: 256;
5
+ readonly sampleBlockSize: 4;
6
+ readonly lowPercentile: number;
7
+ readonly highPercentile: number;
8
+ readonly middleGray: number;
9
+ readonly logLuminanceMin: number;
10
+ readonly logLuminanceMax: number;
11
+ readonly referenceFormulas: readonly string[];
12
+ }
13
+ export declare const AUTO_EXPOSURE_PRESET_V1: AutoExposurePreset;
14
+ //# sourceMappingURL=preset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/standard-output/auto-exposure/preset.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C;AAED,eAAO,MAAM,uBAAuB,EAAE,kBAcpC,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { type Result } from '@forgeax/engine-types';
2
+ import { AutoExposureInvalidParameterError, type AutoExposureReceipt, type AutoExposureResetReason, AutoExposureStaleGenerationError } from './inspection';
3
+ /** CPU-side ownership record for the two GPU state slots and accepted candidate. */
4
+ export interface AutoExposureState {
5
+ readonly acceptedEv: number;
6
+ readonly fallback: number;
7
+ readonly lastKnownGood: number;
8
+ readonly targetGeneration: number;
9
+ readonly deviceEpoch: number;
10
+ readonly reset: readonly AutoExposureResetReason[];
11
+ readonly receipt: AutoExposureReceipt;
12
+ }
13
+ export interface AutoExposureCandidate {
14
+ readonly ev: number;
15
+ readonly generation: number;
16
+ readonly deviceEpoch: number;
17
+ readonly frameId: number;
18
+ }
19
+ export interface AutoExposureSubmissionMetadata {
20
+ readonly generation: number;
21
+ readonly deviceEpoch: number;
22
+ readonly frameId: number;
23
+ }
24
+ export declare function createAutoExposureState(input: {
25
+ readonly fallback: number;
26
+ readonly targetGeneration?: number;
27
+ readonly deviceEpoch?: number;
28
+ readonly frameId?: number;
29
+ }): Result<AutoExposureState, AutoExposureInvalidParameterError>;
30
+ export declare function prepareAutoExposureCandidate(state: AutoExposureState, candidate: AutoExposureCandidate): Result<AutoExposureCandidate, AutoExposureStaleGenerationError | AutoExposureInvalidParameterError>;
31
+ /** Publish a candidate only after the owning frame transaction has submitted. */
32
+ export declare function commitAutoExposureCandidate(state: AutoExposureState, candidate: AutoExposureCandidate): AutoExposureState;
33
+ /**
34
+ * Publish only the successful-submit receipt for the live GPU path.
35
+ *
36
+ * The numeric candidate is produced and retained by the GPU state buffer. No
37
+ * CPU readback is permitted on the frame path, so this transaction helper must
38
+ * not manufacture an accepted exposure from fallback/LKG data.
39
+ */
40
+ export declare function commitAutoExposureSubmission(state: AutoExposureState, metadata: AutoExposureSubmissionMetadata): AutoExposureState;
41
+ /** Reset GPU state ownership while retaining the accepted EV as the fallback. */
42
+ export declare function resetAutoExposureState(state: AutoExposureState, reason: AutoExposureResetReason, input: {
43
+ readonly targetGeneration: number;
44
+ readonly deviceEpoch: number;
45
+ }): AutoExposureState;
46
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/standard-output/auto-exposure/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EACL,iCAAiC,EACjC,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,gCAAgC,EACjC,MAAM,cAAc,CAAC;AAEtB,oFAAoF;AACpF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACnD,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;CACvC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAMD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAAC,iBAAiB,EAAE,iCAAiC,CAAC,CAiC/D;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,qBAAqB,GAC/B,MAAM,CACP,qBAAqB,EACrB,gCAAgC,GAAG,iCAAiC,CACrE,CAsBA;AAED,iFAAiF;AACjF,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,qBAAqB,GAC/B,iBAAiB,CAOnB;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,8BAA8B,GACvC,iBAAiB,CAWnB;AAED,iFAAiF;AACjF,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE;IAAE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACzE,iBAAiB,CAQnB"}
@@ -0,0 +1,27 @@
1
+ import type { ColorValueDomain } from '@forgeax/engine-render-graph';
2
+ import type { StandardOutputEncoding, StandardOutputLogicalStage } from './types';
3
+ export interface StandardOutputDomainTransition {
4
+ readonly stage: StandardOutputLogicalStage;
5
+ readonly input: ColorValueDomain;
6
+ readonly output: ColorValueDomain;
7
+ }
8
+ export declare const LINEAR_HDR_DOMAIN: ColorValueDomain;
9
+ export declare const LINEAR_LDR_DOMAIN: ColorValueDomain;
10
+ export declare const DISPLAY_ENCODED_DOMAIN: ColorValueDomain;
11
+ /** D65 product white point shared by the Camera output oracle. */
12
+ export declare const D65_TEMPERATURE_KELVIN = 6504;
13
+ export declare const CAMERA_COLOR_LUT_ZERO_COST_STRENGTH = 0;
14
+ export declare function outputEncodingOwner(encoding: StandardOutputEncoding): string;
15
+ export declare function outputEncodingUsesOetf(encoding: StandardOutputEncoding): boolean;
16
+ export type StandardRgb = readonly [number, number, number];
17
+ export type StandardRgba = readonly [number, number, number, number];
18
+ /** Apply the camera's Bradford white-balance adaptation in linear HDR. */
19
+ export declare function applyStandardWhiteBalance(rgb: StandardRgb, temperature: number, tint: number): [number, number, number];
20
+ export interface StandardColorLutData {
21
+ readonly size: number;
22
+ /** RGBA half-float texels in z-major, y-major, x-major order. */
23
+ readonly data: ArrayLike<number>;
24
+ }
25
+ /** CPU reference for the fixed clamp-to-edge, texel-center trilinear LUT sample. */
26
+ export declare function sampleStandardColorLut(data: StandardColorLutData, rgb: StandardRgb, strength?: number, alpha?: number): StandardRgba;
27
+ //# sourceMappingURL=color-transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-transform.d.ts","sourceRoot":"","sources":["../../../src/pipeline/standard-output/color-transform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAElF,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,KAAK,EAAE,0BAA0B,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAED,eAAO,MAAM,iBAAiB,EAAE,gBAA+B,CAAC;AAChE,eAAO,MAAM,iBAAiB,EAAE,gBAA+B,CAAC;AAChE,eAAO,MAAM,sBAAsB,EAAE,gBAAoC,CAAC;AAE1E,kEAAkE;AAClE,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAC3C,eAAO,MAAM,mCAAmC,IAAI,CAAC;AAErD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,MAAM,CAE5E;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAEhF;AAED,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC5D,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAErE,0EAA0E;AAC1E,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,WAAW,EAChB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GACX,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAM1B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CAClC;AA+BD,oFAAoF;AACpF,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,oBAAoB,EAC1B,GAAG,EAAE,WAAW,EAChB,QAAQ,SAAI,EACZ,KAAK,SAAI,GACR,YAAY,CAwCd"}
@@ -0,0 +1,15 @@
1
+ import { type Result } from '@forgeax/engine-types';
2
+ import type { StandardOutputPlan, StandardOutputRequest } from './types';
3
+ export declare class StandardOutputPlanError extends Error {
4
+ readonly code: "standard-output-plan-invalid";
5
+ readonly expected: string;
6
+ readonly hint: string;
7
+ readonly detail: {
8
+ readonly field: string;
9
+ readonly actual: string;
10
+ };
11
+ constructor(field: string, actual: string, expected: string);
12
+ }
13
+ export declare function createStandardOutputPlan(input: StandardOutputRequest): StandardOutputPlan;
14
+ export declare function validateStandardOutputPlan(plan: StandardOutputPlan): Result<StandardOutputPlan, StandardOutputPlanError>;
15
+ //# sourceMappingURL=graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/pipeline/standard-output/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,KAAK,EAGV,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAEjB,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAG,8BAA8B,CAAU;IACxD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;gBAEzD,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAO5D;AAsCD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,qBAAqB,GAAG,kBAAkB,CAwBzF;AAUD,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,kBAAkB,GACvB,MAAM,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CA0CrD"}
@@ -0,0 +1,29 @@
1
+ import type { SamplerDescriptor } from '@forgeax/engine-rhi';
2
+ import type { TextureAsset } from '@forgeax/engine-types';
3
+ import { type Result } from '@forgeax/engine-types';
4
+ export type StandardLutAdmissionErrorCode = 'standard-lut-shape-invalid' | 'standard-lut-limit-exceeded' | 'standard-lut-filter-unavailable' | 'standard-lut-bind-failed';
5
+ export type StandardLutAdmissionError = {
6
+ readonly code: StandardLutAdmissionErrorCode;
7
+ readonly expected: string;
8
+ readonly hint: string;
9
+ readonly detail: Readonly<Record<string, number | string | boolean>>;
10
+ };
11
+ export interface StandardColorLutAdmissionInput {
12
+ readonly texture: TextureAsset;
13
+ readonly maxTextureDimension3D: number;
14
+ readonly rgba16floatFilterable: boolean;
15
+ readonly bind: () => boolean;
16
+ }
17
+ export interface StandardColorLutAdmission {
18
+ readonly viewDimension: '3d';
19
+ readonly extent: Readonly<{
20
+ width: number;
21
+ height: number;
22
+ depth: number;
23
+ }>;
24
+ readonly sampler: SamplerDescriptor;
25
+ }
26
+ export declare function createStandardLutSamplerDescriptor(): SamplerDescriptor;
27
+ export declare function lutTexelCenter(index: number, size: number): number;
28
+ export declare function admitStandardColorLut(input: StandardColorLutAdmissionInput): Result<StandardColorLutAdmission, StandardLutAdmissionError>;
29
+ //# sourceMappingURL=lut-admission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lut-admission.d.ts","sourceRoot":"","sources":["../../../src/pipeline/standard-output/lut-admission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,MAAM,6BAA6B,GACrC,4BAA4B,GAC5B,6BAA6B,GAC7B,iCAAiC,GACjC,0BAA0B,CAAC;AAE/B,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,IAAI,EAAE,6BAA6B,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CACtE,CAAC;AAEF,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;CACrC;AAED,wBAAgB,kCAAkC,IAAI,iBAAiB,CAStE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAElE;AAWD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,8BAA8B,GACpC,MAAM,CAAC,yBAAyB,EAAE,yBAAyB,CAAC,CAgE9D"}
@@ -0,0 +1,48 @@
1
+ import type { AssetRegistry } from '@forgeax/engine-assets-runtime';
2
+ import type { World } from '@forgeax/engine-ecs';
3
+ import type { RenderGraphBuilder, RenderGraphError } from '@forgeax/engine-render-graph';
4
+ import type { BindGroup, BindGroupLayout, RhiDevice, Sampler, Texture, TextureView } from '@forgeax/engine-rhi';
5
+ import { type Handle, type Result } from '@forgeax/engine-types';
6
+ import type { GpuResidencyCache } from '../../device/gpu-residency';
7
+ import type { RenderPipelineFrame, RenderPipelineTarget } from '../../render-pipeline';
8
+ import { type StandardLutAdmissionError, type StandardLutAdmissionErrorCode } from './lut-admission';
9
+ export interface StandardLutGpuResources {
10
+ readonly texture: Texture;
11
+ readonly view: TextureView;
12
+ readonly sampler: Sampler;
13
+ readonly sourceKey: string;
14
+ readonly size: number;
15
+ readonly strength: number;
16
+ readonly bindGroupLayout: BindGroupLayout;
17
+ readonly bindGroup: BindGroup;
18
+ }
19
+ export interface StandardLutGraphProjection {
20
+ readonly view: import('@forgeax/engine-render-graph').GraphTextureView;
21
+ readonly sampler: Sampler;
22
+ readonly strength: number;
23
+ readonly bindGroupLayout: BindGroupLayout;
24
+ readonly bindGroup: BindGroup;
25
+ }
26
+ export interface StandardLutGpuPreparationInput {
27
+ readonly world: World;
28
+ readonly handle: Handle<'TextureAsset', 'shared'>;
29
+ readonly strength: number;
30
+ readonly assets: AssetRegistry;
31
+ readonly gpuStore: GpuResidencyCache;
32
+ readonly device: RhiDevice;
33
+ }
34
+ /** Release only the projection-owned LUT objects; texture residency is cache-owned. */
35
+ export declare function retireStandardLutGpuResources(_resources: StandardLutGpuResources): void;
36
+ export type StandardLutGpuErrorCode = StandardLutAdmissionErrorCode | 'standard-lut-strength-invalid' | 'standard-lut-catalog-source-missing' | 'standard-lut-residency-failed' | 'standard-lut-not-resident' | 'standard-lut-3d-view-unavailable' | 'standard-lut-sampler-failed' | 'standard-lut-bind-group-layout-failed' | 'standard-lut-bind-failed';
37
+ export interface StandardLutGpuError {
38
+ readonly code: StandardLutGpuErrorCode;
39
+ readonly expected: string;
40
+ readonly hint: string;
41
+ readonly detail: Readonly<Record<string, number | string | boolean>>;
42
+ }
43
+ export type StandardLutPreparationError = StandardLutAdmissionError | StandardLutGpuError;
44
+ /** Resolve, admit, make resident, and bind one ordinary TextureAsset LUT. */
45
+ export declare function prepareStandardLutGpu(input: StandardLutGpuPreparationInput): Result<StandardLutGpuResources, StandardLutPreparationError>;
46
+ /** Record a fullscreen 3D LUT sample into the same Standard graph. */
47
+ export declare function addStandardColorLutPass(graph: RenderGraphBuilder<RenderPipelineFrame>, input: RenderPipelineTarget, output: RenderPipelineTarget, lut: StandardLutGraphProjection): Result<void, RenderGraphError>;
48
+ //# sourceMappingURL=lut-gpu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lut-gpu.d.ts","sourceRoot":"","sources":["../../../src/pipeline/standard-output/lut-gpu.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import { type Result } from '@forgeax/engine-types';
2
+ export type StandardLutResetReason = 'device-recovered' | 'resource-removed' | 'validation-failed';
3
+ export type StandardLutStateErrorCode = 'standard-lut-stale-generation' | 'standard-lut-invalid-resident';
4
+ export interface StandardLutStateError {
5
+ readonly code: StandardLutStateErrorCode;
6
+ readonly expected: string;
7
+ readonly hint: string;
8
+ readonly detail: Readonly<Record<string, number | string>>;
9
+ }
10
+ /** Bounded preparation failure retained for recovery and detached inspection. */
11
+ export interface StandardLutFailure {
12
+ readonly code: string;
13
+ readonly expected: string;
14
+ readonly hint: string;
15
+ readonly detail: Readonly<Record<string, number | string | boolean>>;
16
+ }
17
+ export interface StandardLutState {
18
+ readonly resident: string | null;
19
+ readonly lastKnownGood: string | null;
20
+ readonly sourceKey: string | null;
21
+ readonly targetGeneration: number;
22
+ readonly deviceEpoch: number;
23
+ readonly recentFailure?: StandardLutFailure;
24
+ readonly reset: readonly StandardLutResetReason[];
25
+ readonly receipt: Readonly<{
26
+ frameId: number;
27
+ committed: boolean;
28
+ }>;
29
+ }
30
+ export interface StandardLutCandidate {
31
+ readonly resident: string;
32
+ readonly sourceKey?: string;
33
+ readonly generation: number;
34
+ readonly deviceEpoch: number;
35
+ readonly frameId: number;
36
+ }
37
+ export declare function createStandardLutState(input?: {
38
+ readonly resident?: string | null;
39
+ readonly targetGeneration?: number;
40
+ readonly deviceEpoch?: number;
41
+ readonly frameId?: number;
42
+ }): StandardLutState;
43
+ export declare function prepareStandardLutCandidate(state: StandardLutState, candidate: StandardLutCandidate): Result<StandardLutCandidate, StandardLutStateError>;
44
+ /** Publish LUT residency only after the owning frame has submitted. */
45
+ export declare function commitStandardLutCandidate(state: StandardLutState, candidate: StandardLutCandidate): StandardLutState;
46
+ /** Keep the accepted/LKG resource while recording a failed replacement. */
47
+ export declare function recordStandardLutFailure(state: StandardLutState, failure: StandardLutFailure): StandardLutState;
48
+ /** Detached, bounded LUT facts for renderer inspection. */
49
+ export interface StandardLutInspection {
50
+ readonly resident: string | null;
51
+ readonly lastKnownGood: string | null;
52
+ readonly sourceKey: string | null;
53
+ readonly targetGeneration: number;
54
+ readonly deviceEpoch: number;
55
+ readonly recentFailure?: StandardLutFailure;
56
+ readonly reset: readonly StandardLutResetReason[];
57
+ readonly receipt: Readonly<{
58
+ frameId: number;
59
+ committed: boolean;
60
+ }>;
61
+ }
62
+ export declare function inspectStandardLutState(state: StandardLutState): Readonly<StandardLutInspection>;
63
+ /** Retire device-bound residency while retaining the compatible LKG identity. */
64
+ export declare function resetStandardLutState(state: StandardLutState, reason: StandardLutResetReason, input: {
65
+ readonly targetGeneration: number;
66
+ readonly deviceEpoch: number;
67
+ }): StandardLutState;
68
+ //# sourceMappingURL=lut-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lut-state.d.ts","sourceRoot":"","sources":["../../../src/pipeline/standard-output/lut-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { World } from '@forgeax/engine-ecs';
2
+ import { type Result, RhiError } from '@forgeax/engine-rhi';
3
+ import type { RenderFrameState } from '../../record/frame-snapshot';
4
+ import type { RenderSystemInternals } from '../../record/render-context';
5
+ import type { CameraSnapshot } from '../../render-contract';
6
+ /** Ordinary frames and detached recovery graphs prepare the same output resources. */
7
+ export declare function prepareStandardOutputResources(state: RenderFrameState, internals: RenderSystemInternals, camera: CameraSnapshot | undefined, world: World): Result<void, RhiError>;
8
+ /** Drop lost-device handles without destroying them; retain only reset CPU/LKG facts. */
9
+ export declare function resetStandardOutputForDeviceLoss(state: RenderFrameState, deviceEpoch: number): void;
10
+ //# sourceMappingURL=resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../src/pipeline/standard-output/resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAW,KAAK,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAS5D,sFAAsF;AACtF,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,gBAAgB,EACvB,SAAS,EAAE,qBAAqB,EAChC,MAAM,EAAE,cAAc,GAAG,SAAS,EAClC,KAAK,EAAE,KAAK,GACX,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CA6ExB;AAED,yFAAyF;AACzF,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,gBAAgB,EACvB,WAAW,EAAE,MAAM,GAClB,IAAI,CAiBN"}
@@ -0,0 +1,39 @@
1
+ import type { ColorValueDomain } from '@forgeax/engine-render-graph';
2
+ export declare const STANDARD_OUTPUT_LOGICAL_STAGES: readonly ["temporal", "meter", "bloom", "exposure-white-balance", "tone", "lut", "fxaa", "output-encoding"];
3
+ export type StandardOutputLogicalStage = (typeof STANDARD_OUTPUT_LOGICAL_STAGES)[number];
4
+ export type StandardOutputLane = 'direct' | 'clustered';
5
+ export type StandardOutputEncoding = 'explicit-oetf' | 'srgb-attachment';
6
+ export interface StandardColorLutBinding {
7
+ readonly viewDimension: '3d';
8
+ readonly size: number;
9
+ readonly strength: number;
10
+ }
11
+ export interface StandardOutputRequest {
12
+ readonly lane: StandardOutputLane;
13
+ readonly temporal: boolean;
14
+ readonly meter: boolean;
15
+ readonly bloom: boolean;
16
+ readonly exposure: boolean;
17
+ readonly whiteBalance: boolean;
18
+ readonly lut: boolean;
19
+ readonly fxaa: boolean;
20
+ readonly outputEncoding: StandardOutputEncoding;
21
+ }
22
+ export interface StandardOutputPhysicalStage {
23
+ readonly name: StandardOutputLogicalStage;
24
+ readonly input: ColorValueDomain;
25
+ readonly output: ColorValueDomain;
26
+ }
27
+ export interface StandardOutputPlan {
28
+ readonly lane: StandardOutputLane;
29
+ readonly features: Readonly<Pick<StandardOutputRequest, 'temporal' | 'meter' | 'bloom' | 'exposure' | 'whiteBalance' | 'lut' | 'fxaa'>>;
30
+ readonly outputEncoding: StandardOutputEncoding;
31
+ readonly logicalStages: readonly StandardOutputLogicalStage[];
32
+ readonly physicalStages: readonly StandardOutputPhysicalStage[];
33
+ readonly finalWriterCount: 1;
34
+ readonly outputEncodingCount: 1;
35
+ readonly incrementalResources: readonly string[];
36
+ readonly incrementalBindings: number;
37
+ readonly incrementalTimestamps: number;
38
+ }
39
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/pipeline/standard-output/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE,eAAO,MAAM,8BAA8B,6GASjC,CAAC;AAEX,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;AACzF,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,WAAW,CAAC;AACxD,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAAG,iBAAiB,CAAC;AAEzE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAC;CACjD;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CACzB,IAAI,CACF,qBAAqB,EACrB,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,cAAc,GAAG,KAAK,GAAG,MAAM,CAC9E,CACF,CAAC;IACF,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAC;IAChD,QAAQ,CAAC,aAAa,EAAE,SAAS,0BAA0B,EAAE,CAAC;IAC9D,QAAQ,CAAC,cAAc,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAChE,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC7B,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAChC,QAAQ,CAAC,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"standard-pipeline.d.ts","sourceRoot":"","sources":["../../src/pipeline/standard-pipeline.ts"],"names":[],"mappings":"AAMA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAA6B,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EACV,cAAc,EAIf,MAAM,oBAAoB,CAAC;AAsC5B,OAAO,EAGL,oBAAoB,EACpB,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAE5B,iEAAiE;AACjE,eAAO,MAAM,gCAAgC,ykEA6D5C,CAAC;AACF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,GAAG,MAAM,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,2BAA2B,CAAC,CAkB3E;AA4SD,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,QAAQ,CAAC,QAAQ,EAAE,OAAO,oBAAoB,CAAC;CAChD;AAED,wBAAgB,uCAAuC,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAE1F;AAED,4EAA4E;AAC5E,MAAM,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAiG1C,eAAO,MAAM,gBAAgB,EAAE,gBAG7B,CAAC;AAEH,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"standard-pipeline.d.ts","sourceRoot":"","sources":["../../src/pipeline/standard-pipeline.ts"],"names":[],"mappings":"AAOA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAA6B,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAIxD,OAAO,KAAK,EACV,cAAc,EAIf,MAAM,oBAAoB,CAAC;AA2C5B,OAAO,EAGL,oBAAoB,EACpB,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAE5B,iEAAiE;AACjE,eAAO,MAAM,gCAAgC,ykEA6D5C,CAAC;AACF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,GAAG,MAAM,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,2BAA2B,CAAC,CAkB3E;AAgcD,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,QAAQ,CAAC,QAAQ,EAAE,OAAO,oBAAoB,CAAC;CAChD;AAED,wBAAgB,uCAAuC,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAE1F;AAED,4EAA4E;AAC5E,MAAM,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAsG1C,eAAO,MAAM,gBAAgB,EAAE,gBAG7B,CAAC;AAEH,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { CompiledRenderGraphInfo } from '@forgeax/engine-render-graph';
1
+ import type { CompiledRenderGraphInfo, GraphTextureView } from '@forgeax/engine-render-graph';
2
2
  import { type Result } from '@forgeax/engine-types';
3
3
  import type { RenderPipelineBuildContext, RenderPipelineBuildError, RenderPipelineFrame, RenderPipelineTopology } from '../render-pipeline';
4
4
  import { type RenderPipelineTarget } from '../render-pipeline';
@@ -43,6 +43,6 @@ export declare function inspectStandardBloomGraph(graph: CompiledRenderGraphInfo
43
43
  * path exact-zero while preserving the existing half-resolution four-pass
44
44
  * implementation for the enabled path.
45
45
  */
46
- export declare function addStandardPost(context: RenderPipelineBuildContext<RenderPipelineFrame>, topology: RenderPipelineTopology, scene: RenderPipelineTarget, depth: RenderPipelineTarget, surface: StandardPostSurface, sceneTemporal?: RenderPipelineTarget): Result<void, RenderPipelineBuildError>;
46
+ export declare function addStandardPost(context: RenderPipelineBuildContext<RenderPipelineFrame>, topology: RenderPipelineTopology, scene: RenderPipelineTarget, depth: RenderPipelineTarget, surface: StandardPostSurface, sceneTemporal?: RenderPipelineTarget, secondaryReactivity?: GraphTextureView, coverage?: RenderPipelineTarget, coverageDepth?: RenderPipelineTarget): Result<void, RenderPipelineBuildError>;
47
47
  export {};
48
48
  //# sourceMappingURL=standard-post.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"standard-post.d.ts","sourceRoot":"","sources":["../../src/pipeline/standard-post.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAA0B,MAAM,8BAA8B,CAAC;AAEpG,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAK7D,OAAO,KAAK,EACV,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,oBAAoB,CAAC;AAW5B,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;CACxC;AAED,oFAAoF;AACpF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;CAQtC,CAAC;AAEF,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAyCD,8EAA8E;AAC9E,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,uBAAuB,GAAG,SAAS,GACzC,4BAA4B,CA8B9B;AAyBD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,0BAA0B,CAAC,mBAAmB,CAAC,EACxD,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,mBAAmB,EAC5B,aAAa,CAAC,EAAE,oBAAoB,GACnC,MAAM,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAsOxC"}
1
+ {"version":3,"file":"standard-post.d.ts","sourceRoot":"","sources":["../../src/pipeline/standard-post.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EAEvB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAK7D,OAAO,KAAK,EACV,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,oBAAoB,CAAC;AAiB5B,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;CACxC;AAED,oFAAoF;AACpF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;CAQtC,CAAC;AAEF,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAyCD,8EAA8E;AAC9E,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,uBAAuB,GAAG,SAAS,GACzC,4BAA4B,CA8B9B;AAyBD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,0BAA0B,CAAC,mBAAmB,CAAC,EACxD,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,mBAAmB,EAC5B,aAAa,CAAC,EAAE,oBAAoB,EACpC,mBAAmB,CAAC,EAAE,gBAAgB,EACtC,QAAQ,CAAC,EAAE,oBAAoB,EAC/B,aAAa,CAAC,EAAE,oBAAoB,GACnC,MAAM,CAAC,IAAI,EAAE,wBAAwB,CAAC,CA4XxC"}