@forgeax/engine-render 0.1.21 → 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 (426) hide show
  1. package/README.md +150 -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.map +1 -1
  5. package/dist/assembly/factory.d.ts +14 -6
  6. package/dist/assembly/factory.d.ts.map +1 -1
  7. package/dist/assembly/host-contract.d.ts +10 -0
  8. package/dist/assembly/host-contract.d.ts.map +1 -1
  9. package/dist/authoring.mjs +1 -1
  10. package/dist/{chunk-PCHBPYML.mjs → chunk-4L3P6DT5.mjs} +2 -2
  11. package/dist/chunk-4L3P6DT5.mjs.map +1 -0
  12. package/dist/{chunk-VFPLTKCU.mjs → chunk-4NPUASZR.mjs} +15 -4
  13. package/dist/chunk-4NPUASZR.mjs.map +1 -0
  14. package/dist/chunk-DIYW3M5D.mjs +5085 -0
  15. package/dist/chunk-DIYW3M5D.mjs.map +1 -0
  16. package/dist/chunk-FBC4R44J.mjs +1003 -0
  17. package/dist/chunk-FBC4R44J.mjs.map +1 -0
  18. package/dist/{chunk-FS2KNUQH.mjs → chunk-FF7K3FSO.mjs} +253 -489
  19. package/dist/chunk-FF7K3FSO.mjs.map +1 -0
  20. package/dist/chunk-HZUPSYW7.mjs +1104 -0
  21. package/dist/chunk-HZUPSYW7.mjs.map +1 -0
  22. package/dist/{chunk-6OPXDQ2E.mjs → chunk-QODA5UKU.mjs} +33 -294
  23. package/dist/chunk-QODA5UKU.mjs.map +1 -0
  24. package/dist/chunk-YALPS44A.mjs +296 -0
  25. package/dist/chunk-YALPS44A.mjs.map +1 -0
  26. package/dist/{chunk-5YADUCA7.mjs → chunk-ZUWKAZ2I.mjs} +585 -991
  27. package/dist/chunk-ZUWKAZ2I.mjs.map +1 -0
  28. package/dist/cluster-binner.d.ts +5 -0
  29. package/dist/cluster-binner.d.ts.map +1 -1
  30. package/dist/components/index.d.ts +3 -0
  31. package/dist/components/index.d.ts.map +1 -1
  32. package/dist/components/light-helpers.d.ts +4 -0
  33. package/dist/components/light-helpers.d.ts.map +1 -1
  34. package/dist/components/light-probe.d.ts +9 -0
  35. package/dist/components/light-probe.d.ts.map +1 -0
  36. package/dist/components/rect-area-light.d.ts +12 -0
  37. package/dist/components/rect-area-light.d.ts.map +1 -0
  38. package/dist/components/scene-instance.d.ts +4 -0
  39. package/dist/components/scene-instance.d.ts.map +1 -1
  40. package/dist/components/spot-light.d.ts +3 -0
  41. package/dist/components/spot-light.d.ts.map +1 -1
  42. package/dist/construct-renderer.mjs +10437 -10044
  43. package/dist/construct-renderer.mjs.map +1 -1
  44. package/dist/device/gpu-residency.d.ts +8 -1
  45. package/dist/device/gpu-residency.d.ts.map +1 -1
  46. package/dist/device/lifecycle-transaction.d.ts +2 -0
  47. package/dist/device/lifecycle-transaction.d.ts.map +1 -0
  48. package/dist/environment/lifecycle.d.ts.map +1 -1
  49. package/dist/errors/gpu-driven.d.ts +26 -0
  50. package/dist/errors/gpu-driven.d.ts.map +1 -0
  51. package/dist/errors/index.d.ts +1 -0
  52. package/dist/errors/index.d.ts.map +1 -1
  53. package/dist/errors/recover.d.ts +9 -1
  54. package/dist/errors/recover.d.ts.map +1 -1
  55. package/dist/errors/render.d.ts +26 -1
  56. package/dist/errors/render.d.ts.map +1 -1
  57. package/dist/extract/gpu-driven.d.ts +50 -0
  58. package/dist/extract/gpu-driven.d.ts.map +1 -0
  59. package/dist/extract/visibility.d.ts.map +1 -1
  60. package/dist/gpu-driven/batch-topology.d.ts +34 -0
  61. package/dist/gpu-driven/batch-topology.d.ts.map +1 -1
  62. package/dist/gpu-driven/prepared-draw.d.ts +63 -0
  63. package/dist/gpu-driven/prepared-draw.d.ts.map +1 -0
  64. package/dist/gpu-driven/production-raster.d.ts +98 -2
  65. package/dist/gpu-driven/production-raster.d.ts.map +1 -1
  66. package/dist/gpu-driven/view-gpu.d.ts +64 -1
  67. package/dist/gpu-driven/view-gpu.d.ts.map +1 -1
  68. package/dist/gpu-scene-schema.d.ts +14 -0
  69. package/dist/gpu-scene-schema.d.ts.map +1 -1
  70. package/dist/gpu-scene.d.ts +8 -1
  71. package/dist/gpu-scene.d.ts.map +1 -1
  72. package/dist/gpu-usage.d.ts +0 -1
  73. package/dist/gpu-usage.d.ts.map +1 -1
  74. package/dist/hdrp-buffers.d.ts +3 -3
  75. package/dist/hdrp-buffers.d.ts.map +1 -1
  76. package/dist/index.d.ts +12 -1
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.mjs +90 -5
  79. package/dist/index.mjs.map +1 -1
  80. package/dist/inspection-types.d.ts +163 -1
  81. package/dist/inspection-types.d.ts.map +1 -1
  82. package/dist/internal.d.ts +9 -0
  83. package/dist/internal.d.ts.map +1 -1
  84. package/dist/internal.mjs +23 -2
  85. package/dist/internal.mjs.map +1 -1
  86. package/dist/light-buffer-layout.d.ts +58 -149
  87. package/dist/light-buffer-layout.d.ts.map +1 -1
  88. package/dist/materials.d.ts.map +1 -1
  89. package/dist/pbr-pipeline.d.ts +26 -12
  90. package/dist/pbr-pipeline.d.ts.map +1 -1
  91. package/dist/pipeline/standard-forward-lane.d.ts.map +1 -1
  92. package/dist/pipeline/standard-lighting/graph.d.ts.map +1 -1
  93. package/dist/pipeline/standard-lighting/light-frame.d.ts +3 -3
  94. package/dist/pipeline/standard-lighting/light-frame.d.ts.map +1 -1
  95. package/dist/pipeline/standard-lighting/topology.d.ts +1 -1
  96. package/dist/pipeline/standard-lighting/topology.d.ts.map +1 -1
  97. package/dist/pipeline/standard-lighting/transport.d.ts.map +1 -1
  98. package/dist/pipeline/standard-pipeline.d.ts.map +1 -1
  99. package/dist/pipeline-builder.d.ts +2 -0
  100. package/dist/pipeline-builder.d.ts.map +1 -1
  101. package/dist/pipeline-spec.d.ts +1 -1
  102. package/dist/pipeline-spec.d.ts.map +1 -1
  103. package/dist/plugin.d.ts.map +1 -1
  104. package/dist/prepare/extended-lighting/ltc-resources.d.ts +31 -0
  105. package/dist/prepare/extended-lighting/ltc-resources.d.ts.map +1 -0
  106. package/dist/prepare/extended-lighting/resources.d.ts +72 -0
  107. package/dist/prepare/extended-lighting/resources.d.ts.map +1 -0
  108. package/dist/prepare/extended-lighting/spot-modifiers.d.ts +42 -0
  109. package/dist/prepare/extended-lighting/spot-modifiers.d.ts.map +1 -0
  110. package/dist/prepare/extended-lighting/state.d.ts +24 -0
  111. package/dist/prepare/extended-lighting/state.d.ts.map +1 -0
  112. package/dist/record/frame-lighting.d.ts +8 -6
  113. package/dist/record/frame-lighting.d.ts.map +1 -1
  114. package/dist/record/frame-snapshot.d.ts +50 -10
  115. package/dist/record/frame-snapshot.d.ts.map +1 -1
  116. package/dist/record/frame.d.ts +7 -3
  117. package/dist/record/frame.d.ts.map +1 -1
  118. package/dist/record/gpu-timing.d.ts +19 -7
  119. package/dist/record/gpu-timing.d.ts.map +1 -1
  120. package/dist/record/helpers.d.ts +0 -20
  121. package/dist/record/helpers.d.ts.map +1 -1
  122. package/dist/record/main-pass-geometry.d.ts +6 -1
  123. package/dist/record/main-pass-geometry.d.ts.map +1 -1
  124. package/dist/record/main-pass-material.d.ts +3 -1
  125. package/dist/record/main-pass-material.d.ts.map +1 -1
  126. package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
  127. package/dist/record/mesh-ssbo.d.ts.map +1 -1
  128. package/dist/record/render-context.d.ts +57 -6
  129. package/dist/record/render-context.d.ts.map +1 -1
  130. package/dist/record/shadow-pass.d.ts.map +1 -1
  131. package/dist/record/typed-frame-graph.d.ts +49 -2
  132. package/dist/record/typed-frame-graph.d.ts.map +1 -1
  133. package/dist/record/view-ubo.d.ts +1 -2
  134. package/dist/record/view-ubo.d.ts.map +1 -1
  135. package/dist/reflection/inspection.d.ts +10 -0
  136. package/dist/reflection/inspection.d.ts.map +1 -0
  137. package/dist/reflection/projection.d.ts +49 -0
  138. package/dist/reflection/projection.d.ts.map +1 -1
  139. package/dist/reflection/record-owner.d.ts +60 -0
  140. package/dist/reflection/record-owner.d.ts.map +1 -0
  141. package/dist/render-contract.d.ts +14 -8
  142. package/dist/render-contract.d.ts.map +1 -1
  143. package/dist/render-pipeline.d.ts +7 -0
  144. package/dist/render-pipeline.d.ts.map +1 -1
  145. package/dist/render-system-extract.d.ts +104 -16
  146. package/dist/render-system-extract.d.ts.map +1 -1
  147. package/dist/render-system.d.ts +12 -1
  148. package/dist/render-system.d.ts.map +1 -1
  149. package/dist/scene/probe-blend-record.d.ts +22 -0
  150. package/dist/scene/probe-blend-record.d.ts.map +1 -0
  151. package/dist/scene/probe-blend.d.ts +142 -0
  152. package/dist/scene/probe-blend.d.ts.map +1 -0
  153. package/dist/scene/render-scene-types.d.ts +0 -6
  154. package/dist/scene/render-scene-types.d.ts.map +1 -1
  155. package/dist/scene/render-scene.d.ts +103 -9
  156. package/dist/scene/render-scene.d.ts.map +1 -1
  157. package/dist/scene/visibility/bounds.d.ts +20 -0
  158. package/dist/scene/visibility/bounds.d.ts.map +1 -0
  159. package/dist/scene/visibility/budget.d.ts +16 -0
  160. package/dist/scene/visibility/budget.d.ts.map +1 -0
  161. package/dist/scene/visibility/facet.d.ts +73 -0
  162. package/dist/scene/visibility/facet.d.ts.map +1 -0
  163. package/dist/scene/visibility/gpu-frame-timing.d.ts +41 -0
  164. package/dist/scene/visibility/gpu-frame-timing.d.ts.map +1 -0
  165. package/dist/scene/visibility/gpu-lod.d.ts +46 -0
  166. package/dist/scene/visibility/gpu-lod.d.ts.map +1 -0
  167. package/dist/scene/visibility/inspection.d.ts +132 -0
  168. package/dist/scene/visibility/inspection.d.ts.map +1 -0
  169. package/dist/scene/visibility/lod-selector.d.ts +25 -0
  170. package/dist/scene/visibility/lod-selector.d.ts.map +1 -0
  171. package/dist/scene/visibility/occlusion-confidence.d.ts +81 -0
  172. package/dist/scene/visibility/occlusion-confidence.d.ts.map +1 -0
  173. package/dist/scene/visibility/occlusion-pass.d.ts +57 -0
  174. package/dist/scene/visibility/occlusion-pass.d.ts.map +1 -0
  175. package/dist/scene/visibility/occlusion-query-pool.d.ts +57 -0
  176. package/dist/scene/visibility/occlusion-query-pool.d.ts.map +1 -0
  177. package/dist/scene/visibility/occlusion-runtime.d.ts +96 -0
  178. package/dist/scene/visibility/occlusion-runtime.d.ts.map +1 -0
  179. package/dist/scene/visibility/types.d.ts +34 -0
  180. package/dist/scene/visibility/types.d.ts.map +1 -0
  181. package/dist/ssr/admission.d.ts +122 -0
  182. package/dist/ssr/admission.d.ts.map +1 -0
  183. package/dist/ssr/composition.d.ts +32 -0
  184. package/dist/ssr/composition.d.ts.map +1 -0
  185. package/dist/ssr/errors.d.ts +39 -0
  186. package/dist/ssr/errors.d.ts.map +1 -0
  187. package/dist/ssr/identity.d.ts +13 -0
  188. package/dist/ssr/identity.d.ts.map +1 -0
  189. package/dist/systems/skin-palette-allocator.d.ts +1 -1
  190. package/dist/temporal/frame-coordinator.d.ts +13 -0
  191. package/dist/temporal/frame-coordinator.d.ts.map +1 -1
  192. package/dist/temporal/frame.d.ts +2 -0
  193. package/dist/temporal/frame.d.ts.map +1 -1
  194. package/dist/temporal/index.mjs +6 -5
  195. package/dist/temporal/view.d.ts +7 -0
  196. package/dist/temporal/view.d.ts.map +1 -1
  197. package/dist/tilemap-chunk-extract-system.d.ts +1 -1
  198. package/dist/typed-render-graph-primitives.d.ts +4 -0
  199. package/dist/typed-render-graph-primitives.d.ts.map +1 -1
  200. package/dist/volume/passes.d.ts +8 -4
  201. package/dist/volume/passes.d.ts.map +1 -1
  202. package/package.json +20 -20
  203. package/src/__tests__/cluster-grid-default-surface.unit.test.ts +5 -0
  204. package/src/__tests__/detached-inspection.integration.test.ts +6 -0
  205. package/src/__tests__/device-feature-admission.unit.test.ts +13 -1
  206. package/src/__tests__/direct-light-snapshot.unit.test.ts +59 -3
  207. package/src/__tests__/environment-generation.integration.test.ts +16 -0
  208. package/src/__tests__/evidence-identity.ts +13 -0
  209. package/src/__tests__/evidence-identity.unit.test.ts +24 -0
  210. package/src/__tests__/extended-lighting-recovery.browser.test.ts +14 -0
  211. package/src/__tests__/extended-lighting-recovery.dawn.test.ts +14 -0
  212. package/src/__tests__/extended-lighting-recovery.integration.test.ts +81 -0
  213. package/src/__tests__/extended-lighting-resources.unit.test.ts +51 -0
  214. package/src/__tests__/extended-lighting-zero-feature.integration.test.ts +52 -0
  215. package/src/__tests__/factory-contract.integration.test.ts +33 -0
  216. package/src/__tests__/frame-observation.contract.test.ts +15 -0
  217. package/src/__tests__/gpu-driven-batch-topology-pbr.unit.test.ts +146 -0
  218. package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +1 -0
  219. package/src/__tests__/gpu-driven-indirect-raster.dawn.test.ts +1 -0
  220. package/src/__tests__/gpu-driven-production.integration.test.ts +572 -9
  221. package/src/__tests__/gpu-driven-scaling.unit.test.ts +66 -2
  222. package/src/__tests__/gpu-driven-view-gpu-evidence.ts +26 -1
  223. package/src/__tests__/gpu-driven-view-graph.integration.test.ts +89 -2
  224. package/src/__tests__/gpu-driven-view.browser.test.ts +3 -3
  225. package/src/__tests__/gpu-driven-view.dawn.test.ts +3 -3
  226. package/src/__tests__/gpu-driven-view.unit.test.ts +50 -0
  227. package/src/__tests__/gpu-lod-evidence.ts +188 -0
  228. package/src/__tests__/gpu-lod-fallback.integration.test.ts +10 -0
  229. package/src/__tests__/gpu-lod-indirect.integration.test.ts +40 -0
  230. package/src/__tests__/gpu-lod-parity.dawn.test.ts +29 -0
  231. package/src/__tests__/gpu-lod-readiness.integration.test.ts +52 -0
  232. package/src/__tests__/gpu-lod-schema.unit.test.ts +66 -0
  233. package/src/__tests__/gpu-lod-selector.unit.test.ts +28 -0
  234. package/src/__tests__/gpu-lod-silhouette.browser.test.ts +13 -0
  235. package/src/__tests__/gpu-resource-store-stride.unit.test.ts +66 -1
  236. package/src/__tests__/gpu-scene.dawn.test.ts +8 -1
  237. package/src/__tests__/gpu-scene.unit.test.ts +49 -3
  238. package/src/__tests__/light-buffer-layout.unit.test.ts +113 -3
  239. package/src/__tests__/light-inspection.unit.test.ts +55 -0
  240. package/src/__tests__/light-resource-error.unit.test.ts +43 -0
  241. package/src/__tests__/lighting-scene-roundtrip.integration.test.ts +109 -0
  242. package/src/__tests__/lod-bounds.unit.test.ts +42 -0
  243. package/src/__tests__/lod-cpu-lane.integration.test.ts +55 -0
  244. package/src/__tests__/lod-cpu-no-change.perf.test.ts +19 -0
  245. package/src/__tests__/lod-gpu-frame-timing.unit.test.ts +49 -0
  246. package/src/__tests__/lod-multi-view.integration.test.ts +63 -0
  247. package/src/__tests__/lod-occlusion-device-loss.integration.test.ts +27 -0
  248. package/src/__tests__/lod-occlusion-final-decision.integration.test.ts +47 -0
  249. package/src/__tests__/lod-occlusion-inspection.integration.test.ts +217 -0
  250. package/src/__tests__/lod-occlusion-inspection.schema.test-d.ts +14 -0
  251. package/src/__tests__/lod-occlusion-inspection.unit.test.ts +72 -0
  252. package/src/__tests__/lod-occlusion-visual-evidence.ts +91 -0
  253. package/src/__tests__/lod-occlusion.browser.test.ts +15 -0
  254. package/src/__tests__/lod-occlusion.dawn.test.ts +20 -0
  255. package/src/__tests__/lod-selector.profile.test.ts +35 -0
  256. package/src/__tests__/lod-selector.unit.test.ts +68 -0
  257. package/src/__tests__/lod-visibility-identity.unit.test.ts +198 -0
  258. package/src/__tests__/lod-visibility-lifecycle.integration.test.ts +132 -0
  259. package/src/__tests__/ltc-resources.unit.test.ts +32 -0
  260. package/src/__tests__/material-contract-inventory.unit.test.ts +17 -0
  261. package/src/__tests__/occlusion-confidence.unit.test.ts +168 -0
  262. package/src/__tests__/occlusion-invalidation.integration.test.ts +37 -0
  263. package/src/__tests__/occlusion-pass-routing.unit.test.ts +16 -0
  264. package/src/__tests__/occlusion-pass.dawn.test.ts +20 -0
  265. package/src/__tests__/occlusion-pass.integration.test.ts +43 -0
  266. package/src/__tests__/occlusion-pass.rhi-null.test.ts +22 -0
  267. package/src/__tests__/occlusion-query-pool.rhi-null.test.ts +21 -0
  268. package/src/__tests__/occlusion-query-pool.unit.test.ts +95 -0
  269. package/src/__tests__/occlusion-query-ticket.integration.test.ts +47 -0
  270. package/src/__tests__/occlusion-query.dawn.test.ts +16 -0
  271. package/src/__tests__/occlusion-query.evidence.ts +178 -0
  272. package/src/__tests__/occlusion-query.rhi-null.test.ts +31 -0
  273. package/src/__tests__/occlusion-runtime.unit.test.ts +120 -0
  274. package/src/__tests__/prepared-gpu-driven-pbr.integration.test.ts +196 -0
  275. package/src/__tests__/probe-bindings.unit.test.ts +200 -0
  276. package/src/__tests__/probe-blend-numeric.unit.test.ts +67 -0
  277. package/src/__tests__/probe-blend-oracle.unit.test.ts +136 -0
  278. package/src/__tests__/probe-capacity.integration.test.ts +97 -0
  279. package/src/__tests__/probe-recovery.integration.test.ts +104 -0
  280. package/src/__tests__/probe-scene-dirty.integration.test.ts +211 -0
  281. package/src/__tests__/profiler-phase-catalog.test.ts +4 -1
  282. package/src/__tests__/profiler-phase-token.test.ts +1 -0
  283. package/src/__tests__/rect-area-boundary.unit.test.ts +24 -0
  284. package/src/__tests__/reflection-fallback-graph.unit.test.ts +67 -0
  285. package/src/__tests__/reflection-fallback-inspection.unit.test.ts +77 -0
  286. package/src/__tests__/reflection-fallback-lifecycle.integration.test.ts +21 -0
  287. package/src/__tests__/reflection-fallback-projection.unit.test.ts +90 -0
  288. package/src/__tests__/reflection-fallback-source.unit.test.ts +32 -0
  289. package/src/__tests__/reflection-probe-owner-placement.unit.test.ts +39 -0
  290. package/src/__tests__/reflection-probe-record-owner.characterization.unit.test.ts +120 -0
  291. package/src/__tests__/render-error-code-owner.test-d.ts +1 -0
  292. package/src/__tests__/render-feature-docs.unit.test.ts +12 -7
  293. package/src/__tests__/render-graph-fallback.integration.test.ts +24 -0
  294. package/src/__tests__/render-perf/extended-lighting.bench.test.ts +66 -0
  295. package/src/__tests__/render-scene-projection.unit.test.ts +447 -18
  296. package/src/__tests__/renderer-factory-material-contract.unit.test.ts +76 -0
  297. package/src/__tests__/skin-motion-regression.unit.test.ts +22 -0
  298. package/src/__tests__/skinned-shadow-caster.test.ts +2 -2
  299. package/src/__tests__/spot-modifier-projection.unit.test.ts +70 -0
  300. package/src/__tests__/ssr-admission-matrix.integration.test.ts +206 -0
  301. package/src/__tests__/ssr-composition.unit.test.ts +46 -0
  302. package/src/__tests__/ssr-fallback-zero-work.bench.test.ts +94 -0
  303. package/src/__tests__/ssr-recovery-errors.unit.test.ts +58 -0
  304. package/src/__tests__/standard-cluster-variant-resolution.unit.test.ts +67 -0
  305. package/src/__tests__/standard-clustered-pipeline.unit.test.ts +7 -0
  306. package/src/__tests__/standard-lighting-inspection.integration.test.ts +1 -1
  307. package/src/__tests__/standard-lighting-write.unit.test.ts +66 -2
  308. package/src/__tests__/temporal-fallback-generation.integration.test.ts +16 -0
  309. package/src/__tests__/temporal-view.unit.test.ts +3 -3
  310. package/src/__tests__/transmission-prewarm.unit.test.ts +69 -0
  311. package/src/__tests__/visibility-budget.integration.test.ts +140 -0
  312. package/src/__tests__/visibility-budget.unit.test.ts +70 -0
  313. package/src/__tests__/visibility-extract.integration.test.ts +11 -6
  314. package/src/__tests__/volumetric-fog-point-spot-accumulation.integration.test.ts +6 -3
  315. package/src/__tests__/volumetric-fog-stage-readback.dawn.test.ts +31 -28
  316. package/src/assembly/backend-contract.ts +13 -0
  317. package/src/assembly/device-feature-admission.ts +16 -9
  318. package/src/assembly/factory.ts +547 -93
  319. package/src/assembly/host-contract.ts +10 -0
  320. package/src/cluster-binner.ts +31 -0
  321. package/src/components/__tests__/lighting-authoring.unit.test.ts +39 -0
  322. package/src/components/__tests__/rect-area-light.unit.test.ts +33 -0
  323. package/src/components/index.ts +3 -0
  324. package/src/components/light-helpers.ts +52 -1
  325. package/src/components/light-probe.ts +13 -0
  326. package/src/components/rect-area-light.ts +15 -0
  327. package/src/components/scene-instance.ts +6 -0
  328. package/src/components/spot-light.ts +3 -0
  329. package/src/device/__tests__/extended-lighting-recovery.unit.test.ts +24 -0
  330. package/src/device/gpu-residency.ts +140 -9
  331. package/src/device/lifecycle-transaction.ts +12 -0
  332. package/src/environment/lifecycle.ts +8 -1
  333. package/src/errors/gpu-driven.ts +92 -0
  334. package/src/errors/index.ts +1 -0
  335. package/src/errors/recover.ts +32 -0
  336. package/src/errors/render.ts +55 -1
  337. package/src/extract/camera.ts +3 -3
  338. package/src/extract/gpu-driven.ts +108 -0
  339. package/src/extract/visibility.ts +0 -23
  340. package/src/gpu-driven/batch-topology.ts +206 -28
  341. package/src/gpu-driven/prepared-draw.ts +208 -0
  342. package/src/gpu-driven/production-raster.ts +953 -41
  343. package/src/gpu-driven/view-gpu.ts +411 -29
  344. package/src/gpu-scene-schema.ts +13 -0
  345. package/src/gpu-scene.ts +134 -65
  346. package/src/gpu-usage.ts +0 -1
  347. package/src/hdrp-buffers.ts +6 -6
  348. package/src/index.ts +74 -0
  349. package/src/inspection-types.ts +220 -1
  350. package/src/internal.ts +38 -0
  351. package/src/light-buffer-layout.ts +154 -324
  352. package/src/materials.ts +16 -2
  353. package/src/pbr-pipeline.ts +151 -45
  354. package/src/pipeline/standard-forward-lane.ts +47 -0
  355. package/src/pipeline/standard-lighting/graph.ts +2 -1
  356. package/src/pipeline/standard-lighting/light-frame.ts +3 -2
  357. package/src/pipeline/standard-lighting/topology.ts +1 -1
  358. package/src/pipeline/standard-lighting/transport.ts +2 -1
  359. package/src/pipeline/standard-pipeline.ts +2 -0
  360. package/src/pipeline-builder.ts +5 -2
  361. package/src/pipeline-spec.ts +12 -1
  362. package/src/plugin.ts +4 -0
  363. package/src/prepare/__tests__/extended-lighting-capability.unit.test.ts +56 -0
  364. package/src/prepare/extended-lighting/ltc-resources.ts +136 -0
  365. package/src/prepare/extended-lighting/resources.ts +389 -0
  366. package/src/prepare/extended-lighting/spot-modifiers.ts +194 -0
  367. package/src/prepare/extended-lighting/state.ts +92 -0
  368. package/src/record/__tests__/gpu-timing.unit.test.ts +177 -0
  369. package/src/record/__tests__/temporal-payload.unit.test.ts +23 -1
  370. package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +20 -1
  371. package/src/record/frame-lighting.ts +252 -53
  372. package/src/record/frame-snapshot.ts +57 -12
  373. package/src/record/frame.ts +410 -93
  374. package/src/record/gpu-timing.ts +108 -44
  375. package/src/record/helpers.ts +0 -58
  376. package/src/record/main-pass-geometry.ts +204 -39
  377. package/src/record/main-pass-material.ts +8 -1
  378. package/src/record/main-pass-sprite-draws.ts +52 -85
  379. package/src/record/mesh-ssbo.ts +47 -36
  380. package/src/record/render-context.ts +65 -4
  381. package/src/record/shadow-pass.ts +66 -40
  382. package/src/record/typed-frame-graph.ts +225 -83
  383. package/src/record/view-ubo.ts +14 -24
  384. package/src/reflection/inspection.ts +67 -0
  385. package/src/reflection/projection.ts +196 -1
  386. package/src/reflection/record-owner.ts +1283 -0
  387. package/src/render-contract.ts +17 -5
  388. package/src/render-pipeline.ts +5 -0
  389. package/src/render-system-extract.ts +493 -134
  390. package/src/render-system.ts +811 -615
  391. package/src/scene/__tests__/changed-block-summary.candidate.test.ts +36 -0
  392. package/src/scene/probe-blend-record.ts +54 -0
  393. package/src/scene/probe-blend.ts +813 -0
  394. package/src/scene/render-scene-types.ts +0 -7
  395. package/src/scene/render-scene.ts +848 -183
  396. package/src/scene/visibility/bounds.ts +57 -0
  397. package/src/scene/visibility/budget.ts +40 -0
  398. package/src/scene/visibility/facet.ts +400 -0
  399. package/src/scene/visibility/gpu-frame-timing.ts +101 -0
  400. package/src/scene/visibility/gpu-lod.ts +119 -0
  401. package/src/scene/visibility/inspection.ts +313 -0
  402. package/src/scene/visibility/lod-selector.ts +84 -0
  403. package/src/scene/visibility/occlusion-confidence.ts +478 -0
  404. package/src/scene/visibility/occlusion-pass.ts +165 -0
  405. package/src/scene/visibility/occlusion-query-pool.ts +178 -0
  406. package/src/scene/visibility/occlusion-runtime.ts +672 -0
  407. package/src/scene/visibility/types.ts +50 -0
  408. package/src/ssr/admission.ts +451 -0
  409. package/src/ssr/composition.ts +73 -0
  410. package/src/ssr/errors.ts +76 -0
  411. package/src/ssr/identity.ts +12 -0
  412. package/src/systems/skin-palette-allocator.ts +1 -1
  413. package/src/temporal/frame-coordinator.ts +26 -0
  414. package/src/temporal/frame.ts +14 -1
  415. package/src/temporal/view.ts +11 -0
  416. package/src/tilemap-chunk-extract-system.ts +4 -4
  417. package/src/typed-render-graph-primitives.ts +48 -0
  418. package/src/volume/passes.ts +46 -49
  419. package/dist/.tsbuildinfo +0 -1
  420. package/dist/chunk-5YADUCA7.mjs.map +0 -1
  421. package/dist/chunk-6OPXDQ2E.mjs.map +0 -1
  422. package/dist/chunk-BXBQQKFQ.mjs +0 -67
  423. package/dist/chunk-BXBQQKFQ.mjs.map +0 -1
  424. package/dist/chunk-FS2KNUQH.mjs.map +0 -1
  425. package/dist/chunk-PCHBPYML.mjs.map +0 -1
  426. package/dist/chunk-VFPLTKCU.mjs.map +0 -1
