@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
@@ -1 +1 @@
1
- {"version":3,"file":"pbr-pipeline.d.ts","sourceRoot":"","sources":["../src/pbr-pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pbr-pipeline.d.ts","sourceRoot":"","sources":["../src/pbr-pipeline.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,eAAe,EACf,MAAM,EACN,cAAc,EACd,SAAS,EACT,OAAO,EACP,aAAa,EACb,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,aAAa,EAInB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAU,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAkB1D,6EAA6E;AAC7E,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,EAAE,uBAAuB,GAAG,sBAAsB,CAAC,CAAC;AAIlG,MAAM,WAAW,uBAAuB;IACtC,oEAAoE;IACpE,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,qCAAqC;IACrC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,gDAAgD;IAChD,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC,qDAAqD;IACrD,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC,oFAAoF;IACpF,QAAQ,CAAC,iBAAiB,EAAE,eAAe,CAAC;IAC5C,8EAA8E;IAC9E,QAAQ,CAAC,mBAAmB,EAAE,cAAc,GAAG,IAAI,CAAC;IACpD;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,EAAE,SAAS;QAClC,eAAe;QACf,eAAe;QACf,eAAe;QACf,eAAe;KAChB,CAAC;CACH;AAED,iFAAiF;AACjF,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,aAAa,EACzB,cAAc,EAAE,OAAO,GACtB,SAAS,aAAa,EAAE,CAE1B;AAID;;;;;;;;;;GAUG;AACH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,iCAAiC,CAC/C,WAAW,GAAE,SAAS,gBAAgB,EAAmC,EACzE,qBAAqB,GAAE,SAAS,MAAM,EAAO,GAC5C,uBAAuB,EAAE,CA8C3B;AAkCD,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,sBAAsB,CAAC;AAOhE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,SAAS,uBAAuB,EAAE,EACvC,IAAI,EAAE,aAAa,GAClB,uBAAuB,EAAE,CAoG3B;AAGD,eAAO,MAAM,sBAAsB;;;;;CAKlC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,GAAG,SAAS,MAAM,EAAE,CAEjG;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,SAAS,uBAAuB,EAAE,EACxC,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB,uBAAuB,EAAE,CA2B3B;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,SAAS,gBAAgB,EAAE,GACvC,MAAM,CAmBR;AAED;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,6EAA6E;IAC7E,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,GAAG,uBAAuB,EAAE,CA6I/E;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,iBAAiB,EACzB,IAAI,EAAE,OAAO,GACZ,uBAAuB,CA0FzB;AAID;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,EAAG,mBAA4B,CAAC;AACpE,eAAO,MAAM,uBAAuB,EAAG,gCAAyC,CAAC;AASjF,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAMrF;AAED,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,OAAO,EACtB,OAAO,EAAE,OAAO,EAChB,mBAAmB,UAAQ,EAC3B,SAAS,UAAQ,GAChB,MAAM,CAaR;AAED,wBAAgB,4BAA4B,CAC1C,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CAKT;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,cAAc,CAAC;AAElF,8EAA8E;AAC9E,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,CAWpF;AAED,+EAA+E;AAC/E,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAOjF;AAED;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAM1F;AAsBD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,iBAAiB,EACzB,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,uBAAuB,GAC3B,uBAAuB,CAiDzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,yCAAyC,CACvD,MAAM,EAAE,iBAAiB,EACzB,IAAI,EAAE,OAAO,GACZ,eAAe,CAYjB;AAED,6DAA6D;AAC7D,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,iBAAiB,EACzB,GAAG,EAAE,uBAAuB,EAC5B,qBAAqB,EAAE,eAAe,GACrC,cAAc,CAOhB;AAED,+DAA+D;AAC/D,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,uBAAuB,EAChC,qBAAqB,EAAE,eAAe,GACrC,cAAc,CAYhB;AAED,oEAAoE;AACpE,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,kBAAkB,EAAE,MAAM,GACzB,cAAc,EAAE,CAkBlB;AAED,6EAA6E;AAC7E,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAEnC;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,eAAe,CAMhF;AAID;;;;;GAKG;AACH,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC;CACxC;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,iCAAiC,GACxC,cAAc,EAAE,CAoBlB;AAID,YAAY,EAAE,SAAS,EAAE,CAAC;AAqB1B;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,2CAA2C,KAAK,CAAC;AAK9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,MAAM,OAAO,GACf,UAAU,GACV,qBAAqB,GACrB,gBAAgB,GAChB,eAAe,GACf,0BAA0B,GAC1B,qBAAqB,GACrB,gBAAgB,GAChB,aAAa,GACb,iBAAiB,GACjB,6BAA6B,GAC7B,kCAAkC,GAClC,uCAAuC,CAAC;AAE5C;;;;;;;;;GASG;AACH,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,uBAAuB,EAAE,CAAC;CAC7C;AAED,2DAA2D;AAC3D,wBAAgB,mCAAmC,IAAI,+BAA+B,CAiDrF;AAED,qEAAqE;AACrE,wBAAgB,uCAAuC,IAAI,+BAA+B,CAwBzF;AAgDD,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE;IACP,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACnD,GACA,+BAA+B,CAkRjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"standard-forward-lane.d.ts","sourceRoot":"","sources":["../../src/pipeline/standard-forward-lane.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AA+B5B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAW/E,iBAAS,QAAQ,CACf,OAAO,EAAE,0BAA0B,CAAC,mBAAmB,CAAC,EACxD,QAAQ,EAAE,sBAAsB,EAChC,QAAQ,EAAE,0BAA0B,GACnC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CA6TrC;AAED,eAAO,MAAM,wBAAwB,iBAAW,CAAC"}
1
+ {"version":3,"file":"standard-forward-lane.d.ts","sourceRoot":"","sources":["../../src/pipeline/standard-forward-lane.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AA+B5B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAW/E,iBAAS,QAAQ,CACf,OAAO,EAAE,0BAA0B,CAAC,mBAAmB,CAAC,EACxD,QAAQ,EAAE,sBAAsB,EAChC,QAAQ,EAAE,0BAA0B,GACnC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAwVrC;AAED,eAAO,MAAM,wBAAwB,iBAAW,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { RhiCaps } from '@forgeax/engine-rhi';
2
+ import { type Result } from '@forgeax/engine-types';
3
+ import { AutoExposureCapabilityUnavailableError } from './inspection';
4
+ export type AutoExposureCapabilityFacts = Pick<RhiCaps, 'compute' | 'storageBuffer' | 'float32Filterable' | 'rgba16floatRenderable'>;
5
+ export interface AutoExposureCapability {
6
+ readonly available: true;
7
+ readonly generation: number;
8
+ readonly rgba16floatRenderable: boolean;
9
+ }
10
+ /** Resolve live device facts; no capability is inferred from a neighboring format. */
11
+ export declare function resolveAutoExposureCapability(caps: AutoExposureCapabilityFacts, generation: number): Result<AutoExposureCapability, AutoExposureCapabilityUnavailableError>;
12
+ //# sourceMappingURL=capability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/standard-output/auto-exposure/capability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,sCAAsC,EAAE,MAAM,cAAc,CAAC;AAEtE,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAC5C,OAAO,EACP,SAAS,GAAG,eAAe,GAAG,mBAAmB,GAAG,uBAAuB,CAC5E,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;CACzC;AASD,sFAAsF;AACtF,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,2BAA2B,EACjC,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC,sBAAsB,EAAE,sCAAsC,CAAC,CAWxE"}
@@ -0,0 +1,70 @@
1
+ import type { GraphBuffer, RenderGraphBuilder, RenderGraphError } from '@forgeax/engine-render-graph';
2
+ import type { Buffer, RhiDevice } from '@forgeax/engine-rhi';
3
+ import { type Result } from '@forgeax/engine-types';
4
+ import type { RenderPipelineFrame, RenderPipelineTarget } from '../../../render-pipeline';
5
+ export declare const AUTO_EXPOSURE_HISTOGRAM_BYTES = 1024;
6
+ export declare const AUTO_EXPOSURE_STATE_BYTES = 32;
7
+ export declare const AUTO_EXPOSURE_CANDIDATE_BYTES = 16;
8
+ /** Camera/time inputs consumed by adapt; this is not a CPU exposure estimate. */
9
+ export declare const AUTO_EXPOSURE_PARAMETERS_BYTES = 32;
10
+ export interface AutoExposureGpuParameters {
11
+ readonly compensationEv: number;
12
+ readonly rangeMinEv: number;
13
+ readonly rangeMaxEv: number;
14
+ readonly upRate: number;
15
+ readonly downRate: number;
16
+ readonly deltaTime: number;
17
+ readonly fallback: number;
18
+ readonly generation: number;
19
+ }
20
+ export interface AutoExposureGpuResources {
21
+ readonly histogram: Buffer;
22
+ readonly state: Buffer;
23
+ readonly candidate: Buffer;
24
+ readonly parameters: Buffer;
25
+ readonly device: RhiDevice;
26
+ readonly generation: number;
27
+ }
28
+ export interface AutoExposureGraphResources {
29
+ readonly histogram: GraphBuffer;
30
+ readonly state: GraphBuffer;
31
+ readonly candidate: GraphBuffer;
32
+ readonly parameters: GraphBuffer;
33
+ }
34
+ export interface AutoExposureGraphProjection {
35
+ readonly source: RenderPipelineTarget;
36
+ readonly resources: AutoExposureGraphResources;
37
+ readonly width: number;
38
+ readonly height: number;
39
+ }
40
+ /** Allocate the one device-scoped auto-exposure resource set. */
41
+ export declare function createAutoExposureGpuResources(device: RhiDevice, generation: number): Result<AutoExposureGpuResources, unknown>;
42
+ /** Upload only authored camera/time metadata consumed by the GPU adaptation. */
43
+ export declare function writeAutoExposureParameters(resources: AutoExposureGpuResources, parameters: AutoExposureGpuParameters): Result<void, unknown>;
44
+ export declare function retireAutoExposureGpuResources(resources: AutoExposureGpuResources): void;
45
+ /** Import persistent buffers into the current typed graph without exposing handles in topology. */
46
+ export declare function importAutoExposureGraphResources(graph: RenderGraphBuilder<RenderPipelineFrame>): Result<AutoExposureGraphResources, RenderGraphError>;
47
+ /**
48
+ * Add the real same-frame clear -> histogram -> adapt producer chain.
49
+ *
50
+ * The three logical stages are three ordered dispatches in one real compute
51
+ * pass. Clear and adapt use one workgroup each; histogram uses the fixed
52
+ * 32-workgroup cohort. The pass remains the timing interval, so no marker,
53
+ * native copy boundary, or CPU histogram transfer is introduced.
54
+ */
55
+ export declare function addAutoExposureGraphPasses(context: import('../../../render-pipeline').RenderPipelineBuildContext<RenderPipelineFrame>, projection: AutoExposureGraphProjection): Result<void, RenderGraphError>;
56
+ export interface AutoExposureWhiteBalance {
57
+ readonly temperature: number;
58
+ readonly tint: number;
59
+ }
60
+ /**
61
+ * Build the sole linear-HDR exposure/white-balance consumer. The camera
62
+ * projection supplies temperature/tint as immutable shader constants for the
63
+ * frame topology; the candidate remains a same-frame GPU buffer when auto
64
+ * exposure is enabled. Keeping this in one source prevents a renderer-side
65
+ * WB override from becoming a second color-stage authority.
66
+ */
67
+ export declare function createAutoExposureApplyWgsl(whiteBalance?: AutoExposureWhiteBalance, hasCandidate?: boolean): string;
68
+ /** Consume the same-frame adaptation candidate in the linear HDR domain. */
69
+ export declare function addAutoExposureExposurePass(context: import('../../../render-pipeline').RenderPipelineBuildContext<RenderPipelineFrame>, input: RenderPipelineTarget, output: RenderPipelineTarget, resources: AutoExposureGraphResources | undefined, whiteBalance?: AutoExposureWhiteBalance): Result<void, RenderGraphError>;
70
+ //# sourceMappingURL=gpu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gpu.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/standard-output/auto-exposure/gpu.ts"],"names":[],"mappings":"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"}
@@ -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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"}