@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
@@ -1 +1 @@
1
- {"version":3,"file":"render-graph-contribution.d.ts","sourceRoot":"","sources":["../../src/features/render-graph-contribution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,KAAK,WAAW,EAAiC,MAAM,kBAAkB,CAAC;AACnF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,QAAQ,CAAC;AAEzD,OAAO,EACL,KAAK,kCAAkC,EACvC,KAAK,gCAAgC,EAEtC,MAAM,uBAAuB,CAAC;AAG/B,+EAA+E;AAC/E,wBAAgB,yBAAyB,CAAC,QAAQ,SAAS,gBAAgB,EACzE,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EACrC,UAAU,EAAE,SAAS,0BAA0B,EAAE,EACjD,OAAO,EAAE;IACP,QAAQ,CAAC,aAAa,EAAE,gCAAgC,CAAC;IACzD,QAAQ,CAAC,eAAe,CAAC,EAAE,kCAAkC,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IACpF,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACnE,GACA,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,WAAW,CAAC,CAiD9C"}
1
+ {"version":3,"file":"render-graph-contribution.d.ts","sourceRoot":"","sources":["../../src/features/render-graph-contribution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAEX,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,KAAK,WAAW,EAAiC,MAAM,kBAAkB,CAAC;AACnF,OAAO,KAAK,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,MAAM,QAAQ,CAAC;AAEzF,OAAO,EACL,KAAK,kCAAkC,EACvC,KAAK,gCAAgC,EACrC,KAAK,6BAA6B,EAElC,KAAK,wBAAwB,EAE9B,MAAM,uBAAuB,CAAC;AAG/B,wBAAgB,kCAAkC;;;EAKjD;AAkBD,wBAAgB,2BAA2B,CAAC,QAAQ,SAAS,gBAAgB,EAC3E,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EACrC,UAAU,EAAE,SAAS,0BAA0B,EAAE,EACjD,KAAK,EAAE,UAAU,CAAC,OAAO,kCAAkC,CAAC,GAC3D,MAAM,CAAC,wBAAwB,CAAC,QAAQ,CAAC,GAAG,SAAS,EAAE,gBAAgB,GAAG,WAAW,CAAC,CAkFxF;AAED,+EAA+E;AAC/E,wBAAgB,yBAAyB,CAAC,QAAQ,SAAS,gBAAgB,EACzE,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EACrC,UAAU,EAAE,SAAS,0BAA0B,EAAE,EACjD,OAAO,EAAE;IACP,QAAQ,CAAC,aAAa,EAAE,gCAAgC,CAAC;IACzD,QAAQ,CAAC,eAAe,CAAC,EAAE,kCAAkC,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IACpF,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,uBAAuB,CAAC,EAAE,6BAA6B,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IACvF,QAAQ,CAAC,uBAAuB,CAAC,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,kCAAkC,CAAC,CAAC;CACxE,GACA,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,WAAW,CAAC,CAmE9C"}
@@ -1,9 +1,10 @@
1
- import type { GraphResourceResolver, GraphTexture, GraphTextureView, RenderGraphBuilder, RenderGraphError, RenderGraphFrame } from '@forgeax/engine-render-graph';
2
- import type { BindGroup } from '@forgeax/engine-rhi';
1
+ import type { GraphAccess, GraphResourceResolver, GraphTexture, GraphTextureView, RenderGraphBuilder, RenderGraphError, RenderGraphFrame } from '@forgeax/engine-render-graph';
2
+ import type { BindGroup, RenderPipeline, RhiRenderPassEncoder } from '@forgeax/engine-rhi';
3
3
  import { type Result } from '@forgeax/engine-types';
4
4
  import { type RenderError } from '../errors/render';
5
5
  import type { PreparedGraphicsResolvedResource, PreparedGraphicsResolvedSnapshot } from '../prepare/prepared-graphics-resolver';
6
6
  import type { SceneDataTarget } from '../temporal/scene-data';
7
+ import type { RenderFeatureResolvedGpuBuffer } from './prepared-gpu-work';
7
8
  import type { RenderFeatureGraphicsPassDescriptor, RenderFeaturePreparedGraphicsState } from './prepared-graphics';
8
9
  import { type RenderFeatureGraphBufferState } from './render-graph-resources';
9
10
  import type { RenderFeatureTargetHandle } from './targets';
@@ -25,13 +26,28 @@ export type RenderFeatureGraphBindingsResolver<FrameCtx extends RenderGraphFrame
25
26
  readonly resources: GraphResourceResolver;
26
27
  readonly resolveTarget: RenderFeatureGraphTargetResolver;
27
28
  }) => RenderFeatureGraphBindingsResolution | undefined;