@@ -1,126 +1,20 @@
1
1
  import { type Result, RhiError } from '@forgeax/engine-rhi';
2
- import type { PointLightSnapshot, SpotLightSnapshot } from './render-system-extract';
3
- /** Byte size of one HDRP LightSlot in std430 (16 x f32). AC-11 absolute-value lock. */
4
- export declare const BYTES_PER_LIGHT_SLOT = 64;
5
- /**
6
- * LightSlot kind discriminant — closed enum matching WGSL `KIND_POINT` / `KIND_SPOT`.
7
- * Values are u32 bit-tags (not sequential); AC-12 exhaustive switch.
8
- */
9
- export declare const LightSlotKind: {
10
- readonly POINT: 0;
11
- readonly SPOT: 1;
12
- };
13
- export type LightSlotKind = (typeof LightSlotKind)[keyof typeof LightSlotKind];
14
- /**
15
- * Byte-offset layout of one LightSlot in std430 (16 f32 = 64 B).
16
- *
17
- * Mirrors the WGSL `LightSlot` struct field order byte-for-byte.
18
- * All offsets verified by w14 lightslot-layout.test.ts.
19
- *
20
- * feat-20260612-point-light-shadows-urp-hdrp M4 / T-M4-4 (plan-strategy §D-8):
21
- * the prior u32x3 pad lanes at byte 52..64 carry shadow-side data on the HDRP
22
- * path. `kind_and_pad.x = kind` (u32), `.y = shadow identity` (i32, sentinel
23
- * -1 = no shadow). For point lights `.z/.w` carry near/far (f32 via bitcast);
24
- * for spot lights `.z` carries shadowIntensity and `.w` carries the PCF
25
- * kernel width (f32 via bitcast). The shader reads these lanes through
26
- * `bitcast<f32>(...)` to
27
- * keep the WGSL struct as `vec4<u32>` (alignment + naga_oil unchanged).
28
- */
29
- export declare const LIGHTSLOT_LAYOUT: {
30
- readonly byteSize: 64;
31
- readonly positionOffset: 0;
32
- readonly invRangeSquaredOffset: 12;
33
- readonly colorOffset: 16;
34
- readonly cosInnerOffset: 28;
35
- readonly directionOffset: 32;
36
- readonly cosOuterOffset: 44;
37
- readonly kindOffset: 48;
38
- readonly shadowPayloadOffset: 52;
39
- readonly shadowAtlasLayerOffset: 52;
40
- readonly shadowAtlasTileOffset: 52;
41
- readonly shadowNearOffset: 56;
42
- readonly shadowFarOffset: 60;
43
- readonly spotPcfKernelSizeOffset: 60;
44
- readonly floatCount: 16;
45
- readonly vec4Count: 4;
46
- };
2
+ import type { PointLightSnapshot, RectAreaDirectLightSnapshot, SpotLightSnapshot } from './render-system-extract';
47
3
  /**
48
4
  * Minimum storage-buffer count needed by the M3 record stage.
49
5
  *
50
6
  * 1. Mesh SSBO (entity_world + normalMatrix; per-renderable dynamic
51
7
  * offset, 256 B stride).
52
- * 2. PointLight std430 array (this feat).
53
- * 3. SpotLight std430 array (this feat).
8
+ * 2. Cluster light_data SSBO.
9
+ * 3. Cluster membership grid SSBO.
10
+ * 4. Cluster light-index-list SSBO.
54
11
  *
55
- * Plan R-4 + plan-strategy section 4 risk table: assert >= 4 to keep the
56
- * head-room margin for todo-125 (cluster expansion lifts to 4-5 entries).
12
+ * Cluster needs four storage-backed resources in the Standard bind group.
13
+ * This is the complete local-light transport.
57
14
  */
