@forgeax/engine-render 0.1.2

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 (1172) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +1019 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/__tests__/analytic-sky-contract.test.d.ts +2 -0
  5. package/dist/__tests__/analytic-sky-contract.test.d.ts.map +1 -0
  6. package/dist/__tests__/analytic-sky-falsify.test.d.ts +2 -0
  7. package/dist/__tests__/analytic-sky-falsify.test.d.ts.map +1 -0
  8. package/dist/__tests__/assets-runtime-handoff.integration.test.d.ts +2 -0
  9. package/dist/__tests__/assets-runtime-handoff.integration.test.d.ts.map +1 -0
  10. package/dist/__tests__/authoring-path.unit.test.d.ts +2 -0
  11. package/dist/__tests__/authoring-path.unit.test.d.ts.map +1 -0
  12. package/dist/__tests__/backend-selection-rhi-capture.test-d.d.ts +2 -0
  13. package/dist/__tests__/backend-selection-rhi-capture.test-d.d.ts.map +1 -0
  14. package/dist/__tests__/backend-selection.integration.test.d.ts +2 -0
  15. package/dist/__tests__/backend-selection.integration.test.d.ts.map +1 -0
  16. package/dist/__tests__/callback-inference.test-d.d.ts +2 -0
  17. package/dist/__tests__/callback-inference.test-d.d.ts.map +1 -0
  18. package/dist/__tests__/camera-temporal.test-d.d.ts +2 -0
  19. package/dist/__tests__/camera-temporal.test-d.d.ts.map +1 -0
  20. package/dist/__tests__/camera-temporal.test.d.ts +2 -0
  21. package/dist/__tests__/camera-temporal.test.d.ts.map +1 -0
  22. package/dist/__tests__/cluster-binner.test.d.ts +2 -0
  23. package/dist/__tests__/cluster-binner.test.d.ts.map +1 -0
  24. package/dist/__tests__/cluster-grid-default-surface.unit.test.d.ts +2 -0
  25. package/dist/__tests__/cluster-grid-default-surface.unit.test.d.ts.map +1 -0
  26. package/dist/__tests__/construct-renderer-identity.unit.test.d.ts +2 -0
  27. package/dist/__tests__/construct-renderer-identity.unit.test.d.ts.map +1 -0
  28. package/dist/__tests__/direct-extract-consumer-contract.test-d.d.ts +2 -0
  29. package/dist/__tests__/direct-extract-consumer-contract.test-d.d.ts.map +1 -0
  30. package/dist/__tests__/direct-light-snapshot.unit.test.d.ts +2 -0
  31. package/dist/__tests__/direct-light-snapshot.unit.test.d.ts.map +1 -0
  32. package/dist/__tests__/directional-shadow-probe-atlas-layout.unit.test.d.ts +2 -0
  33. package/dist/__tests__/directional-shadow-probe-atlas-layout.unit.test.d.ts.map +1 -0
  34. package/dist/__tests__/environment-inspection.test.d.ts +2 -0
  35. package/dist/__tests__/environment-inspection.test.d.ts.map +1 -0
  36. package/dist/__tests__/factory-contract.integration.test.d.ts +2 -0
  37. package/dist/__tests__/factory-contract.integration.test.d.ts.map +1 -0
  38. package/dist/__tests__/fallback-row-stride-surface.unit.test.d.ts +2 -0
  39. package/dist/__tests__/fallback-row-stride-surface.unit.test.d.ts.map +1 -0
  40. package/dist/__tests__/fog-ai-user.fixture.d.ts +2 -0
  41. package/dist/__tests__/fog-ai-user.fixture.d.ts.map +1 -0
  42. package/dist/__tests__/fog-custom-render-feature.fixture.d.ts +16 -0
  43. package/dist/__tests__/fog-custom-render-feature.fixture.d.ts.map +1 -0
  44. package/dist/__tests__/fog-custom-render-feature.integration.test.d.ts +2 -0
  45. package/dist/__tests__/fog-custom-render-feature.integration.test.d.ts.map +1 -0
  46. package/dist/__tests__/fog-inspection.integration.test.d.ts +2 -0
  47. package/dist/__tests__/fog-inspection.integration.test.d.ts.map +1 -0
  48. package/dist/__tests__/fog-owner-state.integration.test.d.ts +2 -0
  49. package/dist/__tests__/fog-owner-state.integration.test.d.ts.map +1 -0
  50. package/dist/__tests__/fog-pipeline-topology.integration.test.d.ts +2 -0
  51. package/dist/__tests__/fog-pipeline-topology.integration.test.d.ts.map +1 -0
  52. package/dist/__tests__/fog-public-surface.integration.test.d.ts +2 -0
  53. package/dist/__tests__/fog-public-surface.integration.test.d.ts.map +1 -0
  54. package/dist/__tests__/fog-ray-contract.integration.test.d.ts +2 -0
  55. package/dist/__tests__/fog-ray-contract.integration.test.d.ts.map +1 -0
  56. package/dist/__tests__/fog-source-absence.integration.test.d.ts +2 -0
  57. package/dist/__tests__/fog-source-absence.integration.test.d.ts.map +1 -0
  58. package/dist/__tests__/fog-temporal.integration.test.d.ts +2 -0
  59. package/dist/__tests__/fog-temporal.integration.test.d.ts.map +1 -0
  60. package/dist/__tests__/frame-chain.unit.test.d.ts +2 -0
  61. package/dist/__tests__/frame-chain.unit.test.d.ts.map +1 -0
  62. package/dist/__tests__/frame-observation.contract.test.d.ts +2 -0
  63. package/dist/__tests__/frame-observation.contract.test.d.ts.map +1 -0
  64. package/dist/__tests__/glyph-text-layout-recovery.unit.test.d.ts +2 -0
  65. package/dist/__tests__/glyph-text-layout-recovery.unit.test.d.ts.map +1 -0
  66. package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts +6 -0
  67. package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts.map +1 -0
  68. package/dist/__tests__/gpu-driven-indirect-raster.browser.test.d.ts +2 -0
  69. package/dist/__tests__/gpu-driven-indirect-raster.browser.test.d.ts.map +1 -0
  70. package/dist/__tests__/gpu-driven-indirect-raster.dawn.test.d.ts +2 -0
  71. package/dist/__tests__/gpu-driven-indirect-raster.dawn.test.d.ts.map +1 -0
  72. package/dist/__tests__/gpu-driven-production.integration.test.d.ts +2 -0
  73. package/dist/__tests__/gpu-driven-production.integration.test.d.ts.map +1 -0
  74. package/dist/__tests__/gpu-driven-scaling.unit.test.d.ts +2 -0
  75. package/dist/__tests__/gpu-driven-scaling.unit.test.d.ts.map +1 -0
  76. package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts +12 -0
  77. package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts.map +1 -0
  78. package/dist/__tests__/gpu-driven-view-graph.integration.test.d.ts +2 -0
  79. package/dist/__tests__/gpu-driven-view-graph.integration.test.d.ts.map +1 -0
  80. package/dist/__tests__/gpu-driven-view.browser.test.d.ts +2 -0
  81. package/dist/__tests__/gpu-driven-view.browser.test.d.ts.map +1 -0
  82. package/dist/__tests__/gpu-driven-view.dawn.test.d.ts +2 -0
  83. package/dist/__tests__/gpu-driven-view.dawn.test.d.ts.map +1 -0
  84. package/dist/__tests__/gpu-driven-view.unit.test.d.ts +2 -0
  85. package/dist/__tests__/gpu-driven-view.unit.test.d.ts.map +1 -0
  86. package/dist/__tests__/gpu-resource-store-stride.unit.test.d.ts +2 -0
  87. package/dist/__tests__/gpu-resource-store-stride.unit.test.d.ts.map +1 -0
  88. package/dist/__tests__/gpu-scene-field-type-owner.test-d.d.ts +2 -0
  89. package/dist/__tests__/gpu-scene-field-type-owner.test-d.d.ts.map +1 -0
  90. package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts +7 -0
  91. package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts.map +1 -0
  92. package/dist/__tests__/gpu-scene-render-graph.browser.test.d.ts +2 -0
  93. package/dist/__tests__/gpu-scene-render-graph.browser.test.d.ts.map +1 -0
  94. package/dist/__tests__/gpu-scene-render-graph.dawn.test.d.ts +2 -0
  95. package/dist/__tests__/gpu-scene-render-graph.dawn.test.d.ts.map +1 -0
  96. package/dist/__tests__/gpu-scene-schema.unit.test.d.ts +2 -0
  97. package/dist/__tests__/gpu-scene-schema.unit.test.d.ts.map +1 -0
  98. package/dist/__tests__/gpu-scene.dawn.test.d.ts +2 -0
  99. package/dist/__tests__/gpu-scene.dawn.test.d.ts.map +1 -0
  100. package/dist/__tests__/gpu-scene.unit.test.d.ts +2 -0
  101. package/dist/__tests__/gpu-scene.unit.test.d.ts.map +1 -0
  102. package/dist/__tests__/hdrp-pipeline.unit.test.d.ts +2 -0
  103. package/dist/__tests__/hdrp-pipeline.unit.test.d.ts.map +1 -0
  104. package/dist/__tests__/ibl/ibl-fallback.unit.test.d.ts +2 -0
  105. package/dist/__tests__/ibl/ibl-fallback.unit.test.d.ts.map +1 -0
  106. package/dist/__tests__/infinite-grid-no-vertex-probe.unit.test.d.ts +2 -0
  107. package/dist/__tests__/infinite-grid-no-vertex-probe.unit.test.d.ts.map +1 -0
  108. package/dist/__tests__/injection-kind-owner.test-d.d.ts +2 -0
  109. package/dist/__tests__/injection-kind-owner.test-d.d.ts.map +1 -0
  110. package/dist/__tests__/ktx2-basis-gpu-consumer.dawn.test.d.ts +2 -0
  111. package/dist/__tests__/ktx2-basis-gpu-consumer.dawn.test.d.ts.map +1 -0
  112. package/dist/__tests__/light-buffer-layout.unit.test.d.ts +2 -0
  113. package/dist/__tests__/light-buffer-layout.unit.test.d.ts.map +1 -0
  114. package/dist/__tests__/material-contract-inventory.unit.test.d.ts +2 -0
  115. package/dist/__tests__/material-contract-inventory.unit.test.d.ts.map +1 -0
  116. package/dist/__tests__/material-cooked-projection.unit.test.d.ts +2 -0
  117. package/dist/__tests__/material-cooked-projection.unit.test.d.ts.map +1 -0
  118. package/dist/__tests__/material-derived-error-stop-draw.integration.test.d.ts +2 -0
  119. package/dist/__tests__/material-derived-error-stop-draw.integration.test.d.ts.map +1 -0
  120. package/dist/__tests__/material-derived-payload.integration.test.d.ts +2 -0
  121. package/dist/__tests__/material-derived-payload.integration.test.d.ts.map +1 -0
  122. package/dist/__tests__/material-snapshot-mutation.integration.test.d.ts +2 -0
  123. package/dist/__tests__/material-snapshot-mutation.integration.test.d.ts.map +1 -0
  124. package/dist/__tests__/material-static-dynamic-route.unit.test.d.ts +2 -0
  125. package/dist/__tests__/material-static-dynamic-route.unit.test.d.ts.map +1 -0
  126. package/dist/__tests__/material-stride-surface.unit.test.d.ts +2 -0
  127. package/dist/__tests__/material-stride-surface.unit.test.d.ts.map +1 -0
  128. package/dist/__tests__/materials.unit.test.d.ts +2 -0
  129. package/dist/__tests__/materials.unit.test.d.ts.map +1 -0
  130. package/dist/__tests__/mesh-buffer-usage-surface.unit.test.d.ts +2 -0
  131. package/dist/__tests__/mesh-buffer-usage-surface.unit.test.d.ts.map +1 -0
  132. package/dist/__tests__/mesh-material-bindings.unit.test.d.ts +2 -0
  133. package/dist/__tests__/mesh-material-bindings.unit.test.d.ts.map +1 -0
  134. package/dist/__tests__/mesh-stride-surface.unit.test.d.ts +2 -0
  135. package/dist/__tests__/mesh-stride-surface.unit.test.d.ts.map +1 -0
  136. package/dist/__tests__/morph-culling-reentry.dawn.test.d.ts +2 -0
  137. package/dist/__tests__/morph-culling-reentry.dawn.test.d.ts.map +1 -0
  138. package/dist/__tests__/morph-feature-gpu-work.integration.test.d.ts +2 -0
  139. package/dist/__tests__/morph-feature-gpu-work.integration.test.d.ts.map +1 -0
  140. package/dist/__tests__/morph-visual-evidence.integration.test.d.ts +2 -0
  141. package/dist/__tests__/morph-visual-evidence.integration.test.d.ts.map +1 -0
  142. package/dist/__tests__/nineslice-handle-surface.unit.test.d.ts +2 -0
  143. package/dist/__tests__/nineslice-handle-surface.unit.test.d.ts.map +1 -0
  144. package/dist/__tests__/param-schema-projection-census.unit.test.d.ts +2 -0
  145. package/dist/__tests__/param-schema-projection-census.unit.test.d.ts.map +1 -0
  146. package/dist/__tests__/persistent-render-scene.unit.test.d.ts +2 -0
  147. package/dist/__tests__/persistent-render-scene.unit.test.d.ts.map +1 -0
  148. package/dist/__tests__/pipeline-error-policy-owner.unit.test.d.ts +2 -0
  149. package/dist/__tests__/pipeline-error-policy-owner.unit.test.d.ts.map +1 -0
  150. package/dist/__tests__/pipeline-pass-trace.test.d.ts +2 -0
  151. package/dist/__tests__/pipeline-pass-trace.test.d.ts.map +1 -0
  152. package/dist/__tests__/pipeline-stage-owner.test-d.d.ts +2 -0
  153. package/dist/__tests__/pipeline-stage-owner.test-d.d.ts.map +1 -0
  154. package/dist/__tests__/plugin.test.d.ts +2 -0
  155. package/dist/__tests__/plugin.test.d.ts.map +1 -0
  156. package/dist/__tests__/post-process-error-policy-owner.unit.test.d.ts +2 -0
  157. package/dist/__tests__/post-process-error-policy-owner.unit.test.d.ts.map +1 -0
  158. package/dist/__tests__/prepared-buffer-kind-owner.test-d.d.ts +2 -0
  159. package/dist/__tests__/prepared-buffer-kind-owner.test-d.d.ts.map +1 -0
  160. package/dist/__tests__/prepared-graphics-backend-matrix.unit.test.d.ts +2 -0
  161. package/dist/__tests__/prepared-graphics-backend-matrix.unit.test.d.ts.map +1 -0
  162. package/dist/__tests__/prepared-graphics-capability.unit.test.d.ts +2 -0
  163. package/dist/__tests__/prepared-graphics-capability.unit.test.d.ts.map +1 -0
  164. package/dist/__tests__/prepared-graphics-generation.unit.test.d.ts +2 -0
  165. package/dist/__tests__/prepared-graphics-generation.unit.test.d.ts.map +1 -0
  166. package/dist/__tests__/prepared-graphics-lifecycle.unit.test.d.ts +2 -0
  167. package/dist/__tests__/prepared-graphics-lifecycle.unit.test.d.ts.map +1 -0
  168. package/dist/__tests__/prepared-graphics-pipeline-warmup.unit.test.d.ts +2 -0
  169. package/dist/__tests__/prepared-graphics-pipeline-warmup.unit.test.d.ts.map +1 -0
  170. package/dist/__tests__/prepared-graphics-resolver-recording.unit.test.d.ts +2 -0
  171. package/dist/__tests__/prepared-graphics-resolver-recording.unit.test.d.ts.map +1 -0
  172. package/dist/__tests__/prepared-graphics-resolver.unit.test.d.ts +2 -0
  173. package/dist/__tests__/prepared-graphics-resolver.unit.test.d.ts.map +1 -0
  174. package/dist/__tests__/prepared-graphics-snapshot.unit.test.d.ts +2 -0
  175. package/dist/__tests__/prepared-graphics-snapshot.unit.test.d.ts.map +1 -0
  176. package/dist/__tests__/prepared-graphics-store.unit.test.d.ts +2 -0
  177. package/dist/__tests__/prepared-graphics-store.unit.test.d.ts.map +1 -0
  178. package/dist/__tests__/prepared-graphics-validation.unit.test.d.ts +2 -0
  179. package/dist/__tests__/prepared-graphics-validation.unit.test.d.ts.map +1 -0
  180. package/dist/__tests__/profiler-default-off.test.d.ts +2 -0
  181. package/dist/__tests__/profiler-default-off.test.d.ts.map +1 -0
  182. package/dist/__tests__/profiler-phase-catalog.test.d.ts +2 -0
  183. package/dist/__tests__/profiler-phase-catalog.test.d.ts.map +1 -0
  184. package/dist/__tests__/profiler-phase-integration.test.d.ts +2 -0
  185. package/dist/__tests__/profiler-phase-integration.test.d.ts.map +1 -0
  186. package/dist/__tests__/profiler-phase-token.test.d.ts +2 -0
  187. package/dist/__tests__/profiler-phase-token.test.d.ts.map +1 -0
  188. package/dist/__tests__/public-pipeline-id.test-d.d.ts +2 -0
  189. package/dist/__tests__/public-pipeline-id.test-d.d.ts.map +1 -0
  190. package/dist/__tests__/public-surface.test-d.d.ts +2 -0
  191. package/dist/__tests__/public-surface.test-d.d.ts.map +1 -0
  192. package/dist/__tests__/recover-error-policy-owner.unit.test.d.ts +2 -0
  193. package/dist/__tests__/recover-error-policy-owner.unit.test.d.ts.map +1 -0
  194. package/dist/__tests__/render-dispatch-membership.unit.test.d.ts +2 -0
  195. package/dist/__tests__/render-dispatch-membership.unit.test.d.ts.map +1 -0
  196. package/dist/__tests__/render-error-code-owner.test-d.d.ts +2 -0
  197. package/dist/__tests__/render-error-code-owner.test-d.d.ts.map +1 -0
  198. package/dist/__tests__/render-error-detail-ssot.test-d.d.ts +2 -0
  199. package/dist/__tests__/render-error-detail-ssot.test-d.d.ts.map +1 -0
  200. package/dist/__tests__/render-error-exhaustive.test-d.d.ts +2 -0
  201. package/dist/__tests__/render-error-exhaustive.test-d.d.ts.map +1 -0
  202. package/dist/__tests__/render-feature-assembly.test-d.d.ts +2 -0
  203. package/dist/__tests__/render-feature-assembly.test-d.d.ts.map +1 -0
  204. package/dist/__tests__/render-feature-construction.unit.test.d.ts +2 -0
  205. package/dist/__tests__/render-feature-construction.unit.test.d.ts.map +1 -0
  206. package/dist/__tests__/render-feature-context.test-d.d.ts +2 -0
  207. package/dist/__tests__/render-feature-context.test-d.d.ts.map +1 -0
  208. package/dist/__tests__/render-feature-contract.test-d.d.ts +2 -0
  209. package/dist/__tests__/render-feature-contract.test-d.d.ts.map +1 -0
  210. package/dist/__tests__/render-feature-diagnostics.unit.test.d.ts +2 -0
  211. package/dist/__tests__/render-feature-diagnostics.unit.test.d.ts.map +1 -0
  212. package/dist/__tests__/render-feature-docs.unit.test.d.ts +2 -0
  213. package/dist/__tests__/render-feature-docs.unit.test.d.ts.map +1 -0
  214. package/dist/__tests__/render-feature-error-code-owner.test-d.d.ts +2 -0
  215. package/dist/__tests__/render-feature-error-code-owner.test-d.d.ts.map +1 -0
  216. package/dist/__tests__/render-feature-errors.unit.test.d.ts +2 -0
  217. package/dist/__tests__/render-feature-errors.unit.test.d.ts.map +1 -0
  218. package/dist/__tests__/render-feature-gpu-buffer-usage-owner.test-d.d.ts +2 -0
  219. package/dist/__tests__/render-feature-gpu-buffer-usage-owner.test-d.d.ts.map +1 -0
  220. package/dist/__tests__/render-feature-gpu-work.integration.test.d.ts +2 -0
  221. package/dist/__tests__/render-feature-gpu-work.integration.test.d.ts.map +1 -0
  222. package/dist/__tests__/render-feature-graph.integration.test.d.ts +2 -0
  223. package/dist/__tests__/render-feature-graph.integration.test.d.ts.map +1 -0
  224. package/dist/__tests__/render-feature-graphics-staging.unit.test.d.ts +2 -0
  225. package/dist/__tests__/render-feature-graphics-staging.unit.test.d.ts.map +1 -0
  226. package/dist/__tests__/render-feature-order.unit.test.d.ts +2 -0
  227. package/dist/__tests__/render-feature-order.unit.test.d.ts.map +1 -0
  228. package/dist/__tests__/render-feature-prepared-diagnostics.unit.test.d.ts +2 -0
  229. package/dist/__tests__/render-feature-prepared-diagnostics.unit.test.d.ts.map +1 -0
  230. package/dist/__tests__/render-feature-prepared-errors.test-d.d.ts +2 -0
  231. package/dist/__tests__/render-feature-prepared-errors.test-d.d.ts.map +1 -0
  232. package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts +2 -0
  233. package/dist/__tests__/render-feature-prepared-graphics-docs.unit.test.d.ts.map +1 -0
  234. package/dist/__tests__/render-feature-prepared-graphics-isolation.unit.test.d.ts +2 -0
  235. package/dist/__tests__/render-feature-prepared-graphics-isolation.unit.test.d.ts.map +1 -0
  236. package/dist/__tests__/render-feature-prepared-graphics-negative.test-d.d.ts +2 -0
  237. package/dist/__tests__/render-feature-prepared-graphics-negative.test-d.d.ts.map +1 -0
  238. package/dist/__tests__/render-feature-prepared-graphics-recording.unit.test.d.ts +2 -0
  239. package/dist/__tests__/render-feature-prepared-graphics-recording.unit.test.d.ts.map +1 -0
  240. package/dist/__tests__/render-feature-prepared-graphics.test-d.d.ts +2 -0
  241. package/dist/__tests__/render-feature-prepared-graphics.test-d.d.ts.map +1 -0
  242. package/dist/__tests__/render-feature-prepared-graphics.unit.test.d.ts +2 -0
  243. package/dist/__tests__/render-feature-prepared-graphics.unit.test.d.ts.map +1 -0
  244. package/dist/__tests__/render-feature-public-surface.test-d.d.ts +2 -0
  245. package/dist/__tests__/render-feature-public-surface.test-d.d.ts.map +1 -0
  246. package/dist/__tests__/render-feature-retry.unit.test.d.ts +2 -0
  247. package/dist/__tests__/render-feature-retry.unit.test.d.ts.map +1 -0
  248. package/dist/__tests__/render-feature-scheduling.unit.test.d.ts +2 -0
  249. package/dist/__tests__/render-feature-scheduling.unit.test.d.ts.map +1 -0
  250. package/dist/__tests__/render-feature-stage-failed-policy-owner.unit.test.d.ts +2 -0
  251. package/dist/__tests__/render-feature-stage-failed-policy-owner.unit.test.d.ts.map +1 -0
  252. package/dist/__tests__/render-feature-stage-fault-recovery.unit.test.d.ts +2 -0
  253. package/dist/__tests__/render-feature-stage-fault-recovery.unit.test.d.ts.map +1 -0
  254. package/dist/__tests__/render-feature-staging.unit.test.d.ts +2 -0
  255. package/dist/__tests__/render-feature-staging.unit.test.d.ts.map +1 -0
  256. package/dist/__tests__/render-feature-visibility-context.test-d.d.ts +2 -0
  257. package/dist/__tests__/render-feature-visibility-context.test-d.d.ts.map +1 -0
  258. package/dist/__tests__/render-feature-visibility-context.unit.test.d.ts +2 -0
  259. package/dist/__tests__/render-feature-visibility-context.unit.test.d.ts.map +1 -0
  260. package/dist/__tests__/render-feature-zero-work.unit.test.d.ts +2 -0
  261. package/dist/__tests__/render-feature-zero-work.unit.test.d.ts.map +1 -0
  262. package/dist/__tests__/render-graph-compute-raster-gpu.d.ts +7 -0
  263. package/dist/__tests__/render-graph-compute-raster-gpu.d.ts.map +1 -0
  264. package/dist/__tests__/render-graph-compute-raster.browser.test.d.ts +2 -0
  265. package/dist/__tests__/render-graph-compute-raster.browser.test.d.ts.map +1 -0
  266. package/dist/__tests__/render-graph-compute-raster.dawn.test.d.ts +2 -0
  267. package/dist/__tests__/render-graph-compute-raster.dawn.test.d.ts.map +1 -0
  268. package/dist/__tests__/render-graph-hzb-gpu.d.ts +7 -0
  269. package/dist/__tests__/render-graph-hzb-gpu.d.ts.map +1 -0
  270. package/dist/__tests__/render-graph-hzb.browser.test.d.ts +2 -0
  271. package/dist/__tests__/render-graph-hzb.browser.test.d.ts.map +1 -0
  272. package/dist/__tests__/render-graph-hzb.dawn.test.d.ts +2 -0
  273. package/dist/__tests__/render-graph-hzb.dawn.test.d.ts.map +1 -0
  274. package/dist/__tests__/render-graph-primitives.unit.test.d.ts +2 -0
  275. package/dist/__tests__/render-graph-primitives.unit.test.d.ts.map +1 -0
  276. package/dist/__tests__/render-graph-storage-indirect-gpu.d.ts +12 -0
  277. package/dist/__tests__/render-graph-storage-indirect-gpu.d.ts.map +1 -0
  278. package/dist/__tests__/render-graph-storage-indirect.browser.test.d.ts +2 -0
  279. package/dist/__tests__/render-graph-storage-indirect.browser.test.d.ts.map +1 -0
  280. package/dist/__tests__/render-graph-storage-indirect.dawn.test.d.ts +2 -0
  281. package/dist/__tests__/render-graph-storage-indirect.dawn.test.d.ts.map +1 -0
  282. package/dist/__tests__/render-scene-projection.unit.test.d.ts +2 -0
  283. package/dist/__tests__/render-scene-projection.unit.test.d.ts.map +1 -0
  284. package/dist/__tests__/renderer-factory-material-contract.unit.test.d.ts +2 -0
  285. package/dist/__tests__/renderer-factory-material-contract.unit.test.d.ts.map +1 -0
  286. package/dist/__tests__/renderer-lifecycle.integration.test.d.ts +2 -0
  287. package/dist/__tests__/renderer-lifecycle.integration.test.d.ts.map +1 -0
  288. package/dist/__tests__/renderer-render-scene-public.test-d.d.ts +2 -0
  289. package/dist/__tests__/renderer-render-scene-public.test-d.d.ts.map +1 -0
  290. package/dist/__tests__/rhi-backend-package-boundary.unit.test.d.ts +2 -0
  291. package/dist/__tests__/rhi-backend-package-boundary.unit.test.d.ts.map +1 -0
  292. package/dist/__tests__/scene-temporal-coverage.unit.test.d.ts +2 -0
  293. package/dist/__tests__/scene-temporal-coverage.unit.test.d.ts.map +1 -0
  294. package/dist/__tests__/scriptable-pack-consumer.test-d.d.ts +2 -0
  295. package/dist/__tests__/scriptable-pack-consumer.test-d.d.ts.map +1 -0
  296. package/dist/__tests__/shader-stage-surface.unit.test.d.ts +2 -0
  297. package/dist/__tests__/shader-stage-surface.unit.test.d.ts.map +1 -0
  298. package/dist/__tests__/ssao-kernel-surface.unit.test.d.ts +2 -0
  299. package/dist/__tests__/ssao-kernel-surface.unit.test.d.ts.map +1 -0
  300. package/dist/__tests__/sun-snapshot-consumers.test.d.ts +2 -0
  301. package/dist/__tests__/sun-snapshot-consumers.test.d.ts.map +1 -0
  302. package/dist/__tests__/surface-backend-kind-owner.test-d.d.ts +2 -0
  303. package/dist/__tests__/surface-backend-kind-owner.test-d.d.ts.map +1 -0
  304. package/dist/__tests__/surface-configuration.unit.test.d.ts +2 -0
  305. package/dist/__tests__/surface-configuration.unit.test.d.ts.map +1 -0
  306. package/dist/__tests__/taa-history-store.unit.test.d.ts +2 -0
  307. package/dist/__tests__/taa-history-store.unit.test.d.ts.map +1 -0
  308. package/dist/__tests__/temporal-frame-transaction.integration.test.d.ts +2 -0
  309. package/dist/__tests__/temporal-frame-transaction.integration.test.d.ts.map +1 -0
  310. package/dist/__tests__/temporal-inspection.unit.test.d.ts +2 -0
  311. package/dist/__tests__/temporal-inspection.unit.test.d.ts.map +1 -0
  312. package/dist/__tests__/texture-usage-surface.unit.test.d.ts +2 -0
  313. package/dist/__tests__/texture-usage-surface.unit.test.d.ts.map +1 -0
  314. package/dist/__tests__/typed-pipeline-topology.unit.test.d.ts +2 -0
  315. package/dist/__tests__/typed-pipeline-topology.unit.test.d.ts.map +1 -0
  316. package/dist/__tests__/urp-pipeline-targets.unit.test.d.ts +2 -0
  317. package/dist/__tests__/urp-pipeline-targets.unit.test.d.ts.map +1 -0
  318. package/dist/__tests__/urp-pipeline.unit.test.d.ts +2 -0
  319. package/dist/__tests__/urp-pipeline.unit.test.d.ts.map +1 -0
  320. package/dist/__tests__/vertex-color-pipeline.unit.test.d.ts +2 -0
  321. package/dist/__tests__/vertex-color-pipeline.unit.test.d.ts.map +1 -0
  322. package/dist/__tests__/vertex-layout-consumer.unit.test.d.ts +2 -0
  323. package/dist/__tests__/vertex-layout-consumer.unit.test.d.ts.map +1 -0
  324. package/dist/__tests__/visibility-diagnostics.integration.test.d.ts +2 -0
  325. package/dist/__tests__/visibility-diagnostics.integration.test.d.ts.map +1 -0
  326. package/dist/__tests__/visibility-extract.integration.test.d.ts +2 -0
  327. package/dist/__tests__/visibility-extract.integration.test.d.ts.map +1 -0
  328. package/dist/__tests__/visibility-extract.perf.test.d.ts +2 -0
  329. package/dist/__tests__/visibility-extract.perf.test.d.ts.map +1 -0
  330. package/dist/__tests__/visibility-feature-dedup.integration.test.d.ts +2 -0
  331. package/dist/__tests__/visibility-feature-dedup.integration.test.d.ts.map +1 -0
  332. package/dist/__tests__/visibility-hidden-report.unit.test.d.ts +2 -0
  333. package/dist/__tests__/visibility-hidden-report.unit.test.d.ts.map +1 -0
  334. package/dist/__tests__/visibility-instances.integration.test.d.ts +2 -0
  335. package/dist/__tests__/visibility-instances.integration.test.d.ts.map +1 -0
  336. package/dist/__tests__/visibility-multi-world.integration.test.d.ts +2 -0
  337. package/dist/__tests__/visibility-multi-world.integration.test.d.ts.map +1 -0
  338. package/dist/__tests__/visibility-producer-matrix.integration.test.d.ts +2 -0
  339. package/dist/__tests__/visibility-producer-matrix.integration.test.d.ts.map +1 -0
  340. package/dist/__tests__/visibility-producer-matrix.unit.test.d.ts +2 -0
  341. package/dist/__tests__/visibility-producer-matrix.unit.test.d.ts.map +1 -0
  342. package/dist/__tests__/visibility-public-surface.test-d.d.ts +2 -0
  343. package/dist/__tests__/visibility-public-surface.test-d.d.ts.map +1 -0
  344. package/dist/__tests__/visibility-resolver.unit.test.d.ts +2 -0
  345. package/dist/__tests__/visibility-resolver.unit.test.d.ts.map +1 -0
  346. package/dist/__tests__/visibility-snapshot-contract.unit.test.d.ts +2 -0
  347. package/dist/__tests__/visibility-snapshot-contract.unit.test.d.ts.map +1 -0
  348. package/dist/__tests__/vocabulary.unit.test.d.ts +2 -0
  349. package/dist/__tests__/vocabulary.unit.test.d.ts.map +1 -0
  350. package/dist/assets/__tests__/asset-decoders.unit.test.d.ts +2 -0
  351. package/dist/assets/__tests__/asset-decoders.unit.test.d.ts.map +1 -0
  352. package/dist/assets/__tests__/mipmap-generator.unit.test.d.ts +2 -0
  353. package/dist/assets/__tests__/mipmap-generator.unit.test.d.ts.map +1 -0
  354. package/dist/assets/__tests__/render-asset-port.unit.test.d.ts +2 -0
  355. package/dist/assets/__tests__/render-asset-port.unit.test.d.ts.map +1 -0
  356. package/dist/assets/__tests__/resolve-render-asset.unit.test.d.ts +2 -0
  357. package/dist/assets/__tests__/resolve-render-asset.unit.test.d.ts.map +1 -0
  358. package/dist/assets/asset-decoders.d.ts +5 -0
  359. package/dist/assets/asset-decoders.d.ts.map +1 -0
  360. package/dist/assets/render-asset-port.d.ts +17 -0
  361. package/dist/assets/render-asset-port.d.ts.map +1 -0
  362. package/dist/assets/resolve-render-asset.d.ts +6 -0
  363. package/dist/assets/resolve-render-asset.d.ts.map +1 -0
  364. package/dist/authoring.d.ts +12 -0
  365. package/dist/authoring.d.ts.map +1 -0
  366. package/dist/authoring.mjs +5 -0
  367. package/dist/authoring.mjs.map +1 -0
  368. package/dist/chunk-33UF5SAO.mjs +7397 -0
  369. package/dist/chunk-33UF5SAO.mjs.map +1 -0
  370. package/dist/chunk-A5QCJSNL.mjs +29913 -0
  371. package/dist/chunk-A5QCJSNL.mjs.map +1 -0
  372. package/dist/chunk-JMSB7AR4.mjs +3 -0
  373. package/dist/chunk-JMSB7AR4.mjs.map +1 -0
  374. package/dist/chunk-LXNGO6AO.mjs +569 -0
  375. package/dist/chunk-LXNGO6AO.mjs.map +1 -0
  376. package/dist/chunk-QRXPSX4X.mjs +659 -0
  377. package/dist/chunk-QRXPSX4X.mjs.map +1 -0
  378. package/dist/chunk-YAKEQPWO.mjs +1439 -0
  379. package/dist/chunk-YAKEQPWO.mjs.map +1 -0
  380. package/dist/cluster-binner.d.ts +152 -0
  381. package/dist/cluster-binner.d.ts.map +1 -0
  382. package/dist/components/__tests__/atmosphere-red.test.d.ts +2 -0
  383. package/dist/components/__tests__/atmosphere-red.test.d.ts.map +1 -0
  384. package/dist/components/__tests__/atmosphere.test.d.ts +2 -0
  385. package/dist/components/__tests__/atmosphere.test.d.ts.map +1 -0
  386. package/dist/components/__tests__/fog.test-d.d.ts +2 -0
  387. package/dist/components/__tests__/fog.test-d.d.ts.map +1 -0
  388. package/dist/components/__tests__/fog.test.d.ts +2 -0
  389. package/dist/components/__tests__/fog.test.d.ts.map +1 -0
  390. package/dist/components/__tests__/schema-parity.unit.test.d.ts +2 -0
  391. package/dist/components/__tests__/schema-parity.unit.test.d.ts.map +1 -0
  392. package/dist/components/__tests__/visibility-schema.unit.test.d.ts +2 -0
  393. package/dist/components/__tests__/visibility-schema.unit.test.d.ts.map +1 -0
  394. package/dist/components/atmosphere.d.ts +18 -0
  395. package/dist/components/atmosphere.d.ts.map +1 -0
  396. package/dist/components/camera.d.ts +311 -0
  397. package/dist/components/camera.d.ts.map +1 -0
  398. package/dist/components/directional-light.d.ts +76 -0
  399. package/dist/components/directional-light.d.ts.map +1 -0
  400. package/dist/components/environment.d.ts +116 -0
  401. package/dist/components/environment.d.ts.map +1 -0
  402. package/dist/components/glyph-text.d.ts +26 -0
  403. package/dist/components/glyph-text.d.ts.map +1 -0
  404. package/dist/components/index.d.ts +22 -0
  405. package/dist/components/index.d.ts.map +1 -0
  406. package/dist/components/instances.d.ts +41 -0
  407. package/dist/components/instances.d.ts.map +1 -0
  408. package/dist/components/layer.d.ts +34 -0
  409. package/dist/components/layer.d.ts.map +1 -0
  410. package/dist/components/light-helpers.d.ts +53 -0
  411. package/dist/components/light-helpers.d.ts.map +1 -0
  412. package/dist/components/mesh-filter.d.ts +24 -0
  413. package/dist/components/mesh-filter.d.ts.map +1 -0
  414. package/dist/components/mesh-renderer.d.ts +33 -0
  415. package/dist/components/mesh-renderer.d.ts.map +1 -0
  416. package/dist/components/point-light-shadow.d.ts +27 -0
  417. package/dist/components/point-light-shadow.d.ts.map +1 -0
  418. package/dist/components/point-light.d.ts +35 -0
  419. package/dist/components/point-light.d.ts.map +1 -0
  420. package/dist/components/post-process-params.d.ts +5 -0
  421. package/dist/components/post-process-params.d.ts.map +1 -0
  422. package/dist/components/scene-instance.d.ts +140 -0
  423. package/dist/components/scene-instance.d.ts.map +1 -0
  424. package/dist/components/sort-key.d.ts +44 -0
  425. package/dist/components/sort-key.d.ts.map +1 -0
  426. package/dist/components/spot-light.d.ts +81 -0
  427. package/dist/components/spot-light.d.ts.map +1 -0
  428. package/dist/components/sprite-animation.d.ts +75 -0
  429. package/dist/components/sprite-animation.d.ts.map +1 -0
  430. package/dist/components/sprite-instances.d.ts +51 -0
  431. package/dist/components/sprite-instances.d.ts.map +1 -0
  432. package/dist/components/sprite-playback-mode.d.ts +37 -0
  433. package/dist/components/sprite-playback-mode.d.ts.map +1 -0
  434. package/dist/components/sprite-region-override.d.ts +47 -0
  435. package/dist/components/sprite-region-override.d.ts.map +1 -0
  436. package/dist/components/tile-layer.d.ts +101 -0
  437. package/dist/components/tile-layer.d.ts.map +1 -0
  438. package/dist/components/tilemap.d.ts +25 -0
  439. package/dist/components/tilemap.d.ts.map +1 -0
  440. package/dist/components/visibility.d.ts +22 -0
  441. package/dist/components/visibility.d.ts.map +1 -0
  442. package/dist/construct-renderer.d.ts +2 -0
  443. package/dist/construct-renderer.d.ts.map +1 -0
  444. package/dist/construct-renderer.mjs +6 -0
  445. package/dist/construct-renderer.mjs.map +1 -0
  446. package/dist/debug-draw-glue.d.ts +56 -0
  447. package/dist/debug-draw-glue.d.ts.map +1 -0
  448. package/dist/deferred-lighting.d.ts +13 -0
  449. package/dist/deferred-lighting.d.ts.map +1 -0
  450. package/dist/dynamic-texture-store.d.ts +42 -0
  451. package/dist/dynamic-texture-store.d.ts.map +1 -0
  452. package/dist/engine-metrics.d.ts +23 -0
  453. package/dist/engine-metrics.d.ts.map +1 -0
  454. package/dist/environment/__tests__/failure-injection.test.d.ts +2 -0
  455. package/dist/environment/__tests__/failure-injection.test.d.ts.map +1 -0
  456. package/dist/environment/__tests__/generation-red.test.d.ts +2 -0
  457. package/dist/environment/__tests__/generation-red.test.d.ts.map +1 -0
  458. package/dist/environment/__tests__/generation.test.d.ts +2 -0
  459. package/dist/environment/__tests__/generation.test.d.ts.map +1 -0
  460. package/dist/environment/__tests__/graph-transaction.test.d.ts +2 -0
  461. package/dist/environment/__tests__/graph-transaction.test.d.ts.map +1 -0
  462. package/dist/environment/__tests__/inspection-red.test.d.ts +2 -0
  463. package/dist/environment/__tests__/inspection-red.test.d.ts.map +1 -0
  464. package/dist/environment/__tests__/lifecycle-evidence.test.d.ts +2 -0
  465. package/dist/environment/__tests__/lifecycle-evidence.test.d.ts.map +1 -0
  466. package/dist/environment/__tests__/pipeline-topology.test.d.ts +2 -0
  467. package/dist/environment/__tests__/pipeline-topology.test.d.ts.map +1 -0
  468. package/dist/environment/__tests__/readiness.test.d.ts +2 -0
  469. package/dist/environment/__tests__/readiness.test.d.ts.map +1 -0
  470. package/dist/environment/__tests__/recovery.test.d.ts +2 -0
  471. package/dist/environment/__tests__/recovery.test.d.ts.map +1 -0
  472. package/dist/environment/__tests__/resize-dispose.test.d.ts +2 -0
  473. package/dist/environment/__tests__/resize-dispose.test.d.ts.map +1 -0
  474. package/dist/environment/__tests__/signature-red.test.d.ts +2 -0
  475. package/dist/environment/__tests__/signature-red.test.d.ts.map +1 -0
  476. package/dist/environment/__tests__/signature.test.d.ts +2 -0
  477. package/dist/environment/__tests__/signature.test.d.ts.map +1 -0
  478. package/dist/environment/descriptors.d.ts +2 -0
  479. package/dist/environment/descriptors.d.ts.map +1 -0
  480. package/dist/environment/extracted-environment.d.ts +53 -0
  481. package/dist/environment/extracted-environment.d.ts.map +1 -0
  482. package/dist/environment/generation.d.ts +62 -0
  483. package/dist/environment/generation.d.ts.map +1 -0
  484. package/dist/environment/gpu-bundle.d.ts +23 -0
  485. package/dist/environment/gpu-bundle.d.ts.map +1 -0
  486. package/dist/environment/graph.d.ts +108 -0
  487. package/dist/environment/graph.d.ts.map +1 -0
  488. package/dist/environment/inspection.d.ts +48 -0
  489. package/dist/environment/inspection.d.ts.map +1 -0
  490. package/dist/environment/lifecycle.d.ts +22 -0
  491. package/dist/environment/lifecycle.d.ts.map +1 -0
  492. package/dist/environment/readiness.d.ts +29 -0
  493. package/dist/environment/readiness.d.ts.map +1 -0
  494. package/dist/environment/signature.d.ts +70 -0
  495. package/dist/environment/signature.d.ts.map +1 -0
  496. package/dist/errors/ecs-validation.d.ts +3 -0
  497. package/dist/errors/ecs-validation.d.ts.map +1 -0
  498. package/dist/errors/index.d.ts +4 -0
  499. package/dist/errors/index.d.ts.map +1 -0
  500. package/dist/errors/recover.d.ts +78 -0
  501. package/dist/errors/recover.d.ts.map +1 -0
  502. package/dist/errors/render.d.ts +633 -0
  503. package/dist/errors/render.d.ts.map +1 -0
  504. package/dist/extract/__tests__/directional-csm-domain.unit.test.d.ts +2 -0
  505. package/dist/extract/__tests__/directional-csm-domain.unit.test.d.ts.map +1 -0
  506. package/dist/extract/__tests__/environment-source.test.d.ts +2 -0
  507. package/dist/extract/__tests__/environment-source.test.d.ts.map +1 -0
  508. package/dist/extract/__tests__/schema-readers.unit.test.d.ts +2 -0
  509. package/dist/extract/__tests__/schema-readers.unit.test.d.ts.map +1 -0
  510. package/dist/extract/directional-csm.d.ts +129 -0
  511. package/dist/extract/directional-csm.d.ts.map +1 -0
  512. package/dist/extract/index.d.ts +5 -0
  513. package/dist/extract/index.d.ts.map +1 -0
  514. package/dist/extract/material-interface.d.ts +56 -0
  515. package/dist/extract/material-interface.d.ts.map +1 -0
  516. package/dist/extract/schema-readers.d.ts +20 -0
  517. package/dist/extract/schema-readers.d.ts.map +1 -0
  518. package/dist/extract/visibility.d.ts +26 -0
  519. package/dist/extract/visibility.d.ts.map +1 -0
  520. package/dist/features/graph-contribution.d.ts +64 -0
  521. package/dist/features/graph-contribution.d.ts.map +1 -0
  522. package/dist/features/host.d.ts +100 -0
  523. package/dist/features/host.d.ts.map +1 -0
  524. package/dist/features/index.d.ts +21 -0
  525. package/dist/features/index.d.ts.map +1 -0
  526. package/dist/features/morph/index.d.ts +3 -0
  527. package/dist/features/morph/index.d.ts.map +1 -0
  528. package/dist/features/morph/morph-bounds.d.ts +42 -0
  529. package/dist/features/morph/morph-bounds.d.ts.map +1 -0
  530. package/dist/features/morph/morph-feature.d.ts +45 -0
  531. package/dist/features/morph/morph-feature.d.ts.map +1 -0
  532. package/dist/features/prepared-gpu-work.d.ts +113 -0
  533. package/dist/features/prepared-gpu-work.d.ts.map +1 -0
  534. package/dist/features/prepared-graphics-store.d.ts +65 -0
  535. package/dist/features/prepared-graphics-store.d.ts.map +1 -0
  536. package/dist/features/prepared-graphics.d.ts +225 -0
  537. package/dist/features/prepared-graphics.d.ts.map +1 -0
  538. package/dist/features/render-graph-compute.d.ts +13 -0
  539. package/dist/features/render-graph-compute.d.ts.map +1 -0
  540. package/dist/features/render-graph-contribution.d.ts +15 -0
  541. package/dist/features/render-graph-contribution.d.ts.map +1 -0
  542. package/dist/features/render-graph-raster.d.ts +34 -0
  543. package/dist/features/render-graph-raster.d.ts.map +1 -0
  544. package/dist/features/render-graph-resources.d.ts +11 -0
  545. package/dist/features/render-graph-resources.d.ts.map +1 -0
  546. package/dist/features/scene-temporal.d.ts +45 -0
  547. package/dist/features/scene-temporal.d.ts.map +1 -0
  548. package/dist/features/taa-resolve.d.ts +21 -0
  549. package/dist/features/taa-resolve.d.ts.map +1 -0
  550. package/dist/features/targets.d.ts +32 -0
  551. package/dist/features/targets.d.ts.map +1 -0
  552. package/dist/features/types.d.ts +247 -0
  553. package/dist/features/types.d.ts.map +1 -0
  554. package/dist/frame-chain.d.ts +14 -0
  555. package/dist/frame-chain.d.ts.map +1 -0
  556. package/dist/fullscreen-post-process-pass.d.ts +178 -0
  557. package/dist/fullscreen-post-process-pass.d.ts.map +1 -0
  558. package/dist/glyph-text-layout-system.d.ts +18 -0
  559. package/dist/glyph-text-layout-system.d.ts.map +1 -0
  560. package/dist/gpu-driven/batch-topology.d.ts +124 -0
  561. package/dist/gpu-driven/batch-topology.d.ts.map +1 -0
  562. package/dist/gpu-driven/production-raster.d.ts +150 -0
  563. package/dist/gpu-driven/production-raster.d.ts.map +1 -0
  564. package/dist/gpu-driven/view-gpu.d.ts +141 -0
  565. package/dist/gpu-driven/view-gpu.d.ts.map +1 -0
  566. package/dist/gpu-driven/view-reference.d.ts +15 -0
  567. package/dist/gpu-driven/view-reference.d.ts.map +1 -0
  568. package/dist/gpu-resource-store.d.ts +294 -0
  569. package/dist/gpu-resource-store.d.ts.map +1 -0
  570. package/dist/gpu-resource.d.ts +73 -0
  571. package/dist/gpu-resource.d.ts.map +1 -0
  572. package/dist/gpu-scene-schema.d.ts +171 -0
  573. package/dist/gpu-scene-schema.d.ts.map +1 -0
  574. package/dist/gpu-scene.d.ts +81 -0
  575. package/dist/gpu-scene.d.ts.map +1 -0
  576. package/dist/gpu-stage.d.ts +4 -0
  577. package/dist/gpu-stage.d.ts.map +1 -0
  578. package/dist/gpu-texture-usage.d.ts +6 -0
  579. package/dist/gpu-texture-usage.d.ts.map +1 -0
  580. package/dist/gpu-usage.d.ts +9 -0
  581. package/dist/gpu-usage.d.ts.map +1 -0
  582. package/dist/hdrp-buffers.d.ts +213 -0
  583. package/dist/hdrp-buffers.d.ts.map +1 -0
  584. package/dist/hdrp-cluster-membership.d.ts +2 -0
  585. package/dist/hdrp-cluster-membership.d.ts.map +1 -0
  586. package/dist/hdrp-pipeline.d.ts +36 -0
  587. package/dist/hdrp-pipeline.d.ts.map +1 -0
  588. package/dist/ibl/IblPipelineCache.d.ts +274 -0
  589. package/dist/ibl/IblPipelineCache.d.ts.map +1 -0
  590. package/dist/ibl/cubemap-projection.d.ts +23 -0
  591. package/dist/ibl/cubemap-projection.d.ts.map +1 -0
  592. package/dist/ibl/face-uniforms.d.ts +65 -0
  593. package/dist/ibl/face-uniforms.d.ts.map +1 -0
  594. package/dist/ibl/skylight-bind-group.d.ts +130 -0
  595. package/dist/ibl/skylight-bind-group.d.ts.map +1 -0
  596. package/dist/index.d.ts +57 -0
  597. package/dist/index.d.ts.map +1 -0
  598. package/dist/index.mjs +5 -0
  599. package/dist/index.mjs.map +1 -0
  600. package/dist/instance-buffer-cache.d.ts +59 -0
  601. package/dist/instance-buffer-cache.d.ts.map +1 -0
  602. package/dist/internal.d.ts +74 -0
  603. package/dist/internal.d.ts.map +1 -0
  604. package/dist/internal.mjs +45 -0
  605. package/dist/internal.mjs.map +1 -0
  606. package/dist/lifecycle.d.ts +28 -0
  607. package/dist/lifecycle.d.ts.map +1 -0
  608. package/dist/light-buffer-layout.d.ts +164 -0
  609. package/dist/light-buffer-layout.d.ts.map +1 -0
  610. package/dist/materials.d.ts +50 -0
  611. package/dist/materials.d.ts.map +1 -0
  612. package/dist/mesh-material-bindings.d.ts +44 -0
  613. package/dist/mesh-material-bindings.d.ts.map +1 -0
  614. package/dist/mesh-update-errors.d.ts +71 -0
  615. package/dist/mesh-update-errors.d.ts.map +1 -0
  616. package/dist/mipmap-generator.d.ts +39 -0
  617. package/dist/mipmap-generator.d.ts.map +1 -0
  618. package/dist/param-schema-projection-census.d.ts +18 -0
  619. package/dist/param-schema-projection-census.d.ts.map +1 -0
  620. package/dist/pbr-pipeline.d.ts +253 -0
  621. package/dist/pbr-pipeline.d.ts.map +1 -0
  622. package/dist/persistent-render-scene.d.ts +158 -0
  623. package/dist/persistent-render-scene.d.ts.map +1 -0
  624. package/dist/pipeline/index.d.ts +11 -0
  625. package/dist/pipeline/index.d.ts.map +1 -0
  626. package/dist/pipeline-builder.d.ts +122 -0
  627. package/dist/pipeline-builder.d.ts.map +1 -0
  628. package/dist/pipeline-errors.d.ts +110 -0
  629. package/dist/pipeline-errors.d.ts.map +1 -0
  630. package/dist/pipeline-spec.d.ts +506 -0
  631. package/dist/pipeline-spec.d.ts.map +1 -0
  632. package/dist/plugin.d.ts +17 -0
  633. package/dist/plugin.d.ts.map +1 -0
  634. package/dist/post-process-errors.d.ts +182 -0
  635. package/dist/post-process-errors.d.ts.map +1 -0
  636. package/dist/prepare/__tests__/schema-readers.unit.test.d.ts +2 -0
  637. package/dist/prepare/__tests__/schema-readers.unit.test.d.ts.map +1 -0
  638. package/dist/prepare/index.d.ts +4 -0
  639. package/dist/prepare/index.d.ts.map +1 -0
  640. package/dist/prepare/prepared-graphics-resolver.d.ts +62 -0
  641. package/dist/prepare/prepared-graphics-resolver.d.ts.map +1 -0
  642. package/dist/prepare/schema-readers.d.ts +11 -0
  643. package/dist/prepare/schema-readers.d.ts.map +1 -0
  644. package/dist/record/__tests__/environment-record.test.d.ts +2 -0
  645. package/dist/record/__tests__/environment-record.test.d.ts.map +1 -0
  646. package/dist/record/__tests__/frame-targets.unit.test.d.ts +2 -0
  647. package/dist/record/__tests__/frame-targets.unit.test.d.ts.map +1 -0
  648. package/dist/record/__tests__/material-bg-cache.unit.test.d.ts +2 -0
  649. package/dist/record/__tests__/material-bg-cache.unit.test.d.ts.map +1 -0
  650. package/dist/record/__tests__/material-slot-plan.unit.test.d.ts +2 -0
  651. package/dist/record/__tests__/material-slot-plan.unit.test.d.ts.map +1 -0
  652. package/dist/record/__tests__/membership-timing.unit.test.d.ts +2 -0
  653. package/dist/record/__tests__/membership-timing.unit.test.d.ts.map +1 -0
  654. package/dist/record/__tests__/render-submission.integration.test.d.ts +2 -0
  655. package/dist/record/__tests__/render-submission.integration.test.d.ts.map +1 -0
  656. package/dist/record/__tests__/render-submission.perf.test.d.ts +2 -0
  657. package/dist/record/__tests__/render-submission.perf.test.d.ts.map +1 -0
  658. package/dist/record/__tests__/shadow-submit-mode.unit.test.d.ts +2 -0
  659. package/dist/record/__tests__/shadow-submit-mode.unit.test.d.ts.map +1 -0
  660. package/dist/record/__tests__/video-texture-view.unit.test.d.ts +2 -0
  661. package/dist/record/__tests__/video-texture-view.unit.test.d.ts.map +1 -0
  662. package/dist/record/__tests__/view-ubo-layout.unit.test.d.ts +2 -0
  663. package/dist/record/__tests__/view-ubo-layout.unit.test.d.ts.map +1 -0
  664. package/dist/record/frame-lighting.d.ts +187 -0
  665. package/dist/record/frame-lighting.d.ts.map +1 -0
  666. package/dist/record/frame-observation.d.ts +38 -0
  667. package/dist/record/frame-observation.d.ts.map +1 -0
  668. package/dist/record/frame-snapshot.d.ts +429 -0
  669. package/dist/record/frame-snapshot.d.ts.map +1 -0
  670. package/dist/record/frame-targets.d.ts +53 -0
  671. package/dist/record/frame-targets.d.ts.map +1 -0
  672. package/dist/record/frame.d.ts +59 -0
  673. package/dist/record/frame.d.ts.map +1 -0
  674. package/dist/record/helpers.d.ts +101 -0
  675. package/dist/record/helpers.d.ts.map +1 -0
  676. package/dist/record/index.d.ts +15 -0
  677. package/dist/record/index.d.ts.map +1 -0
  678. package/dist/record/main-pass-geometry.d.ts +20 -0
  679. package/dist/record/main-pass-geometry.d.ts.map +1 -0
  680. package/dist/record/main-pass-material.d.ts +173 -0
  681. package/dist/record/main-pass-material.d.ts.map +1 -0
  682. package/dist/record/main-pass-skin.d.ts +46 -0
  683. package/dist/record/main-pass-skin.d.ts.map +1 -0
  684. package/dist/record/main-pass-sprite-draws.d.ts +18 -0
  685. package/dist/record/main-pass-sprite-draws.d.ts.map +1 -0
  686. package/dist/record/main-pass-sprite.d.ts +69 -0
  687. package/dist/record/main-pass-sprite.d.ts.map +1 -0
  688. package/dist/record/main-pass.d.ts +20 -0
  689. package/dist/record/main-pass.d.ts.map +1 -0
  690. package/dist/record/material-payload.d.ts +43 -0
  691. package/dist/record/material-payload.d.ts.map +1 -0
  692. package/dist/record/material-slot-plan.d.ts +26 -0
  693. package/dist/record/material-slot-plan.d.ts.map +1 -0
  694. package/dist/record/membership-timing.d.ts +232 -0
  695. package/dist/record/membership-timing.d.ts.map +1 -0
  696. package/dist/record/mesh-ssbo.d.ts +173 -0
  697. package/dist/record/mesh-ssbo.d.ts.map +1 -0
  698. package/dist/record/shadow-caster-uniform.d.ts +8 -0
  699. package/dist/record/shadow-caster-uniform.d.ts.map +1 -0
  700. package/dist/record/shadow-pass.d.ts +125 -0
  701. package/dist/record/shadow-pass.d.ts.map +1 -0
  702. package/dist/record/shadow-submit-mode.d.ts +66 -0
  703. package/dist/record/shadow-submit-mode.d.ts.map +1 -0
  704. package/dist/record/skybox-post-pass.d.ts +33 -0
  705. package/dist/record/skybox-post-pass.d.ts.map +1 -0
  706. package/dist/record/typed-frame-graph.d.ts +13 -0
  707. package/dist/record/typed-frame-graph.d.ts.map +1 -0
  708. package/dist/record/view-ubo.d.ts +39 -0
  709. package/dist/record/view-ubo.d.ts.map +1 -0
  710. package/dist/render-data.d.ts +143 -0
  711. package/dist/render-data.d.ts.map +1 -0
  712. package/dist/render-dispatch-membership.d.ts +47 -0
  713. package/dist/render-dispatch-membership.d.ts.map +1 -0
  714. package/dist/render-graph-primitives.d.ts +424 -0
  715. package/dist/render-graph-primitives.d.ts.map +1 -0
  716. package/dist/render-pipeline-context.d.ts +289 -0
  717. package/dist/render-pipeline-context.d.ts.map +1 -0
  718. package/dist/render-pipeline-target.d.ts +16 -0
  719. package/dist/render-pipeline-target.d.ts.map +1 -0
  720. package/dist/render-pipeline.d.ts +149 -0
  721. package/dist/render-pipeline.d.ts.map +1 -0
  722. package/dist/render-scene-projection.d.ts +174 -0
  723. package/dist/render-scene-projection.d.ts.map +1 -0
  724. package/dist/render-system-extract.d.ts +1096 -0
  725. package/dist/render-system-extract.d.ts.map +1 -0
  726. package/dist/render-system-fold.d.ts +266 -0
  727. package/dist/render-system-fold.d.ts.map +1 -0
  728. package/dist/render-system.d.ts +814 -0
  729. package/dist/render-system.d.ts.map +1 -0
  730. package/dist/renderer/asset-service.d.ts +10 -0
  731. package/dist/renderer/asset-service.d.ts.map +1 -0
  732. package/dist/renderer/backend-selection.d.ts +26 -0
  733. package/dist/renderer/backend-selection.d.ts.map +1 -0
  734. package/dist/renderer/environment-classify.d.ts +6 -0
  735. package/dist/renderer/environment-classify.d.ts.map +1 -0
  736. package/dist/renderer/environment-error.d.ts +13 -0
  737. package/dist/renderer/environment-error.d.ts.map +1 -0
  738. package/dist/renderer/material/assembly.d.ts +22 -0
  739. package/dist/renderer/material/assembly.d.ts.map +1 -0
  740. package/dist/renderer/material/pipeline-projection.d.ts +91 -0
  741. package/dist/renderer/material/pipeline-projection.d.ts.map +1 -0
  742. package/dist/renderer/renderer-factory.d.ts +283 -0
  743. package/dist/renderer/renderer-factory.d.ts.map +1 -0
  744. package/dist/renderer.d.ts +771 -0
  745. package/dist/renderer.d.ts.map +1 -0
  746. package/dist/scene-instances/post-spawn-resolve-joints.d.ts +33 -0
  747. package/dist/scene-instances/post-spawn-resolve-joints.d.ts.map +1 -0
  748. package/dist/scene-utils/collect-subtree.d.ts +11 -0
  749. package/dist/scene-utils/collect-subtree.d.ts.map +1 -0
  750. package/dist/shadow-atlas.d.ts +117 -0
  751. package/dist/shadow-atlas.d.ts.map +1 -0
  752. package/dist/ssao-buffers.d.ts +31 -0
  753. package/dist/ssao-buffers.d.ts.map +1 -0
  754. package/dist/ssao-config.d.ts +28 -0
  755. package/dist/ssao-config.d.ts.map +1 -0
  756. package/dist/ssao-data.d.ts +34 -0
  757. package/dist/ssao-data.d.ts.map +1 -0
  758. package/dist/surface-format.d.ts +10 -0
  759. package/dist/surface-format.d.ts.map +1 -0
  760. package/dist/systems/active-camera.d.ts +53 -0
  761. package/dist/systems/active-camera.d.ts.map +1 -0
  762. package/dist/systems/pass-selector.d.ts +24 -0
  763. package/dist/systems/pass-selector.d.ts.map +1 -0
  764. package/dist/systems/skin-palette-allocator.d.ts +51 -0
  765. package/dist/systems/skin-palette-allocator.d.ts.map +1 -0
  766. package/dist/systems/transparent-sort-config.d.ts +91 -0
  767. package/dist/systems/transparent-sort-config.d.ts.map +1 -0
  768. package/dist/taa-history-store.d.ts +88 -0
  769. package/dist/taa-history-store.d.ts.map +1 -0
  770. package/dist/temporal-coverage.d.ts +35 -0
  771. package/dist/temporal-coverage.d.ts.map +1 -0
  772. package/dist/temporal-frame-transaction.d.ts +92 -0
  773. package/dist/temporal-frame-transaction.d.ts.map +1 -0
  774. package/dist/temporal-inspection.d.ts +57 -0
  775. package/dist/temporal-inspection.d.ts.map +1 -0
  776. package/dist/temporal-view.d.ts +43 -0
  777. package/dist/temporal-view.d.ts.map +1 -0
  778. package/dist/tilemap/resolve-tileset-runtime.d.ts +23 -0
  779. package/dist/tilemap/resolve-tileset-runtime.d.ts.map +1 -0
  780. package/dist/tilemap-chunk-extract-system.d.ts +142 -0
  781. package/dist/tilemap-chunk-extract-system.d.ts.map +1 -0
  782. package/dist/typed-render-graph-primitives.d.ts +59 -0
  783. package/dist/typed-render-graph-primitives.d.ts.map +1 -0
  784. package/dist/typed-shadow-passes.d.ts +11 -0
  785. package/dist/typed-shadow-passes.d.ts.map +1 -0
  786. package/dist/urp-pipeline.d.ts +4 -0
  787. package/dist/urp-pipeline.d.ts.map +1 -0
  788. package/package.json +94 -0
  789. package/src/__tests__/analytic-sky-contract.test.ts +27 -0
  790. package/src/__tests__/analytic-sky-falsify-carriers.mjs +43 -0
  791. package/src/__tests__/analytic-sky-falsify.test.ts +94 -0
  792. package/src/__tests__/assets-runtime-handoff.integration.test.ts +36 -0
  793. package/src/__tests__/authoring-path.unit.test.ts +14 -0
  794. package/src/__tests__/backend-selection-rhi-capture.test-d.ts +21 -0
  795. package/src/__tests__/backend-selection.integration.test.ts +11 -0
  796. package/src/__tests__/callback-inference.test-d.ts +5 -0
  797. package/src/__tests__/camera-temporal.test-d.ts +8 -0
  798. package/src/__tests__/camera-temporal.test.ts +188 -0
  799. package/src/__tests__/cluster-binner.test.ts +272 -0
  800. package/src/__tests__/cluster-grid-default-surface.unit.test.ts +17 -0
  801. package/src/__tests__/construct-renderer-identity.unit.test.ts +10 -0
  802. package/src/__tests__/direct-extract-consumer-contract.test-d.ts +34 -0
  803. package/src/__tests__/direct-light-snapshot.unit.test.ts +71 -0
  804. package/src/__tests__/directional-shadow-probe-atlas-layout.unit.test.ts +18 -0
  805. package/src/__tests__/environment-inspection.test.ts +45 -0
  806. package/src/__tests__/factory-contract.integration.test.ts +331 -0
  807. package/src/__tests__/fallback-row-stride-surface.unit.test.ts +18 -0
  808. package/src/__tests__/fog-ai-user.fixture.ts +350 -0
  809. package/src/__tests__/fog-custom-render-feature.fixture.ts +33 -0
  810. package/src/__tests__/fog-custom-render-feature.integration.test.ts +76 -0
  811. package/src/__tests__/fog-inspection.integration.test.ts +127 -0
  812. package/src/__tests__/fog-owner-state.integration.test.ts +112 -0
  813. package/src/__tests__/fog-pipeline-topology.integration.test.ts +93 -0
  814. package/src/__tests__/fog-public-surface.integration.test.ts +60 -0
  815. package/src/__tests__/fog-ray-contract.integration.test.ts +73 -0
  816. package/src/__tests__/fog-source-absence.integration.test.ts +51 -0
  817. package/src/__tests__/fog-temporal.integration.test.ts +115 -0
  818. package/src/__tests__/frame-chain.unit.test.ts +26 -0
  819. package/src/__tests__/frame-observation.contract.test.ts +103 -0
  820. package/src/__tests__/glyph-text-layout-recovery.unit.test.ts +172 -0
  821. package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +347 -0
  822. package/src/__tests__/gpu-driven-indirect-raster.browser.test.ts +12 -0
  823. package/src/__tests__/gpu-driven-indirect-raster.dawn.test.ts +16 -0
  824. package/src/__tests__/gpu-driven-production.integration.test.ts +609 -0
  825. package/src/__tests__/gpu-driven-scaling.unit.test.ts +90 -0
  826. package/src/__tests__/gpu-driven-view-gpu-evidence.ts +192 -0
  827. package/src/__tests__/gpu-driven-view-graph.integration.test.ts +128 -0
  828. package/src/__tests__/gpu-driven-view.browser.test.ts +19 -0
  829. package/src/__tests__/gpu-driven-view.dawn.test.ts +17 -0
  830. package/src/__tests__/gpu-driven-view.unit.test.ts +455 -0
  831. package/src/__tests__/gpu-resource-store-stride.unit.test.ts +59 -0
  832. package/src/__tests__/gpu-scene-field-type-owner.test-d.ts +27 -0
  833. package/src/__tests__/gpu-scene-render-graph-gpu.ts +309 -0
  834. package/src/__tests__/gpu-scene-render-graph.browser.test.ts +19 -0
  835. package/src/__tests__/gpu-scene-render-graph.dawn.test.ts +19 -0
  836. package/src/__tests__/gpu-scene-schema.unit.test.ts +16 -0
  837. package/src/__tests__/gpu-scene.dawn.test.ts +209 -0
  838. package/src/__tests__/gpu-scene.unit.test.ts +161 -0
  839. package/src/__tests__/hdrp-pipeline.unit.test.ts +100 -0
  840. package/src/__tests__/ibl/ibl-fallback.unit.test.ts +23 -0
  841. package/src/__tests__/infinite-grid-no-vertex-probe.unit.test.ts +124 -0
  842. package/src/__tests__/injection-kind-owner.test-d.ts +14 -0
  843. package/src/__tests__/ktx2-basis-gpu-consumer.dawn.test.ts +719 -0
  844. package/src/__tests__/light-buffer-layout.unit.test.ts +85 -0
  845. package/src/__tests__/material-contract-inventory.unit.test.ts +24 -0
  846. package/src/__tests__/material-cooked-projection.unit.test.ts +177 -0
  847. package/src/__tests__/material-derived-error-stop-draw.integration.test.ts +69 -0
  848. package/src/__tests__/material-derived-payload.integration.test.ts +164 -0
  849. package/src/__tests__/material-snapshot-mutation.integration.test.ts +58 -0
  850. package/src/__tests__/material-static-dynamic-route.unit.test.ts +113 -0
  851. package/src/__tests__/material-stride-surface.unit.test.ts +32 -0
  852. package/src/__tests__/materials.unit.test.ts +25 -0
  853. package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +107 -0
  854. package/src/__tests__/mesh-material-bindings.unit.test.ts +89 -0
  855. package/src/__tests__/mesh-stride-surface.unit.test.ts +16 -0
  856. package/src/__tests__/morph-culling-reentry.dawn.test.ts +166 -0
  857. package/src/__tests__/morph-feature-gpu-work.integration.test.ts +78 -0
  858. package/src/__tests__/morph-visual-evidence.integration.test.ts +66 -0
  859. package/src/__tests__/nineslice-handle-surface.unit.test.ts +14 -0
  860. package/src/__tests__/param-schema-projection-census.unit.test.ts +40 -0
  861. package/src/__tests__/persistent-render-scene.unit.test.ts +1311 -0
  862. package/src/__tests__/pipeline-error-policy-owner.unit.test.ts +167 -0
  863. package/src/__tests__/pipeline-pass-trace.test.ts +92 -0
  864. package/src/__tests__/pipeline-stage-owner.test-d.ts +13 -0
  865. package/src/__tests__/plugin.test.ts +25 -0
  866. package/src/__tests__/post-process-error-policy-owner.unit.test.ts +208 -0
  867. package/src/__tests__/prepared-buffer-kind-owner.test-d.ts +29 -0
  868. package/src/__tests__/prepared-graphics-backend-matrix.unit.test.ts +129 -0
  869. package/src/__tests__/prepared-graphics-capability.unit.test.ts +140 -0
  870. package/src/__tests__/prepared-graphics-generation.unit.test.ts +175 -0
  871. package/src/__tests__/prepared-graphics-lifecycle.unit.test.ts +206 -0
  872. package/src/__tests__/prepared-graphics-pipeline-warmup.unit.test.ts +29 -0
  873. package/src/__tests__/prepared-graphics-resolver-recording.unit.test.ts +180 -0
  874. package/src/__tests__/prepared-graphics-resolver.unit.test.ts +287 -0
  875. package/src/__tests__/prepared-graphics-snapshot.unit.test.ts +105 -0
  876. package/src/__tests__/prepared-graphics-store.unit.test.ts +154 -0
  877. package/src/__tests__/prepared-graphics-validation.unit.test.ts +176 -0
  878. package/src/__tests__/profiler-default-off.test.ts +22 -0
  879. package/src/__tests__/profiler-phase-catalog.test.ts +66 -0
  880. package/src/__tests__/profiler-phase-integration.test.ts +70 -0
  881. package/src/__tests__/profiler-phase-token.test.ts +84 -0
  882. package/src/__tests__/public-pipeline-id.test-d.ts +6 -0
  883. package/src/__tests__/public-surface.test-d.ts +32 -0
  884. package/src/__tests__/recover-error-policy-owner.unit.test.ts +127 -0
  885. package/src/__tests__/render-dispatch-membership.unit.test.ts +117 -0
  886. package/src/__tests__/render-error-code-owner.test-d.ts +115 -0
  887. package/src/__tests__/render-error-detail-ssot.test-d.ts +234 -0
  888. package/src/__tests__/render-error-exhaustive.test-d.ts +84 -0
  889. package/src/__tests__/render-feature-assembly.test-d.ts +51 -0
  890. package/src/__tests__/render-feature-construction.unit.test.ts +124 -0
  891. package/src/__tests__/render-feature-context.test-d.ts +81 -0
  892. package/src/__tests__/render-feature-contract.test-d.ts +58 -0
  893. package/src/__tests__/render-feature-diagnostics.unit.test.ts +151 -0
  894. package/src/__tests__/render-feature-docs.unit.test.ts +88 -0
  895. package/src/__tests__/render-feature-error-code-owner.test-d.ts +27 -0
  896. package/src/__tests__/render-feature-errors.unit.test.ts +47 -0
  897. package/src/__tests__/render-feature-gpu-buffer-usage-owner.test-d.ts +46 -0
  898. package/src/__tests__/render-feature-gpu-work.integration.test.ts +377 -0
  899. package/src/__tests__/render-feature-graph.integration.test.ts +205 -0
  900. package/src/__tests__/render-feature-graphics-staging.unit.test.ts +200 -0
  901. package/src/__tests__/render-feature-order.unit.test.ts +66 -0
  902. package/src/__tests__/render-feature-prepared-diagnostics.unit.test.ts +101 -0
  903. package/src/__tests__/render-feature-prepared-errors.test-d.ts +82 -0
  904. package/src/__tests__/render-feature-prepared-graphics-docs.unit.test.ts +141 -0
  905. package/src/__tests__/render-feature-prepared-graphics-isolation.unit.test.ts +122 -0
  906. package/src/__tests__/render-feature-prepared-graphics-negative.test-d.ts +59 -0
  907. package/src/__tests__/render-feature-prepared-graphics-recording.unit.test.ts +107 -0
  908. package/src/__tests__/render-feature-prepared-graphics.test-d.ts +96 -0
  909. package/src/__tests__/render-feature-prepared-graphics.unit.test.ts +121 -0
  910. package/src/__tests__/render-feature-public-surface.test-d.ts +75 -0
  911. package/src/__tests__/render-feature-retry.unit.test.ts +128 -0
  912. package/src/__tests__/render-feature-scheduling.unit.test.ts +122 -0
  913. package/src/__tests__/render-feature-stage-failed-policy-owner.unit.test.ts +146 -0
  914. package/src/__tests__/render-feature-stage-fault-recovery.unit.test.ts +236 -0
  915. package/src/__tests__/render-feature-staging.unit.test.ts +94 -0
  916. package/src/__tests__/render-feature-visibility-context.test-d.ts +38 -0
  917. package/src/__tests__/render-feature-visibility-context.unit.test.ts +38 -0
  918. package/src/__tests__/render-feature-zero-work.unit.test.ts +82 -0
  919. package/src/__tests__/render-graph-compute-raster-gpu.ts +342 -0
  920. package/src/__tests__/render-graph-compute-raster.browser.test.ts +16 -0
  921. package/src/__tests__/render-graph-compute-raster.dawn.test.ts +22 -0
  922. package/src/__tests__/render-graph-hzb-gpu.ts +239 -0
  923. package/src/__tests__/render-graph-hzb.browser.test.ts +16 -0
  924. package/src/__tests__/render-graph-hzb.dawn.test.ts +23 -0
  925. package/src/__tests__/render-graph-primitives.unit.test.ts +22 -0
  926. package/src/__tests__/render-graph-storage-indirect-gpu.ts +162 -0
  927. package/src/__tests__/render-graph-storage-indirect.browser.test.ts +21 -0
  928. package/src/__tests__/render-graph-storage-indirect.dawn.test.ts +28 -0
  929. package/src/__tests__/render-scene-projection.unit.test.ts +206 -0
  930. package/src/__tests__/renderer-factory-material-contract.unit.test.ts +125 -0
  931. package/src/__tests__/renderer-lifecycle.integration.test.ts +10 -0
  932. package/src/__tests__/renderer-render-scene-public.test-d.ts +27 -0
  933. package/src/__tests__/rhi-backend-package-boundary.unit.test.ts +11 -0
  934. package/src/__tests__/scene-temporal-coverage.unit.test.ts +259 -0
  935. package/src/__tests__/scriptable-pack-consumer.test-d.ts +14 -0
  936. package/src/__tests__/shader-stage-surface.unit.test.ts +38 -0
  937. package/src/__tests__/ssao-kernel-surface.unit.test.ts +15 -0
  938. package/src/__tests__/sun-snapshot-consumers.test.ts +35 -0
  939. package/src/__tests__/surface-backend-kind-owner.test-d.ts +42 -0
  940. package/src/__tests__/surface-configuration.unit.test.ts +92 -0
  941. package/src/__tests__/taa-history-store.unit.test.ts +196 -0
  942. package/src/__tests__/temporal-frame-transaction.integration.test.ts +537 -0
  943. package/src/__tests__/temporal-inspection.unit.test.ts +138 -0
  944. package/src/__tests__/texture-usage-surface.unit.test.ts +61 -0
  945. package/src/__tests__/typed-pipeline-topology.unit.test.ts +389 -0
  946. package/src/__tests__/urp-pipeline-targets.unit.test.ts +52 -0
  947. package/src/__tests__/urp-pipeline.unit.test.ts +14 -0
  948. package/src/__tests__/vertex-color-pipeline.unit.test.ts +124 -0
  949. package/src/__tests__/vertex-layout-consumer.unit.test.ts +25 -0
  950. package/src/__tests__/visibility-diagnostics.integration.test.ts +66 -0
  951. package/src/__tests__/visibility-extract.integration.test.ts +89 -0
  952. package/src/__tests__/visibility-extract.perf.test.ts +96 -0
  953. package/src/__tests__/visibility-feature-dedup.integration.test.ts +57 -0
  954. package/src/__tests__/visibility-hidden-report.unit.test.ts +37 -0
  955. package/src/__tests__/visibility-instances.integration.test.ts +50 -0
  956. package/src/__tests__/visibility-multi-world.integration.test.ts +54 -0
  957. package/src/__tests__/visibility-producer-matrix.integration.test.ts +191 -0
  958. package/src/__tests__/visibility-producer-matrix.unit.test.ts +96 -0
  959. package/src/__tests__/visibility-public-surface.test-d.ts +26 -0
  960. package/src/__tests__/visibility-resolver.unit.test.ts +84 -0
  961. package/src/__tests__/visibility-snapshot-contract.unit.test.ts +59 -0
  962. package/src/__tests__/vocabulary.unit.test.ts +21 -0
  963. package/src/assets/__tests__/asset-decoders.unit.test.ts +92 -0
  964. package/src/assets/__tests__/mipmap-generator.unit.test.ts +52 -0
  965. package/src/assets/__tests__/render-asset-port.unit.test.ts +54 -0
  966. package/src/assets/__tests__/resolve-render-asset.unit.test.ts +47 -0
  967. package/src/assets/asset-decoders.ts +158 -0
  968. package/src/assets/render-asset-port.ts +44 -0
  969. package/src/assets/resolve-render-asset.ts +13 -0
  970. package/src/authoring.ts +24 -0
  971. package/src/cluster-binner.ts +700 -0
  972. package/src/components/__tests__/atmosphere-red.test.ts +51 -0
  973. package/src/components/__tests__/atmosphere.test.ts +79 -0
  974. package/src/components/__tests__/fog.test-d.ts +49 -0
  975. package/src/components/__tests__/fog.test.ts +60 -0
  976. package/src/components/__tests__/schema-parity.unit.test.ts +25 -0
  977. package/src/components/__tests__/visibility-schema.unit.test.ts +35 -0
  978. package/src/components/atmosphere.ts +64 -0
  979. package/src/components/camera.ts +512 -0
  980. package/src/components/directional-light.ts +120 -0
  981. package/src/components/environment.ts +206 -0
  982. package/src/components/glyph-text.ts +63 -0
  983. package/src/components/index.ts +49 -0
  984. package/src/components/instances.ts +207 -0
  985. package/src/components/layer.ts +69 -0
  986. package/src/components/light-helpers.ts +188 -0
  987. package/src/components/mesh-filter.ts +59 -0
  988. package/src/components/mesh-renderer.ts +61 -0
  989. package/src/components/point-light-shadow.ts +43 -0
  990. package/src/components/point-light.ts +65 -0
  991. package/src/components/post-process-params.ts +35 -0
  992. package/src/components/scene-instance.ts +193 -0
  993. package/src/components/sort-key.ts +75 -0
  994. package/src/components/spot-light.ts +124 -0
  995. package/src/components/sprite-animation.ts +169 -0
  996. package/src/components/sprite-instances.ts +179 -0
  997. package/src/components/sprite-playback-mode.ts +73 -0
  998. package/src/components/sprite-region-override.ts +106 -0
  999. package/src/components/tile-layer.ts +161 -0
  1000. package/src/components/tilemap.ts +48 -0
  1001. package/src/components/visibility.ts +53 -0
  1002. package/src/construct-renderer.ts +4 -0
  1003. package/src/debug-draw-glue.ts +169 -0
  1004. package/src/deferred-lighting.ts +92 -0
  1005. package/src/dynamic-texture-store.ts +111 -0
  1006. package/src/engine-metrics.ts +89 -0
  1007. package/src/environment/README.md +76 -0
  1008. package/src/environment/__tests__/failure-injection.test.ts +50 -0
  1009. package/src/environment/__tests__/generation-red.test.ts +64 -0
  1010. package/src/environment/__tests__/generation.test.ts +37 -0
  1011. package/src/environment/__tests__/graph-transaction.test.ts +85 -0
  1012. package/src/environment/__tests__/inspection-red.test.ts +53 -0
  1013. package/src/environment/__tests__/lifecycle-evidence.test.ts +40 -0
  1014. package/src/environment/__tests__/pipeline-topology.test.ts +33 -0
  1015. package/src/environment/__tests__/readiness.test.ts +42 -0
  1016. package/src/environment/__tests__/recovery.test.ts +62 -0
  1017. package/src/environment/__tests__/resize-dispose.test.ts +30 -0
  1018. package/src/environment/__tests__/signature-red.test.ts +45 -0
  1019. package/src/environment/__tests__/signature.test.ts +60 -0
  1020. package/src/environment/descriptors.ts +7 -0
  1021. package/src/environment/extracted-environment.ts +239 -0
  1022. package/src/environment/generation.ts +158 -0
  1023. package/src/environment/gpu-bundle.ts +144 -0
  1024. package/src/environment/graph.ts +588 -0
  1025. package/src/environment/inspection.ts +107 -0
  1026. package/src/environment/lifecycle.ts +124 -0
  1027. package/src/environment/readiness.ts +76 -0
  1028. package/src/environment/signature.ts +185 -0
  1029. package/src/errors/ecs-validation.ts +16 -0
  1030. package/src/errors/index.ts +3 -0
  1031. package/src/errors/recover.ts +119 -0
  1032. package/src/errors/render.ts +1244 -0
  1033. package/src/extract/__tests__/directional-csm-domain.unit.test.ts +391 -0
  1034. package/src/extract/__tests__/environment-source.test.ts +105 -0
  1035. package/src/extract/__tests__/schema-readers.unit.test.ts +16 -0
  1036. package/src/extract/directional-csm.ts +959 -0
  1037. package/src/extract/index.ts +10 -0
  1038. package/src/extract/material-interface.ts +604 -0
  1039. package/src/extract/schema-readers.ts +27 -0
  1040. package/src/extract/visibility.ts +120 -0
  1041. package/src/features/graph-contribution.ts +577 -0
  1042. package/src/features/host.ts +1097 -0
  1043. package/src/features/index.ts +100 -0
  1044. package/src/features/morph/index.ts +24 -0
  1045. package/src/features/morph/morph-bounds.ts +123 -0
  1046. package/src/features/morph/morph-feature.ts +287 -0
  1047. package/src/features/prepared-gpu-work.ts +902 -0
  1048. package/src/features/prepared-graphics-store.ts +435 -0
  1049. package/src/features/prepared-graphics.ts +479 -0
  1050. package/src/features/render-graph-compute.ts +60 -0
  1051. package/src/features/render-graph-contribution.ts +95 -0
  1052. package/src/features/render-graph-raster.ts +308 -0
  1053. package/src/features/render-graph-resources.ts +36 -0
  1054. package/src/features/scene-temporal.ts +274 -0
  1055. package/src/features/taa-resolve.ts +244 -0
  1056. package/src/features/targets.ts +83 -0
  1057. package/src/features/types.ts +291 -0
  1058. package/src/frame-chain.ts +21 -0
  1059. package/src/fullscreen-post-process-pass.ts +406 -0
  1060. package/src/glyph-text-layout-system.ts +447 -0
  1061. package/src/gpu-driven/batch-topology.ts +423 -0
  1062. package/src/gpu-driven/production-raster.ts +1705 -0
  1063. package/src/gpu-driven/view-gpu.ts +849 -0
  1064. package/src/gpu-driven/view-reference.ts +110 -0
  1065. package/src/gpu-resource-store.ts +1921 -0
  1066. package/src/gpu-resource.ts +159 -0
  1067. package/src/gpu-scene-schema.ts +224 -0
  1068. package/src/gpu-scene.ts +855 -0
  1069. package/src/gpu-stage.ts +9 -0
  1070. package/src/gpu-texture-usage.ts +12 -0
  1071. package/src/gpu-usage.ts +14 -0
  1072. package/src/hdrp-buffers.ts +689 -0
  1073. package/src/hdrp-cluster-membership.ts +70 -0
  1074. package/src/hdrp-pipeline.ts +525 -0
  1075. package/src/ibl/IblPipelineCache.ts +1246 -0
  1076. package/src/ibl/cubemap-projection.ts +60 -0
  1077. package/src/ibl/face-uniforms.ts +150 -0
  1078. package/src/ibl/skylight-bind-group.ts +513 -0
  1079. package/src/index.ts +271 -0
  1080. package/src/instance-buffer-cache.ts +123 -0
  1081. package/src/internal.ts +88 -0
  1082. package/src/lifecycle.ts +123 -0
  1083. package/src/light-buffer-layout.ts +346 -0
  1084. package/src/materials.ts +236 -0
  1085. package/src/mesh-material-bindings.ts +104 -0
  1086. package/src/mesh-update-errors.ts +113 -0
  1087. package/src/mipmap-generator.ts +244 -0
  1088. package/src/param-schema-projection-census.ts +73 -0
  1089. package/src/pbr-pipeline.ts +749 -0
  1090. package/src/persistent-render-scene.ts +1752 -0
  1091. package/src/pipeline/index.ts +40 -0
  1092. package/src/pipeline-builder.ts +386 -0
  1093. package/src/pipeline-errors.ts +172 -0
  1094. package/src/pipeline-spec.ts +1768 -0
  1095. package/src/plugin.ts +137 -0
  1096. package/src/post-process-errors.ts +304 -0
  1097. package/src/prepare/__tests__/schema-readers.unit.test.ts +16 -0
  1098. package/src/prepare/index.ts +8 -0
  1099. package/src/prepare/prepared-graphics-resolver.ts +455 -0
  1100. package/src/prepare/schema-readers.ts +20 -0
  1101. package/src/record/__tests__/environment-record.test.ts +35 -0
  1102. package/src/record/__tests__/frame-targets.unit.test.ts +54 -0
  1103. package/src/record/__tests__/material-bg-cache.unit.test.ts +41 -0
  1104. package/src/record/__tests__/material-slot-plan.unit.test.ts +76 -0
  1105. package/src/record/__tests__/membership-timing.unit.test.ts +524 -0
  1106. package/src/record/__tests__/render-submission.integration.test.ts +76 -0
  1107. package/src/record/__tests__/render-submission.perf.test.ts +141 -0
  1108. package/src/record/__tests__/shadow-submit-mode.unit.test.ts +88 -0
  1109. package/src/record/__tests__/video-texture-view.unit.test.ts +90 -0
  1110. package/src/record/__tests__/view-ubo-layout.unit.test.ts +101 -0
  1111. package/src/record/frame-lighting.ts +1183 -0
  1112. package/src/record/frame-observation.ts +122 -0
  1113. package/src/record/frame-snapshot.ts +515 -0
  1114. package/src/record/frame-targets.ts +372 -0
  1115. package/src/record/frame.ts +1874 -0
  1116. package/src/record/helpers.ts +289 -0
  1117. package/src/record/index.ts +15 -0
  1118. package/src/record/main-pass-geometry.ts +1014 -0
  1119. package/src/record/main-pass-material.ts +716 -0
  1120. package/src/record/main-pass-skin.ts +51 -0
  1121. package/src/record/main-pass-sprite-draws.ts +1056 -0
  1122. package/src/record/main-pass-sprite.ts +166 -0
  1123. package/src/record/main-pass.ts +588 -0
  1124. package/src/record/material-payload.ts +292 -0
  1125. package/src/record/material-slot-plan.ts +68 -0
  1126. package/src/record/membership-timing.ts +1012 -0
  1127. package/src/record/mesh-ssbo.ts +406 -0
  1128. package/src/record/shadow-caster-uniform.ts +37 -0
  1129. package/src/record/shadow-pass.ts +2387 -0
  1130. package/src/record/shadow-submit-mode.ts +277 -0
  1131. package/src/record/skybox-post-pass.ts +594 -0
  1132. package/src/record/typed-frame-graph.ts +499 -0
  1133. package/src/record/view-ubo.ts +206 -0
  1134. package/src/render-data.ts +385 -0
  1135. package/src/render-dispatch-membership.ts +155 -0
  1136. package/src/render-graph-primitives.ts +1586 -0
  1137. package/src/render-pipeline-context.ts +332 -0
  1138. package/src/render-pipeline-target.ts +96 -0
  1139. package/src/render-pipeline.ts +343 -0
  1140. package/src/render-scene-projection.ts +1738 -0
  1141. package/src/render-system-extract.ts +5203 -0
  1142. package/src/render-system-fold.ts +531 -0
  1143. package/src/render-system.ts +3258 -0
  1144. package/src/renderer/asset-service.ts +32 -0
  1145. package/src/renderer/backend-selection.ts +121 -0
  1146. package/src/renderer/environment-classify.ts +30 -0
  1147. package/src/renderer/environment-error.ts +19 -0
  1148. package/src/renderer/material/assembly.ts +53 -0
  1149. package/src/renderer/material/pipeline-projection.ts +140 -0
  1150. package/src/renderer/renderer-factory.ts +9062 -0
  1151. package/src/renderer.ts +940 -0
  1152. package/src/scene-instances/post-spawn-resolve-joints.ts +168 -0
  1153. package/src/scene-utils/collect-subtree.ts +40 -0
  1154. package/src/shadow-atlas.ts +244 -0
  1155. package/src/ssao-buffers.ts +175 -0
  1156. package/src/ssao-config.ts +61 -0
  1157. package/src/ssao-data.ts +106 -0
  1158. package/src/surface-format.ts +37 -0
  1159. package/src/systems/active-camera.ts +116 -0
  1160. package/src/systems/pass-selector.ts +49 -0
  1161. package/src/systems/skin-palette-allocator.ts +294 -0
  1162. package/src/systems/transparent-sort-config.ts +211 -0
  1163. package/src/taa-history-store.ts +429 -0
  1164. package/src/temporal-coverage.ts +106 -0
  1165. package/src/temporal-frame-transaction.ts +301 -0
  1166. package/src/temporal-inspection.ts +194 -0
  1167. package/src/temporal-view.ts +174 -0
  1168. package/src/tilemap/resolve-tileset-runtime.ts +72 -0
  1169. package/src/tilemap-chunk-extract-system.ts +1307 -0
  1170. package/src/typed-render-graph-primitives.ts +530 -0
  1171. package/src/typed-shadow-passes.ts +195 -0
  1172. package/src/urp-pipeline.ts +340 -0
