@forgeax/engine-render 0.1.20 → 0.1.23

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 (645) hide show
  1. package/README.md +365 -29
  2. package/dist/assembly/backend-contract.d.ts +13 -0
  3. package/dist/assembly/backend-contract.d.ts.map +1 -1
  4. package/dist/assembly/device-feature-admission.d.ts +18 -0
  5. package/dist/assembly/device-feature-admission.d.ts.map +1 -0
  6. package/dist/assembly/directional-shadow-inspection.d.ts +38 -0
  7. package/dist/assembly/directional-shadow-inspection.d.ts.map +1 -0
  8. package/dist/assembly/factory.d.ts +30 -19
  9. package/dist/assembly/factory.d.ts.map +1 -1
  10. package/dist/assembly/host-contract.d.ts +19 -0
  11. package/dist/assembly/host-contract.d.ts.map +1 -1
  12. package/dist/assembly/render-target-host.d.ts +46 -0
  13. package/dist/assembly/render-target-host.d.ts.map +1 -0
  14. package/dist/assets/render-asset-port.d.ts.map +1 -1
  15. package/dist/authoring.mjs +4 -1
  16. package/dist/authoring.mjs.map +1 -1
  17. package/dist/capture/cube-views.d.ts +21 -0
  18. package/dist/capture/cube-views.d.ts.map +1 -0
  19. package/dist/capture/scheduler.d.ts +54 -0
  20. package/dist/capture/scheduler.d.ts.map +1 -0
  21. package/dist/{chunk-PCHBPYML.mjs → chunk-4L3P6DT5.mjs} +2 -2
  22. package/dist/chunk-4L3P6DT5.mjs.map +1 -0
  23. package/dist/{chunk-VFPLTKCU.mjs → chunk-4NPUASZR.mjs} +15 -4
  24. package/dist/chunk-4NPUASZR.mjs.map +1 -0
  25. package/dist/chunk-DIYW3M5D.mjs +5085 -0
  26. package/dist/chunk-DIYW3M5D.mjs.map +1 -0
  27. package/dist/chunk-FBC4R44J.mjs +1003 -0
  28. package/dist/chunk-FBC4R44J.mjs.map +1 -0
  29. package/dist/{chunk-CDTWTHZR.mjs → chunk-FF7K3FSO.mjs} +474 -168
  30. package/dist/chunk-FF7K3FSO.mjs.map +1 -0
  31. package/dist/chunk-HZUPSYW7.mjs +1104 -0
  32. package/dist/chunk-HZUPSYW7.mjs.map +1 -0
  33. package/dist/{chunk-TBQJOK2L.mjs → chunk-QODA5UKU.mjs} +321 -269
  34. package/dist/chunk-QODA5UKU.mjs.map +1 -0
  35. package/dist/chunk-YALPS44A.mjs +296 -0
  36. package/dist/chunk-YALPS44A.mjs.map +1 -0
  37. package/dist/{chunk-4XINDLAY.mjs → chunk-ZUWKAZ2I.mjs} +1963 -2178
  38. package/dist/chunk-ZUWKAZ2I.mjs.map +1 -0
  39. package/dist/cluster-binner.d.ts +5 -0
  40. package/dist/cluster-binner.d.ts.map +1 -1
  41. package/dist/components/camera.d.ts +1 -0
  42. package/dist/components/camera.d.ts.map +1 -1
  43. package/dist/components/cube-camera.d.ts +20 -0
  44. package/dist/components/cube-camera.d.ts.map +1 -0
  45. package/dist/components/directional-light.d.ts +11 -2
  46. package/dist/components/directional-light.d.ts.map +1 -1
  47. package/dist/components/directional-shadow-filter.d.ts +25 -0
  48. package/dist/components/directional-shadow-filter.d.ts.map +1 -0
  49. package/dist/components/index.d.ts +5 -0
  50. package/dist/components/index.d.ts.map +1 -1
  51. package/dist/components/light-helpers.d.ts +4 -0
  52. package/dist/components/light-helpers.d.ts.map +1 -1
  53. package/dist/components/light-probe.d.ts +9 -0
  54. package/dist/components/light-probe.d.ts.map +1 -0
  55. package/dist/components/rect-area-light.d.ts +12 -0
  56. package/dist/components/rect-area-light.d.ts.map +1 -0
  57. package/dist/components/reflection-probe.d.ts +17 -0
  58. package/dist/components/reflection-probe.d.ts.map +1 -0
  59. package/dist/components/scene-instance.d.ts +4 -0
  60. package/dist/components/scene-instance.d.ts.map +1 -1
  61. package/dist/components/spot-light.d.ts +3 -0
  62. package/dist/components/spot-light.d.ts.map +1 -1
  63. package/dist/construct-renderer.mjs +14836 -9620
  64. package/dist/construct-renderer.mjs.map +1 -1
  65. package/dist/device/gpu-residency.d.ts +8 -1
  66. package/dist/device/gpu-residency.d.ts.map +1 -1
  67. package/dist/device/lifecycle-transaction.d.ts +2 -0
  68. package/dist/device/lifecycle-transaction.d.ts.map +1 -0
  69. package/dist/environment/frame.d.ts.map +1 -1
  70. package/dist/environment/lifecycle.d.ts +5 -0
  71. package/dist/environment/lifecycle.d.ts.map +1 -1
  72. package/dist/errors/gpu-driven.d.ts +26 -0
  73. package/dist/errors/gpu-driven.d.ts.map +1 -0
  74. package/dist/errors/index.d.ts +1 -0
  75. package/dist/errors/index.d.ts.map +1 -1
  76. package/dist/errors/recover.d.ts +9 -1
  77. package/dist/errors/recover.d.ts.map +1 -1
  78. package/dist/errors/render.d.ts +166 -93
  79. package/dist/errors/render.d.ts.map +1 -1
  80. package/dist/extract/directional-shadow-projection.d.ts +23 -0
  81. package/dist/extract/directional-shadow-projection.d.ts.map +1 -0
  82. package/dist/extract/environment.d.ts +14 -0
  83. package/dist/extract/environment.d.ts.map +1 -1
  84. package/dist/extract/gpu-driven.d.ts +50 -0
  85. package/dist/extract/gpu-driven.d.ts.map +1 -0
  86. package/dist/extract/visibility.d.ts.map +1 -1
  87. package/dist/features/fullscreen.d.ts.map +1 -1
  88. package/dist/features/targets.d.ts.map +1 -1
  89. package/dist/features/types.d.ts +10 -0
  90. package/dist/features/types.d.ts.map +1 -1
  91. package/dist/fullscreen-post-process-pass.d.ts +13 -2
  92. package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
  93. package/dist/gpu-driven/batch-topology.d.ts +34 -0
  94. package/dist/gpu-driven/batch-topology.d.ts.map +1 -1
  95. package/dist/gpu-driven/prepared-draw.d.ts +63 -0
  96. package/dist/gpu-driven/prepared-draw.d.ts.map +1 -0
  97. package/dist/gpu-driven/production-raster.d.ts +97 -2
  98. package/dist/gpu-driven/production-raster.d.ts.map +1 -1
  99. package/dist/gpu-driven/view-gpu.d.ts +64 -1
  100. package/dist/gpu-driven/view-gpu.d.ts.map +1 -1
  101. package/dist/gpu-scene-schema.d.ts +14 -0
  102. package/dist/gpu-scene-schema.d.ts.map +1 -1
  103. package/dist/gpu-scene.d.ts +8 -1
  104. package/dist/gpu-scene.d.ts.map +1 -1
  105. package/dist/gpu-usage.d.ts +0 -1
  106. package/dist/gpu-usage.d.ts.map +1 -1
  107. package/dist/hdrp-buffers.d.ts +21 -19
  108. package/dist/hdrp-buffers.d.ts.map +1 -1
  109. package/dist/ibl/IblPipelineCache.d.ts +4 -0
  110. package/dist/ibl/IblPipelineCache.d.ts.map +1 -1
  111. package/dist/ibl/kernel-cache.d.ts +36 -0
  112. package/dist/ibl/kernel-cache.d.ts.map +1 -0
  113. package/dist/index.d.ts +39 -3
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.mjs +91 -6
  116. package/dist/index.mjs.map +1 -1
  117. package/dist/inspection-types.d.ts +214 -1
  118. package/dist/inspection-types.d.ts.map +1 -1
  119. package/dist/instances-derived-bounds.d.ts +50 -0
  120. package/dist/instances-derived-bounds.d.ts.map +1 -0
  121. package/dist/internal.d.ts +9 -0
  122. package/dist/internal.d.ts.map +1 -1
  123. package/dist/internal.mjs +23 -2
  124. package/dist/internal.mjs.map +1 -1
  125. package/dist/light-buffer-layout.d.ts +58 -140
  126. package/dist/light-buffer-layout.d.ts.map +1 -1
  127. package/dist/materials.d.ts.map +1 -1
  128. package/dist/mesh-material-bindings.d.ts +54 -0
  129. package/dist/mesh-material-bindings.d.ts.map +1 -1
  130. package/dist/pbr-pipeline.d.ts +38 -14
  131. package/dist/pbr-pipeline.d.ts.map +1 -1
  132. package/dist/pipeline/standard-forward-lane.d.ts +2 -1
  133. package/dist/pipeline/standard-forward-lane.d.ts.map +1 -1
  134. package/dist/pipeline/standard-lighting/errors.d.ts +4 -0
  135. package/dist/pipeline/standard-lighting/errors.d.ts.map +1 -0
  136. package/dist/pipeline/standard-lighting/graph.d.ts +24 -0
  137. package/dist/pipeline/standard-lighting/graph.d.ts.map +1 -0
  138. package/dist/pipeline/standard-lighting/inspection.d.ts +38 -0
  139. package/dist/pipeline/standard-lighting/inspection.d.ts.map +1 -0
  140. package/dist/pipeline/standard-lighting/layout.d.ts +28 -0
  141. package/dist/pipeline/standard-lighting/layout.d.ts.map +1 -0
  142. package/dist/pipeline/standard-lighting/light-frame.d.ts +33 -0
  143. package/dist/pipeline/standard-lighting/light-frame.d.ts.map +1 -0
  144. package/dist/pipeline/standard-lighting/membership.d.ts +14 -0
  145. package/dist/pipeline/standard-lighting/membership.d.ts.map +1 -0
  146. package/dist/pipeline/standard-lighting/prepare.d.ts +16 -0
  147. package/dist/pipeline/standard-lighting/prepare.d.ts.map +1 -0
  148. package/dist/pipeline/standard-lighting/topology.d.ts +45 -0
  149. package/dist/pipeline/standard-lighting/topology.d.ts.map +1 -0
  150. package/dist/pipeline/standard-lighting/transport.d.ts +36 -0
  151. package/dist/pipeline/standard-lighting/transport.d.ts.map +1 -0
  152. package/dist/pipeline/standard-pipeline.d.ts +4 -13
  153. package/dist/pipeline/standard-pipeline.d.ts.map +1 -1
  154. package/dist/pipeline/standard-post.d.ts.map +1 -1
  155. package/dist/pipeline/standard-profile.d.ts +5 -26
  156. package/dist/pipeline/standard-profile.d.ts.map +1 -1
  157. package/dist/pipeline-builder.d.ts +2 -0
  158. package/dist/pipeline-builder.d.ts.map +1 -1
  159. package/dist/pipeline-spec.d.ts +40 -7
  160. package/dist/pipeline-spec.d.ts.map +1 -1
  161. package/dist/plugin.d.ts.map +1 -1
  162. package/dist/point-shadow-inspection.d.ts +21 -0
  163. package/dist/point-shadow-inspection.d.ts.map +1 -0
  164. package/dist/prepare/extended-lighting/ltc-resources.d.ts +31 -0
  165. package/dist/prepare/extended-lighting/ltc-resources.d.ts.map +1 -0
  166. package/dist/prepare/extended-lighting/resources.d.ts +72 -0
  167. package/dist/prepare/extended-lighting/resources.d.ts.map +1 -0
  168. package/dist/prepare/extended-lighting/spot-modifiers.d.ts +42 -0
  169. package/dist/prepare/extended-lighting/spot-modifiers.d.ts.map +1 -0
  170. package/dist/prepare/extended-lighting/state.d.ts +24 -0
  171. package/dist/prepare/extended-lighting/state.d.ts.map +1 -0
  172. package/dist/record/frame-lighting.d.ts +33 -36
  173. package/dist/record/frame-lighting.d.ts.map +1 -1
  174. package/dist/record/frame-snapshot.d.ts +78 -24
  175. package/dist/record/frame-snapshot.d.ts.map +1 -1
  176. package/dist/record/frame-targets.d.ts +5 -0
  177. package/dist/record/frame-targets.d.ts.map +1 -1
  178. package/dist/record/frame.d.ts +16 -6
  179. package/dist/record/frame.d.ts.map +1 -1
  180. package/dist/record/gpu-pass-timing/contract.d.ts +96 -0
  181. package/dist/record/gpu-pass-timing/contract.d.ts.map +1 -0
  182. package/dist/record/gpu-pass-timing/errors.d.ts +18 -0
  183. package/dist/record/gpu-pass-timing/errors.d.ts.map +1 -0
  184. package/dist/record/gpu-pass-timing/index.d.ts +8 -0
  185. package/dist/record/gpu-pass-timing/index.d.ts.map +1 -0
  186. package/dist/record/gpu-pass-timing/parser.d.ts +11 -0
  187. package/dist/record/gpu-pass-timing/parser.d.ts.map +1 -0
  188. package/dist/record/gpu-pass-timing/session.d.ts +43 -0
  189. package/dist/record/gpu-pass-timing/session.d.ts.map +1 -0
  190. package/dist/record/gpu-timing.d.ts +20 -3
  191. package/dist/record/gpu-timing.d.ts.map +1 -1
  192. package/dist/record/helpers.d.ts +0 -20
  193. package/dist/record/helpers.d.ts.map +1 -1
  194. package/dist/record/main-pass-geometry.d.ts +6 -1
  195. package/dist/record/main-pass-geometry.d.ts.map +1 -1
  196. package/dist/record/main-pass-material.d.ts +25 -2
  197. package/dist/record/main-pass-material.d.ts.map +1 -1
  198. package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
  199. package/dist/record/main-pass.d.ts +2 -0
  200. package/dist/record/main-pass.d.ts.map +1 -1
  201. package/dist/record/mesh-ssbo.d.ts.map +1 -1
  202. package/dist/record/render-context.d.ts +98 -6
  203. package/dist/record/render-context.d.ts.map +1 -1
  204. package/dist/record/shadow-pass.d.ts.map +1 -1
  205. package/dist/record/skybox-post-pass.d.ts.map +1 -1
  206. package/dist/record/typed-frame-graph.d.ts +119 -4
  207. package/dist/record/typed-frame-graph.d.ts.map +1 -1
  208. package/dist/record/view-ubo.d.ts +7 -5
  209. package/dist/record/view-ubo.d.ts.map +1 -1
  210. package/dist/reflection/filter.d.ts +22 -0
  211. package/dist/reflection/filter.d.ts.map +1 -0
  212. package/dist/reflection/gpu-table.d.ts +25 -0
  213. package/dist/reflection/gpu-table.d.ts.map +1 -0
  214. package/dist/reflection/inspection.d.ts +10 -0
  215. package/dist/reflection/inspection.d.ts.map +1 -0
  216. package/dist/reflection/projection.d.ts +140 -0
  217. package/dist/reflection/projection.d.ts.map +1 -0
  218. package/dist/reflection/record-owner.d.ts +60 -0
  219. package/dist/reflection/record-owner.d.ts.map +1 -0
  220. package/dist/render-contract.d.ts +62 -14
  221. package/dist/render-contract.d.ts.map +1 -1
  222. package/dist/render-graph-primitives.d.ts +1 -0
  223. package/dist/render-graph-primitives.d.ts.map +1 -1
  224. package/dist/render-pipeline.d.ts +49 -2
  225. package/dist/render-pipeline.d.ts.map +1 -1
  226. package/dist/render-system-extract.d.ts +160 -31
  227. package/dist/render-system-extract.d.ts.map +1 -1
  228. package/dist/render-system.d.ts +28 -2
  229. package/dist/render-system.d.ts.map +1 -1
  230. package/dist/renderer.d.ts +43 -0
  231. package/dist/renderer.d.ts.map +1 -0
  232. package/dist/scene/probe-blend-record.d.ts +22 -0
  233. package/dist/scene/probe-blend-record.d.ts.map +1 -0
  234. package/dist/scene/probe-blend.d.ts +142 -0
  235. package/dist/scene/probe-blend.d.ts.map +1 -0
  236. package/dist/scene/render-scene-types.d.ts +0 -6
  237. package/dist/scene/render-scene-types.d.ts.map +1 -1
  238. package/dist/scene/render-scene.d.ts +117 -9
  239. package/dist/scene/render-scene.d.ts.map +1 -1
  240. package/dist/scene/visibility/bounds.d.ts +20 -0
  241. package/dist/scene/visibility/bounds.d.ts.map +1 -0
  242. package/dist/scene/visibility/budget.d.ts +16 -0
  243. package/dist/scene/visibility/budget.d.ts.map +1 -0
  244. package/dist/scene/visibility/facet.d.ts +73 -0
  245. package/dist/scene/visibility/facet.d.ts.map +1 -0
  246. package/dist/scene/visibility/gpu-frame-timing.d.ts +41 -0
  247. package/dist/scene/visibility/gpu-frame-timing.d.ts.map +1 -0
  248. package/dist/scene/visibility/gpu-lod.d.ts +46 -0
  249. package/dist/scene/visibility/gpu-lod.d.ts.map +1 -0
  250. package/dist/scene/visibility/inspection.d.ts +132 -0
  251. package/dist/scene/visibility/inspection.d.ts.map +1 -0
  252. package/dist/scene/visibility/lod-selector.d.ts +25 -0
  253. package/dist/scene/visibility/lod-selector.d.ts.map +1 -0
  254. package/dist/scene/visibility/occlusion-confidence.d.ts +81 -0
  255. package/dist/scene/visibility/occlusion-confidence.d.ts.map +1 -0
  256. package/dist/scene/visibility/occlusion-pass.d.ts +57 -0
  257. package/dist/scene/visibility/occlusion-pass.d.ts.map +1 -0
  258. package/dist/scene/visibility/occlusion-query-pool.d.ts +57 -0
  259. package/dist/scene/visibility/occlusion-query-pool.d.ts.map +1 -0
  260. package/dist/scene/visibility/occlusion-runtime.d.ts +96 -0
  261. package/dist/scene/visibility/occlusion-runtime.d.ts.map +1 -0
  262. package/dist/scene/visibility/types.d.ts +34 -0
  263. package/dist/scene/visibility/types.d.ts.map +1 -0
  264. package/dist/shadow-atlas.d.ts +3 -3
  265. package/dist/shadow-atlas.d.ts.map +1 -1
  266. package/dist/ssao-buffers.d.ts +3 -0
  267. package/dist/ssao-buffers.d.ts.map +1 -1
  268. package/dist/ssr/admission.d.ts +122 -0
  269. package/dist/ssr/admission.d.ts.map +1 -0
  270. package/dist/ssr/composition.d.ts +32 -0
  271. package/dist/ssr/composition.d.ts.map +1 -0
  272. package/dist/ssr/errors.d.ts +39 -0
  273. package/dist/ssr/errors.d.ts.map +1 -0
  274. package/dist/ssr/identity.d.ts +13 -0
  275. package/dist/ssr/identity.d.ts.map +1 -0
  276. package/dist/systems/skin-palette-allocator.d.ts +1 -1
  277. package/dist/targets/contracts.d.ts +66 -0
  278. package/dist/targets/contracts.d.ts.map +1 -0
  279. package/dist/targets/graph-projection.d.ts +29 -0
  280. package/dist/targets/graph-projection.d.ts.map +1 -0
  281. package/dist/targets/material-source.d.ts +34 -0
  282. package/dist/targets/material-source.d.ts.map +1 -0
  283. package/dist/targets/owner.d.ts +32 -0
  284. package/dist/targets/owner.d.ts.map +1 -0
  285. package/dist/targets/physical.d.ts +18 -0
  286. package/dist/targets/physical.d.ts.map +1 -0
  287. package/dist/targets/readback.d.ts +39 -0
  288. package/dist/targets/readback.d.ts.map +1 -0
  289. package/dist/temporal/frame-coordinator.d.ts +13 -0
  290. package/dist/temporal/frame-coordinator.d.ts.map +1 -1
  291. package/dist/temporal/frame.d.ts +2 -0
  292. package/dist/temporal/frame.d.ts.map +1 -1
  293. package/dist/temporal/index.mjs +6 -5
  294. package/dist/temporal/view.d.ts +7 -0
  295. package/dist/temporal/view.d.ts.map +1 -1
  296. package/dist/tilemap-chunk-extract-system.d.ts +1 -1
  297. package/dist/typed-render-graph-primitives.d.ts +5 -1
  298. package/dist/typed-render-graph-primitives.d.ts.map +1 -1
  299. package/dist/typed-shadow-passes.d.ts +1 -1
  300. package/dist/typed-shadow-passes.d.ts.map +1 -1
  301. package/dist/volume/passes.d.ts +9 -5
  302. package/dist/volume/passes.d.ts.map +1 -1
  303. package/package.json +20 -20
  304. package/src/__tests__/bloom-exact-zero.unit.test.ts +48 -19
  305. package/src/__tests__/bloom-lifecycle.integration.test.ts +41 -13
  306. package/src/__tests__/camera-target-consumption.unit.test.ts +53 -0
  307. package/src/__tests__/cluster-binner.unit.test.ts +35 -0
  308. package/src/__tests__/cluster-grid-default-surface.unit.test.ts +12 -2
  309. package/src/__tests__/cube-camera-scheduler.unit.test.ts +70 -0
  310. package/src/__tests__/cube-camera-single-submit.perf.test.ts +75 -0
  311. package/src/__tests__/cube-camera-view-matrices.unit.test.ts +41 -0
  312. package/src/__tests__/cube-camera-vocabulary.unit.test.ts +47 -0
  313. package/src/__tests__/cube-camera.integration.test.ts +42 -0
  314. package/src/__tests__/detached-inspection.integration.test.ts +6 -0
  315. package/src/__tests__/device-feature-admission.unit.test.ts +85 -0
  316. package/src/__tests__/direct-light-snapshot.unit.test.ts +62 -6
  317. package/src/__tests__/docs-gate-green.unit.test.ts +38 -0
  318. package/src/__tests__/environment-generation.integration.test.ts +16 -0
  319. package/src/__tests__/evidence-identity.ts +13 -0
  320. package/src/__tests__/evidence-identity.unit.test.ts +24 -0
  321. package/src/__tests__/extended-lighting-recovery.browser.test.ts +14 -0
  322. package/src/__tests__/extended-lighting-recovery.dawn.test.ts +14 -0
  323. package/src/__tests__/extended-lighting-recovery.integration.test.ts +81 -0
  324. package/src/__tests__/extended-lighting-resources.unit.test.ts +51 -0
  325. package/src/__tests__/extended-lighting-zero-feature.integration.test.ts +52 -0
  326. package/src/__tests__/factory-contract.integration.test.ts +288 -29
  327. package/src/__tests__/fog-component.unit.test.ts +67 -0
  328. package/src/__tests__/fog.integration.test.ts +86 -0
  329. package/src/__tests__/frame-observation.contract.test.ts +15 -0
  330. package/src/__tests__/fullscreen-feature-plan.unit.test.ts +37 -0
  331. package/src/__tests__/gpu-driven-batch-topology-pbr.unit.test.ts +146 -0
  332. package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +10 -8
  333. package/src/__tests__/gpu-driven-indirect-raster.dawn.test.ts +18 -1
  334. package/src/__tests__/gpu-driven-production.integration.test.ts +579 -17
  335. package/src/__tests__/gpu-driven-scaling.unit.test.ts +66 -2
  336. package/src/__tests__/gpu-driven-view-gpu-evidence.ts +26 -1
  337. package/src/__tests__/gpu-driven-view-graph.integration.test.ts +101 -6
  338. package/src/__tests__/gpu-driven-view.browser.test.ts +3 -3
  339. package/src/__tests__/gpu-driven-view.dawn.test.ts +3 -3
  340. package/src/__tests__/gpu-driven-view.unit.test.ts +50 -0
  341. package/src/__tests__/gpu-lod-evidence.ts +188 -0
  342. package/src/__tests__/gpu-lod-fallback.integration.test.ts +10 -0
  343. package/src/__tests__/gpu-lod-indirect.integration.test.ts +40 -0
  344. package/src/__tests__/gpu-lod-parity.dawn.test.ts +29 -0
  345. package/src/__tests__/gpu-lod-readiness.integration.test.ts +52 -0
  346. package/src/__tests__/gpu-lod-schema.unit.test.ts +66 -0
  347. package/src/__tests__/gpu-lod-selector.unit.test.ts +28 -0
  348. package/src/__tests__/gpu-lod-silhouette.browser.test.ts +13 -0
  349. package/src/__tests__/gpu-pass-timing-browser-runner.ts +281 -0
  350. package/src/__tests__/gpu-pass-timing-coexistence.integration.test.ts +80 -0
  351. package/src/__tests__/gpu-pass-timing-contract.unit.test.ts +243 -0
  352. package/src/__tests__/gpu-pass-timing-exact-zero.unit.test.ts +131 -0
  353. package/src/__tests__/gpu-pass-timing-lifecycle.integration.test.ts +230 -0
  354. package/src/__tests__/gpu-pass-timing-observation.unit.test.ts +233 -0
  355. package/src/__tests__/gpu-pass-timing-session.unit.test.ts +438 -0
  356. package/src/__tests__/gpu-pass-timing.browser.test.ts +26 -0
  357. package/src/__tests__/gpu-pass-timing.rhi-null.unit.test.ts +125 -0
  358. package/src/__tests__/gpu-resource-store-stride.unit.test.ts +66 -1
  359. package/src/__tests__/gpu-scene.dawn.test.ts +8 -1
  360. package/src/__tests__/gpu-scene.unit.test.ts +49 -3
  361. package/src/__tests__/hdrp-group2-visibility.unit.test.ts +24 -0
  362. package/src/__tests__/instances-culling.integration.test.ts +94 -0
  363. package/src/__tests__/instances-derived-bounds.unit.test.ts +118 -0
  364. package/src/__tests__/light-buffer-layout.unit.test.ts +113 -3
  365. package/src/__tests__/light-inspection.unit.test.ts +55 -0
  366. package/src/__tests__/light-resource-error.unit.test.ts +43 -0
  367. package/src/__tests__/lighting-scene-roundtrip.integration.test.ts +109 -0
  368. package/src/__tests__/lod-bounds.unit.test.ts +42 -0
  369. package/src/__tests__/lod-cpu-lane.integration.test.ts +55 -0
  370. package/src/__tests__/lod-cpu-no-change.perf.test.ts +19 -0
  371. package/src/__tests__/lod-gpu-frame-timing.unit.test.ts +49 -0
  372. package/src/__tests__/lod-multi-view.integration.test.ts +63 -0
  373. package/src/__tests__/lod-occlusion-device-loss.integration.test.ts +27 -0
  374. package/src/__tests__/lod-occlusion-final-decision.integration.test.ts +47 -0
  375. package/src/__tests__/lod-occlusion-inspection.integration.test.ts +217 -0
  376. package/src/__tests__/lod-occlusion-inspection.schema.test-d.ts +14 -0
  377. package/src/__tests__/lod-occlusion-inspection.unit.test.ts +72 -0
  378. package/src/__tests__/lod-occlusion-visual-evidence.ts +91 -0
  379. package/src/__tests__/lod-occlusion.browser.test.ts +15 -0
  380. package/src/__tests__/lod-occlusion.dawn.test.ts +20 -0
  381. package/src/__tests__/lod-selector.profile.test.ts +35 -0
  382. package/src/__tests__/lod-selector.unit.test.ts +68 -0
  383. package/src/__tests__/lod-visibility-identity.unit.test.ts +198 -0
  384. package/src/__tests__/lod-visibility-lifecycle.integration.test.ts +132 -0
  385. package/src/__tests__/ltc-resources.unit.test.ts +32 -0
  386. package/src/__tests__/material-contract-inventory.unit.test.ts +17 -0
  387. package/src/__tests__/material-observation.integration.test.ts +101 -0
  388. package/src/__tests__/occlusion-confidence.unit.test.ts +168 -0
  389. package/src/__tests__/occlusion-invalidation.integration.test.ts +37 -0
  390. package/src/__tests__/occlusion-pass-routing.unit.test.ts +16 -0
  391. package/src/__tests__/occlusion-pass.dawn.test.ts +20 -0
  392. package/src/__tests__/occlusion-pass.integration.test.ts +43 -0
  393. package/src/__tests__/occlusion-pass.rhi-null.test.ts +22 -0
  394. package/src/__tests__/occlusion-query-pool.rhi-null.test.ts +21 -0
  395. package/src/__tests__/occlusion-query-pool.unit.test.ts +95 -0
  396. package/src/__tests__/occlusion-query-ticket.integration.test.ts +47 -0
  397. package/src/__tests__/occlusion-query.dawn.test.ts +16 -0
  398. package/src/__tests__/occlusion-query.evidence.ts +178 -0
  399. package/src/__tests__/occlusion-query.rhi-null.test.ts +31 -0
  400. package/src/__tests__/occlusion-runtime.unit.test.ts +120 -0
  401. package/src/__tests__/pbr-view-layout.unit.test.ts +16 -0
  402. package/src/__tests__/point-shadow-inspection.unit.test.ts +60 -0
  403. package/src/__tests__/prepared-gpu-driven-pbr.integration.test.ts +196 -0
  404. package/src/__tests__/probe-bindings.unit.test.ts +200 -0
  405. package/src/__tests__/probe-blend-numeric.unit.test.ts +67 -0
  406. package/src/__tests__/probe-blend-oracle.unit.test.ts +136 -0
  407. package/src/__tests__/probe-capacity.integration.test.ts +97 -0
  408. package/src/__tests__/probe-recovery.integration.test.ts +104 -0
  409. package/src/__tests__/probe-scene-dirty.integration.test.ts +211 -0
  410. package/src/__tests__/profiler-phase-catalog.test.ts +4 -1
  411. package/src/__tests__/profiler-phase-token.test.ts +1 -0
  412. package/src/__tests__/public-surface.test-d.ts +10 -0
  413. package/src/__tests__/rect-area-boundary.unit.test.ts +24 -0
  414. package/src/__tests__/reflection-fallback-graph.unit.test.ts +67 -0
  415. package/src/__tests__/reflection-fallback-inspection.unit.test.ts +77 -0
  416. package/src/__tests__/reflection-fallback-lifecycle.integration.test.ts +21 -0
  417. package/src/__tests__/reflection-fallback-projection.unit.test.ts +90 -0
  418. package/src/__tests__/reflection-fallback-source.unit.test.ts +32 -0
  419. package/src/__tests__/reflection-probe-authoring.unit.test.ts +71 -0
  420. package/src/__tests__/reflection-probe-filter.unit.test.ts +54 -0
  421. package/src/__tests__/reflection-probe-ibl-topology.unit.test.ts +45 -0
  422. package/src/__tests__/reflection-probe-owner-placement.unit.test.ts +39 -0
  423. package/src/__tests__/reflection-probe-pass-encode.integration.test.ts +101 -0
  424. package/src/__tests__/reflection-probe-performance.perf.test.ts +60 -0
  425. package/src/__tests__/reflection-probe-record-owner.characterization.unit.test.ts +120 -0
  426. package/src/__tests__/reflection-probe-recovery.integration.test.ts +55 -0
  427. package/src/__tests__/reflection-probe-selection.unit.test.ts +46 -0
  428. package/src/__tests__/render-error-code-owner.test-d.ts +19 -3
  429. package/src/__tests__/render-feature-docs.unit.test.ts +12 -7
  430. package/src/__tests__/render-graph-fallback.integration.test.ts +24 -0
  431. package/src/__tests__/render-perf/extended-lighting.bench.test.ts +66 -0
  432. package/src/__tests__/render-scene-projection.unit.test.ts +447 -18
  433. package/src/__tests__/render-target-admission.unit.test.ts +80 -0
  434. package/src/__tests__/render-target-graph-projection.unit.test.ts +102 -0
  435. package/src/__tests__/render-target-inspection.unit.test.ts +52 -0
  436. package/src/__tests__/render-target-material-source.test-d.ts +30 -0
  437. package/src/__tests__/render-target-material-source.unit.test.ts +97 -0
  438. package/src/__tests__/render-target-owner-placement.unit.test.ts +203 -0
  439. package/src/__tests__/render-target-owner.unit.test.ts +122 -0
  440. package/src/__tests__/render-target-probe-soak.perf.test.ts +94 -0
  441. package/src/__tests__/render-target-public-schema.json +107 -0
  442. package/src/__tests__/render-target-public-schema.unit.test.ts +91 -0
  443. package/src/__tests__/render-target-public-surface.test-d.ts +83 -0
  444. package/src/__tests__/render-target-readback.integration.test.ts +90 -0
  445. package/src/__tests__/render-target-recovery.integration.test.ts +85 -0
  446. package/src/__tests__/renderer-factory-material-contract.unit.test.ts +124 -0
  447. package/src/__tests__/renderer-lifecycle.integration.test.ts +14 -0
  448. package/src/__tests__/shader-stage-surface.unit.test.ts +19 -4
  449. package/src/__tests__/skin-motion-regression.unit.test.ts +154 -0
  450. package/src/__tests__/skinned-shadow-caster.test.ts +13 -4
  451. package/src/__tests__/spot-modifier-projection.unit.test.ts +70 -0
  452. package/src/__tests__/ssr-admission-matrix.integration.test.ts +206 -0
  453. package/src/__tests__/ssr-composition.unit.test.ts +46 -0
  454. package/src/__tests__/ssr-fallback-zero-work.bench.test.ts +94 -0
  455. package/src/__tests__/ssr-recovery-errors.unit.test.ts +58 -0
  456. package/src/__tests__/standard-cluster-capability.integration.test.ts +63 -0
  457. package/src/__tests__/standard-cluster-transport.unit.test.ts +121 -0
  458. package/src/__tests__/standard-cluster-variant-resolution.unit.test.ts +299 -0
  459. package/src/__tests__/standard-clustered-pipeline.unit.test.ts +15 -5
  460. package/src/__tests__/standard-lighting-inspection.integration.test.ts +138 -0
  461. package/src/__tests__/standard-lighting-ssot.unit.test.ts +18 -0
  462. package/src/__tests__/standard-lighting-write.unit.test.ts +441 -0
  463. package/src/__tests__/standard-lighting.integration.test.ts +67 -0
  464. package/src/__tests__/standard-pipeline.dawn.test.ts +206 -5
  465. package/src/__tests__/standard-pipeline.integration.test.ts +181 -150
  466. package/src/__tests__/standard-probe-binding.unit.test.ts +25 -0
  467. package/src/__tests__/standard-profile-oracle.unit.test.ts +23 -38
  468. package/src/__tests__/temporal-fallback-generation.integration.test.ts +16 -0
  469. package/src/__tests__/temporal-view.unit.test.ts +3 -3
  470. package/src/__tests__/transmission-prewarm.unit.test.ts +69 -0
  471. package/src/__tests__/typed-pipeline-topology.unit.test.ts +395 -14
  472. package/src/__tests__/urp-pipeline-targets.unit.test.ts +2 -2
  473. package/src/__tests__/visibility-budget.integration.test.ts +140 -0
  474. package/src/__tests__/visibility-budget.unit.test.ts +70 -0
  475. package/src/__tests__/visibility-extract.integration.test.ts +11 -6
  476. package/src/__tests__/visibility-resolver.unit.test.ts +15 -0
  477. package/src/__tests__/volumetric-fog-point-spot-accumulation.integration.test.ts +6 -3
  478. package/src/__tests__/volumetric-fog-stage-readback.dawn.test.ts +31 -28
  479. package/src/assembly/backend-contract.ts +13 -0
  480. package/src/assembly/device-feature-admission.ts +80 -0
  481. package/src/assembly/directional-shadow-inspection.ts +122 -0
  482. package/src/assembly/factory.ts +1411 -366
  483. package/src/assembly/host-contract.ts +35 -0
  484. package/src/assembly/render-target-host.ts +847 -0
  485. package/src/assets/asset-decoders.ts +1 -1
  486. package/src/assets/render-asset-port.ts +7 -1
  487. package/src/capture/cube-views.ts +69 -0
  488. package/src/capture/scheduler.ts +265 -0
  489. package/src/cluster-binner.ts +31 -0
  490. package/src/components/__tests__/lighting-authoring.unit.test.ts +39 -0
  491. package/src/components/__tests__/rect-area-light.unit.test.ts +33 -0
  492. package/src/components/__tests__/schema-contract.unit.test.ts +12 -0
  493. package/src/components/__tests__/schema-parity.unit.test.ts +9 -0
  494. package/src/components/camera.ts +4 -0
  495. package/src/components/cube-camera.ts +52 -0
  496. package/src/components/directional-light.ts +22 -2
  497. package/src/components/directional-shadow-filter.ts +57 -0
  498. package/src/components/index.ts +5 -0
  499. package/src/components/light-helpers.ts +133 -8
  500. package/src/components/light-probe.ts +13 -0
  501. package/src/components/rect-area-light.ts +15 -0
  502. package/src/components/reflection-probe.ts +49 -0
  503. package/src/components/scene-instance.ts +6 -0
  504. package/src/components/spot-light.ts +3 -0
  505. package/src/device/__tests__/extended-lighting-recovery.unit.test.ts +24 -0
  506. package/src/device/gpu-residency.ts +140 -9
  507. package/src/device/lifecycle-transaction.ts +12 -0
  508. package/src/environment/frame.ts +6 -24
  509. package/src/environment/lifecycle.ts +20 -1
  510. package/src/errors/gpu-driven.ts +92 -0
  511. package/src/errors/index.ts +1 -0
  512. package/src/errors/recover.ts +32 -0
  513. package/src/errors/render.ts +341 -143
  514. package/src/extract/camera.ts +3 -3
  515. package/src/extract/directional-shadow-projection.ts +61 -0
  516. package/src/extract/environment.ts +57 -0
  517. package/src/extract/gpu-driven.ts +108 -0
  518. package/src/extract/visibility.ts +2 -1
  519. package/src/features/fullscreen.ts +3 -0
  520. package/src/features/targets.ts +4 -1
  521. package/src/features/types.ts +10 -0
  522. package/src/fullscreen-post-process-pass.ts +43 -2
  523. package/src/gpu-driven/batch-topology.ts +207 -28
  524. package/src/gpu-driven/prepared-draw.ts +208 -0
  525. package/src/gpu-driven/production-raster.ts +953 -43
  526. package/src/gpu-driven/view-gpu.ts +411 -29
  527. package/src/gpu-scene-schema.ts +13 -0
  528. package/src/gpu-scene.ts +140 -64
  529. package/src/gpu-usage.ts +0 -1
  530. package/src/hdrp-buffers.ts +169 -63
  531. package/src/ibl/IblPipelineCache.ts +11 -0
  532. package/src/ibl/kernel-cache.ts +88 -0
  533. package/src/index.ts +222 -0
  534. package/src/inspection-types.ts +276 -1
  535. package/src/instances-derived-bounds.ts +171 -0
  536. package/src/internal.ts +38 -0
  537. package/src/light-buffer-layout.ts +155 -310
  538. package/src/materials.ts +16 -2
  539. package/src/mesh-material-bindings.ts +132 -0
  540. package/src/pbr-pipeline.ts +255 -60
  541. package/src/pipeline/standard-forward-lane.ts +93 -16
  542. package/src/pipeline/standard-lighting/errors.ts +6 -0
  543. package/src/pipeline/standard-lighting/graph.ts +158 -0
  544. package/src/pipeline/standard-lighting/inspection.ts +88 -0
  545. package/src/pipeline/standard-lighting/layout.ts +31 -0
  546. package/src/pipeline/standard-lighting/light-frame.ts +35 -0
  547. package/src/pipeline/standard-lighting/membership.ts +43 -0
  548. package/src/pipeline/standard-lighting/prepare.ts +37 -0
  549. package/src/pipeline/standard-lighting/topology.ts +120 -0
  550. package/src/pipeline/standard-lighting/transport.ts +78 -0
  551. package/src/pipeline/standard-pipeline.ts +124 -193
  552. package/src/pipeline/standard-post.ts +26 -7
  553. package/src/pipeline/standard-profile.ts +17 -47
  554. package/src/pipeline-builder.ts +5 -2
  555. package/src/pipeline-spec.ts +95 -21
  556. package/src/plugin.ts +4 -0
  557. package/src/point-shadow-inspection.ts +55 -0
  558. package/src/prepare/__tests__/extended-lighting-capability.unit.test.ts +56 -0
  559. package/src/prepare/extended-lighting/ltc-resources.ts +136 -0
  560. package/src/prepare/extended-lighting/resources.ts +389 -0
  561. package/src/prepare/extended-lighting/spot-modifiers.ts +194 -0
  562. package/src/prepare/extended-lighting/state.ts +92 -0
  563. package/src/record/__tests__/gpu-timing.unit.test.ts +177 -0
  564. package/src/record/__tests__/temporal-payload.unit.test.ts +64 -1
  565. package/src/record/__tests__/transparent-group2-selection.unit.test.ts +73 -0
  566. package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +20 -1
  567. package/src/record/__tests__/view-ubo-layout.unit.test.ts +40 -0
  568. package/src/record/frame-lighting.ts +591 -452
  569. package/src/record/frame-snapshot.ts +92 -39
  570. package/src/record/frame-targets.ts +17 -0
  571. package/src/record/frame.ts +662 -158
  572. package/src/record/gpu-pass-timing/contract.ts +180 -0
  573. package/src/record/gpu-pass-timing/errors.ts +34 -0
  574. package/src/record/gpu-pass-timing/index.ts +37 -0
  575. package/src/record/gpu-pass-timing/parser.ts +97 -0
  576. package/src/record/gpu-pass-timing/session.ts +938 -0
  577. package/src/record/gpu-timing.ts +112 -39
  578. package/src/record/helpers.ts +0 -58
  579. package/src/record/main-pass-geometry.ts +324 -119
  580. package/src/record/main-pass-material.ts +103 -10
  581. package/src/record/main-pass-sprite-draws.ts +99 -103
  582. package/src/record/main-pass.ts +71 -15
  583. package/src/record/mesh-ssbo.ts +47 -36
  584. package/src/record/render-context.ts +136 -3
  585. package/src/record/shadow-pass.ts +83 -68
  586. package/src/record/skybox-post-pass.ts +20 -4
  587. package/src/record/typed-frame-graph.ts +1034 -43
  588. package/src/record/view-ubo.ts +72 -47
  589. package/src/reflection/filter.ts +81 -0
  590. package/src/reflection/gpu-table.ts +44 -0
  591. package/src/reflection/inspection.ts +67 -0
  592. package/src/reflection/projection.ts +476 -0
  593. package/src/reflection/record-owner.ts +1283 -0
  594. package/src/render-contract.ts +93 -10
  595. package/src/render-graph-primitives.ts +9 -4
  596. package/src/render-pipeline.ts +122 -2
  597. package/src/render-system-extract.ts +1041 -225
  598. package/src/render-system.ts +1310 -85
  599. package/src/renderer.ts +222 -0
  600. package/src/scene/__tests__/changed-block-summary.candidate.test.ts +36 -0
  601. package/src/scene/probe-blend-record.ts +54 -0
  602. package/src/scene/probe-blend.ts +813 -0
  603. package/src/scene/render-scene-types.ts +0 -7
  604. package/src/scene/render-scene.ts +942 -171
  605. package/src/scene/visibility/bounds.ts +57 -0
  606. package/src/scene/visibility/budget.ts +40 -0
  607. package/src/scene/visibility/facet.ts +400 -0
  608. package/src/scene/visibility/gpu-frame-timing.ts +101 -0
  609. package/src/scene/visibility/gpu-lod.ts +119 -0
  610. package/src/scene/visibility/inspection.ts +313 -0
  611. package/src/scene/visibility/lod-selector.ts +84 -0
  612. package/src/scene/visibility/occlusion-confidence.ts +478 -0
  613. package/src/scene/visibility/occlusion-pass.ts +165 -0
  614. package/src/scene/visibility/occlusion-query-pool.ts +178 -0
  615. package/src/scene/visibility/occlusion-runtime.ts +672 -0
  616. package/src/scene/visibility/types.ts +50 -0
  617. package/src/shadow-atlas.ts +5 -5
  618. package/src/ssao-buffers.ts +9 -2
  619. package/src/ssr/admission.ts +451 -0
  620. package/src/ssr/composition.ts +73 -0
  621. package/src/ssr/errors.ts +76 -0
  622. package/src/ssr/identity.ts +12 -0
  623. package/src/systems/skin-palette-allocator.ts +1 -1
  624. package/src/targets/contracts.ts +182 -0
  625. package/src/targets/graph-projection.ts +169 -0
  626. package/src/targets/material-source.ts +143 -0
  627. package/src/targets/owner.ts +214 -0
  628. package/src/targets/physical.ts +18 -0
  629. package/src/targets/readback.ts +153 -0
  630. package/src/temporal/frame-coordinator.ts +26 -0
  631. package/src/temporal/frame.ts +14 -1
  632. package/src/temporal/view.ts +11 -0
  633. package/src/tilemap-chunk-extract-system.ts +4 -4
  634. package/src/transmission/__tests__/standard-transmission.dawn.test.ts +59 -20
  635. package/src/typed-render-graph-primitives.ts +53 -3
  636. package/src/typed-shadow-passes.ts +46 -40
  637. package/src/volume/passes.ts +61 -58
  638. package/dist/.tsbuildinfo +0 -1
  639. package/dist/chunk-4XINDLAY.mjs.map +0 -1
  640. package/dist/chunk-CDTWTHZR.mjs.map +0 -1
  641. package/dist/chunk-M2MP4ZOU.mjs +0 -73
  642. package/dist/chunk-M2MP4ZOU.mjs.map +0 -1
  643. package/dist/chunk-PCHBPYML.mjs.map +0 -1
  644. package/dist/chunk-TBQJOK2L.mjs.map +0 -1
  645. package/dist/chunk-VFPLTKCU.mjs.map +0 -1