58
15
  export declare const STORAGE_BUFFER_MIN_REQUIRED = 4;
59
- /** Byte size of one PointLight std430 slot (vec4 * 2). */
60
- export declare const POINT_LIGHT_STD430_BYTES = 32;
61
- /**
62
- * Byte size of one SpotLight std430 slot (five 16-byte columns).
63
- *
64
- * feat-20260625-spot-light-shadow-mapping M2 / w8 (D-4) grew 48 -> 64 for
65
- * `shadowAtlasTile`; the visual-parity contract then adds a fifth column for
66
- * `shadowIntensity` rather than overloading the tile/PCF lanes.
67
- */
68
- export declare const SPOT_LIGHT_STD430_BYTES = 80;
69
- /** Sentinel value for SpotLight slot[15] meaning "no shadow / clipped". */
70
- export declare const SPOT_LIGHT_SHADOW_TILE_SENTINEL = -1;
71
- /** Sentinel for a projector-only SpotLight with no shadow atlas tile. */
72
- export declare const SPOT_LIGHT_PROJECTOR_ONLY_SENTINEL = -2;
73
- /**
74
- * High-bit marker carried by the shared LightSlot identity lane when this
75
- * SpotLight is the one projector selected for the frame. The lower 30 bits
76
- * retain the shadow-atlas tile (0..3), or zero for projector-only lights, so
77
- * one 64-byte slot carries both shadow and projector identity without growing
78
- * the cluster UBO or inventing a second light list.
79
- */
80
- export declare const SPOT_LIGHT_PROJECTOR_FLAG = 1073741824;
81
- export declare const SPOT_LIGHT_TILE_MASK: number;
82
- /** Byte size of the array header (count u32 + 12 B pad to 16 B stride). */
83
- export declare const LIGHT_ARRAY_HEADER_BYTES = 16;
84
- /** Maximum number of slots packed in the first-slice cap layout (D-S3). */
85
- export declare const LIGHT_ARRAY_MAX_SLOTS = 4;
86
- /** Sentinel value for PointLight slot[7] / LightSlot pad meaning "no shadow". */
87
- export declare const POINT_LIGHT_SHADOW_LAYER_SENTINEL = -1;
88
- /**
89
- * Pack one PointLightSnapshot into 8 floats / 32 B byte-for-byte std430.
90
- *
91
- * Returns a fresh `Float32Array` per call; `Float32Array.byteLength === 32`
92
- * by construction (Float32Array(8).buffer.byteLength === 32). Slot 7
93
- * (byte 28..32) carries `shadowAtlasLayer: i32` (sentinel -1 = no shadow,
94
- * 0..3 = cube_array atlas layer index for shadow casters). The lane is
95
- * written through an Int32Array view of the same backing ArrayBuffer so the
96
- * shader's `i32` read at byte 28..32 of `struct PointLight` (common.wgsl)
97
- * sees the correct two's-complement bits (-1 = 0xFFFFFFFF).
98
- */
99
- export declare function packPointLight(snap: PointLightSnapshot): Float32Array;
100
- /**
101
- * Pack one SpotLightSnapshot into 20 floats (80 B byte-for-byte std430).
102
- *
103
- * cosInner / cosOuter ride the otherwise-padding `.w` lanes of the
104
- * `color` and `direction` vec4 columns (AC-04 c + plan D-S2 16 B alignment
105
- * via packing rather than padding rows). Slot 15 carries `shadowAtlasTile: i32`
106
- * (sentinel -1 = unassigned/clipped, 0..3 = atlas tile) written through an
107
- * Int32Array view so the shader's `i32` read at byte 60..64 of struct SpotLight
108
- * (common.wgsl) sees the correct two's-complement bits (-1 = 0xFFFFFFFF).
109
- * Slots 12..14 carry the shared receiver controls; slot 15 remains the i32
110
- * shadow tile sentinel; slot 16 carries shadowIntensity and slots 17..19 are
111
- * alignment tail padding. Surface and volume consumers therefore share one
112
- * extracted shadow configuration.
113
- */
114
- export declare function packSpotLight(snap: SpotLightSnapshot): Float32Array;
115
- /**
116
- * Pack the 16-byte std430 array header (count u32 + 12 B pad) for the
117
- * point/spot light storage buffers.
118
- *
119
- * Returns a fresh `ArrayBuffer` so callers can either re-view it as
120
- * `Uint8Array` for `queue.writeBuffer` or as `Uint32Array` for in-place
121
- * inspection.
122
- */
123
- export declare function packLightArrayHeader(count: number): ArrayBuffer;
16
+ /** Byte size of one Point/Spot/Rect DirectLightSlot. */
17
+ export declare const BYTES_PER_DIRECT_LIGHT_SLOT = 80;
124
18
  /**
125
19
  * Cap gate at createRenderer time: check whether the device has enough
126
20
  * storage-buffer slots for the PBR pipeline (M3 requires
@@ -136,46 +30,61 @@ export declare function packLightArrayHeader(count: number): ArrayBuffer;
136
30
  *
137
31
  * Uniform-fallback path decision (plan D-5): `cap === 0` is the wgpu
138
32
  * WebGL2 backend signal (`downlevel_webgl2_defaults().limits.
139
- * maxStorageBuffersPerShaderStage = 0`). Uniform fallback covers pointLight
140
- * + spotLight + meshes + instances + skin palette — every storage-buffer
141
- * entry in the PBR pipeline switches to `uniform`.
33
+ * maxStorageBuffersPerShaderStage = 0`). It remains a mesh/instance fallback;
34
+ * local-light frames require the single Cluster storage transport.
142
35
  */