29
+ export type RenderFeatureLightingResolver<FrameCtx extends RenderGraphFrame> = (frame: FrameCtx, pipeline: RenderPipeline) => BindGroup | undefined;
30
+ /** Prepared draws embedded by the owning pipeline into its light-view passes. */
31
+ export interface RenderFeatureShadowDraws<FrameCtx extends RenderGraphFrame> {
32
+ readonly accesses: readonly GraphAccess[];
33
+ encode(pass: RhiRenderPassEncoder, frame: FrameCtx, resources: GraphResourceResolver, view: BindGroup): void;
34
+ }
35
+ /** Physical draw inputs shared by readiness ordering and graph imports. */
36
+ export declare function resolveRenderFeatureDrawBuffers(featureIdentity: string, order: number, descriptor: RenderFeatureGraphicsPassDescriptor, snapshot: PreparedGraphicsResolvedSnapshot): Result<{
37
+ vertex: Map<object, RenderFeatureResolvedGpuBuffer>;
38
+ index: Map<object, RenderFeatureResolvedGpuBuffer>;
39
+ indirect: Map<object, RenderFeatureResolvedGpuBuffer>;
40
+ }, RenderError>;
28
41
  export declare class RenderFeatureRasterGraphProjection<FrameCtx extends RenderGraphFrame> {
29
42
  private readonly builder;
30
43
  private readonly resolveTarget;
31
44
  private readonly resolveBindings?;
32
45
  private readonly reportError?;
46
+ private readonly resolveStandardLighting?;
47
+ private readonly standardSurfaceAccesses;
33
48
  private readonly buffers;
34
- constructor(builder: RenderGraphBuilder<FrameCtx>, resolveTarget: RenderFeatureGraphTargetResolver, resolveBindings?: RenderFeatureGraphBindingsResolver<FrameCtx> | undefined, buffers?: RenderFeatureGraphBufferState, reportError?: ((error: RenderError) => void) | undefined);
49
+ constructor(builder: RenderGraphBuilder<FrameCtx>, resolveTarget: RenderFeatureGraphTargetResolver, resolveBindings?: RenderFeatureGraphBindingsResolver<FrameCtx> | undefined, buffers?: RenderFeatureGraphBufferState, reportError?: ((error: RenderError) => void) | undefined, resolveStandardLighting?: RenderFeatureLightingResolver<FrameCtx> | undefined, standardSurfaceAccesses?: readonly GraphAccess[]);
50
+ prepareShadowDraws(name: string, featureIdentity: string, order: number, descriptor: RenderFeatureGraphicsPassDescriptor, state: RenderFeaturePreparedGraphicsState, snapshot: PreparedGraphicsResolvedSnapshot): Result<RenderFeatureShadowDraws<FrameCtx>, RenderGraphError | RenderError>;
35
51
  addPass(name: string, featureIdentity: string, order: number, descriptor: RenderFeatureGraphicsPassDescriptor, state: RenderFeaturePreparedGraphicsState, snapshot: PreparedGraphicsResolvedSnapshot): Result<void, RenderGraphError | RenderError>;
36
52
  private importDrawBuffers;
37
53
  private encode;
@@ -1 +1 @@
1
- {"version":3,"file":"render-graph-raster.d.ts","sourceRoot":"","sources":["../../src/features/render-graph-raster.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,qBAAqB,EACrB,YAAY,EACZ,gBAAgB,EAEhB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAwB,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EACL,KAAK,WAAW,EAGjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,gCAAgC,EAChC,gCAAgC,EACjC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EACV,mCAAmC,EACnC,kCAAkC,EAEnC,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAE3D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACvD;AAED,MAAM,MAAM,gCAAgC,GAAG,CAC7C,QAAQ,EAAE,MAAM,GAAG,yBAAyB,GAAG,eAAe,KAC3D,wBAAwB,GAAG,SAAS,CAAC;AAE1C,MAAM,MAAM,oCAAoC,GAC5C,SAAS,GACT;IACE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C,CAAC;AAEN,MAAM,MAAM,kCAAkC,CAAC,QAAQ,SAAS,gBAAgB,IAAI,CAAC,KAAK,EAAE;IAC1F,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,gCAAgC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC;IAC3F,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,gCAAgC,CAAC;CAC1D,KAAK,oCAAoC,GAAG,SAAS,CAAC;AAmBvD,qBAAa,kCAAkC,CAAC,QAAQ,SAAS,gBAAgB;IAI7E,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IAEjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAP/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;gBAGrC,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EACrC,aAAa,EAAE,gCAAgC,EAC/C,eAAe,CAAC,EAAE,kCAAkC,CAAC,QAAQ,CAAC,YAAA,EAC/E,OAAO,CAAC,EAAE,6BAA6B,EACtB,WAAW,CAAC,GAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,aAAA;IAK7D,OAAO,CACL,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,mCAAmC,EAC/C,KAAK,EAAE,kCAAkC,EACzC,QAAQ,EAAE,gCAAgC,GACzC,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,WAAW,CAAC;IAkG/C,OAAO,CAAC,iBAAiB;IAqDzB,OAAO,CAAC,MAAM;CAoFf"}
1
+ {"version":3,"file":"render-graph-raster.d.ts","sourceRoot":"","sources":["../../src/features/render-graph-raster.ts"],"names":[],"mappings":"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"}
@@ -75,6 +75,17 @@ export interface RenderFeature<FrameData> {
75
75
  }[];
76
76
  extract(context: RenderFeatureExtractContext): Result<FrameData, RenderError>;
77
77
  plan(data: FrameData, context: RenderFeaturePlanContext): Result<RenderFeaturePlan, RenderError>;
78
+ /**
79
+ * Consume frame-owned producer state only after the compiled graph reached
80
+ * queue submission. The host invokes this callback at most once for the
81
+ * extracted frame and never during declarative planning.
82
+ */
83
+ onFrameSubmitted?(data: FrameData): void;
84
+ /**
85
+ * Discard frame-owned producer state when graph admission or submission is
86
+ * rejected. This is the symmetric recovery path for onFrameSubmitted.
87
+ */
88
+ onFrameAborted?(data: FrameData): void;
78
89
  }
79
90
  export interface RenderFeatureRecoverInput {
80
91
  readonly caps: Readonly<RhiCaps>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/features/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/features/types.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,8 @@ export type PostProcessReadSampleType = 'depth';
32
32
  export interface PostProcessShaderEntry {
33
33
  /** Composed WGSL source for the fragment stage (post-naga_oil). */
34
34
  readonly source: string;
35
+ /** Fragment entry point selected by the typed graph; defaults to `fs_main`. */
36
+ readonly fragmentEntryPoint?: string | undefined;
35
37
  /**
36
38
  * Params UBO schema. When undefined, the generic shader has no uniform buffer
37
39
  * and the BGL degrades to 2 entries (texture@0 + sampler@1). When present, the
@@ -1 +1 @@
1
- {"version":3,"file":"fullscreen-post-process-pass.d.ts","sourceRoot":"","sources":["../src/fullscreen-post-process-pass.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fullscreen-post-process-pass.d.ts","sourceRoot":"","sources":["../src/fullscreen-post-process-pass.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ import type { RenderSceneApplyResult, RenderSceneSlot } from '../scene/render-sc
5
5
  import { type GpuLodRow } from '../scene/visibility/gpu-lod';
6
6
  import type { PreparedGpuDrivenDraw } from './prepared-draw';
7
7
  export type { BatchTopologyInspection } from '../inspection-types';
8
+ /** High bit in the compact candidate material lane marks a skin palette row. */
9
+ export declare const GPU_DRIVEN_SKIN_FLAG = 2147483648;
8
10
  export interface GpuDrivenBatchKey {
9
11
  readonly assetHandle: number;
10
12
  readonly drawKind: 'indexed' | 'non-indexed';
@@ -27,6 +29,7 @@ export interface GpuDrivenCandidate {
27
29
  readonly generation: number;
28
30
  readonly drawItemIndex: number;
29
31
  readonly instanceOrdinal: number;
32
+ readonly prepared?: PreparedGpuDrivenDraw;
30
33
  /** Absolute coverage rows uploaded to the GPU selector; root is implicit. */
31
34
  readonly lodCoverages?: readonly number[];
32
35
  readonly lodHysteresis?: number;
@@ -36,7 +39,6 @@ export interface GpuDrivenCandidate {
36
39
  readonly count: number;
37
40
  readonly baseVertex: number;
38
41
  }[];
39
- readonly prepared?: PreparedGpuDrivenDraw;
40
42
  }
41
43
  export interface GpuDrivenBatch {
42
44
  readonly batchId: number;
@@ -49,6 +51,8 @@ export interface GpuDrivenBatch {
49
51
  }
50
52
  export interface SubmissionPlan {
51
53
  readonly revision: number;
54
+ /** Payload-only updates keep topology revision stable but still invalidate the plan snapshot. */
55
+ readonly payloadRevision: number;
52
56
  readonly batches: readonly GpuDrivenBatch[];
53
57
  readonly candidateCount: number;
54
58
  readonly visibleCapacity: number;
@@ -67,6 +71,28 @@ export interface GpuLodCompactCandidate {
67
71
  }
68
72
  /** Selects one level per stable topology candidate without mutating membership. */
69
73
  export declare function compactGpuLodCandidates(inputs: readonly GpuLodCandidateInput[]): readonly GpuLodCompactCandidate[];
74
+ export interface SubmissionCandidateMembershipEntry {
75
+ readonly batchId: number;
76
+ readonly candidate: GpuDrivenCandidate;
77
+ }
78
+ /**
79
+ * Immutable reverse membership for one submission topology.
80
+ *
81
+ * Shadow views query the same candidate domain as the main view. Keeping the
82
+ * primitive-to-batch join beside the immutable plan makes that lookup once per
83
+ * topology instead of rescanning every batch for every view.
84
+ */
85
+ export interface SubmissionCandidateMembership {
86
+ readonly source: SubmissionPlan;
87
+ readonly byPrimitiveIndex: ReadonlyMap<number, readonly SubmissionCandidateMembershipEntry[]>;
88
+ }
89
+ export declare function buildSubmissionCandidateMembership(source: SubmissionPlan): SubmissionCandidateMembership;
90
+ /**
91
+ * Re-project one source topology for a view without changing batch identity.
92
+ * The returned plan only changes candidate windows and keeps batch ids,
93
+ * generations, draw ranges, and indirect offsets from the source plan.
94
+ */
95
+ export declare function buildBatchAlignedSubmission(source: SubmissionPlan, candidatesByBatch: ReadonlyMap<number, readonly GpuDrivenCandidate[]>): SubmissionPlan;
70
96
  export declare function projectedHeightForCandidate(slot: RenderSceneSlot, camera: CameraSnapshot): number;
71
97
  /** Stable compatibility grouping; per-view visibility never mutates this owner. */
72
98
  export declare class BatchTopology {
@@ -76,8 +102,14 @@ export declare class BatchTopology {
76
102
  private readonly generationByBatchId;
77
103
  private readonly freeBatchIds;
78
104
  private revision;
105
+ private payloadRevision;
79
106
  private rebuilds;
80
107
  private patches;
108
+ private payloadPatches;
109
+ private membershipChecks;
110
+ private membershipAllocations;
111
+ private candidateAdds;
112
+ private candidateRemoves;
81
113
  private cachedPlan;
82
114
  rebuild(slots: readonly RenderSceneSlot[]): void;
83
115
  apply(delta: RenderSceneApplyResult): boolean;
@@ -85,5 +117,6 @@ export declare class BatchTopology {
85
117
  inspect(): BatchTopologyInspection;
86
118
  private add;
87
119
  private remove;
120
+ private candidateFromEligible;
88
121
  }
89
122
  //# sourceMappingURL=batch-topology.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"batch-topology.d.ts","sourceRoot":"","sources":["../../src/gpu-driven/batch-topology.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch-topology.d.ts","sourceRoot":"","sources":["../../src/gpu-driven/batch-topology.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { MaterialShaderArtifact } from '@forgeax/engine-shader';
2
+ import type { RenderSystemInternals } from '../record/render-context';
3
+ import type { DispatchEntry, RenderableSnapshot } from '../render-system-extract';
4
+ type ArtifactRow = {
5
+ readonly source: RenderableSnapshot;
6
+ readonly renderableIndex: number;
7
+ };
8
+ /** Resolve the same producer programs for normal frames and replacement devices. */
9
+ export declare function collectGpuDrivenMaterialArtifacts({ rows, shadowRows, dispatch, shadowDispatch, resolve, clustered, reflectionFallback, }: {
10
+ readonly rows: readonly ArtifactRow[];
11
+ readonly shadowRows: readonly ArtifactRow[];
12
+ readonly dispatch: readonly DispatchEntry[];
13
+ readonly shadowDispatch: readonly DispatchEntry[];
14
+ readonly resolve: RenderSystemInternals['getMaterialShaderArtifact'];
15
+ readonly clustered: boolean;
16
+ readonly reflectionFallback: boolean;
17
+ }): {
18
+ materialArtifacts: Map<string, MaterialShaderArtifact>;
19
+ shadowMaterialArtifacts: Map<string, MaterialShaderArtifact>;
20
+ firstArtifact: MaterialShaderArtifact | undefined;
21
+ firstSkinArtifact: MaterialShaderArtifact | undefined;
22
+ };
23
+ export {};
24
+ //# sourceMappingURL=material-artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"material-artifacts.d.ts","sourceRoot":"","sources":["../../src/gpu-driven/material-artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAElF,KAAK,WAAW,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7F,oFAAoF;AACpF,wBAAgB,iCAAiC,CAAC,EAChD,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,cAAc,EACd,OAAO,EACP,SAAS,EACT,kBAAkB,GACnB,EAAE;IACD,QAAQ,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C,QAAQ,CAAC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC,2BAA2B,CAAC,CAAC;IACrE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CACtC;;;;;EA0JA"}
@@ -0,0 +1,7 @@
1
+ import type { ValidatedRenderable } from '../record/frame-snapshot';
2
+ import type { ReflectionProbeRecordState } from '../record/render-context';
3
+ import type { DispatchEntry, RenderableSnapshot } from '../render-system-extract';
4
+ export declare function materialBindingKey(source: Pick<RenderableSnapshot, 'worldId' | 'entityKey'>, handle: number): string;
5
+ /** Per-object bindings and pass membership are part of an indirect batch's resource identity. */
6
+ export declare function projectMaterialBindingClasses(rows: readonly ValidatedRenderable[], dispatch: readonly DispatchEntry[], probes?: ReflectionProbeRecordState): ReadonlyMap<string, string>;
7
+ //# sourceMappingURL=material-bindings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"material-bindings.d.ts","sourceRoot":"","sources":["../../src/gpu-driven/material-bindings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAElF,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,WAAW,CAAC,EACzD,MAAM,EAAE,MAAM,GACb,MAAM,CAER;AAED,iGAAiG;AACjG,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,SAAS,mBAAmB,EAAE,EACpC,QAAQ,EAAE,SAAS,aAAa,EAAE,EAClC,MAAM,CAAC,EAAE,0BAA0B,GAClC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAuB7B"}
@@ -0,0 +1,10 @@
1
+ import type { ShaderModule } from '@forgeax/engine-rhi';
2
+ import type { MaterialShaderArtifact } from '@forgeax/engine-shader';
3
+ /** One producer-selected WGSL module and its matching vertex/material receipt. */
4
+ export interface GpuDrivenPbrProgram {
5
+ readonly module: ShaderModule;
6
+ readonly artifact: MaterialShaderArtifact;
7
+ }
8
+ export declare function standardPbrProgramKey(materialShaderId: string, vertexColorAvailable?: boolean): string | undefined;
9
+ export declare function resolveStandardPbrProgram(programs: ReadonlyMap<string, GpuDrivenPbrProgram> | undefined, materialShaderId: string, vertexColorAvailable?: boolean): GpuDrivenPbrProgram | undefined;
10
+ //# sourceMappingURL=pbr-program.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pbr-program.d.ts","sourceRoot":"","sources":["../../src/gpu-driven/pbr-program.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,kFAAkF;AAClF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;CAC3C;AAED,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,MAAM,EACxB,oBAAoB,UAAQ,GAC3B,MAAM,GAAG,SAAS,CASpB;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,SAAS,EAC9D,gBAAgB,EAAE,MAAM,EACxB,oBAAoB,UAAQ,GAC3B,mBAAmB,GAAG,SAAS,CAGjC"}
@@ -22,6 +22,8 @@ export interface PreparedGpuDrivenDraw {
22
22
  readonly deformation: 'rigid' | 'skin';
23
23
  };
24
24
  readonly receiptGeneration: number;
25
+ /** Content/layout identity that separates ABI variants (for example COLOR_0). */
26
+ readonly receiptIdentity?: string;
25
27
  readonly directEntry: string;
26
28
  readonly sceneIndexEntry: string;
27
29
  readonly materialRow: MaterialShaderArtifactReceipt['materialRow'];
@@ -1 +1 @@
1
- {"version":3,"file":"prepared-draw.d.ts","sourceRoot":"","sources":["../../src/gpu-driven/prepared-draw.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepared-draw.d.ts","sourceRoot":"","sources":["../../src/gpu-driven/prepared-draw.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,30 @@
1
1
  import type { RenderGraphBuilder, RenderGraphError } from '@forgeax/engine-render-graph';
2
- import type { BindGroup, BindGroupLayout, Result, RhiDevice, ShaderModule, TextureFormat } from '@forgeax/engine-rhi';
2
+ import type { BindGroup, BindGroupLayout, Result, RhiDevice, TextureFormat } from '@forgeax/engine-rhi';
3
3
  import { RhiError } from '@forgeax/engine-rhi';
4
4
  import type { MaterialShaderArtifact } from '@forgeax/engine-shader';
5
+ import type { MaterialRenderState } from '@forgeax/engine-types';
5
6
  import type { DeviceScope, LifecycleResourceSpec } from '../device/device-scope';
6
7
  import type { MeshGpuHandles } from '../device/gpu-residency';
7
- import type { GpuDrivenProductionInspection } from '../inspection-types';
8
+ import { GpuDrivenPreparationError } from '../errors/gpu-driven';
9
+ import type { GpuDrivenProductionInspection, GpuDrivenStructureMetrics } from '../inspection-types';
8
10
  import type { PipelineBuilderShaderModuleFactory } from '../pipeline-builder';
9
- import type { PipelineState } from '../record/render-context';
11
+ import type { ValidatedRenderable } from '../record/frame-snapshot';
12
+ import { type PipelineState, type RenderSystemInternals } from '../record/render-context';
10
13
  import type { CameraSnapshot } from '../render-contract';
11
- import type { RenderPipelineFrame, RenderPipelineGpuDrivenProjection } from '../render-pipeline';
12
- import type { RenderableSnapshot } from '../render-system-extract';
14
+ import type { GpuDrivenStandardPbrFrameResources, RenderPipelineFrame, RenderPipelineGpuDrivenProjection } from '../render-pipeline';
15
+ import type { DispatchEntry, MaterialSnapshot, RenderableSnapshot, ShadowCasterMembership } from '../render-system-extract';
13
16
  import type { PersistentGpuDrivenState } from '../scene/render-scene';
14
17
  import type { OcclusionFrameProjection } from '../scene/visibility/occlusion-runtime';
18
+ import { type GpuDrivenBatch, type SubmissionPlan } from './batch-topology';
19
+ import { type ShadowViewIdentity, type ShadowViewProjection, ShadowViewStatePool, type ShadowViewUpdateInput } from './shadow-views';
15
20
  import { type GpuDrivenLodSelectionInspection } from './view-gpu';
16
21
  export interface StandardPbrSceneCandidate {
17
22
  readonly primitiveIndex: number;
18
23
  readonly world: Float32Array;
24
+ /** Optional per-instance local transform selected by BatchTopology. */
25
+ readonly instanceTransform?: Float32Array;
26
+ /** Optional GPU Scene material row carried by the shadow projection. */
27
+ readonly materialIndex?: number;
19
28
  }
20
29
  export interface StandardPbrSceneProjection {
21
30
  readonly entryPoint: string;
@@ -24,6 +33,23 @@ export interface StandardPbrSceneProjection {
24
33
  /** Packed Mesh rows: mat4 + padded mat3 + previous mat4 + temporal vec4. */
25
34
  readonly rows: Float32Array;
26
35
  }
36
+ export interface GpuDrivenShadowBatchProjection {
37
+ readonly mesh: MeshGpuHandles;
38
+ readonly meshBindGroup: BindGroup;
39
+ readonly visibleBindGroup: BindGroup;
40
+ readonly deformation: 'rigid' | 'skin';
41
+ /** Actual producer-selected shadow-pass artifact for this batch. */
42
+ readonly shadowArtifact: MaterialShaderArtifact;
43
+ /** Pass entry points selected by the authored ShadowCaster dispatch. */
44
+ readonly shadowVertexEntry?: string;
45
+ readonly shadowFragmentEntry?: string;
46
+ /** Material snapshot used to assemble the receipt-owned alpha-mask BG. */
47
+ readonly material: MaterialSnapshot;
48
+ /** Composite entity identity used only for video-resource routing. */
49
+ readonly materialEntityKey: number;
50
+ /** Geometry-owned COLOR_0 fact shared by main and shadow ABI variants. */
51
+ readonly vertexColorAvailable: boolean;
52
+ }
27
53
  /**
28
54
  * Build the producer-owned Standard PBR scene-index projection. The receipt is
29
55
  * the only source of the vertex entry and layout identity; callers cannot
@@ -69,7 +95,29 @@ export declare function adaptStandardPbrFrameResources(input: {
69
95
  readonly code: 'missing-material-receipt' | 'invalid-material-receipt';
70
96
  };
71
97
  };
72
- export declare const GPU_DRIVEN_RIGID_UNLIT_WGSL: string;
98
+ interface PreparedBatch {
99
+ readonly batch: GpuDrivenBatch;
100
+ readonly mesh: MeshGpuHandles;
101
+ /** Exact producer artifact selected by every draw in this homogeneous batch. */
102
+ readonly artifact: MaterialShaderArtifact;
103
+ readonly renderState: MaterialRenderState | undefined;
104
+ /** Stable World attachment key used to join same-submit GPU counters. */
105
+ readonly worldKey: number;
106
+ /** Stable representative slot identity for this homogeneous batch. */
107
+ readonly primitiveSlot: number;
108
+ readonly slotGeneration: number;
109
+ }
110
+ declare function filteredPlan(source: SubmissionPlan, slots: PersistentGpuDrivenState['slots'], meshBySlot: ReadonlyMap<number, MeshGpuHandles>, shadowCasterDrawKeys?: ReadonlySet<string>, skinArtifact?: MaterialShaderArtifact, shadowCasterMembership?: readonly ShadowCasterMembership[], camera?: CameraSnapshot, activeEntityKeys?: ReadonlySet<number>, worldKeys?: readonly number[], materialArtifact?: MaterialShaderArtifact, materialArtifacts?: ReadonlyMap<string, MaterialShaderArtifact>, materialBindingClasses?: ReadonlyMap<string, string>): {
111
+ readonly plan: SubmissionPlan;
112
+ readonly batches: readonly PreparedBatch[];
113
+ /** True only when every source draw item/instance has a main GPU candidate. */
114
+ readonly ownsAllDrawItems: boolean;
115
+ /** Concrete entity/material/draw identities claimed by this projection. */
116
+ readonly drawKeys: ReadonlySet<string>;
117
+ /** Extracted concrete ShadowCaster keys actually claimed by this plan. */
118
+ readonly shadowDrawKeys: ReadonlySet<string>;
119
+ };
120
+ type FilteredProductionPlan = ReturnType<typeof filteredPlan>;
73
121
  export interface GpuDrivenWorldLodSelectionInspection {
74
122
  readonly worldKey: number;
75
123
  readonly primitiveSlot: number;
@@ -82,14 +130,49 @@ export interface GpuDrivenWorldLodSelectionInspection {
82
130
  readonly count: number;
83
131
  }[];
84
132
  }
133
+ type MaterialPipelineFactory = NonNullable<RenderSystemInternals['getMaterialShaderPipelineEntry']>;
85
134
  export interface PreparedGpuDrivenFrame {
86
135
  readonly topologySignature: string;
87
- readonly entityKeys: ReadonlySet<number>;
88
- readonly ownsAllRenderables: boolean;
136
+ /** True when every source draw item/instance is claimed by the GPU lane. */
137
+ readonly ownsAllDrawItems: boolean;
138
+ /** True only when the extracted ShadowCaster channel is fully represented. */
139
+ readonly ownsAllShadowCasters?: boolean;
140
+ /** Concrete main-pass draw identities claimed by the GPU projection. */
141
+ readonly drawKeys?: ReadonlySet<string>;
142
+ readonly standardPbrFrameResources: GpuDrivenStandardPbrFrameResources;
89
143
  readonly occlusion?: OcclusionFrameProjection;
90
144
  /** @internal Commits a replacement generation only after graph promotion. */
91
145
  readonly _commitResourceReplacement: () => void;
92
- project(graph: RenderGraphBuilder<RenderPipelineFrame>, format: TextureFormat, sampleCount: 1 | 4): Result<RenderPipelineGpuDrivenProjection, RenderGraphError | RhiError>;
146
+ /** @internal Retires superseded view buffers when graph compilation promotes them. */
147
+ readonly _commitGpuResourceReplacement?: () => void;
148
+ /** @internal Discards staged shadow cache publication after a failed frame. */
149
+ readonly _abortResourceReplacement?: () => void;
150
+ /** Concrete ShadowCaster keys claimed by the GPU subset for this frame. */
151
+ readonly shadowDrawKeys?: ReadonlySet<string>;
152
+ /** View-scoped ShadowCaster claims consumed by each shadow record pass. */
153
+ readonly shadowDrawKeysByView?: ReadonlyMap<string, ReadonlySet<string>>;
154
+ readonly projectShadow?: (graph: RenderGraphBuilder<RenderPipelineFrame>, identity: ShadowViewIdentity) => Result<ShadowViewProjection | undefined, RenderGraphError>;
155
+ readonly updateShadowViews?: (views: readonly Omit<ShadowViewUpdateInput, 'sourcePlan' | 'scene'>[]) => Result<void, RhiError>;
156
+ readonly shadowViewPool?: ShadowViewStatePool;
157
+ readonly shadowBatchProjections?: ReadonlyMap<string, ReadonlyMap<number, GpuDrivenShadowBatchProjection>>;
158
+ project(graph: RenderGraphBuilder<RenderPipelineFrame>, format: TextureFormat, sampleCount: 1 | 4, additionalColorFormats?: readonly TextureFormat[]): Result<RenderPipelineGpuDrivenProjection, RenderGraphError | RhiError>;
159
+ }
160
+ /**
161
+ * Renderer-owned identity token for the validation that resolves renderable
162
+ * assets to GPU meshes. The token is deliberately narrower than a frame
163
+ * number: unchanged persistent scene snapshots can reuse the resolved rows,
164
+ * while a mesh/device/pipeline generation change forces a fresh producer read.
165
+ */
166
+ export interface GpuDrivenResidencyValidationInput {
167
+ /** Opaque renderer-computed world/source identity and generation fence. */
168
+ readonly cacheKey: string;
169
+ readonly renderables: readonly RenderableSnapshot[];
170
+ readonly transparentDispatch: readonly DispatchEntry[];
171
+ readonly pipelineState: PipelineState;
172
+ readonly pipelineHandle: number;
173
+ readonly meshResidencyEpoch: number;
174
+ readonly deviceGeneration: number;
175
+ readonly assetCatalogEpoch: number;
93
176
  }
94
177
  export interface RecoveryCapabilityFacts {
95
178
  readonly generation: number;
@@ -118,42 +201,101 @@ export declare function classifyRecoveryCapability(facts: RecoveryCapabilityFact
118
201
  export declare class GpuDrivenProduction {
119
202
  private readonly device;
120
203
  private readonly shaderModuleFactory;
204
+ private readonly recoveryCount;
121
205
  private disposed;
122
206
  private view;
123
- private raster;
124
- private standardRaster;
207
+ private materialRaster;
208
+ private skinRaster;
125
209
  private readonly sceneIdentities;
126
210
  private nextSceneIdentity;
127
211
  private filteredCache;
212
+ private shadowFilteredCache;
128
213
  private gpuOwnedSnapshotsMaterialized;
129
214
  private filteredPlanBuilds;
130
215
  private gpuOwnedEntityCount;
131
216
  private batchBindGroupCreates;
132
217
  private validatedGpuOwnedRows;
133
218
  private cpuFallbackDrawItems;
219
+ private cpuSemanticFallbackDrawItems;
220
+ private cpuDeformationFallbackDrawItems;
221
+ private readonly cpuDeformationReasons;
222
+ private blockedDrawItems;
223
+ private preparationFailure;
224
+ private encodedIndirectDraws;
134
225
  private telemetryPrepared;
135
226
  private telemetryCandidateCount;
136
227
  private telemetryGeometryWork;
137
228
  private telemetryRootGeometryWork;
229
+ private telemetryOverflow;
138
230
  private indirectDrawCount;
139
- private sceneRowsRequired;
231
+ private gpuOwnedDrawItems;
232
+ private mainTotalDrawItems;
233
+ private lane;
234
+ private laneReason;
235
+ private submissionState;
236
+ private retryCount;
237
+ private lastKnownGoodGeneration;
238
+ private overflowRecoveryRequired;
239
+ private shadowViews;
240
+ private shadowSourcePlan;
241
+ private shadowScene;
242
+ private shadowBatchProjections;
243
+ private shadowDrawKeysByView;
244
+ private shadowExpectedDrawKeys;
245
+ private shadowBatchProjectionSource;
246
+ private skinPaletteBuffer;
247
+ private committedPaletteContentRevision;
140
248
  private standardPbrProjection;
249
+ private committedProjectionSource;
250
+ private validatedResidencyCache;
251
+ private residencyValidationCacheHits;
252
+ private residencyValidationScans;
253
+ private cpuValidationTelemetryCache;
254
+ private cpuValidationCacheHits;
255
+ private cpuValidationScans;
256
+ private structureMetrics;
141
257
  private signatureCache;
142
- constructor(device: RhiDevice, shaderModuleFactory: PipelineBuilderShaderModuleFactory);
258
+ constructor(device: RhiDevice, shaderModuleFactory: PipelineBuilderShaderModuleFactory, recoveryCount?: number);
259
+ /**
260
+ * Reuse the last producer-resolved residency rows when all source identity
261
+ * and generation fences still match. Renderables and dispatch entries are
262
+ * checked element-by-element as well as by their stable object identities so
263
+ * an accidental in-place mutation cannot reuse stale renderable indices.
264
+ */
265
+ reuseResidencyValidation(input: GpuDrivenResidencyValidationInput): readonly ValidatedRenderable[] | undefined;
266
+ /** Publish the producer-owned rows after a completed residency validation. */
267
+ rememberResidencyValidation(input: GpuDrivenResidencyValidationInput, value: readonly ValidatedRenderable[]): void;
268
+ private applyCpuValidationTelemetry;
143
269
  static forDevice(device: RhiDevice, shaderModuleFactory: PipelineBuilderShaderModuleFactory): GpuDrivenProduction;
144
- /** Recovery has no frame retry: await generated programs before preparing the graph. */
145
- static forRecoveryDevice(device: RhiDevice, factory: PipelineBuilderShaderModuleFactory, createShaderModule: (descriptor: {
146
- code: string;
147
- label?: string;
148
- }) => Promise<Result<ShaderModule, RhiError>>): Promise<Result<GpuDrivenProduction, RhiError>>;
149
270
  createRecoveryRoot(scope: DeviceScope): LifecycleResourceSpec<unknown>;
150
271
  prepare(input: {
151
272
  readonly scene: PersistentGpuDrivenState | undefined;
152
273
  readonly camera: CameraSnapshot;
153
- readonly meshes: ReadonlyMap<number, MeshGpuHandles>;
274
+ /** GPU meshes projected by retained RenderScene slot, never raw asset handle. */
275
+ readonly meshBySlot: ReadonlyMap<number, MeshGpuHandles>;
154
276
  readonly viewBindGroupLayout: BindGroupLayout;
155
277
  readonly meshResidencyEpoch: number;
156
- readonly hdrp: boolean;
278
+ readonly materialBindingClasses?: ReadonlyMap<string, string>;
279
+ /** Cooked producer artifact selected from the frame material catalog. */
280
+ readonly materialArtifact?: MaterialShaderArtifact;
281
+ /** Compatibility input for callers that have not migrated their name. */
282
+ readonly standardPbrArtifact?: MaterialShaderArtifact;
283
+ /** Cooked producer artifact for the GPU skinning variant. */
284
+ readonly materialSkinArtifact?: MaterialShaderArtifact;
285
+ /** Compatibility input for callers that have not migrated their name. */
286
+ readonly standardPbrSkinArtifact?: MaterialShaderArtifact;
287
+ /** Per-draw producer artifacts keyed by prepared identity and receipt. */
288
+ readonly materialArtifacts?: ReadonlyMap<string, MaterialShaderArtifact>;
289
+ /** Per-draw shadow-pass artifacts keyed by the same prepared identity. */
290
+ readonly shadowMaterialArtifacts?: ReadonlyMap<string, MaterialShaderArtifact>;
291
+ readonly materialPipelineState?: PipelineState;
292
+ readonly standardPbrPipelineState?: PipelineState;
293
+ /** Existing renderer owner that builds the selected artifact PSO/BGL. */
294
+ readonly materialPipelineFactory?: MaterialPipelineFactory;
295
+ /** Extracted ShadowCaster ownership keyed by concrete draw item and pass. */
296
+ readonly shadowCasterDrawKeys?: ReadonlySet<string>;
297
+ /** Structured ShadowCaster ownership facts for exact pass admission. */
298
+ readonly shadowCasterMembership?: readonly ShadowCasterMembership[];
157
299
  /** Entity keys admitted by the persistent visibility facet for this view. */
158
300
  readonly activeEntityKeys?: ReadonlySet<number>;
159
301
  /** Collision-free renderer-owned revision for the active visibility set. */
@@ -161,19 +303,19 @@ export declare class GpuDrivenProduction {
161
303
  /** Total extracted candidates, including facet-suppressed rows. */
162
304
  readonly telemetryCandidateCount?: number;
163
305
  readonly occlusion?: OcclusionFrameProjection;
164
- /** Cooked producer artifact selected from the frame material catalog. */
165
- readonly standardPbrArtifact?: MaterialShaderArtifact;
166
- readonly standardPbrPipelineState?: PipelineState;
167
- }): Result<PreparedGpuDrivenFrame | undefined, RhiError>;
306
+ /** Per-frame deltas from the existing RenderScene/GPU Scene/palette owners. */
307
+ readonly structureMetrics?: GpuDrivenStructureMetrics;
308
+ }): Result<PreparedGpuDrivenFrame | undefined, RhiError | GpuDrivenPreparationError>;
309
+ updateShadowViews(views: readonly Omit<ShadowViewUpdateInput, 'sourcePlan' | 'scene'>[], artifact: MaterialShaderArtifact | undefined, skinArtifact: MaterialShaderArtifact | undefined, materialArtifacts: ReadonlyMap<string, MaterialShaderArtifact> | undefined, shadowMaterialArtifacts: ReadonlyMap<string, MaterialShaderArtifact> | undefined, filtered: FilteredProductionPlan, scene: PersistentGpuDrivenState, shadowCasterDrawKeys: ReadonlySet<string> | undefined, shadowCasterMembership: readonly ShadowCasterMembership[] | undefined): Result<void, RhiError>;
310
+ private disableShadowViews;
168
311
  dispose(): void;
169
- /** Whether the current production topology can consume GPU Scene row updates. */
170
- requiresSceneRows(): boolean;
171
312
  inspect(): GpuDrivenProductionInspection;
172
313
  /** Read renderer-owned LOD counters copied by the last GPU submission. */
173
314
  readLodSelection(): Promise<GpuDrivenLodSelectionInspection | undefined>;
174
315
  recordCpuValidation(validated: readonly {
175
316
  readonly source: RenderableSnapshot;
176
- }[], gpuOwned: ReadonlySet<number>, worldKeys?: readonly number[]): void;
317
+ }[], gpuOwnedDrawKeys: ReadonlySet<string>, cacheKey?: string): void;
177
318
  private sceneIdentity;
178
319
  }
320
+ export {};
179
321
  //# sourceMappingURL=production-raster.d.ts.map