package/src/index.ts CHANGED
@@ -11,6 +11,13 @@ export {
11
11
  renderPipelineContribution,
12
12
  samplerContribution,
13
13
  } from './assets/asset-decoders';
14
+ // Runtime contract: leases, frame receipts, detached inspection, profile,
15
+ // lifecycle state, and the single renderer event stream.
16
+ export type {
17
+ CubeCameraFaceView,
18
+ CubeCameraFaceViewInput,
19
+ } from './capture/cube-views';
20
+ export { buildCubeCameraFaceViews } from './capture/cube-views';
14
21
  export { Atmosphere } from './components/atmosphere';
15
22
  // ECS render vocabulary and grouped closed values.
16
23
  export type {
@@ -42,10 +49,24 @@ export {
42
49
  TONEMAP_REINHARD,
43
50
  TONEMAP_REINHARD_EXTENDED,
44
51
  } from './components/camera';
52
+ export {
53
+ CUBE_CAMERA_FACE_ORDER,
54
+ CUBE_CAMERA_UPDATE_CONTINUOUS,
55
+ CUBE_CAMERA_UPDATE_ON_DEMAND,
56
+ CUBE_CAMERA_UPDATE_ONCE,
57
+ CubeCamera,
58
+ type CubeCameraData,
59
+ type CubeCameraFace,
60
+ type CubeCameraUpdateIntent,
61
+ cubeCameraUpdateIntentFromF32,
62
+ cubeCameraUpdateIntentToF32,
63
+ } from './components/cube-camera';
45
64
  export * from './components/directional-light';
46
65
  export { Fog } from './components/fog';
47
66
  export { Instances, type InstancesData } from './components/instances';
48
67
  export { Layer } from './components/layer';
68
+ export * from './components/light-helpers';
69
+ export { LightProbe } from './components/light-probe';
49
70
  export { Lines } from './components/lines';
50
71
  export * from './components/mesh-filter';
51
72
  export * from './components/mesh-renderer';
@@ -59,6 +80,17 @@ export {
59
80
  pointShapeFromU32,
60
81
  } from './components/points';
61
82
  export { PostProcessParams } from './components/post-process-params';
83
+ export { RectAreaLight } from './components/rect-area-light';
84
+ export {
85
+ REFLECTION_PROBE_UPDATE_CONTINUOUS,
86
+ REFLECTION_PROBE_UPDATE_ON_CHANGE,
87
+ REFLECTION_PROBE_UPDATE_ONCE,
88
+ ReflectionProbe,
89
+ type ReflectionProbeData,
90
+ type ReflectionProbeUpdateIntent,
91
+ reflectionProbeUpdateIntentFromF32,
92
+ reflectionProbeUpdateIntentToF32,
93
+ } from './components/reflection-probe';
62
94
  export { SceneInstance } from './components/scene-instance';
63
95
  export {
64
96
  SKYBOX_MODE_CUBEMAP,
@@ -84,8 +116,14 @@ export type {
84
116
  // Public structured operation failure union. Concrete error classes stay
85
117
  // behind the Renderer Result/event boundary.
86
118
  export type {
119
+ ReflectionProbeBudgetExceededDetail,
87
120
  RenderError,
88
121
  RenderErrorCode,
122
+ RenderIntentInvalidDetail,
123
+ RenderTargetCapabilityMissingDetail,
124
+ RenderTargetDescriptorInvalidDetail,
125
+ RenderTargetOperationFailedDetail,
126
+ RenderTargetStateInvalidDetail,
89
127
  SceneDataUnavailableDetail,
90
128
  SceneDataUnavailableReason,
91
129
  } from './errors/render';
@@ -131,13 +169,50 @@ export type {
131
169
  RenderFeatureStatus,
132
170
  RenderFeatureWorldVisibilitySnapshot,
133
171
  } from './features/types';
172
+ export {
173
+ beginProbeIblUpdate,
174
+ createIblKernelCache,
175
+ createProbeIblOutput,
176
+ type IblKernelCache,
177
+ type ProbeIblOutput,
178
+ type ProbeIblUpdate,
179
+ publishProbeIblOutput,
180
+ REFLECTION_PROBE_IBL_STAGES,
181
+ type ReflectionProbeIblStage,
182
+ resetIblKernelCaches,
183
+ } from './ibl/kernel-cache';
134
184
  export type {
135
185
  BloomInspection,
186
+ LightInspection,
187
+ LodOcclusionInspection,
136
188
  MotionBlurInspection,
137
189
  MotionBlurInspectionStatus,
190
+ ReflectionFallbackFailureStage,
191
+ ReflectionFallbackInspection,
192
+ ReflectionFallbackReadbackReceipt,
193
+ ReflectionFallbackReceipt,
194
+ ReflectionFallbackRecoveryAction,
195
+ ReflectionProbeInspection,
196
+ ReflectionProbeSelectionInspection,
138
197
  TransmissionInspection,
139
198
  } from './inspection-types';
140
199
  export { Materials, MaterialTransmissionContractError } from './materials';
200
+ export {
201
+ type MeshMaterialBindingObservation,
202
+ type MeshMaterialBindingPreparationFailure,
203
+ type MeshMaterialBindingReadiness,
204
+ type MeshMaterialBindingResidency,
205
+ type MeshMaterialBindingSamplerObservation,
206
+ type MeshMaterialBindingSummary,
207
+ type MeshMaterialBindingTextureObservation,
208
+ projectMeshMaterialBindingObservation,
209
+ summarizeMeshMaterialBindings,
210
+ } from './mesh-material-bindings';
211
+ export type {
212
+ StandardClusterTransportInspection,
213
+ StandardLightingInspection,
214
+ StandardNoLocalLightingInspection,
215
+ } from './pipeline/standard-lighting/inspection';
141
216
  // The host-facing default is a stable profile value; implementation-only
142
217
  // pipeline helpers remain behind the package boundary.
143
218
  export {
@@ -146,6 +221,10 @@ export {
146
221
  type StandardVolumetricFogQuality,
147
222
  } from './pipeline/standard-profile';
148
223
  export { renderComponentsPlugin } from './plugin';
224
+ export {
225
+ inspectPointShadow,
226
+ type PointShadowInspection,
227
+ } from './point-shadow-inspection';
149
228
  export {
150
229
  admitPointsLines,
151
230
  type LinesStyleInput,
@@ -156,9 +235,71 @@ export {
156
235
  type PointsStyleInput,
157
236
  } from './points-lines/admission';
158
237
  export type { PointsLinesInspection } from './points-lines/inspection';
238
+ /**
239
+ * Public bounded GPU pass facts. Use the single `gpuPassTiming` opt-in,
240
+ * `draw()` receipt, and `observe(receipt, { include: ['timings'] })` route.
241
+ * Branch on the closed statuses `complete`, `partial`, `unavailable`, and
242
+ * `failed`; each reason/error exposes `code`, `expected`, `hint`, and `detail`.
243
+ * `latestKnownGood` is separate from current status and completeness. These
244
+ * facts describe pass durations, never frame latency. The bounded contract is
245
+ * in `record/gpu-pass-timing/contract.ts`; benchmark acceptance is fail-closed
246
+ * in `bench/gpu-pass-timing/validator.ts`, and recovery follows the producer's
247
+ * structured hint rather than a second timing API.
248
+ */
249
+ export type {
250
+ GpuPassTimingCapability,
251
+ GpuPassTimingEntry,
252
+ GpuPassTimingError,
253
+ GpuPassTimingErrorCode,
254
+ GpuPassTimingFrame,
255
+ GpuPassTimingMeasuredEntry,
256
+ GpuPassTimingMeasurementSource,
257
+ GpuPassTimingObservation,
258
+ GpuPassTimingOptions,
259
+ GpuPassTimingPassIdentity,
260
+ GpuPassTimingReason,
261
+ GpuPassTimingReasonCode,
262
+ GpuPassTimingRef,
263
+ GpuPassTimingUnmeasuredEntry,
264
+ } from './record/gpu-pass-timing/index.js';
159
265
  // Runtime contract: leases, frame receipts, detached inspection, profile,
160
266
  // lifecycle state, and the single renderer event stream.
267
+ export {
268
+ advanceProbeFilter,
269
+ boxProjectReflectionDirection,
270
+ commitProbeFilterStep,
271
+ createProbeFilterState,
272
+ type ProbeFilterState,
273
+ probeFilterIsSteady,
274
+ } from './reflection/filter';
275
+ export {
276
+ buildReflectionProbeTable,
277
+ type ReflectionProbeTable,
278
+ type ReflectionProbeTableRow,
279
+ reflectionProbeTableBytes,
280
+ } from './reflection/gpu-table';
281
+ export {
282
+ inspectReflectionFallback,
283
+ type ReflectionFallbackFailureInput,
284
+ } from './reflection/inspection';
285
+ export {
286
+ admitReflectionProbe,
287
+ DEFAULT_REFLECTION_PROBE_LIMITS,
288
+ estimateReflectionProbeBytes,
289
+ type ReflectionProbeAdmission,
290
+ type ReflectionProbeAdmissionLimits,
291
+ type ReflectionProbeFact,
292
+ type ReflectionProbeInput,
293
+ ReflectionProbeProjection,
294
+ type ReflectionProbeProjectionSnapshot,
295
+ type ReflectionProbeSelection,
296
+ type ReflectionProbeSelectionResult,
297
+ type SkylightSelection,
298
+ selectReflectionProbe,
299
+ validateReflectionProbeInput,
300
+ } from './reflection/projection';
161
301
  export type {
302
+ CubeCameraSnapshot,
162
303
  FrameCamera,
163
304
  FrameEnvironment,
164
305
  FrameObservationRequest,
@@ -179,6 +320,87 @@ export type {
179
320
  TemporalInspectionInput,
180
321
  TemporalInspectionStatus,
181
322
  } from './renderer-inspect';
323
+ export type {
324
+ GpuFrameTiming,
325
+ GpuFrameTimingProtocol,
326
+ GpuFrameTimingRecord,
327
+ GpuFrameTimingSample,
328
+ GpuFrameTimingSummary,
329
+ } from './scene/visibility/gpu-frame-timing';
330
+ export {
331
+ createGpuFrameTiming,
332
+ recordGpuFrameTiming,
333
+ summarizeGpuFrameTiming,
334
+ } from './scene/visibility/gpu-frame-timing';
335
+ export type {
336
+ LodOcclusionDegradation,
337
+ LodOcclusionFallback,
338
+ LodOcclusionInspectionAction,
339
+ LodOcclusionInspectionBudget,
340
+ LodOcclusionInspectionError,
341
+ LodOcclusionInspectionInput,
342
+ LodOcclusionInspectionRow,
343
+ LodOcclusionInspectionSample,
344
+ LodOcclusionInspectionSubmit,
345
+ LodOcclusionWorldAttribution,
346
+ LodOcclusionWorldInspection,
347
+ LodOcclusionWorldInspectionInput,
348
+ } from './scene/visibility/inspection';
349
+ export {
350
+ consumeLodOcclusionInspection,
351
+ inspectLodOcclusion,
352
+ LOD_OCCLUSION_INSPECTION_MAX_BYTES,
353
+ LOD_OCCLUSION_INSPECTION_SCHEMA,
354
+ serializeLodOcclusionInspection,
355
+ } from './scene/visibility/inspection';
356
+ export {
357
+ SHADOW_ATLAS_DEFAULT_FACE_SIZE,
358
+ SHADOW_ATLAS_DEFAULT_LAYERS,
359
+ ShadowAtlas,
360
+ } from './shadow-atlas';
361
+ export type {
362
+ SsrAdmissionBudget,
363
+ SsrAdmissionFailure,
364
+ SsrAdmissionIdentity,
365
+ SsrAdmissionInput,
366
+ SsrAdmissionResult,
367
+ SsrAdmissionWork,
368
+ SsrDependenciesInspection,
369
+ SsrFormatReceipt,
370
+ SsrReflectionFallbackReceipt,
371
+ SsrTemporalReceipt,
372
+ } from './ssr/admission';
373
+ export {
374
+ admitSsrM0,
375
+ projectSsrDependencies,
376
+ resolveSsrAdmissionGeneration,
377
+ SSR_FORMAT_PROFILE,
378
+ SSR_FORMAT_STAGES,
379
+ zeroSsrAdmissionWork,
380
+ } from './ssr/admission';
381
+ export {
382
+ composeSsrReflection,
383
+ type SsrCompositionInput,
384
+ type SsrCompositionInputError,
385
+ type SsrCompositionResult,
386
+ type SsrReflectionColor,
387
+ } from './ssr/composition';
388
+ export type {
389
+ RenderTarget,
390
+ RenderTargetAdmissionLimits,
391
+ RenderTargetDepthFormat,
392
+ RenderTargetDescriptor,
393
+ RenderTargetFormat,
394
+ RenderTargetMipLevels,
395
+ RenderTargetReadbackData,
396
+ RenderTargetReadbackRequest,
397
+ RenderTargetReadbackTicket,
398
+ RenderTargetSampleCount,
399
+ RenderTargetShape,
400
+ RenderTargetTextureAspect,
401
+ RenderTargetTextureSource,
402
+ RenderTargetTextureSourceOptions,
403
+ } from './targets/contracts';
182
404
  export type { TemporalInspection, TemporalResourceInspection } from './temporal/inspection';
183
405
  export {
184
406
  SCENE_DATA_TEMPORAL_V1_DESCRIPTOR,
@@ -4,7 +4,77 @@
4
4
  * extract/record dependency graph.
5
5
  */
6
6
 
7
+ import type { DirectionalShadowFilterLabel } from './components/directional-shadow-filter';
7
8
  import type { PointsLinesInspection } from './points-lines/inspection';
9
+ import type { LodOcclusionInspection } from './scene/visibility/inspection';
10
+ import type { SsrAdmissionIdentity } from './ssr/identity';
11
+
12
+ export type {
13
+ LodOcclusionInspection,
14
+ LodOcclusionInspectionRow,
15
+ LodOcclusionWorldAttribution,
16
+ LodOcclusionWorldInspection,
17
+ } from './scene/visibility/inspection';
18
+
19
+ export interface LodOcclusionInspectionSummary extends LodOcclusionInspection {
20
+ readonly timing?: {
21
+ readonly medianUs: number;
22
+ readonly p95Us: number;
23
+ readonly samples: number;
24
+ };
25
+ }
26
+
27
+ /**
28
+ * SSR M0 inspection is a detached projection of the consumer admission
29
+ * result. The admission owner remains in `ssr/admission`; this re-export
30
+ * keeps inspection callers on the same typed identity and status vocabulary.
31
+ */
32
+ export type {
33
+ SsrAdmissionBudget,
34
+ SsrAdmissionResult,
35
+ SsrAdmissionWork,
36
+ SsrDependenciesInspection,
37
+ SsrFormatReceipt,
38
+ SsrReflectionFallbackReceipt,
39
+ SsrTemporalReceipt,
40
+ } from './ssr/admission';
41
+ export type {
42
+ SsrAdmissionError,
43
+ SsrAdmissionErrorCode,
44
+ SsrAdmissionErrorDetail,
45
+ SsrOwnerRecoveryAction,
46
+ } from './ssr/errors';
47
+ export type { SsrAdmissionIdentity } from './ssr/identity';
48
+
49
+ export interface LightInspectionInput {
50
+ readonly generation: number;
51
+ readonly candidate: string | undefined;
52
+ readonly accepted: string | undefined;
53
+ readonly lastKnownGood: string | undefined;
54
+ readonly failure: string | undefined;
55
+ readonly failureKeys: readonly string[];
56
+ readonly resourceCount: number;
57
+ readonly uploadBytes: number;
58
+ }
59
+
60
+ export type LightInspection = Readonly<LightInspectionInput>;
61
+
62
+ export function projectLightInspection(input: LightInspectionInput): LightInspection {
63
+ return Object.freeze({
64
+ generation: input.generation,
65
+ candidate: input.candidate,
66
+ accepted: input.accepted,
67
+ lastKnownGood: input.lastKnownGood,
68
+ failure: input.failure,
69
+ failureKeys: [...input.failureKeys],
70
+ resourceCount: input.resourceCount,
71
+ uploadBytes: input.uploadBytes,
72
+ });
73
+ }
74
+
75
+ export function lightInspectionIdentity(topology: string, generation: number): string {
76
+ return `${topology}:generation-${generation}`;
77
+ }
8
78
 
9
79
  export type BloomGraphStatus = 'empty' | 'valid' | 'invalid';
10
80
 
@@ -33,6 +103,62 @@ export interface BatchTopologyInspection {
33
103
  readonly ineligible: number;
34
104
  }
35
105
 
106
+ export interface ProbeBlendRecordInspection {
107
+ readonly objectKey: number;
108
+ readonly generation: number;
109
+ readonly localBlendFraction: number;
110
+ readonly shPreblend: readonly number[];
111
+ readonly byteLength: number;
112
+ readonly candidate: boolean;
113
+ readonly accepted: boolean;
114
+ readonly lastKnownGood: boolean;
115
+ readonly sentinel: string | undefined;
116
+ readonly probeBlendIndex: number;
117
+ readonly contributors: readonly {
118
+ readonly identity: string;
119
+ readonly distance: number;
120
+ readonly radius: number;
121
+ readonly coverage: number;
122
+ readonly q: number;
123
+ readonly qHat: number;
124
+ readonly alpha: number;
125
+ }[];
126
+ readonly qHatSum: number;
127
+ readonly rStar: number;
128
+ readonly fallbackReason: string | undefined;
129
+ }
130
+
131
+ export interface ProbeSkyInspection {
132
+ readonly available: boolean;
133
+ readonly identity: string | undefined;
134
+ readonly sourceKey: string | undefined;
135
+ readonly irradiance: readonly [number, number, number];
136
+ readonly fallbackReason: string | undefined;
137
+ }
138
+
139
+ export interface ProbeBlendInspection {
140
+ readonly activeContributorCount: number;
141
+ readonly admittedProbeCount: number;
142
+ readonly coverage: number;
143
+ readonly skyResidualFraction: number;
144
+ readonly finite: boolean;
145
+ readonly errorCode: 'capacity-exceeded' | 'invalid-admitted-prefix' | undefined;
146
+ readonly records: readonly ProbeBlendRecordInspection[];
147
+ readonly sky: ProbeSkyInspection;
148
+ readonly dirtyVisitCount: number;
149
+ readonly dirtyReasons: readonly string[];
150
+ readonly receipt: {
151
+ readonly activeIdentities: readonly string[];
152
+ readonly admittedIdentities: readonly string[];
153
+ readonly rejectedIdentities: readonly string[];
154
+ readonly stableOrder: readonly string[];
155
+ readonly capacity: number;
156
+ readonly scaleRadius: number;
157
+ readonly finite: boolean;
158
+ readonly overflowReason: 'active-count-exceeds-capacity' | undefined;
159
+ };
160
+ }
161
+
36
162
  export interface GpuSceneTableInspection {
37
163
  readonly capacity: number;
38
164
  readonly bytes: number;
@@ -63,6 +189,154 @@ export interface GpuDrivenProductionInspection {
63
189
  readonly topologyRevision: number | undefined;
64
190
  readonly validatedGpuOwnedRows: number;
65
191
  readonly cpuFallbackDrawItems: number;
192
+ /** Index work accumulated by the real GPU LOD selector for the last submit. */
193
+ readonly geometryWork: number;
194
+ /** Level-0 index work for the same selected candidates. */
195
+ readonly rootGeometryWork: number;
196
+ /** `1 - geometryWork / rootGeometryWork` when the root denominator is non-zero. */
197
+ readonly geometryWorkReduction: number;
198
+ /** Number of selector batches in the last filtered production plan. */
199
+ readonly batchCount: number;
200
+ /** Number of non-zero-capacity indirect raster commands actually encoded. */
201
+ readonly indirectDrawCount: number;
202
+ }
203
+
204
+ export type DirectionalShadowEffectiveProfile =
205
+ | 'off'
206
+ | DirectionalShadowFilterLabel
207
+ | 'rhi-null-structural';
208
+
209
+ export type DirectionalShadowProfile = 'off' | DirectionalShadowFilterLabel;
210
+
211
+ export interface DirectionalShadowInspectionError {
212
+ readonly code: string;
213
+ readonly expected: string;
214
+ readonly hint: string;
215
+ readonly detail?: unknown;
216
+ }
217
+
218
+ /** Bounded, detached Directional shadow facts for AI-readable inspection. */
219
+ export interface DirectionalShadowInspection {
220
+ readonly requested: DirectionalShadowProfile;
221
+ readonly effective: DirectionalShadowEffectiveProfile;
222
+ readonly status: 'accepted' | 'fallback' | 'rejected';
223
+ readonly fallbackReason?: 'webgl2-unsupported' | 'rhi-null-structural' | 'candidate-failed';
224
+ readonly lastKnownGood: boolean;
225
+ readonly pixelEvidence: 'available' | 'not-available';
226
+ readonly cascadeCount: number;
227
+ readonly mapSize: number;
228
+ readonly atlasBytes: number;
229
+ readonly writerPasses: number;
230
+ readonly blockerTaps: number;
231
+ readonly filterTapUpperBound: number;
232
+ readonly seamTapUpperBound: number;
233
+ readonly shadowAngularRadius: number | undefined;
234
+ readonly maxPenumbraTexels: number | undefined;
235
+ readonly deviceGeneration: number;
236
+ readonly graphGeneration: number;
237
+ readonly error?: DirectionalShadowInspectionError;
238
+ }
239
+
240
+ export type ReflectionProbeSelectionInspection =
241
+ | { readonly kind: 'probe'; readonly worldId: number; readonly entityKey: number }
242
+ | { readonly kind: 'skylight' };
243
+
244
+ export type ReflectionFallbackSource = 'probe' | 'skylight' | 'neutral';
245
+
246
+ export type ReflectionFallbackState = 'candidate' | 'active' | 'lkg' | 'neutral' | 'unavailable';
247
+
248
+ /** Detached committed fallback facts; never exposes a live GPU handle. */
249
+ export interface ReflectionFallbackReceipt {
250
+ /** Device-scope owner that identifies the renderer transaction. */
251
+ readonly rendererId?: string;
252
+ /** Stable producer identity for this detached projection. */
253
+ readonly producerId?: string;
254
+ /** Stable main-pass renderable identity, when this is a per-renderable row. */
255
+ readonly renderableKey?: string;
256
+ /** Stable producer source identity, never a physical resource handle. */
257
+ readonly sourceKey?: string;
258
+ /** Frame number that produced this detached receipt. */
259
+ readonly frameId?: number;
260
+ readonly source: ReflectionFallbackSource;
261
+ readonly sourceGeneration: number;
262
+ readonly projectionGeneration: number;
263
+ readonly deviceGeneration: number;
264
+ readonly state: ReflectionFallbackState;
265
+ readonly candidateVisible: false;
266
+ readonly coverage: number;
267
+ readonly extent?: readonly [number, number, number];
268
+ readonly brdfSignature: string;
269
+ /** Exact host identity of the detached producer transaction, when bound. */
270
+ readonly identity?: SsrAdmissionIdentity;
271
+ }
272
+
273
+ /**
274
+ * One completed readback for the frame-owned fallback attachment.
275
+ *
276
+ * This is an aggregate attachment fact, not a per-renderable row. Row
277
+ * receipts deliberately carry source/coverage identity only, so one pixel
278
+ * cannot be mistaken for every renderable's BRDF result.
279
+ */
280
+ export interface ReflectionFallbackReadbackReceipt {
281
+ readonly rendererId: string;
282
+ readonly producerId: string;
283
+ readonly frameId: number;
284
+ readonly deviceGeneration: number;
285
+ readonly graphGeneration: number;
286
+ readonly textureIdentity: number;
287
+ readonly format: string;
288
+ readonly size: { readonly width: number; readonly height: number };
289
+ readonly linearHdr: readonly [number, number, number, number];
290
+ readonly readbackHash: string;
291
+ readonly readbackStatus: 'complete';
292
+ }
293
+
294
+ export type ReflectionFallbackFailureStage =
295
+ | 'prepare'
296
+ | 'filter'
297
+ | 'build'
298
+ | 'encode'
299
+ | 'finish'
300
+ | 'submit'
301
+ | 'completion';
302
+
303
+ export type ReflectionFallbackRecoveryAction =
304
+ | 'use-LKG'
305
+ | 'use-Skylight'
306
+ | 'use-neutral'
307
+ | 'recapture'
308
+ | 'rebuild'
309
+ | 'retry';
310
+
311
+ export interface ReflectionFallbackInspection {
312
+ readonly receipt: ReflectionFallbackReceipt;
313
+ readonly failureStage?: ReflectionFallbackFailureStage;
314
+ readonly failureCode?: string;
315
+ readonly expected?: string;
316
+ readonly detail?: Readonly<Record<string, unknown>>;
317
+ readonly recoveryAction: ReflectionFallbackRecoveryAction;
318
+ }
319
+
320
+ export interface ReflectionProbeInspection {
321
+ readonly selection: ReflectionProbeSelectionInspection;
322
+ readonly factCount: number;
323
+ readonly acceptedCount: number;
324
+ readonly activeCount: number;
325
+ readonly rawFacesCaptured: number;
326
+ readonly filteredStepsCompleted: number;
327
+ readonly filteredMipLevels: readonly number[];
328
+ readonly scheduledRawFaces: number;
329
+ readonly scheduledFilteredSteps: number;
330
+ readonly pipelineReady: boolean;
331
+ readonly pipelineWarmupAttempts: number;
332
+ readonly pipelineWarmupFailure?: string;
333
+ readonly reflectionFallback: ReflectionFallbackReceipt;
334
+ /** Latest bounded fallback failure and owner-directed recovery action. */
335
+ readonly reflectionFallbackInspection: ReflectionFallbackInspection;
336
+ /** Bounded per-renderable projections; no live graph resources are included. */
337
+ readonly reflectionFallbacks?: readonly ReflectionFallbackReceipt[];
338
+ /** Completed frame attachment readback; separate from per-renderable rows. */
339
+ readonly reflectionFallbackReadback?: ReflectionFallbackReadbackReceipt;
66
340
  }
67
341
 
68
342
  /** Detached semantic descriptor for the Standard scene-temporal producer. */
@@ -99,7 +373,6 @@ export type RenderSceneResyncReason =
99
373
  | 'attach'
100
374
  | 'asset-catalog-changed'
101
375
  | 'shared-ref-changed'
102
- | 'journal-overflow'
103
376
  | 'unsupported-change'
104
377
  | 'non-rigid-lane'
105
378
  | 'explicit-invalidate';
@@ -112,6 +385,8 @@ export interface PersistentRenderSceneInspection {
112
385
  readonly transformUpdates: number;
113
386
  readonly lastResyncReason: RenderSceneResyncReason | undefined;
114
387
  readonly projectionRecords: number;
388
+ /** Numeric probe ownership facts; no GPU handles or object graph references. */
389
+ readonly probeBlend?: ProbeBlendInspection;
115
390
  readonly topology: BatchTopologyInspection;
116
391
  readonly gpu:
117
392
  | { readonly status: 'inactive' }