36
+ /** Closed direct-light kind carried by the unified five-row slot. */
37
+ export declare const DirectLightSlotKind: {
38
+ readonly POINT: 0;
39
+ readonly SPOT: 1;
40
+ readonly RECT_AREA: 2;
41
+ };
42
+ export type DirectLightSlotKind = 'point' | 'spot' | 'rect-area';
43
+ /** Metadata identity used for absent shadow, IES, and Cookie resources. */
44
+ export declare const DIRECT_LIGHT_SLOT_METADATA_SENTINEL = 4294967295;
143
45
  /**
144
- * Optional shadow info attached to a HDRP LightSlot for point lights with a
145
- * companion `PointLightShadow` component. Sentinel `layer = -1` (the default
146
- * when the snapshot has no shadow) makes the shader skip cube_array sampling
147
- * and stay on the unshadowed `evalPoint` path.
148
- *
149
- * `near` / `far` ride the otherwise-pad lanes (`kind_and_pad.zw` in the WGSL
150
- * struct, byte 56..64) and feed the depth-ref reconstruction in
151
- * `evalPointShadowed`. Spot lights (and shadow-less point lights) leave these
152
- * lanes zero per std430 init.
46
+ * SpotLight projector marker carried in the shared shadow identity word. The
47
+ * lower 30 bits retain the selected shadow tile; projector-only spots use tile
48
+ * zero because their matrix is deliberately published in View lane zero.
153
49
  */