@@ -0,0 +1,814 @@
1
+ import type { World } from '@forgeax/engine-ecs';
2
+ import type { VertexLayoutProjection } from '@forgeax/engine-geometry';
3
+ import type { Profiler } from '@forgeax/engine-profiler';
4
+ import type { BindGroupLayout, Buffer, ComputePipeline, PipelineLayout, RenderPipeline, RhiCanvasContext, RhiDevice, Sampler, TextureView } from '@forgeax/engine-rhi';
5
+ import { type Result, RhiError } from '@forgeax/engine-rhi';
6
+ import type { MaterialRuntimeArtifact } from '@forgeax/engine-shader';
7
+ import { type ImmutableParamSchemaProjection, type MaterialRenderState, type ParamSchemaEntry, type PassKind, type PrimitiveTopology, type RenderPipelineAsset } from '@forgeax/engine-types';
8
+ import type { RenderAssetPort } from './assets/render-asset-port';
9
+ import type { DynamicTextureStore } from './dynamic-texture-store';
10
+ import type { EngineMetrics } from './engine-metrics';
11
+ import { type EnvironmentInspection } from './environment/inspection';
12
+ import { type ObservationUnavailableError, type RenderError } from './errors/render';
13
+ import { type RenderFeatureGraphComposition, type RenderFeatureGraphContribution } from './features/graph-contribution';
14
+ import { type RenderFeatureHost } from './features/host';
15
+ import type { RenderFeaturePassContext } from './features/types';
16
+ import { type PostProcessShaderEntry } from './fullscreen-post-process-pass';
17
+ import { type GpuDrivenProductionInspection } from './gpu-driven/production-raster';
18
+ import type { GpuBuffer } from './gpu-resource';
19
+ import type { GpuResourceStore } from './gpu-resource-store';
20
+ import type { RhiErrorListenerRegistry } from './lifecycle';
21
+ import type { MeshMaterialBindingObservation } from './mesh-material-bindings';
22
+ import { type ParamSchemaProjectionCensus } from './param-schema-projection-census';
23
+ import { type PersistentRenderSceneInspection } from './persistent-render-scene';
24
+ import { PipelineError } from './pipeline-errors';
25
+ import { type FrameObservation, type FrameObservationOptions } from './record/frame-observation';
26
+ import type { MembershipTimingController } from './record/membership-timing';
27
+ import { type ShadowSubmitMode, type ShadowSubmitModeState, type ShadowSubmitResult } from './record/shadow-submit-mode';
28
+ import type { RenderPipeline as RenderPipelineDef } from './render-pipeline';
29
+ import type { RenderPipelineContext } from './render-pipeline-context';
30
+ import { type TemporalInspection } from './temporal-inspection';
31
+ export type RenderSceneInspection = PersistentRenderSceneInspection & {
32
+ readonly gpuDriven: GpuDrivenProductionInspection;
33
+ readonly temporal: TemporalInspection;
34
+ readonly environment: EnvironmentInspection;
35
+ };
36
+ import { type DrawOwnerOptions } from './renderer';
37
+ import type { MaterialRenderProjection } from './renderer/material/assembly';
38
+ import type { MaterialReadiness } from './renderer/material/pipeline-projection';
39
+ import type { SkinPaletteAllocator } from './systems/skin-palette-allocator';
40
+ /** Dynamic-offset stride for one derived material UBO slot. */
41
+ export declare const MATERIAL_PER_ENTITY_STRIDE = 512;
42
+ /**
43
+ * Engine-internal Extract / Prepare / Record driver; constructed by createRenderer.
44
+ *
45
+ * w15 M5 dual-pipeline dispatch: `pipelineDispatchCounts` surfaces per-frame
46
+ * counters of how many entities were routed to each pipeline (plan-strategy
47
+ * D-P4 / requirements AC-07). The counts roll over monotonically — test
48
+ * callers read them after `draw([world], { cameraOwner: 0, resourceOwner: 0 })` to assert each tag saw >= 1 draw.
49
+ * Reset is intentional on every `draw([world], { cameraOwner: 0, resourceOwner: 0 })` entry so per-frame assertions
50
+ * stay local (charter proposition 4 explicit failure: test code sees exact
51
+ * per-draw counts, not stale cross-frame totals).
52
+ *
53
+ * bug-20260519: BUILTIN cube migrated to 12F so the legacy `unlitBuiltin`
54
+ * counter is gone; the surface collapses to `unlit` (every entity whose
55
+ * shader identity is `forgeax::default-unlit`) + `standard` (every entity
56
+ * whose shader identity is `forgeax::default-standard-pbr`).
57
+ */
58
+ export interface RenderSystem {
59
+ /** Returns true only when this invocation reached queue submission. */
60
+ draw(worlds: readonly World[], opts: DrawOwnerOptions): boolean;
61
+ /** Apply one renderer-owned shadow submission mode for one generation. */
62
+ applyShadowSubmitMode(mode: ShadowSubmitMode, rendererGeneration: string): ShadowSubmitResult<ShadowSubmitModeState>;
63
+ /** Restore the renderer-owned mode to the independent baseline. */
64
+ restoreShadowSubmitMode(rendererGeneration: string): ShadowSubmitResult<ShadowSubmitModeState>;
65
+ /** Read the generation-bound mode and exact lifecycle counters. */
66
+ getShadowSubmitMode(): ShadowSubmitModeState;
67
+ /** Release renderer-owned persistent state for one detached World. */
68
+ detachWorld(world: World): void;
69
+ /** Release the profiler catalog contribution owned by this RenderSystem. */
70
+ releaseProfilerCatalog(): void;
71
+ observeCurrentFrame(options: FrameObservationOptions): Promise<Result<FrameObservation, ObservationUnavailableError>>;
72
+ readonly pipelineDispatchCounts: {
73
+ readonly unlit: number;
74
+ };
75
+ /**
76
+ * feat-20260528-frustum-culling M5 / w14: per-frame frustum-culling counters.
77
+ * Updated by `draw([world], { cameraOwner: 0, resourceOwner: 0 })` on every call from the Extract stage.
78
+ */
79
+ readonly frustumStats: {
80
+ culled: number;
81
+ total: number;
82
+ };
83
+ /** Per-frame candidate entities rejected by author visibility. */
84
+ readonly visibilityStats: {
85
+ explicitlyHidden: number;
86
+ };
87
+ /** Persistent scene maintenance evidence from the ordinary single-World path. */
88
+ readonly renderScene: RenderSceneInspection;
89
+ /** Current mesh-slot provenance and active diagnostics from the last frame. */
90
+ readonly meshMaterialBindings: readonly MeshMaterialBindingObservation[];
91
+ /**
92
+ * feat-20260531-bloom-first-declarative-render-graph-pass M4 fix-up w19:
93
+ * per-frame render-graph pass names in declaration order. Empty array
94
+ * before the first `draw([world], { cameraOwner: 0, resourceOwner: 0 })` call; populated after the per-frame
95
+ * graph is built (lazily on first draw). Read-only introspection surface
96
+ * so smoke tests can assert the declarative pass chain is wired without
97
+ * reaching into engine internals.
98
+ */
99
+ readonly perFramePassNames: readonly string[];
100
+ /**
101
+ * feat-20260531-per-frame-bind-group-cache M1 / w4: per-frame
102
+ * createBindGroup counter. Reset to 0 on every `draw([world], { cameraOwner: 0, resourceOwner: 0 })` entry,
103
+ * bumped on each cache-miss createBindGroup call in the record stage.
104
+ * Aligns with pipelineDispatchCounts precedent: closure-mutable object
105
+ * + draw-entry reset + readonly getter. Stable-frame AC-03 asserts
106
+ * createBindGroup == 0 when all bind groups are cache-resident.
107
+ *
108
+ * M5 / w19 type-safe finalization: the return type is purposely the
109
+ * narrowest inline object literal `{ readonly createBindGroup: number }`
110
+ * rather than a wider Record/alias — this ensures TS language service
111
+ * hover shows the exact field name + type, and AC-09 consumption sites
112
+ * infer `number` without `as` casts (plan-strategy D-7 + sec.8
113
+ * discoverability).
114
+ */
115
+ readonly bindGroupCounts: {
116
+ readonly createBindGroup: number;
117
+ readonly keys: readonly string[];
118
+ };
119
+ /**
120
+ * feat-20260615-pipeline-spec-ssot M5-T2: latest URP shadow-atlas
121
+ * texture view resolved from the compiled typed frame graph. Returns `null` when no
122
+ * frame has been drawn yet, or when the active pipeline does not
123
+ * declare the `shadowDepth` color target. Read-only debug seam:
124
+ * the engine itself reads the same view inline in `recordFrame`;
125
+ * this getter exists so debug readback paths
126
+ * (`Renderer.debugSampleShadowFactor`) read the same SSOT view as
127
+ * the engine's record stage (D-2: graph owns the lifecycle; no
128
+ * mirror slot on `pipelineState.perPassResources`).
129
+ */
130
+ getCurrentShadowView(): any | null;
131
+ /**
132
+ * feat-20260601-customizable-render-pipeline-seam M1 / w7: register a render-pipeline
133
+ * logic under `id`. Same-id re-register THROWS a PipelineError
134
+ * (`'pipeline-already-registered'`) - programmer-error fail-fast, mirroring
135
+ * ShaderRegistry.installMaterialArtifact. Engine builtins use the `forgeax::` prefix.
136
+ */
137
+ registerPipeline(id: string, impl: RenderPipelineDef): void;
138
+ /**
139
+ * feat-20260601-customizable-render-pipeline-seam M1 / w7 (D-19): install the pipeline
140
+ * described by a `RenderPipelineAsset` POD. Looks up `pipelineId` in the registry; on an
141
+ * unregistered id returns `Result.err(PipelineError{code:'pipeline-not-found'})`. On
142
+ * success the next `draw` detects the install-epoch bump and rebuilds the memoized
143
+ * per-frame graph (hot-swap). Takes the payload directly because installation happens at
144
+ * boot/swap time before any World exists -- there is no handle to resolve.
145
+ */
146
+ installPipeline(asset: RenderPipelineAsset): Result<() => void, PipelineError>;
147
+ /**
148
+ * feat-20260604-resource-owning-render-graph-and-fullscreen-postpr M2 / w13:
149
+ * fullscreen post-process shader registry, parallel to ShaderRegistry.installMaterialArtifact
150
+ * (D-4: material shader handles 4-BGL / 12-float-vertex / depth / triangle-list, while
151
+ * fullscreen post-process uses 0-vertex-buffer / no-depth / input-texture-BGL).
152
+ * Same-id re-register THROWS PostProcessError ('post-process-already-registered').
153
+ * Engine builtins use the `forgeax::` prefix.
154
+ */
155
+ readonly postProcess: {
156
+ register(id: string, entry: PostProcessShaderEntry): () => void;
157
+ };
158
+ /**
159
+ * feat-20260612-rhi-destroy-renderer-dispose-gpu-lifecycle / M5 / w21:
160
+ * release the per-RenderSystem frame-state GPU bookkeeping during
161
+ * `Renderer.dispose()`. Retires the compiled graph and clears the instance-buffer cache.
162
+ *
163
+ * Idempotent (architecture-principles §6): a second call after both
164
+ * structures are cleared is a no-op. Per-step failures inside drain /
165
+ * disposeInstanceBuffers fall through silently -- the Renderer.dispose
166
+ * cascade owns the try/catch + errorRegistry.fire fan-out (D-3).
167
+ */
168
+ disposeFrameState(): void;
169
+ /**
170
+ * feat-20260622-s5 M3 / B-2 / w18: drop the device-bound state the recover()
171
+ * rebuild must shed before re-running the pipeline build against a fresh
172
+ * device. Two effects, both keyed to the lost device:
173
+ * 1. the per-frame render-graph's pendingDestroy queue (PooledTextures
174
+ * minted by the lost device — clearPendingDestroy skips destroyTexture);
175
+ * 2. post-process declarations + their eager param UBOs. Declarations are
176
+ * CPU-owned author intent and survive; UBOs are stale lost-device
177
+ * handles and are rebuilt after the replacement device is live.
178
+ * Idempotent and graph-optional (no-op when nothing has compiled yet).
179
+ */
180
+ resetForRecover(): void;
181
+ /** Recreate GPU-driven production state after internals.device is replaced. */
182
+ restoreGpuDrivenForRecover(): void;
183
+ /** Recreate post-process GPU parameter resources after a device rebuild. */
184
+ restorePostProcessResources(): void;
185
+ }
186
+ /**
187
+ * feat-20260601-customizable-render-pipeline-seam M2 / w10: the NARROW runtime-services
188
+ * surface a `RenderPipeline` pass closure consumes (UE `FRDGBuilder` runtime half). Bundles
189
+ * exactly the four `RenderSystemInternals` members the 9 urp closures reach
190
+ * directly: the GPU `device`, the structured-error sink `errorRegistry`, and the two
191
+ * per-MaterialShader pipeline-cache / param-schema lookups. `RenderPipelineContext.runtime`
192
+ * is typed as this interface, NOT the full `RenderSystemInternals` - a pipeline author
193
+ * cannot reach `context` / `getPipelineState` / `canvas` (charter P4: a
194
+ * consistent narrow abstraction over the runtime, not the kitchen-sink). `internals`
195
+ * itself is unreachable through the public ctx (the AC-08 oracle: `ctx.internals` is a
196
+ * compile error).
197
+ */
198
+ export interface RenderSystemRuntime {
199
+ readonly device: RhiDevice;
200
+ readonly errorRegistry: RhiErrorListenerRegistry;
201
+ /** @internal Emit directional shadow causal markers only for debug capture. */
202
+ readonly shadowDebugObservation?: boolean | undefined;
203
+ /** @internal Debug-only ParamSchema compatibility census; absent in production. */
204
+ readonly paramSchemaProjectionCensus?: ParamSchemaProjectionCensus | undefined;
205
+ /** @internal Depth-only fullscreen draw used to clear one invalid cascade tile. */
206
+ readonly getDirectionalShadowTileClearPipeline?: () => RenderPipeline | null;
207
+ /**
208
+ * feat-20260622-s5-device-surface-self-heal-recover M2 / w8: health registry
209
+ * threaded into the record stage so `recordFrame` can fire `internal-fault`
210
+ * when surface reconfigure+retry both fail (A-IN-2).
211
+ */
212
+ readonly healthRegistry: import('./lifecycle').HealthListenerRegistry;
213
+ /**
214
+ * Cooked material consumption boundary. Runtime record code may obtain a
215
+ * projection and content-addressed artifact here; it must not resolve an
216
+ * authored parent chain or compile a missing specialization.
217
+ */
218
+ readonly getMaterialProjection?: (materialGuid: string) => MaterialRenderProjection | undefined;
219
+ readonly getMaterialArtifact?: (specializationKey: string) => MaterialRuntimeArtifact | undefined;
220
+ /** Production MaterialReady/Error lookup used by the record draw gate. */
221
+ readonly getMaterialReadiness?: (materialGuid: string) => MaterialReadiness | undefined;
222
+ readonly getMaterialShaderPipeline?: (materialShaderId: string, isHdr: boolean, renderState?: MaterialRenderState, topology?: PrimitiveTopology, indexFormat?: 'uint16' | 'uint32', variantSet?: string, passKind?: PassKind, meshAttributes?: import('@forgeax/engine-types').VertexAttributeMap, sampleCount?: number, colorFormatOverride?: GPUTextureFormat, shaderUvSetCount?: number, depthFormatOverride?: GPUTextureFormat | null, vertexLayout?: string, materialGuid?: string, fragmentEntry?: string,
223
+ /** Geometry-owned immutable projection carried to the renderer PSO seam. */
224
+ vertexLayoutProjection?: VertexLayoutProjection) => RenderPipeline | null;
225
+ readonly getMaterialShaderBindingContract?: (materialShaderId: string) => 'group-0' | 'group-0-resource' | 'view-only' | 'view-with-resource' | 'render-material';
226
+ /**
227
+ * feat-20260527 M2 / w7: schema lookup for material param overlay.
228
+ * Returns the paramSchema for a registered material shader, or
229
+ * `undefined` when the shader is not in the ShaderRegistry.
230
+ * Record stage uses this instead of reading `MaterialSnapshot.paramSchema`.
231
+ */
232
+ readonly getParamSchema?: (materialShaderId: string) => readonly ParamSchemaEntry[] | undefined;
233
+ /**
234
+ * Runtime ParamSchema projection owner lookup. Registered shader consumers
235
+ * must prefer this immutable projection over deriving the same schema again.
236
+ * The optional seam keeps feature-only and legacy test runtimes compatible.
237
+ */
238
+ readonly getParamSchemaProjection?: (materialShaderId: string) => ImmutableParamSchemaProjection | undefined;
239
+ /**
240
+ * feat-20260621-learn-render-5-5-parallax M2 / w6 (D-1): the per-shader
241
+ * material BindGroupLayout for the given material shader. A custom shader
242
+ * declaring >3 user-region textures (e.g. parallax `heightTexture`) owns a
243
+ * material BGL whose entry count + injection start differ from the built-in
244
+ * 18-entry layout; the record stage must create the material bind group
245
+ * against THIS layout so the entry count matches. Returns `undefined` when
246
+ * the shader is unregistered or resolves to the shared built-in layout
247
+ * (3-texture shaders), in which case the caller falls back to
248
+ * `pipelineState.materialBindGroupLayout`.
249
+ */
250
+ readonly getMaterialBindGroupLayout?: (materialShaderId: string) => BindGroupLayout | undefined;
251
+ /**
252
+ * feat-20260527-sprite-nineslice M4 / w16 (D-5): per-Renderer metrics counter
253
+ * surfaced through `renderer.metrics`. Record-stage soft-warns (e.g.
254
+ * `nineslice.scale-too-small` when Transform.scale falls below the four
255
+ * 9-slice corner anchors) call `runtime.metrics.increment(name)` instead of
256
+ * a per-entity `console.warn` so AI users observe machine-readable counters
257
+ * (charter P3 over P-flooded text logs). Each Renderer owns its own
258
+ * EngineMetrics instance (D-5 candidate 1: multi-Renderer isolation).
259
+ */
260
+ readonly metrics: EngineMetrics;
261
+ /** Optional Render-owned membership timing capability. */
262
+ readonly membershipTiming?: MembershipTimingController | undefined;
263
+ /**
264
+ * feat-20260604-resource-owning-render-graph-and-fullscreen-postpr M3 / F-2 fix-up:
265
+ * post-process registry lookup. Returns the `PostProcessShaderEntry` registered
266
+ * via `renderer.postProcess.register(id, entry)`, or `undefined` when `id`
267
+ * resolves to no entry. `addFullscreenPass`'s execute closure dispatches on this
268
+ * to route to either the FXAA built-in path (id === 'fxaa') or the generic
269
+ * `buildFullscreenPostProcessPass + createFullscreenBindGroup` path; an
270
+ * unregistered id surfaces as a thrown `PostProcessError({code:'post-process-not-found'})`
271
+ * fail-fast (charter P3 / pipeline-errors throw template).
272
+ *
273
+ * Optional so a custom RenderSystemRuntime fixture (test doubles) need not
274
+ * supply it; the engine's own createRenderSystem populates it unconditionally.
275
+ */
276
+ readonly lookupPostProcess?: (id: string) => PostProcessShaderEntry | undefined;
277
+ /**
278
+ * feat-20260621-fullscreen-post-process-per-frame-uniform-params-l M-A2 / w8:
279
+ * per-shader params UBO accessor. Returns the eager-created (at register time,
280
+ * M-A1 / w5) GPU buffer for `id`, or `undefined` when the id has no params
281
+ * (param-less consumer) / is unregistered. dispatchFullscreenPass reads this to
282
+ * writeBuffer the per-frame snapshot bytes and bind the buffer at group(1)
283
+ * binding(2). Optional so test fixtures need not supply it; createRenderSystem
284
+ * populates it unconditionally (mirrors lookupPostProcess / getPostProcessPipeline).
285
+ */
286
+ readonly getPostProcessParamsBuffer?: (id: string) => Buffer | undefined;
287
+ /**
288
+ * feat-20260609-learn-render-4-5-framebuffers-demo-offscreen-rt-an M4 / T-10-a:
289
+ * post-process render-pipeline lookup with eager-on-first-call build. Returns a
290
+ * cached `RenderPipeline` (RHI handle) for `id`, lazily building on first call
291
+ * via the closure passed through `RenderSystemInternals.buildPostProcessPipeline`.
292
+ * Returns `null` when:
293
+ * - the id is not registered in the post-process registry (caller skips the
294
+ * pass — paired with the `'post-process-not-found'` throw site, this branch
295
+ * is unreachable on the happy path)
296
+ * - the underlying async shader-module compile is still pending (caller falls
297
+ * back for one frame and retries on the next; mirrors the
298
+ * `getMaterialShaderPipeline` 1-frame-warmup idiom)
299
+ * - the pipeline build itself fails (caller skips the pass; the build path
300
+ * fires a structured RhiError via errorRegistry; charter P3 explicit failure)
301
+ *
302
+ * Solves M1 CONCERN-1: the dispatcher in `dispatchFullscreenPass` previously
303
+ * passed `pipeline=null` to `built.createHandle` because the per-frame execute
304
+ * closure cannot await `createShaderModule` (async). With this lookup the
305
+ * dispatcher reads the pipeline synchronously; warm-up costs one frame.
306
+ *
307
+ * `bgl` is the fullscreen input-texture BGL the dispatcher already built via
308
+ * `buildFullscreenPostProcessPass`. The engine assumes a single static BGL
309
+ * shape (FULLSCREEN_BGL_DESCRIPTOR) so the pipeline cache keys on `id` only;
310
+ * subsequent calls reuse the cached pipeline regardless of which BGL identity
311
+ * is threaded.
312
+ *
313
+ * `colorFormat` is the swap-chain / target color format the post-process
314
+ * pipeline writes (`bgra8unorm-srgb` for swap-chain, the offscreen RT format
315
+ * otherwise). Cache key is `id|colorFormat`.
316
+ *
317
+ * Optional so a custom RenderSystemRuntime fixture (test doubles) need not
318
+ * supply it; the engine's own createRenderSystem populates it when
319
+ * `RenderSystemInternals.buildPostProcessPipeline` is provided.
320
+ */
321
+ readonly getPostProcessPipeline?: (id: string, bgl: BindGroupLayout, colorFormat: GPUTextureFormat) => RenderPipeline | null;
322
+ /**
323
+ * feat-20260623-world-space-video-asset M4 / w16 (D-3): transient per-frame
324
+ * texture store for VideoAsset sources. Independent of {@link gpuStore} — the
325
+ * record stage routes a `MaterialSnapshot.videoTextureFields` field through
326
+ * this store (per-frame copyExternalImageToTexture upload + current-frame view)
327
+ * instead of `gpuStore.ensureResident` (whose static cache video must never
328
+ * enter, AC-08). Optional so test fixtures that drive recordFrame manually
329
+ * need not supply one — a video field then degrades to the default view
330
+ * (charter P3). The production createRenderer always wires it.
331
+ */
332
+ readonly dynamicTextureStore?: DynamicTextureStore | undefined;
333
+ }
334
+ export interface RenderSystemInternals extends RenderSystemRuntime {
335
+ readonly canvas: HTMLCanvasElement | OffscreenCanvas;
336
+ /** Optional feature host supplied by the renderer assembly layer. */
337
+ readonly featureHost?: RenderFeatureHost | undefined;
338
+ readonly shaderModuleFactory?: import('./pipeline-builder').PipelineBuilderShaderModuleFactory;
339
+ /** Optional host profiler capability for the existing Render path. */
340
+ readonly profiler?: Profiler | undefined;
341
+ readonly context: RhiCanvasContext | null;
342
+ readonly getPipelineState: () => PipelineState | null;
343
+ readonly assets: RenderAssetPort;
344
+ readonly gpuStore: GpuResourceStore;
345
+ readonly growMeshSsbo?: ((neededSlots: number) => {
346
+ readonly ok: true;
347
+ } | {
348
+ readonly ok: false;
349
+ readonly code: 'mesh-ssbo-ceiling-reached' | 'mesh-ssbo-capacity-exceeded';
350
+ readonly degradedToSlotCount: number;
351
+ }) | undefined;
352
+ readonly meshSsboState?: {
353
+ readonly slotCount: number;
354
+ } | undefined;
355
+ /**
356
+ * feat-20260609 M4 / T-10-a: factory backing `getPostProcessPipeline`. Provided
357
+ * by `createRenderer.ts` (it owns the shared `getShaderModuleAdapter` and the
358
+ * fullscreen pipeline-layout builder); receives a registered
359
+ * `PostProcessShaderEntry` + the fullscreen BGL the dispatcher already
360
+ * composed + the target color format, returns a built `RenderPipeline`
361
+ * (RHI handle) or `null` (shader still compiling / build failed). The first
362
+ * call per id triggers the async shader compile; subsequent calls hit the
363
+ * RenderSystem-level cache and never reach this factory.
364
+ *
365
+ * Optional so test fixtures (createRenderSystem with a stub
366
+ * RenderSystemInternals) need not provide a real factory; without it
367
+ * `getPostProcessPipeline` resolves to `undefined` on the runtime surface
368
+ * and the dispatcher falls through to its existing `null`-skip branch.
369
+ */
370
+ readonly buildPostProcessPipeline?: ((entry: PostProcessShaderEntry, bgl: BindGroupLayout, colorFormat: GPUTextureFormat, label: string) => RenderPipeline | null) | undefined;
371
+ }
372
+ export interface RenderFeatureGraphRuntimeState {
373
+ contributions: readonly RenderFeatureGraphContribution<RenderFeaturePassContext>[];
374
+ topologySignature: string | undefined;
375
+ composition: RenderFeatureGraphComposition<RenderPipelineContext, RenderFeaturePassContext> | undefined;
376
+ }
377
+ export declare function getRenderFeatureGraphState(internals: RenderSystemInternals): RenderFeatureGraphRuntimeState;
378
+ export declare function reportRenderFeatureGraphError(internals: RenderSystemInternals, error: RenderError): void;
379
+ export interface PipelineState {
380
+ readonly format: string;
381
+ readonly colorAttachmentFormat: string;
382
+ readonly viewBindGroupLayout: BindGroupLayout;
383
+ readonly materialBindGroupLayout: BindGroupLayout;
384
+ readonly meshBindGroupLayout: BindGroupLayout;
385
+ readonly viewUniformBuffer: Buffer;
386
+ readonly shadowCasterCascadeBuffer: Buffer;
387
+ readonly materialUniformBuffer: {
388
+ readonly buffer: Buffer;
389
+ readonly sizeInBytes: number;
390
+ };
391
+ readonly meshStorageBuffer: {
392
+ readonly buffer: Buffer;
393
+ readonly sizeInBytes: number;
394
+ };
395
+ readonly pointLightsBuffer: Buffer;
396
+ readonly spotLightsBuffer: Buffer;
397
+ readonly instancesBindGroupLayout: BindGroupLayout;
398
+ readonly identityInstanceBuffer: Buffer;
399
+ readonly defaultSampler: Sampler;
400
+ readonly nearestSampler: Sampler;
401
+ readonly fallbackTextureView: TextureView;
402
+ readonly unlitPipeline: RenderPipeline | null;
403
+ readonly standardPipeline: RenderPipeline | null;
404
+ /**
405
+ * feat-20260604-learn-render-4.10-anti-aliasing-msaa M2 / w8: count=4
406
+ * multisample variants of the 7 geometry pipelines that write the screen
407
+ * or HDR colour target. A pipeline's `multisample.count` must match the
408
+ * sampleCount of the colour attachment it writes (WebGPU validation),
409
+ * so a count=4 pass cannot reuse a count=1 pipeline -- the record stage
410
+ * picks the `*Msaa` variant when the active camera carries
411
+ * `antialias === 'msaa'`. Post-process + shadow pipelines stay single-
412
+ * sample (AC-06) and have no MSAA variant. `null` when the base pipeline
413
+ * is null (empty-manifest path).
414
+ */
415
+ readonly unlitPipelineMsaa: RenderPipeline | null;
416
+ readonly standardPipelineMsaa: RenderPipeline | null;
417
+ readonly unlitPipelineHdrMsaa: RenderPipeline | null;
418
+ readonly standardPipelineHdrMsaa: RenderPipeline | null;
419
+ /**
420
+ * feat-20260523-shader-template-instance-split M9-T03 (D-PipelineBuilder):
421
+ * the shared 4-BindGroupLayout chain pipeline layout (`[view, material,
422
+ * mesh-array, instances]`) -- same handle the standard / unlit / sprite
423
+ * pipelines share. M9 exposes it on PipelineState so the per-MaterialShader
424
+ * pipeline cache (`getMaterialShaderPipeline`) can reuse it at lazy build
425
+ * time without re-running pbrLayouts construction (charter P4 consistent
426
+ * abstraction). `null` when the manifest is empty (Camera-only / clear-
427
+ * pass-only path; bug-20260519 D-3 nullable).
428
+ */
429
+ readonly pbrPipelineLayout: PipelineLayout | null;
430
+ /**
431
+ * feat-20260609-hdrp-cluster-fragment-ggx M4.5 / w36 (D-10 option A):
432
+ * per-variant PipelineLayout for HDRP. Mirrors `pbrPipelineLayout` but
433
+ * substitutes the HDRP unified 7-slot group(2) BGL
434
+ * (`createHdrpBindGroupLayoutDescriptor`) for the 1-slot pbr-mesh-array
435
+ * BGL. Built once at boot and reused for any HDRP variant PSO. `null`
436
+ * when the manifest is empty (parallel to `pbrPipelineLayout`) or when
437
+ * the boot-time createBindGroupLayout / createPipelineLayout fails (in
438
+ * which case `selectPipelineLayoutForVariant` falls back to the URP
439
+ * `pbrPipelineLayout` instead of hard-disabling the build path).
440
+ */
441
+ readonly hdrpPbrPipelineLayout: PipelineLayout | null;
442
+ /** WebGPU storage-path producer for ordered HDRP cluster memberships. */
443
+ readonly hdrpClusterMembershipPipeline: ComputePipeline | null;
444
+ /** Compute bind-group layout paired with the membership producer pipeline. */
445
+ readonly hdrpClusterMembershipBindGroupLayout: BindGroupLayout | null;
446
+ /**
447
+ * bug-20260611-skin-pipeline-layout: dedicated PipelineLayout for the
448
+ * `forgeax::pbr-skin` material shader. Mirrors `pbrPipelineLayout` but
449
+ * substitutes a 3-entry mesh-array BGL (binding 0 = meshes, bindings 1/2 =
450
+ * current/previous palettes) for standard PBR's 1-entry mesh-array BGL. Built once at boot
451
+ * by `buildPbrSkinLayouts` and selected by
452
+ * `selectPipelineLayoutForVariant` when the caller passes
453
+ * `LayoutKind = 'pbr-skin'`. `null` when manifest is empty or the skin
454
+ * shader is not registered (storage-buffer cap gate / register failure);
455
+ * `selectPipelineLayoutForVariant` returns `null` rather than silently
456
+ * falling back to URP layout (charter P3 explicit failure, mirroring the
457
+ * `hdrp-active-must-not-fallback-to-urp-pipeline` guard).
458
+ */
459
+ readonly pbrSkinPipelineLayout: PipelineLayout | null;
460
+ /**
461
+ * feat-20260611 R2 / M8 / w28 (IS-14): record-stage handle to the
462
+ * 3-binding `pbr-skin-mesh-array-bgl` returned by `buildPbrSkinLayouts`
463
+ * (binding 0 mesh-array UBO, bindings 1/2 current/previous palette UBOs;
464
+ * all `hasDynamicOffset: true`). The record stage builds a BG against this
465
+ * BGL for skin entries (`entry.source.skin !== undefined`) and binds it
466
+ * at group(2) when the entry's pipeline layout is `pbr-skin-pl`. The
467
+ * URP path keeps using `meshBindGroupLayout` (1-binding) at group(2),
468
+ * so `pbr-mesh-array-bgl` is unchanged. Stays `null` when
469
+ * `pbrSkinPipelineLayout` itself failed to build (charter P3 explicit
470
+ * failure -- skin path is hard-disabled, mirroring the pipeline-layout
471
+ * fallback in `selectPipelineLayoutForVariant`).
472
+ */
473
+ readonly pbrSkinMeshBindGroupLayout: BindGroupLayout | null;
474
+ /**
475
+ * feat-20260612-skin-palette-per-frame-upload M1 / m1-2: animator-ready
476
+ * skin-palette storage allocator. Replaces the prior identity-buffer
477
+ * stub (PR #353 / feat-20260611 R2 / M8 / w28 IS-14) -- a single 16320 B
478
+ * identity-seeded UBO shared by every skin entry. The allocator owns the
479
+ * lifecycle of the per-frame palette buffer (`createSkinPaletteAllocator`
480
+ * from `./systems/skin-palette-allocator`); the record stage reads the
481
+ * GPU buffer through `skinPaletteAllocator.buffer` and the extract stage
482
+ * (M2) calls `allocateSlice` + `writeJointPalette` to land animated
483
+ * palette data per skinned entity. Per plan-strategy D-1 candidate (b) the
484
+ * allocator is the single authoritative carrier -- no parallel fallback
485
+ * stub. `null` when `pbrSkinPipelineLayout` itself failed (skin path
486
+ * hard-disabled, mirroring the prior stub field's gating).
487
+ */
488
+ readonly skinPaletteAllocator: SkinPaletteAllocator | null;
489
+ readonly defaultWhiteTextureView: TextureView;
490
+ readonly defaultNormalTextureView: TextureView;
491
+ readonly unlitPipelineHdr: RenderPipeline | null;
492
+ readonly standardPipelineHdr: RenderPipeline | null;
493
+ /**
494
+ * feat-20260520-directional-light-shadow-mapping M2 / w14 (D-1):
495
+ * 1x1 depth32float fallback bound at viewBindGroup binding(3) when no
496
+ * shadow RT exists (castShadow:false or allocation failed).
497
+ * Cleared to 1.0 (far plane) so comparison-sampler always returns fully lit.
498
+ */
499
+ readonly shadowFallbackTextureView: TextureView;
500
+ /**
501
+ * feat-20260612-point-light-shadows-urp-hdrp Round-2 F-1: 1x1x6
502
+ * depth32float `texture_depth_cube_array` (layers=1) fallback bound at
503
+ * viewBindGroup binding(5) when no PointLightShadow snapshots are active
504
+ * (zero-shadow scene = AC-09 zero allocation -- the real cube_array atlas
505
+ * stays in `ShadowAtlas` and is only allocated when the extract stage
506
+ * sees its first PointLightShadow). Cleared to 1.0 so the
507
+ * comparison-sampler returns fully lit on the no-shadow path. The view
508
+ * dimension is `cube-array` to satisfy the BGL `viewDimension:
509
+ * 'cube-array'`; the underlying texture has 6 layers (one cube).
510
+ */
511
+ readonly shadowAtlasFallbackTextureView: TextureView;
512
+ /**
513
+ * feat-20260612-point-light-shadows-urp-hdrp Round-2 F-1: 64 B uniform
514
+ * buffer carrying `array<vec4<f32>, 4>` -- one lane per shadow-casting
515
+ * point light slot. Lane N stores `(near, far, 1/(far-near), 0)` for the
516
+ * point light with `shadowAtlasLayer === N`. Lanes for non-shadow-casting
517
+ * slots stay zeroed; the WGSL sample path is gated by
518
+ * `PointLight.shadowAtlasLayer >= 0` so zeroed lanes are never read.
519
+ * Bound at viewBindGroup binding(6); written per frame from the
520
+ * `pointShadowSnapshots` array.
521
+ */
522
+ readonly shadowParamsBuffer: Buffer;
523
+ readonly shadowProbePipeline: RenderPipeline | null;
524
+ readonly shadowProbeBindGroupLayout: BindGroupLayout | null;
525
+ readonly shadowProbeLsmUbo: Buffer | null;
526
+ readonly shadowProbeInputBuf: Buffer | null;
527
+ readonly shadowProbeOutputTex: any | null;
528
+ readonly shadowProbeOutputView: TextureView | null;
529
+ readonly shadowProbeStagingBuf: Buffer | null;
530
+ /**
531
+ * Fallback Skylight resource bundle (feat-20260520-skylight-ibl-cubemap
532
+ * M2 round-2 / t40, plan-strategy D-5). 1x1 all-zero rgba16float
533
+ * texture_cube * 2 (irradiance + prefilter) + 1x1 approximate rg16float
534
+ * brdfLut + intensity=0 16 B uniform buffer + 7-entry BindGroup compose
535
+ * the @group(4) skylight binding for the "no Skylight ECS entity"
536
+ * branch. The M4 round-2 recordFrame branch binds `bindGroup` when
537
+ * `skylightCount === 0` so `standardPipeline` / `standardPipelineHdr`
538
+ * (which keep a 4-slot pipeline layout per D-5 round-4) dispatch with
539
+ * ambient=0 -- physical convergence with D-4 (charter F1: AI users
540
+ * writing demos do not need a "is there a skylight?" branch).
541
+ *
542
+ * D-5 round-4: the fallback bundle no longer carries a stand-alone
543
+ * BindGroup. The PBR material BindGroupLayout now holds 14 entries
544
+ * (material 0..6 + Skylight 7..13) and the per-frame material
545
+ * BindGroup assembly site (render-system-record) merges Skylight
546
+ * resources at binding 7..13 -- active when a Skylight component
547
+ * exists, fallback identity when `skylightCount === 0`.
548
+ *
549
+ * bug-20260519 D-3 nullable extension: the empty-manifest path
550
+ * (Camera-only / clear-pass-only) skips the entire PBR pipeline build
551
+ * block; we still allocate the fallback bundle in the normal path,
552
+ * but tests / OOS paths that mock the manifest empty land here with
553
+ * `null` (charter P3 explicit failure: M4 record-stage gates on
554
+ * `skylightFallback !== null` before binding fallback resources at
555
+ * material BG entries 7..13).
556
+ */
557
+ readonly skylightFallback: any | null;
558
+ /**
559
+ * feat-20260529-rendergraph-pass-abstraction M3 / w11 (D-2 + Finding 3):
560
+ * per-pass mutable texture cache slots extracted from the global
561
+ * PipelineState. These fields are the lazily-allocated texture attachments
562
+ * + pass-specific pipelines and bindgroups that belong to a single render
563
+ * pass (depth / shadow / tonemap / FXAA). M4 render-graph resource
564
+ * declarations will read these descriptors to derive transient/persistent
565
+ * resources; shadow probe (OOS-4) stays on PipelineState directly.
566
+ */
567
+ readonly perPassResources: PerPassResources;
568
+ }
569
+ /**
570
+ * Configure a canvas surface from the two PipelineState format fields, applying
571
+ * the WebGL2-fallback gate: native WebGPU uses the storage format plus an sRGB
572
+ * view format, while the wgpu WebGL2 surface uses its direct sRGB format and
573
+ * COLOR_TARGET-only usage because its GLES surface rejects COPY_SRC. The
574
+ * storage-buffer capability still controls TEXTURE_BINDING usage, but it does
575
+ * not determine whether native WebGPU supports viewFormats. Single SSOT for
576
+ * the configure descriptor consumed by both the
577
+ * lazy first-frame path (ensureContextConfigured in createRenderer.ts) and the
578
+ * F2 surface-outdated reconfigure-and-retry branch (render-system-record.ts) so
579
+ * the two cannot drift (architecture-principles #1 SSOT). Returns the configure
580
+ * Result; callers own the `state.perPassResources.configured` flag + the
581
+ * `__forgeaxSwapChainFormat` probe write (those differ per call site).
582
+ */
583
+ export declare function configureSurface(context: RhiCanvasContext, device: RhiDevice, format: string, colorAttachmentFormat: string): Result<void, RhiError>;
584
+ /**
585
+ * feat-20260529-rendergraph-pass-abstraction M3 / w11 (D-2):
586
+ * per-pass mutable resource slots extracted from PipelineState per
587
+ * research Finding 3 fact-based grouping (depth / shadow / tonemap / fxaa).
588
+ * These fields are the lazily-allocated texture caches + pass-specific
589
+ * pipeline/bindgroup handles that belong to a single render pass.
590
+ * Mutable (non-readonly) because the record stage writes back after
591
+ * lazy-alloc on size drift.
592
+ */
593
+ export interface PerPassResources {
594
+ /**
595
+ * Per-frame depth attachment. Lazily allocated by
596
+ * `ensureContextConfigured` and recreated whenever the canvas resizes
597
+ * (see `ensureDepthTexture` in createRenderer.ts). Bound at the
598
+ * `beginRenderPass.depthStencilAttachment` slot with `depthLoadOp:'clear'`
599
+ * + `clearValue:1` so each frame starts with a far-plane depth buffer
600
+ * and the back-face / inside-of-cube fragments are correctly occluded
601
+ * (bug-20260519).
602
+ *
603
+ * `depthTextureView` is `null` until the canvas dimensions are known
604
+ * (first draw); the record stage skips the frame and fires
605
+ * `webgpu-runtime-error` if it stays null past configure.
606
+ */
607
+ depthTexture: any | null;
608
+ depthTextureView: any | null;
609
+ depthTextureWidth: number;
610
+ depthTextureHeight: number;
611
+ configured: boolean;
612
+ /**
613
+ * Lazy HDR colour + depth attachments for the opt-in tonemap path. Both
614
+ * are `null` until the first frame whose active camera carries
615
+ * `tonemap !== 'none'`; the record stage allocates them at the swap-chain
616
+ * size and re-creates on resize (mirrors `depthTexture` / `depthTextureView`
617
+ * idiom; AC-12).
618
+ *
619
+ * `hdrColor`'s format is `rgba16float` (AC-03(d)); the depth attachment is
620
+ * the same `depth24plus-stencil8` format the geometry pipelines already declare
621
+ * (`DEPTH_TEXTURE_FORMAT` SSOT in `createRenderer.ts`). When a camera
622
+ * downgrades to `tonemap === 'none'` between frames the textures stay
623
+ * allocated for cheap re-opt-in; full dispose happens via
624
+ * `Renderer.dispose()` -> browser GC (matches the `depthTexture` fix-f6
625
+ * placeholder).
626
+ */
627
+ hdrColorTexture: any | null;
628
+ hdrColorView: any | null;
629
+ hdrDepthTexture: any | null;
630
+ hdrDepthView: any | null;
631
+ hdrTextureWidth: number;
632
+ hdrTextureHeight: number;
633
+ /**
634
+ * feat-20260604 M2 / w10: sampleCount the `hdrDepth` attachment was last
635
+ * allocated at (1 or 4). The HDR colour target is always sampled
636
+ * single-sample (`hdrColorView`); the depth pairs with the geometry colour
637
+ * target's sampleCount, which flips with `antialias === 'msaa'`. Tracking it
638
+ * lets the record stage reallocate depth when MSAA toggles between frames
639
+ * (a stale count=4 depth under a count=1 pipeline fails WebGPU validation).
640
+ */
641
+ hdrDepthSampleCount: number;
642
+ readonly fxaaPipeline: RenderPipeline | null;
643
+ readonly fxaaBindGroupLayout: BindGroupLayout | null;
644
+ readonly fxaaSampler: Sampler | null;
645
+ /** Fixed two-attachment linear TAA resolve resources, owned by this renderer. */
646
+ readonly taaResolvePipeline: RenderPipeline | null;
647
+ readonly taaResolveBindGroupLayout: BindGroupLayout | null;
648
+ readonly taaResolveSampler: Sampler | null;
649
+ taaResolveParamsBuffer: Buffer | null;
650
+ msaaColorTexture: any | null;
651
+ msaaColorView: any | null;
652
+ msaaSpriteColorTexture: any | null;
653
+ msaaSpriteColorView: any | null;
654
+ msaaDepthTexture: any | null;
655
+ msaaDepthView: any | null;
656
+ msaaTextureWidth: number;
657
+ msaaTextureHeight: number;
658
+ hdrColorMsaaTexture: any | null;
659
+ hdrColorMsaaView: any | null;
660
+ readonly skyboxPipeline: RenderPipeline | null;
661
+ readonly skyboxPipelineMsaa: RenderPipeline | null;
662
+ readonly skyboxBindGroupLayout: BindGroupLayout | null;
663
+ readonly skyboxSampler: Sampler | null;
664
+ /** Stable 16 B quaternion UBO updated by the skybox record pass. */
665
+ readonly skyboxRotationBuffer: Buffer | null;
666
+ /** Executable analytic-atmosphere producer and background resources. */
667
+ readonly atmosphereCubemapPipeline?: RenderPipeline | null;
668
+ readonly atmosphereCubemapBindGroupLayout?: BindGroupLayout | null;
669
+ readonly atmosphereIrradiancePipeline?: RenderPipeline | null;
670
+ readonly atmospherePrefilterPipeline?: RenderPipeline | null;
671
+ readonly atmosphereIblParamsBindGroupLayout?: BindGroupLayout | null;
672
+ readonly atmosphereIblSkyBindGroupLayout?: BindGroupLayout | null;
673
+ readonly atmosphereBackgroundPipeline?: RenderPipeline | null;
674
+ readonly atmosphereBackgroundBindGroupLayout?: BindGroupLayout | null;
675
+ readonly atmosphereParamsBuffer?: Buffer | null;
676
+ readonly atmosphereCubeVertexBuffer?: Buffer | null;
677
+ shadowTexture: any | null;
678
+ shadowMapSize: number;
679
+ shadowCascadeCount: number;
680
+ /** Exact dimensions of the compiled directional cascade atlas. */
681
+ shadowAtlasWidth: number;
682
+ shadowAtlasHeight: number;
683
+ shadowSampler: any | null;
684
+ /**
685
+ * feat-20260520-directional-light-shadow-mapping M1c / w11 +
686
+ * feat-20260613-csm-cascaded-shadow-maps M5 / w28:
687
+ * latest cascade-0 lightViewProj mat4 (16 f32, col-major). Kept under
688
+ * the legacy field name as an Inspector backward-compat surface
689
+ * (`runtime.lights.directionalShadow.lightSpaceMatrix` JSON-RPC), per
690
+ * AGENTS.md §Change stance exception for external-visible wire
691
+ * protocols with known downstream consumers. Populated each frame
692
+ * from `lights.lightViewProj[0]`. Null before the first extract with
693
+ * an active shadow-casting DirectionalLight.
694
+ */
695
+ shadowLightSpaceMatrix: Float32Array | null;
696
+ /**
697
+ * feat-20260613-csm-cascaded-shadow-maps M5 / w28: full 4-cascade
698
+ * lightViewProj concatenation (4 × 16 = 64 f32, col-major) consumed by
699
+ * `debugSampleShadowFactor` so the probe can project against the selected
700
+ * cascade. Null before the first extract
701
+ * with an active shadow-casting DirectionalLight.
702
+ */
703
+ shadowCsmLightViewProj: Float32Array | null;
704
+ /**
705
+ * Producer-owned CSM receiver-selection facts. The debug probe must use the
706
+ * same view-space depth + split-plane selector as the main receiver path;
707
+ * keeping the two inputs together prevents a selector mirror from silently
708
+ * drifting at cascade boundaries.
709
+ */
710
+ shadowCsmSelection: {
711
+ readonly viewMatrix: Float32Array;
712
+ readonly splitPlanes: Float32Array;
713
+ readonly cascadeBlend: number;
714
+ } | null;
715
+ /** Producer-owned directional shadow comparison parameters for GPU probes. */
716
+ shadowLightDirection: Float32Array | null;
717
+ shadowDepthBias: number;
718
+ shadowNormalBias: number;
719
+ shadowPcfKernelSize: number;
720
+ readonly bloomBrightPipeline: RenderPipeline | null;
721
+ readonly bloomBlurHPipeline: RenderPipeline | null;
722
+ readonly bloomBlurVPipeline: RenderPipeline | null;
723
+ readonly bloomCompositePipeline: RenderPipeline | null;
724
+ readonly bloomBrightBindGroupLayout: BindGroupLayout | null;
725
+ readonly bloomBlurBindGroupLayout: BindGroupLayout | null;
726
+ readonly bloomCompositeBindGroupLayout: BindGroupLayout | null;
727
+ readonly bloomSampler: Sampler | null;
728
+ readonly bloomBrightParamsBuffer: Buffer | null;
729
+ readonly bloomBlurHParamsBuffer: Buffer | null;
730
+ readonly bloomBlurVParamsBuffer: Buffer | null;
731
+ readonly bloomCompositeParamsBuffer: Buffer | null;
732
+ bloomBrightTexture: any | null;
733
+ bloomBrightView: any | null;
734
+ bloomBrightWidth: number;
735
+ bloomBrightHeight: number;
736
+ bloomBlurHTexture: any | null;
737
+ bloomBlurHView: any | null;
738
+ bloomBlurHWidth: number;
739
+ bloomBlurHHeight: number;
740
+ bloomBlurVTexture: any | null;
741
+ bloomBlurVView: any | null;
742
+ bloomBlurVWidth: number;
743
+ bloomBlurVHeight: number;
744
+ readonly ssaoCalcPipeline: RenderPipeline | null;
745
+ readonly ssaoBlurPipeline: RenderPipeline | null;
746
+ readonly ssaoBgl: BindGroupLayout | null;
747
+ /** Filtering sampler shared by ssao_noise_sampler (binding 3) + ssaoSampler (binding 8). */
748
+ ssaoFilteringSampler: Sampler | null;
749
+ /** Non-filtering sampler dedicated to hdr_depth (binding 6); WebGPU validation. */
750
+ ssaoDepthSampler: Sampler | null;
751
+ /** 1x1 fallback view bound at ssaoRaw (binding 7) in the calc pass. */
752
+ ssaoFallbackRawView: any | null;
753
+ }
754
+ export interface MeshGpuHandles {
755
+ /**
756
+ * Vertex buffer wrapped as a GpuBuffer (M-3 / w11). Consumers reach the
757
+ * raw RHI Buffer via `.handle` for `setVertexBuffer` etc.; `.destroy()`
758
+ * routes through the RHI shim's lifecycle SSOT (charter §F1 single-entry
759
+ * indexability + plan-strategy D-9 wrapper migration).
760
+ */
761
+ readonly vertexBuffer: GpuBuffer;
762
+ /**
763
+ * Index buffer wrapper, or `null` for a vertex-only mesh (no
764
+ * `MeshAsset.indices`). When `null` the record stage takes the non-indexed
765
+ * `pass.draw(vertexCount)` path and never calls `setIndexBuffer`. Gated
766
+ * on `indexed` below.
767
+ */
768
+ readonly indexBuffer: GpuBuffer | null;
769
+ /** Allocation byte size of the vertex buffer (mirrors GPUBuffer.size). */
770
+ readonly vboBytes: number;
771
+ /** Allocation byte size of the index buffer, or 0 when `indexBuffer` is null. */
772
+ readonly iboBytes: number;
773
+ readonly indexCount: number;
774
+ /**
775
+ * Index buffer format inferred from the source `MeshAsset.indices` typed
776
+ * array (`Uint16Array` -> `'uint16'`, `Uint32Array` -> `'uint32'`). The
777
+ * record stage threads this into `pass.setIndexBuffer(..., format)` so
778
+ * the GPU reads the correct stride per index. bug-20260519: the prior
779
+ * hard-coded `'uint16'` corrupted procedural meshes whose factories
780
+ * (`createBoxGeometry` etc) emit Uint32Array indices.
781
+ */
782
+ readonly indexFormat: 'uint16' | 'uint32';
783
+ /** Geometry-owned immutable projection carried through every GPU consumer. */
784
+ readonly layoutProjection: VertexLayoutProjection;
785
+ /**
786
+ * Vertex count is derived from the projection stride at upload time. The
787
+ * non-indexed draw path passes this to `pass.draw(vertexCount)`.
788
+ */
789
+ readonly vertexCount: number;
790
+ /**
791
+ * True when the mesh carries an index buffer (`MeshAsset.indices` present).
792
+ * `false` for vertex-only meshes. The record stage branches on this to pick
793
+ * `drawIndexed` vs `draw` and to gate `setIndexBuffer`.
794
+ */
795
+ readonly indexed: boolean;
796
+ /**
797
+ * Primitive topology of this mesh (first submesh's topology, default
798
+ * 'triangle-list'). WebGPU bakes topology into the immutable PSO, so the
799
+ * record stage threads this into `getMaterialShaderPipeline` to select a
800
+ * per-topology PSO (feat-20260604 M3 / w9).
801
+ *
802
+ * feat-20260608 M4 / w16: topology is per-submesh; this field reflects
803
+ * `submeshes[0].topology` for backward compat. Use `submeshes` field for
804
+ * per-submesh draw iteration.
805
+ */
806
+ readonly topology: PrimitiveTopology;
807
+ /**
808
+ * Submeshes from MeshAsset.submeshes, carried through from the GPU store
809
+ * so the record stage can iterate per-submesh drawIndexed (feat-20260608 M4 / w16).
810
+ */
811
+ readonly submeshes: readonly import('@forgeax/engine-types').Submesh[];
812
+ }
813
+ export declare function createRenderSystem(internals: RenderSystemInternals): RenderSystem;
814
+ //# sourceMappingURL=render-system.d.ts.map