154
- export interface PointShadowSlotInfo {
155
- readonly shadowAtlasLayer: number;
156
- readonly near: number;
157
- readonly far: number;
158
- }
50
+ export declare const DIRECT_LIGHT_SLOT_PROJECTOR_FLAG = 1073741824;
51
+ export declare const DIRECT_LIGHT_SLOT_TILE_MASK: number;
52
+ /** Byte size of the five-row Point/Spot/Rect transport slot. */
53
+ export declare const DIRECT_LIGHT_SLOT_FLOAT_COUNT: number;
54
+ /** Five vec4 rows shared by host packing and the WGSL direct-light consumer. */
55
+ export declare const DIRECT_LIGHT_SLOT_LAYOUT: {
56
+ readonly byteSize: 80;
57
+ readonly rowByteOffsets: readonly [0, 16, 32, 48, 64];
58
+ readonly positionOffset: 0;
59
+ readonly rangeOffset: 12;
60
+ readonly colorOffset: 16;
61
+ readonly firstAngleOffset: 28;
62
+ readonly primaryAxisOffset: 32;
63
+ readonly secondAngleOffset: 44;
64
+ readonly auxiliaryAxisOffset: 48;
65
+ readonly metadataByteOffset: 64;
66
+ readonly kindByteOffset: 64;
67
+ readonly shadowByteOffset: 68;
68
+ readonly iesProfileByteOffset: 72;
69
+ readonly cookieByteOffset: 76;
70
+ /** Spot-only roll angle stored in the fourth row's w lane. */
71
+ readonly rollDegByteOffset: 60;
72
+ readonly floatCount: number;
73
+ readonly vec4Count: 5;
74
+ };
75
+ type DirectLightModifierMetadata = {
76
+ readonly iesProfileSlice?: number;
77
+ readonly cookieSlice?: number;
78
+ };
79
+ export type DirectLightSnapshot = (PointLightSnapshot & DirectLightModifierMetadata) | (SpotLightSnapshot & DirectLightModifierMetadata) | (RectAreaDirectLightSnapshot & DirectLightModifierMetadata);
159
80
  /**
160
- * Pack one PointLightSnapshot or SpotLightSnapshot into a 64-byte LightSlot
161
- * (16 floats, std430). Point lights fill `cosInner=1.0`, `direction=vec3(0)`,
162
- * `cosOuter=0.0`, `kind=POINT(0)`. Spot lights fill all fields verbatim;
163
- * `direction` is already normalized by extract and this owner never repeats
164
- * that operation.
165
- *
166
- * feat-20260612-point-light-shadows-urp-hdrp M4 / T-M4-4 (plan-strategy §D-8):
167
- * the optional point `shadow` info threads through to bytes 52..64 as
168
- * `(shadowAtlasLayer i32, near f32, far f32)`. Spot snapshots write their
169
- * `shadowAtlasTile` directly into the same identity lane, put shadowIntensity
170
- * in the `.z` lane, and the PCF kernel width in `.w`. The shader reads `near`/`far`
171
- * through `bitcast<f32>(kind_and_pad.zw)` so the WGSL struct stays
172
- * `kind_and_pad: vec4<u32>` (alignment + naga_oil compose unchanged). When
173
- * `shadow` is undefined (no PointLightShadow) the lanes default to
174
- * `(layer = -1, 0, 0)` -- shader gates on `layer >= 0` so unshadowed lights
175
- * stay on the `evaluate_point_light` path. Spot lights write their tile or -1.
81
+ * Pack one Point, Spot, or Rect snapshot into the unified five-row slot.
176
82
  *
177
- * Returns a fresh `Float32Array(16)` per call.
83
+ * Row 0 is position plus inverse range. Row 1 is color plus the first
84
+ * angular/size fact. Row 2 is the primary axis plus the second angular/size
85
+ * fact. Row 3 is the auxiliary Rect axis. Row 4 is four u32 identities.
178
86
  */
179
- export declare function packLightSlot(snap: PointLightSnapshot | SpotLightSnapshot, shadow?: PointShadowSlotInfo, projectorSelected?: boolean): Float32Array;
87
+ export declare function packDirectLightSlot(snapshot: DirectLightSnapshot, projectorSelected?: boolean): Float32Array;
180
88
  export declare function assertStorageBufferCap(cap: number): Result<boolean, RhiError>;
89
+ export {};
181
90
  //# sourceMappingURL=light-buffer-layout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"light-buffer-layout.d.ts","sourceRoot":"","sources":["../src/light-buffer-layout.ts"],"names":[],"mappings":"AAsDA,OAAO,EAAW,KAAK,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AA4BrF,uFAAuF;AACvF,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,aAAa;;;CAGhB,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE/E;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;CAiBnB,CAAC;AAEX;;;;;;;;;;GAUG;AACH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,0DAA0D;AAC1D,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,2EAA2E;AAC3E,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAClD,yEAAyE;AACzE,eAAO,MAAM,kCAAkC,KAAK,CAAC;AACrD;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,aAAa,CAAC;AACpD,eAAO,MAAM,oBAAoB,QAAgC,CAAC;AAClE,2EAA2E;AAC3E,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,iFAAiF;AACjF,eAAO,MAAM,iCAAiC,KAAK,CAAC;AAEpD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,YAAY,CAarE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,YAAY,CA6BnE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAM/D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,kBAAkB,GAAG,iBAAiB,EAC5C,MAAM,CAAC,EAAE,mBAAmB,EAC5B,iBAAiB,CAAC,EAAE,OAAO,GAC1B,YAAY,CAmDd;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAkB7E"}
1
+ {"version":3,"file":"light-buffer-layout.d.ts","sourceRoot":"","sources":["../src/light-buffer-layout.ts"],"names":[],"mappings":"AAMA,OAAO,EAAW,KAAK,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EACV,kBAAkB,EAClB,2BAA2B,EAC3B,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAqBjC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,wDAAwD;AACxD,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C;;;;;;;;;;;;;;;;;GAiBG;AACH,qEAAqE;AACrE,eAAO,MAAM,mBAAmB;;;;CAItB,CAAC;AACX,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC;AAEjE,2EAA2E;AAC3E,eAAO,MAAM,mCAAmC,aAAa,CAAC;AAC9D;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,aAAa,CAAC;AAC3D,eAAO,MAAM,2BAA2B,QAAuC,CAAC;AAChF,gEAAgE;AAChE,eAAO,MAAM,6BAA6B,QACoB,CAAC;AAE/D,gFAAgF;AAChF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;IAenC,8DAA8D;;;;CAItD,CAAC;AAEX,KAAK,2BAA2B,GAAG;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAC3B,CAAC,kBAAkB,GAAG,2BAA2B,CAAC,GAClD,CAAC,iBAAiB,GAAG,2BAA2B,CAAC,GACjD,CAAC,2BAA2B,GAAG,2BAA2B,CAAC,CAAC;AAMhE;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,mBAAmB,EAC7B,iBAAiB,CAAC,EAAE,OAAO,GAC1B,YAAY,CAqEd;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAkB7E"}
@@ -1 +1 @@
1
- {"version":3,"file":"materials.d.ts","sourceRoot":"","sources":["../src/materials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"materials.d.ts","sourceRoot":"","sources":["../src/materials.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { BindGroup, BindGroupEntry, BindGroupLayout, BindGroupLayoutDescriptor, Buffer, PipelineLayout, RhiDevice, Sampler, TextureView } from '@forgeax/engine-rhi';
1
+ import type { BindGroup, BindGroupEntry, BindGroupLayout, Buffer, PipelineLayout, RhiDevice, Sampler, TextureFormat, TextureView } from '@forgeax/engine-rhi';
2
2
  import { type ShaderCatalog } from '@forgeax/engine-shader';
3
3
  import { type ParamSchemaEntry } from '@forgeax/engine-types';
4
4
  import type { PipelineSpec } from './pipeline-spec-types';
@@ -18,6 +18,10 @@ export interface PbrPipelineLayoutBundle {
18
18
  readonly meshArrayBgl: BindGroupLayout;
19
19
  /** Per-instance storage BindGroupLayout (slot 3). */
20
20
  readonly instancesBgl: BindGroupLayout;
21
+ /** Probe-enabled slot-3 BGL; aliases `instancesBgl` when probes are unavailable. */
22
+ readonly probeInstancesBgl: BindGroupLayout;
23
+ /** Same pipeline layout with the probe-enabled slot-3 BGL, when supported. */
24
+ readonly probePipelineLayout: PipelineLayout | null;
21
25
  /**
22
26
  * Same 4 layouts in slot order. Useful for assertion sites that check the
23
27
  * pipeline-layout `bindGroupLayouts` array shape (t57 (a) + (d)).
@@ -29,6 +33,8 @@ export interface PbrPipelineLayoutBundle {
29
33
  BindGroupLayout
30
34
  ];
31
35
  }
36
+ /** Derives the Standard PBR attachment list without allocating a closed path. */
37
+ export declare function standardPbrColorFormats(baseFormat: TextureFormat, fallbackDemand: boolean): readonly TextureFormat[];
32
38
  /**
33
39
  * The built-in standard-PBR material paramSchema's texture/user-region shape,
34
40
  * used as the fallback when the material BGL is built without a registry
@@ -94,13 +100,20 @@ export declare const INJECTION_KIND_LENGTHS: {
94
100
  */
95
101
  export interface PbrCaps {
96
102
  readonly storageBuffer: boolean;
103
+ /**
104
+ * Whether the selected material variant declares the optional extended
105
+ * lighting view resources. The default keeps the historical helper shape
106
+ * for callers that build the canonical full PBR layout; the renderer passes
107
+ * the device/variant decision explicitly.
108
+ */
109
+ readonly extendedLighting?: boolean;
110
+ /** Selects the optional binding(1) ProbeBlendRecord lane. */
111
+ readonly probeBlend?: boolean;
97
112
  /** Whether the device can carry the optional SpotLight projector texture. */
98
113
  readonly projectorAvailable?: boolean;
99
114
  }
100
115
  /**
101
116
  * The view BGL entry list. binding 0 = view UBO (vertex + fragment);
102
- * binding 1 = pointLights (storage or uniform, per caps);
103
- * binding 2 = spotLights (storage or uniform, per caps);
104
117
  * binding 3 = directional shadowMap atlas (texture_depth_2d, vertex+fragment).
105
118
  * feat-20260613-csm-cascaded-shadow-maps: this is the CSM atlas — N
106
119
  * cascades tiled into one 2D depth texture, sampled via per-cascade UV
@@ -140,9 +153,9 @@ export interface PbrCaps {
140
153
  * layout and consumed only by the dedicated points-lines shader).
141
154
  * Isolated here so M4 round-4 tests can recreate the layout.
142
155
  *
143
- * feat-20260526-pbr-uniform-fallback-no-storage-buffer M3 / w9:
144
- * caps.storageBuffer===false switches bindings 1+2 from
145
- * 'read-only-storage' to 'uniform'.
156
+ * Local lights are not part of the view group. Standard material variants
157
+ * consume the one Cluster payload in group(2), while this group retains only
158
+ * camera and shadow resources.
146
159
  */
147
160
  export declare function buildPbrViewBglEntries(caps: PbrCaps): GPUBindGroupLayoutEntry[];
148
161
  /**
@@ -150,8 +163,8 @@ export declare function buildPbrViewBglEntries(caps: PbrCaps): GPUBindGroupLayou
150
163
  * material, mesh-array, instances]`; the material BGL is derived from the
151
164
  * standard material schema and engine injection chain.
152
165
  *
153
- * `caps.storageBuffer===false` switches every storage-buffer BGL entry
154
- * (view bindings 1+2, mesh-array, instances) to `uniform`.
166
+ * `caps.storageBuffer===false` switches the mesh-array and instances entries
167
+ * to `uniform`; local-light resources are never part of this view group.
155
168
  *
156
169
  * Throws on each `createBindGroupLayout` / `createPipelineLayout` Result
157
170
  * failure -- the engine bootstrap path (createRenderer) wraps the call in
@@ -261,8 +274,9 @@ export declare const SPRITE_PASS_PER_INSTANCE_REGION_VARIANT_SET = "";
261
274
  * - `'unlit-material'` — 7 entries: base PBR material only (no inject)
262
275
  * - `'hdrp-7-slot'` — 7 entries (binding 0 + 3..8): HDRP cluster + SSAO group(2) BGL
263
276
  * 2. Caps-driven literal shapes (no shader):
264
- * - `'pbr-view'` — 12 entries: view UBO + lights + shadow bindings,
265
- * projector texture/sampler (11/12), and the Points/Lines UBO (10)
277
+ * - `'pbr-view'` — camera/shadow bindings, optional projector
278
+ * texture/sampler (11/12), and the Points/Lines UBO (10). Local lights
279
+ * are carried exclusively by the Standard Cluster group(2).
266
280
  * (directional 3/4, point 5/6, cascade 7, spot atlas 8; the former
267
281
  * spot lightViewProj matrices moved into the View UBO)
268
282
  * - `'pbr-mesh-array'` — 1 entry: per-entity mesh SSBO (dynamic-offset)
@@ -297,9 +311,9 @@ export interface BindGroupLayoutDescriptorOutput {
297
311
  readonly entries: GPUBindGroupLayoutEntry[];
298
312
  }
299
313
  /** Build the canonical HDRP group(2) bind-group layout. */
300
- export declare function createHdrpBindGroupLayoutDescriptor(): BindGroupLayoutDescriptor;
314
+ export declare function createHdrpBindGroupLayoutDescriptor(): BindGroupLayoutDescriptorOutput;
301
315
  /** Build the HDRP group(2) layout for the clustered skin variant. */
302
- export declare function createHdrpSkinBindGroupLayoutDescriptor(): BindGroupLayoutDescriptor;
316
+ export declare function createHdrpSkinBindGroupLayoutDescriptor(): BindGroupLayoutDescriptorOutput;
303
317
  export declare function buildBindGroupLayoutDescriptor(spec: PipelineSpec, options: {
304
318
  kind: BglKind;
305
319
  registry?: ShaderCatalog;
@@ -1 +1 @@
1
- {"version":3,"file":"pbr-pipeline.d.ts","sourceRoot":"","sources":["../src/pbr-pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pbr-pipeline.d.ts","sourceRoot":"","sources":["../src/pbr-pipeline.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"standard-forward-lane.d.ts","sourceRoot":"","sources":["../../src/pipeline/standard-forward-lane.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AA8B5B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAW/E,iBAAS,QAAQ,CACf,OAAO,EAAE,0BAA0B,CAAC,mBAAmB,CAAC,EACxD,QAAQ,EAAE,sBAAsB,EAChC,QAAQ,EAAE,0BAA0B,GACnC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAoRrC;AAED,eAAO,MAAM,wBAAwB,iBAAW,CAAC"}
1
+ {"version":3,"file":"standard-forward-lane.d.ts","sourceRoot":"","sources":["../../src/pipeline/standard-forward-lane.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AA+B5B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAW/E,iBAAS,QAAQ,CACf,OAAO,EAAE,0BAA0B,CAAC,mBAAmB,CAAC,EACxD,QAAQ,EAAE,sBAAsB,EAChC,QAAQ,EAAE,0BAA0B,GACnC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CA6TrC;AAED,eAAO,MAAM,wBAAwB,iBAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/pipeline/standard-lighting/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAQxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAE7D,2EAA2E;AAC3E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAsBD,8EAA8E;AAC9E,wBAAgB,0CAA0C,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAO9F;AAED,iFAAiF;AACjF,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,KAAK,EAAE,0BAA0B,GAChC,MAAM,CAAC,2BAA2B,GAAG,IAAI,EAAE,gBAAgB,CAAC,CA0C9D;AAED,uEAAuE;AACvE,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,2BAA2B,GACnC,SAAS,WAAW,EAAE,CAOxB;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,KAAK,EAAE,0BAA0B,EACjC,OAAO,EAAE,2BAA2B,GACnC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAgChC"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/pipeline/standard-lighting/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AASxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAE7D,2EAA2E;AAC3E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAsBD,8EAA8E;AAC9E,wBAAgB,0CAA0C,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAO9F;AAED,iFAAiF;AACjF,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,KAAK,EAAE,0BAA0B,GAChC,MAAM,CAAC,2BAA2B,GAAG,IAAI,EAAE,gBAAgB,CAAC,CA0C9D;AAED,uEAAuE;AACvE,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,2BAA2B,GACnC,SAAS,WAAW,EAAE,CAOxB;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,KAAK,EAAE,0BAA0B,EACjC,OAAO,EAAE,2BAA2B,GACnC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAgChC"}
@@ -1,8 +1,8 @@
1
1
  import type { Mat4, Vec3 } from '@forgeax/engine-math';
2
- import type { DirectionalLightSnapshot, PointLightSnapshot, SpotLightSnapshot } from '../../render-system-extract';
2
+ import type { DirectionalLightSnapshot, PointLightSnapshot, RectAreaDirectLightSnapshot, SpotLightSnapshot } from '../../render-system-extract';
3
3
  import type { StandardLightCount } from '../standard-profile';
4
4
  export interface StandardLocalLightInput {
5
- readonly kind: 'point' | 'spot';
5
+ readonly kind: 'point' | 'spot' | 'rect-area';
6
6
  readonly position: Vec3;
7
7
  readonly range: number;
8
8
  /** Whether the shadow producer admitted this local light to its atlas. */
@@ -12,7 +12,7 @@ export interface StandardLocalLightInput {
12
12
  * it on the POD frame prevents Forward/Deferred from rebuilding a second
13
13
  * light list while leaving hand-authored unit fixtures source-free.
14
14
  */
15
- readonly source?: PointLightSnapshot | SpotLightSnapshot;
15
+ readonly source?: PointLightSnapshot | SpotLightSnapshot | RectAreaDirectLightSnapshot;
16
16
  }
17
17
  export interface StandardLightFrame {
18
18
  readonly directional: DirectionalLightSnapshot | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"light-frame.d.ts","sourceRoot":"","sources":["../../../src/pipeline/standard-lighting/light-frame.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EACV,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,iBAAiB,CAAC;CAC1D;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACnD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9E,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,SAAS,GAAG,UAAU,CAAC;CAC7C"}
1
+ {"version":3,"file":"light-frame.d.ts","sourceRoot":"","sources":["../../../src/pipeline/standard-lighting/light-frame.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EACV,wBAAwB,EACxB,kBAAkB,EAClB,2BAA2B,EAC3B,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,iBAAiB,GAAG,2BAA2B,CAAC;CACxF;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACnD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9E,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,SAAS,GAAG,UAAU,CAAC;CAC7C"}
@@ -1,7 +1,7 @@
1
1
  import { type Result } from '@forgeax/engine-types';
2
2
  import type { PreparedStandardLighting } from './prepare';
3
3
  import type { StandardClusterTransport } from './transport';
4
- /** A prepared frame with no local lights on a non-storage direct backend. */
4
+ /** A prepared frame with no local lights on a non-storage backend. */
5
5
  export interface StandardNoLocalTopologyInput {
6
6
  readonly kind: 'no-local-lights';
7
7
  readonly prepared: PreparedStandardLighting;
@@ -1 +1 @@
1
- {"version":3,"file":"topology.d.ts","sourceRoot":"","sources":["../../../src/pipeline/standard-lighting/topology.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D,6EAA6E;AAC7E,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;CAC7C;AAED,iFAAiF;AACjF,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC;CAC9C;AAED;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,4BAA4B,GAAG,8BAA8B,CAAC;AAElG,MAAM,MAAM,0BAA0B,GAAG,qBAAqB,CAAC;AAE/D;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,0BAA0B,GAAG,SAAS,GAC5C,MAAM,CAaR;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,2CAA2C,CAAC;IAC/D,QAAQ,CAAC,IAAI,EAAE,iDAAiD,CAAC;IACjE,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,cAAc,CAAC;KAC/E,CAAC;CACH;AAaD;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,qBAAqB,GAC3B,MAAM,CAAC,0BAA0B,EAAE,0BAA0B,CAAC,CAyChE"}
1
+ {"version":3,"file":"topology.d.ts","sourceRoot":"","sources":["../../../src/pipeline/standard-lighting/topology.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D,sEAAsE;AACtE,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;CAC7C;AAED,iFAAiF;AACjF,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC;CAC9C;AAED;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,4BAA4B,GAAG,8BAA8B,CAAC;AAElG,MAAM,MAAM,0BAA0B,GAAG,qBAAqB,CAAC;AAE/D;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,0BAA0B,GAAG,SAAS,GAC5C,MAAM,CAaR;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,2CAA2C,CAAC;IAC/D,QAAQ,CAAC,IAAI,EAAE,iDAAiD,CAAC;IACjE,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,cAAc,CAAC;KAC/E,CAAC;CACH;AAaD;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,qBAAqB,GAC3B,MAAM,CAAC,0BAA0B,EAAE,0BAA0B,CAAC,CAyChE"}
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/pipeline/standard-lighting/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,KAAK,WAAW,EAA4C,MAAM,qBAAqB,CAAC;AACjG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAE1D,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;CAC3C;AAED,2EAA2E;AAC3E,MAAM,MAAM,4BAA4B,GAAG,iBAAiB,GAAG,aAAa,CAAC;AAC7E,MAAM,MAAM,iCAAiC,GAAG,KAAK,GAAG,KAAK,CAAC;AAE9D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,iCAAiC,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACpD,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAUD;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,YAAY,EAAE,2BAA2B,EACzC,QAAQ,EAAE,wBAAwB,GACjC,MAAM,CAAC,wBAAwB,EAAE,WAAW,CAAC,CA2B/C"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/pipeline/standard-lighting/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,KAAK,WAAW,EAA4C,MAAM,qBAAqB,CAAC;AAEjG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAE1D,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;CAC3C;AAED,2EAA2E;AAC3E,MAAM,MAAM,4BAA4B,GAAG,iBAAiB,GAAG,aAAa,CAAC;AAC7E,MAAM,MAAM,iCAAiC,GAAG,KAAK,GAAG,KAAK,CAAC;AAE9D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,iCAAiC,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACpD,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAUD;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,YAAY,EAAE,2BAA2B,EACzC,QAAQ,EAAE,wBAAwB,GACjC,MAAM,CAAC,wBAAwB,EAAE,WAAW,CAAC,CA2B/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"standard-pipeline.d.ts","sourceRoot":"","sources":["../../src/pipeline/standard-pipeline.ts"],"names":[],"mappings":"AAMA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAA6B,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EACV,cAAc,EAIf,MAAM,oBAAoB,CAAC;AAsC5B,OAAO,EAGL,oBAAoB,EACpB,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAE5B,iEAAiE;AACjE,eAAO,MAAM,gCAAgC,ykEA6D5C,CAAC;AACF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,GAAG,MAAM,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,2BAA2B,CAAC,CAkB3E;AA0SD,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,QAAQ,CAAC,QAAQ,EAAE,OAAO,oBAAoB,CAAC;CAChD;AAED,wBAAgB,uCAAuC,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAE1F;AAED,4EAA4E;AAC5E,MAAM,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAiG1C,eAAO,MAAM,gBAAgB,EAAE,gBAG7B,CAAC;AAEH,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"standard-pipeline.d.ts","sourceRoot":"","sources":["../../src/pipeline/standard-pipeline.ts"],"names":[],"mappings":"AAMA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAA6B,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EACV,cAAc,EAIf,MAAM,oBAAoB,CAAC;AAsC5B,OAAO,EAGL,oBAAoB,EACpB,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAE5B,iEAAiE;AACjE,eAAO,MAAM,gCAAgC,ykEA6D5C,CAAC;AACF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,GAAG,MAAM,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,2BAA2B,CAAC,CAkB3E;AA4SD,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,QAAQ,CAAC,QAAQ,EAAE,OAAO,oBAAoB,CAAC;CAChD;AAED,wBAAgB,uCAAuC,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAE1F;AAED,4EAA4E;AAC5E,MAAM,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAiG1C,eAAO,MAAM,gBAAgB,EAAE,gBAG7B,CAAC;AAEH,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -65,6 +65,8 @@ export interface PipelineBuilderContext {
65
65
  * tonemap field (M9 keeps the LDR shape; HDR variants are OOS-M9).
66
66
  */
67
67
  readonly colorFormat: GPUTextureFormat;
68
+ /** Additional color targets for an MRT pass; the first target is colorFormat. */
69
+ readonly colorFormats?: readonly GPUTextureFormat[] | undefined;
68
70
  /** Depth attachment format, or `undefined` for a color-only pass. */
69
71
  readonly depthFormat: GPUTextureFormat | undefined;
70
72
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline-builder.d.ts","sourceRoot":"","sources":["../src/pipeline-builder.ts"],"names":[],"mappings":"AA2CA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,cAAc,EAEnB,KAAK,MAAM,EACX,KAAK,SAAS,EACd,QAAQ,EACR,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG9F;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uFAAuF;IACvF,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACjD;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,kCAAkC;IACjD,kBAAkB,CAAC,IAAI,EAAE;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACrC,GAAG,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;CACpC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,mBAAmB,EAAE,kCAAkC,CAAC;IACjE;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,qEAAqE;IACrE,QAAQ,CAAC,WAAW,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACnD;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACzD,gEAAgE;IAChE,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC7C,iFAAiF;IACjF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,2EAA2E;IAC3E,QAAQ,CAAC,YAAY,CAAC,EAAE;QACtB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;QAChC,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;KACzC,CAAC;CACH;AAED;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,IAAI,CAAC,sBAAsB,EAAE,aAAa,GAAG,aAAa,GAAG,cAAc,CAAC,GAChF,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAmDxB;AAMD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,mBAAmB,EAC1B,GAAG,EAAE,sBAAsB,EAC3B,WAAW,CAAC,EAAE,mBAAmB,EACjC,QAAQ,CAAC,EAAE,gBAAgB,EAC3B,WAAW,CAAC,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,QAAQ,GAAE,QAAoB,EAO9B,WAAW,GAAE,MAAU,GACtB,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAuMlC"}
1
+ {"version":3,"file":"pipeline-builder.d.ts","sourceRoot":"","sources":["../src/pipeline-builder.ts"],"names":[],"mappings":"AA2CA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,cAAc,EAEnB,KAAK,MAAM,EACX,KAAK,SAAS,EACd,QAAQ,EACR,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG9F;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uFAAuF;IACvF,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACjD;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,kCAAkC;IACjD,kBAAkB,CAAC,IAAI,EAAE;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACrC,GAAG,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;CACpC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,mBAAmB,EAAE,kCAAkC,CAAC;IACjE;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,iFAAiF;IACjF,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,gBAAgB,EAAE,GAAG,SAAS,CAAC;IAChE,qEAAqE;IACrE,QAAQ,CAAC,WAAW,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACnD;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACzD,gEAAgE;IAChE,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC7C,iFAAiF;IACjF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,2EAA2E;IAC3E,QAAQ,CAAC,YAAY,CAAC,EAAE;QACtB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;QAChC,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;KACzC,CAAC;CACH;AAED;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,IAAI,CAAC,sBAAsB,EAAE,aAAa,GAAG,aAAa,GAAG,cAAc,CAAC,GAChF,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAmDxB;AAMD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,mBAAmB,EAC1B,GAAG,EAAE,sBAAsB,EAC3B,WAAW,CAAC,EAAE,mBAAmB,EACjC,QAAQ,CAAC,EAAE,gBAAgB,EAC3B,WAAW,CAAC,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,QAAQ,GAAE,QAAoB,EAO9B,WAAW,GAAE,MAAU,GACtB,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAwMlC"}
@@ -121,7 +121,7 @@ export declare function standardCapabilityVariantSet(clustered: boolean, storage
121
121
  */
122
122
  export declare function standardTopologyVariantSet(topology: {
123
123
  readonly kind: 'no-local-lights' | 'clustered';
124
- } | undefined, storageBuffer: boolean, vertexColorAvailable: boolean): string;
124
+ } | undefined, storageBuffer: boolean, vertexColorAvailable: boolean, probeBlendAvailable?: boolean): string;
125
125
  /**
126
126
  * Keep a clustered frame fail-closed when its unified group(2) resource is
127
127
  * unavailable. A missing group is not evidence that the frame is direct; it
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline-spec.d.ts","sourceRoot":"","sources":["../src/pipeline-spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline-spec.d.ts","sourceRoot":"","sources":["../src/pipeline-spec.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AA4DrD,+DAA+D;AAC/D,wBAAgB,sBAAsB,IAAI,MAAM,CAQ/C"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAgErD,+DAA+D;AAC/D,wBAAgB,sBAAsB,IAAI,MAAM,CAQ/C"}
@@ -0,0 +1,31 @@
1
+ import type { Result, RhiDevice, RhiError, Texture } from '@forgeax/engine-rhi';
2
+ import { type DeviceScope } from '../../device/device-scope';
3
+ import { EXTENDED_LIGHTING_TOPOLOGY } from './resources';
4
+ export interface LtcResourcePlanInput {
5
+ readonly scope: DeviceScope;
6
+ readonly ltcAvailable: boolean;
7
+ readonly residentGeneration?: number;
8
+ }
9
+ export interface LtcResourcePlan {
10
+ readonly topology: typeof EXTENDED_LIGHTING_TOPOLOGY;
11
+ readonly generation: number;
12
+ readonly rectAdmission: 'admitted' | 'omitted';
13
+ readonly tableCount: number;
14
+ readonly uploadCount: number;
15
+ }
16
+ export interface LtcResourceCandidate {
17
+ readonly topology: typeof EXTENDED_LIGHTING_TOPOLOGY;
18
+ readonly generation: number;
19
+ readonly scope: DeviceScope;
20
+ readonly lambertTexture: Texture;
21
+ readonly ggxTexture: Texture;
22
+ readonly tableCount: 2;
23
+ readonly uploadCount: 2;
24
+ }
25
+ export declare function deriveLtcResourcePlan(input: LtcResourcePlanInput): LtcResourcePlan;
26
+ /** Create both tracked tables atomically; unavailable LTC only omits Rect. */
27
+ export declare function createLtcResourceCandidate(input: {
28
+ readonly device: RhiDevice | undefined;
29
+ readonly scope: DeviceScope;
30
+ }): Promise<Result<LtcResourceCandidate | undefined, RhiError>>;
31
+ //# sourceMappingURL=ltc-resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ltc-resources.d.ts","sourceRoot":"","sources":["../../../src/prepare/extended-lighting/ltc-resources.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGhF,OAAO,EAAE,KAAK,WAAW,EAAwB,MAAM,2BAA2B,CAAC;AAKnF,OAAO,EAAoC,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAE3F,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;CACzB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,eAAe,CASlF;AAeD,8EAA8E;AAC9E,wBAAsB,0BAA0B,CAAC,KAAK,EAAE;IACtD,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC7B,GAAG,OAAO,CAAC,MAAM,CAAC,oBAAoB,GAAG,SAAS,EAAE,QAAQ,CAAC,CAAC,CAuE9D"}