@aura3d/rendering 4.3.7 → 4.6.0

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 (201) hide show
  1. package/dist/DepthPass.d.ts +7 -0
  2. package/dist/DepthPass.d.ts.map +1 -1
  3. package/dist/DepthPass.js +43 -6
  4. package/dist/DepthPass.js.map +1 -1
  5. package/dist/ForwardPass.d.ts +82 -5
  6. package/dist/ForwardPass.d.ts.map +1 -1
  7. package/dist/ForwardPass.js +180 -35
  8. package/dist/ForwardPass.js.map +1 -1
  9. package/dist/MaterialBinding.js +6 -2
  10. package/dist/MaterialBinding.js.map +1 -1
  11. package/dist/RenderDevice.d.ts +5 -0
  12. package/dist/RenderDevice.d.ts.map +1 -1
  13. package/dist/RenderDevice.js.map +1 -1
  14. package/dist/Renderer.d.ts +8 -0
  15. package/dist/Renderer.d.ts.map +1 -1
  16. package/dist/Renderer.js +37 -6
  17. package/dist/Renderer.js.map +1 -1
  18. package/dist/RendererPostprocessPlan.d.ts.map +1 -1
  19. package/dist/RendererPostprocessPlan.js +8 -1
  20. package/dist/RendererPostprocessPlan.js.map +1 -1
  21. package/dist/ShaderChunks.d.ts.map +1 -1
  22. package/dist/ShaderChunks.js +3 -1
  23. package/dist/ShaderChunks.js.map +1 -1
  24. package/dist/ShaderLibrary.d.ts.map +1 -1
  25. package/dist/ShaderLibrary.js +17 -5
  26. package/dist/ShaderLibrary.js.map +1 -1
  27. package/dist/ShaderLibraryCore.d.ts.map +1 -1
  28. package/dist/ShaderLibraryCore.js +2 -1
  29. package/dist/ShaderLibraryCore.js.map +1 -1
  30. package/dist/WebGL2Device.d.ts +19 -1
  31. package/dist/WebGL2Device.d.ts.map +1 -1
  32. package/dist/WebGL2Device.js +114 -37
  33. package/dist/WebGL2Device.js.map +1 -1
  34. package/dist/WebGL2StateCache.d.ts +22 -0
  35. package/dist/WebGL2StateCache.d.ts.map +1 -1
  36. package/dist/WebGL2StateCache.js +71 -42
  37. package/dist/WebGL2StateCache.js.map +1 -1
  38. package/dist/contracts/core.d.ts.map +1 -1
  39. package/dist/contracts/core.js +22 -2
  40. package/dist/contracts/core.js.map +1 -1
  41. package/dist/contracts/program.d.ts.map +1 -1
  42. package/dist/contracts/program.js +8 -1
  43. package/dist/contracts/program.js.map +1 -1
  44. package/dist/contracts/quality.d.ts +21 -0
  45. package/dist/contracts/quality.d.ts.map +1 -1
  46. package/dist/contracts/quality.js +5 -0
  47. package/dist/contracts/quality.js.map +1 -1
  48. package/dist/contracts/renderItem.d.ts +6 -0
  49. package/dist/contracts/renderItem.d.ts.map +1 -1
  50. package/dist/contracts/structuralMemo.d.ts +23 -0
  51. package/dist/contracts/structuralMemo.d.ts.map +1 -0
  52. package/dist/contracts/structuralMemo.js +81 -0
  53. package/dist/contracts/structuralMemo.js.map +1 -0
  54. package/dist/environment/EnvironmentCache.d.ts.map +1 -1
  55. package/dist/environment/EnvironmentCache.js +6 -1
  56. package/dist/environment/EnvironmentCache.js.map +1 -1
  57. package/dist/environment/FirstFrameGate.d.ts +23 -0
  58. package/dist/environment/FirstFrameGate.d.ts.map +1 -0
  59. package/dist/environment/FirstFrameGate.js +58 -0
  60. package/dist/environment/FirstFrameGate.js.map +1 -0
  61. package/dist/environment/Rgb9e5Cube.d.ts.map +1 -1
  62. package/dist/environment/Rgb9e5Cube.js +8 -4
  63. package/dist/environment/Rgb9e5Cube.js.map +1 -1
  64. package/dist/environment/probeBuild.d.ts +29 -0
  65. package/dist/environment/probeBuild.d.ts.map +1 -1
  66. package/dist/environment/probeBuild.js +124 -45
  67. package/dist/environment/probeBuild.js.map +1 -1
  68. package/dist/forward/Lighting.d.ts +43 -3
  69. package/dist/forward/Lighting.d.ts.map +1 -1
  70. package/dist/forward/Lighting.js +127 -17
  71. package/dist/forward/Lighting.js.map +1 -1
  72. package/dist/forward/contactShadowMaskStore.d.ts +41 -0
  73. package/dist/forward/contactShadowMaskStore.d.ts.map +1 -0
  74. package/dist/forward/contactShadowMaskStore.js +85 -0
  75. package/dist/forward/contactShadowMaskStore.js.map +1 -0
  76. package/dist/geometry/Shape.d.ts.map +1 -1
  77. package/dist/geometry/Shape.js +7 -2
  78. package/dist/geometry/Shape.js.map +1 -1
  79. package/dist/geometry/Support.d.ts +4 -0
  80. package/dist/geometry/Support.d.ts.map +1 -1
  81. package/dist/geometry/Support.js +3 -2
  82. package/dist/geometry/Support.js.map +1 -1
  83. package/dist/index.d.ts +6 -0
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +5 -0
  86. package/dist/index.js.map +1 -1
  87. package/dist/passes/ContactShadowPass.d.ts +40 -3
  88. package/dist/passes/ContactShadowPass.d.ts.map +1 -1
  89. package/dist/passes/ContactShadowPass.js +73 -13
  90. package/dist/passes/ContactShadowPass.js.map +1 -1
  91. package/dist/passes/Prd02ContactShadowsContributor.d.ts +19 -0
  92. package/dist/passes/Prd02ContactShadowsContributor.d.ts.map +1 -1
  93. package/dist/passes/Prd02ContactShadowsContributor.js +179 -28
  94. package/dist/passes/Prd02ContactShadowsContributor.js.map +1 -1
  95. package/dist/post/v2Stages.d.ts.map +1 -1
  96. package/dist/post/v2Stages.js +2 -0
  97. package/dist/post/v2Stages.js.map +1 -1
  98. package/dist/program/ProgramFeatures.d.ts +6 -0
  99. package/dist/program/ProgramFeatures.d.ts.map +1 -1
  100. package/dist/program/ProgramFeatures.js +11 -5
  101. package/dist/program/ProgramFeatures.js.map +1 -1
  102. package/dist/program/ProgramGenerator.d.ts +6 -0
  103. package/dist/program/ProgramGenerator.d.ts.map +1 -1
  104. package/dist/program/ProgramGenerator.js +36 -1
  105. package/dist/program/ProgramGenerator.js.map +1 -1
  106. package/dist/program/ProgramKey.d.ts.map +1 -1
  107. package/dist/program/ProgramKey.js +4 -1
  108. package/dist/program/ProgramKey.js.map +1 -1
  109. package/dist/program/chunks/shadow_forward.glsl.d.ts +1 -1
  110. package/dist/program/chunks/shadow_forward.glsl.d.ts.map +1 -1
  111. package/dist/program/chunks/shadow_forward.glsl.js +4 -1
  112. package/dist/program/chunks/shadow_forward.glsl.js.map +1 -1
  113. package/dist/quality/DirectPath.d.ts +56 -0
  114. package/dist/quality/DirectPath.d.ts.map +1 -0
  115. package/dist/quality/DirectPath.js +74 -0
  116. package/dist/quality/DirectPath.js.map +1 -0
  117. package/dist/renderer/Background.d.ts +0 -5
  118. package/dist/renderer/Background.d.ts.map +1 -1
  119. package/dist/renderer/Background.js +56 -4
  120. package/dist/renderer/Background.js.map +1 -1
  121. package/dist/renderer/InstanceFrustumCull.d.ts +41 -0
  122. package/dist/renderer/InstanceFrustumCull.d.ts.map +1 -0
  123. package/dist/renderer/InstanceFrustumCull.js +138 -0
  124. package/dist/renderer/InstanceFrustumCull.js.map +1 -0
  125. package/dist/renderer/ShadowOrchestration.d.ts +2 -0
  126. package/dist/renderer/ShadowOrchestration.d.ts.map +1 -1
  127. package/dist/renderer/ShadowOrchestration.js +1 -0
  128. package/dist/renderer/ShadowOrchestration.js.map +1 -1
  129. package/dist/renderer/coreOutputPostRoute.d.ts +0 -5
  130. package/dist/renderer/coreOutputPostRoute.d.ts.map +1 -1
  131. package/dist/renderer/coreOutputPostRoute.js +12 -2
  132. package/dist/renderer/coreOutputPostRoute.js.map +1 -1
  133. package/dist/resources/InstanceBuffer.d.ts +2 -0
  134. package/dist/resources/InstanceBuffer.d.ts.map +1 -1
  135. package/dist/resources/InstanceBuffer.js +23 -0
  136. package/dist/resources/InstanceBuffer.js.map +1 -1
  137. package/dist/shaders/chunks/contact_shadow.glsl.d.ts +11 -6
  138. package/dist/shaders/chunks/contact_shadow.glsl.d.ts.map +1 -1
  139. package/dist/shaders/chunks/contact_shadow.glsl.js +41 -19
  140. package/dist/shaders/chunks/contact_shadow.glsl.js.map +1 -1
  141. package/dist/shaders/chunks/contact_shadow_mask.glsl.d.ts +12 -0
  142. package/dist/shaders/chunks/contact_shadow_mask.glsl.d.ts.map +1 -0
  143. package/dist/shaders/chunks/contact_shadow_mask.glsl.js +21 -0
  144. package/dist/shaders/chunks/contact_shadow_mask.glsl.js.map +1 -0
  145. package/dist/shaders/chunks/lighting_ibl.glsl.d.ts +6 -1
  146. package/dist/shaders/chunks/lighting_ibl.glsl.d.ts.map +1 -1
  147. package/dist/shaders/chunks/lighting_ibl.glsl.js +8 -2
  148. package/dist/shaders/chunks/lighting_ibl.glsl.js.map +1 -1
  149. package/dist/shadows/CascadeUse.d.ts +31 -0
  150. package/dist/shadows/CascadeUse.d.ts.map +1 -0
  151. package/dist/shadows/CascadeUse.js +60 -0
  152. package/dist/shadows/CascadeUse.js.map +1 -0
  153. package/dist/shadows/Prd02DepthShaderLibrary.d.ts +7 -1
  154. package/dist/shadows/Prd02DepthShaderLibrary.d.ts.map +1 -1
  155. package/dist/shadows/Prd02DepthShaderLibrary.js +12 -3
  156. package/dist/shadows/Prd02DepthShaderLibrary.js.map +1 -1
  157. package/dist/shadows/Prd02ShadowBridge.d.ts +12 -1
  158. package/dist/shadows/Prd02ShadowBridge.d.ts.map +1 -1
  159. package/dist/shadows/Prd02ShadowBridge.js +17 -5
  160. package/dist/shadows/Prd02ShadowBridge.js.map +1 -1
  161. package/dist/shadows/Prd02ShadowsContributor.d.ts +4 -0
  162. package/dist/shadows/Prd02ShadowsContributor.d.ts.map +1 -1
  163. package/dist/shadows/Prd02ShadowsContributor.js +3 -1
  164. package/dist/shadows/Prd02ShadowsContributor.js.map +1 -1
  165. package/dist/shadows/ShadowFilterTier.d.ts +51 -0
  166. package/dist/shadows/ShadowFilterTier.d.ts.map +1 -0
  167. package/dist/shadows/ShadowFilterTier.js +89 -0
  168. package/dist/shadows/ShadowFilterTier.js.map +1 -0
  169. package/dist/shadows/ShadowSystem.d.ts +15 -0
  170. package/dist/shadows/ShadowSystem.d.ts.map +1 -1
  171. package/dist/shadows/ShadowSystem.js +12 -2
  172. package/dist/shadows/ShadowSystem.js.map +1 -1
  173. package/dist/shadows/shadowLegacy.d.ts +12 -0
  174. package/dist/shadows/shadowLegacy.d.ts.map +1 -1
  175. package/dist/shadows/shadowLegacy.js +24 -0
  176. package/dist/shadows/shadowLegacy.js.map +1 -1
  177. package/dist/webgl2/BloomFusion.d.ts +31 -0
  178. package/dist/webgl2/BloomFusion.d.ts.map +1 -0
  179. package/dist/webgl2/BloomFusion.js +25 -0
  180. package/dist/webgl2/BloomFusion.js.map +1 -0
  181. package/dist/webgl2/ContextLifecycle.d.ts +14 -0
  182. package/dist/webgl2/ContextLifecycle.d.ts.map +1 -1
  183. package/dist/webgl2/ContextLifecycle.js +44 -5
  184. package/dist/webgl2/ContextLifecycle.js.map +1 -1
  185. package/dist/webgl2/LegacyPost.d.ts +30 -0
  186. package/dist/webgl2/LegacyPost.d.ts.map +1 -1
  187. package/dist/webgl2/LegacyPost.js +259 -27
  188. package/dist/webgl2/LegacyPost.js.map +1 -1
  189. package/dist/webgl2/MultiDraw.d.ts +2 -0
  190. package/dist/webgl2/MultiDraw.d.ts.map +1 -1
  191. package/dist/webgl2/MultiDraw.js +33 -7
  192. package/dist/webgl2/MultiDraw.js.map +1 -1
  193. package/dist/webgl2/Samplers.d.ts +10 -1
  194. package/dist/webgl2/Samplers.d.ts.map +1 -1
  195. package/dist/webgl2/Samplers.js +24 -1
  196. package/dist/webgl2/Samplers.js.map +1 -1
  197. package/dist/webgl2/TextureFormats.d.ts +12 -0
  198. package/dist/webgl2/TextureFormats.d.ts.map +1 -1
  199. package/dist/webgl2/TextureFormats.js +16 -0
  200. package/dist/webgl2/TextureFormats.js.map +1 -1
  201. package/package.json +3 -3
@@ -12,6 +12,7 @@
12
12
  * the sampling VP (`viewProjection`, biased to [0,1]³) is what the forward
13
13
  * pass multiplies world positions by before comparing.
14
14
  */
15
+ import type { ShadowPcfTapTier } from "./ShadowFilterTier.js";
15
16
  import type { RenderDevice } from "../RenderDevice.js";
16
17
  import type { Texture } from "../Texture.js";
17
18
  import type { RenderItem } from "../contracts/renderItem.js";
@@ -20,6 +21,7 @@ import type { FrameCamera } from "../contracts/frameGraph.js";
20
21
  import type { QrFlags } from "../contracts/core.js";
21
22
  import type { AuraQualityTierSettings } from "../contracts/quality.js";
22
23
  import { type CascadeFitterCamera, type DirectionalCascadeFit } from "./DirectionalCascadeFitter.js";
24
+ import { type CascadeUseCamera } from "./CascadeUse.js";
23
25
  import type { ShaderLibrary } from "../ShaderLibraryCore.js";
24
26
  /** Structural match of the compiler's ShadowSystemConfig (engine-side type). */
25
27
  export interface ShadowSystemConfigInput {
@@ -32,6 +34,8 @@ export interface ShadowSystemConfigInput {
32
34
  readonly strength: number;
33
35
  readonly bias: number;
34
36
  readonly normalBias: number;
37
+ /** PCF tap-count cap (PRD-2 WP-3), read by Prd02ShadowBridge and passed to the forward shader; unset keeps the kernel as authored. */
38
+ readonly pcfTapTier?: ShadowPcfTapTier;
35
39
  }
36
40
  export interface ShadowSystemSun {
37
41
  readonly direction: readonly [number, number, number];
@@ -52,6 +56,15 @@ export interface ShadowSystemFrame {
52
56
  readonly localLights?: readonly ShadowSystemLocalLight[];
53
57
  readonly flags: QrFlags;
54
58
  readonly tier: AuraQualityTierSettings;
59
+ /**
60
+ * PRD-2 WP-7: the frame's receivers and eye. When present, a cascade no receiver can select (`unusedCascadeIndices`) gets its target
61
+ * allocated but is not redrawn: the legacy forward path never samples it, so no pixel changes. Absent: every cascade is rendered.
62
+ */
63
+ readonly cascadeUse?: {
64
+ readonly receivers: readonly RenderItem[];
65
+ /** What the forward pass gets as `cameraViewMatrix` / `cameraPosition` (see `CascadeUseCamera`). */
66
+ readonly camera: CascadeUseCamera;
67
+ };
55
68
  }
56
69
  /** ShadowFrameUniforms plus the extra bindings the PRD-02 forward path needs. */
57
70
  export interface Prd02ShadowFrameUniforms extends ShadowFrameUniforms {
@@ -73,6 +86,7 @@ export declare class Prd02ShadowSystem {
73
86
  private lastTiles;
74
87
  private lastVariants;
75
88
  private lastDropped;
89
+ private lastSkippedCascades;
76
90
  private readonly shaderLibrary;
77
91
  private depthFeatures;
78
92
  private precompiled;
@@ -90,6 +104,7 @@ export declare class Prd02ShadowSystem {
90
104
  readonly localLights: number;
91
105
  readonly casterVariants: readonly string[];
92
106
  readonly droppedFeatures: readonly string[];
107
+ readonly skippedCascades: readonly number[];
93
108
  };
94
109
  /**
95
110
  * GPU evidence probe (shadow-pixels investigation): min/max/mean of each
@@ -1 +1 @@
1
- {"version":3,"file":"ShadowSystem.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/shadows/ShadowSystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ShadowSystem.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/shadows/ShadowSystem.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAwC,MAAM,iBAAiB,CAAC;AAC1F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAA0B,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAExF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAkD,KAAK,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAElJ,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAU3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,gFAAgF;AAChF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sIAAsI;IACtI,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;CACxC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,WAAW,CAAC;IACnD,QAAQ,CAAC,GAAG,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACzD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE;QACpB,QAAQ,CAAC,SAAS,EAAE,SAAS,UAAU,EAAE,CAAC;QAC1C,oGAAoG;QACpG,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;KACnC,CAAC;CACH;AAED,iFAAiF;AACjF,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACnE,8DAA8D;IAC9D,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC;IACtD,kEAAkE;IAClE,QAAQ,CAAC,mBAAmB,EAAE,YAAY,CAAC;IAC3C,2EAA2E;IAC3E,QAAQ,CAAC,oBAAoB,EAAE,YAAY,CAAC;IAC5C,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAMD,qBAAa,iBAAiB;IAa1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,MAAM;IAbhB,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,mBAAmB,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,WAAW,CAAS;gBAGT,MAAM,EAAE,YAAY,EAC7B,MAAM,EAAE,uBAAuB,EACvC,aAAa,CAAC,EAAE,aAAa;IAQ/B,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,wBAAwB;IAuE1D,+EAA+E;IACzE,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,GAAG,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtF,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,0FAA0F;IAC1F,WAAW,IAAI,SAAS,qBAAqB,EAAE;IAI/C,yEAAyE;IACzE,WAAW,IAAI;QACb,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;QAC3C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;QAC5C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;KAC7C;IAWD;;;;;;OAMG;IACH,qBAAqB,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE;IA4BpH,OAAO,IAAI,IAAI;IAOf;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,aAAa;CA2CtB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,uBAAuB,GAAG,iBAAiB,CAE3G"}
@@ -17,6 +17,7 @@ import { shadowCasterVariantId } from "../contracts/shadows.js";
17
17
  import { shadowFitLegacy } from "./shadowLegacy.js";
18
18
  import { fitDirectionalCascades, isOversizeShadowCaster } from "./DirectionalCascadeFitter.js";
19
19
  import { planLocalShadowAtlas } from "./ShadowAtlas.js";
20
+ import { unusedCascadeIndices } from "./CascadeUse.js";
20
21
  import { activeDepthFeatures, depthDeformIncompatibility, ensurePrd02DepthFeatures, prd02DepthFeatures, resolvePrd02ShadowCasterVariant, precompilePrd02DepthVariants, registerPrd02DepthShader } from "./Prd02DepthShaderLibrary.js";
21
22
  import { createLeanCoreShaderLibrary } from "../ShaderLibraryCore.js";
22
23
  const ATLAS_SIZE = 1024;
@@ -31,6 +32,7 @@ export class Prd02ShadowSystem {
31
32
  lastTiles = [];
32
33
  lastVariants = [];
33
34
  lastDropped = [];
35
+ lastSkippedCascades = [];
34
36
  shaderLibrary;
35
37
  depthFeatures;
36
38
  precompiled = false;
@@ -104,7 +106,11 @@ export class Prd02ShadowSystem {
104
106
  variantKeys.set(shadowCasterVariantId(key), { key, features: this.depthFeatures });
105
107
  }
106
108
  this.lastVariants = [...variantKeys.keys()].sort();
107
- this.renderCascades(casters, resolve);
109
+ const skip = frame.cascadeUse
110
+ ? unusedCascadeIndices(this.lastFits, frame.cascadeUse.receivers, frame.cascadeUse.camera)
111
+ : undefined;
112
+ this.lastSkippedCascades = skip ? [...skip].sort() : [];
113
+ this.renderCascades(casters, resolve, skip);
108
114
  this.renderAtlas(casters, resolve);
109
115
  return this.frameUniforms();
110
116
  }
@@ -129,6 +135,7 @@ export class Prd02ShadowSystem {
129
135
  /** Diagnostics for the C-31 `shadows` section (observed values only). */
130
136
  diagnostics() {
131
137
  return {
138
+ skippedCascades: this.lastSkippedCascades,
132
139
  cascadeCount: this.lastFits.length,
133
140
  tiles: this.lastTiles.length,
134
141
  localLights: new Set(this.lastTiles.map((tile) => tile.lightIndex)).size,
@@ -219,13 +226,16 @@ export class Prd02ShadowSystem {
219
226
  ...(scissor ? { scissor } : {})
220
227
  };
221
228
  }
222
- renderCascades(casters, resolve) {
229
+ renderCascades(casters, resolve, skip) {
223
230
  if (casters.length === 0)
224
231
  return;
225
232
  const prevTarget = this.device.getRenderTarget?.() ?? null;
226
233
  try {
227
234
  for (const fit of this.lastFits) {
228
235
  const target = this.ensureCascadeTarget(fit.index);
236
+ // Allocated (the frame uniforms need its texture) but never sampled this frame: no clear, no casters.
237
+ if (skip?.has(fit.index))
238
+ continue;
229
239
  this.device.setRenderTarget(target);
230
240
  this.device.clearRenderTarget?.([1, 1, 1, 1]);
231
241
  new DepthPass(this.depthPassOptions(casters, resolve, fit.drawViewProjection))
@@ -1 +1 @@
1
- {"version":3,"file":"ShadowSystem.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/shadows/ShadowSystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ShadowSystem.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/shadows/ShadowSystem.ts"],"names":[],"mappings":"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"}
@@ -11,4 +11,16 @@
11
11
  export type ShadowFitMode = "legacy" | "current";
12
12
  export declare function shadowFitMode(): ShadowFitMode;
13
13
  export declare const shadowFitLegacy: () => boolean;
14
+ /**
15
+ * Dense instanced casters (one node with at least this many instances AND an engine-assigned instanced shadow proxy,
16
+ * `RenderItem.shadowGeometry`) draw their depth through a per-instance attribute buffer even in the default (legacy) fit: one draw
17
+ * per node per cascade instead of ceil(n / 64). The proxy requirement is what bounds the set of nodes this touches: builtin
18
+ * primitives on the qr core path with a strictly cheaper proxy. Instanced GLB or model nodes, custom or authored geometry, boxes and
19
+ * every node below the threshold keep the 4.2.0 uniform-array batches exactly. The threshold equals
20
+ * `INSTANCED_SHADOW_PROXY_MIN_INSTANCES` in the engine (the forest benchmark: 8,000 / 8,000 / 2,000 instances, 282 depth draws per
21
+ * cascade become 3).
22
+ */
23
+ export declare const DENSE_DEPTH_INSTANCE_MIN = 1024;
24
+ /** `globalThis.__A3D_DENSE_DEPTH_DRAWS__ = "off"` (or `?densedepth=off`) restores uniform-array batches for dense casters. */
25
+ export declare function denseDepthDrawsEnabled(): boolean;
14
26
  //# sourceMappingURL=shadowLegacy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shadowLegacy.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/shadows/shadowLegacy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjD,wBAAgB,aAAa,IAAI,aAAa,CAU7C;AAED,eAAO,MAAM,eAAe,QAAO,OAAuC,CAAC"}
1
+ {"version":3,"file":"shadowLegacy.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/shadows/shadowLegacy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjD,wBAAgB,aAAa,IAAI,aAAa,CAU7C;AAED,eAAO,MAAM,eAAe,QAAO,OAAuC,CAAC;AAE3E;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,8HAA8H;AAC9H,wBAAgB,sBAAsB,IAAI,OAAO,CAUhD"}
@@ -12,4 +12,28 @@ export function shadowFitMode() {
12
12
  return value === "current" ? "current" : "legacy";
13
13
  }
14
14
  export const shadowFitLegacy = () => shadowFitMode() === "legacy";
15
+ /**
16
+ * Dense instanced casters (one node with at least this many instances AND an engine-assigned instanced shadow proxy,
17
+ * `RenderItem.shadowGeometry`) draw their depth through a per-instance attribute buffer even in the default (legacy) fit: one draw
18
+ * per node per cascade instead of ceil(n / 64). The proxy requirement is what bounds the set of nodes this touches: builtin
19
+ * primitives on the qr core path with a strictly cheaper proxy. Instanced GLB or model nodes, custom or authored geometry, boxes and
20
+ * every node below the threshold keep the 4.2.0 uniform-array batches exactly. The threshold equals
21
+ * `INSTANCED_SHADOW_PROXY_MIN_INSTANCES` in the engine (the forest benchmark: 8,000 / 8,000 / 2,000 instances, 282 depth draws per
22
+ * cascade become 3).
23
+ */
24
+ export const DENSE_DEPTH_INSTANCE_MIN = 1024;
25
+ /** `globalThis.__A3D_DENSE_DEPTH_DRAWS__ = "off"` (or `?densedepth=off`) restores uniform-array batches for dense casters. */
26
+ export function denseDepthDrawsEnabled() {
27
+ const g = globalThis;
28
+ let value = g.__A3D_DENSE_DEPTH_DRAWS__;
29
+ try {
30
+ const q = typeof g.location?.search === "string" ? new URLSearchParams(g.location.search).get("densedepth") : null;
31
+ if (q === "off" || q === "on")
32
+ value = q;
33
+ }
34
+ catch {
35
+ // no location (node, workers): fall through to the global
36
+ }
37
+ return value !== "off";
38
+ }
15
39
  //# sourceMappingURL=shadowLegacy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shadowLegacy.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/shadows/shadowLegacy.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,aAAa;IAC3B,MAAM,CAAC,GAAG,UAA6E,CAAC;IACxF,IAAI,KAAK,GAAG,CAAC,CAAC,kBAAkB,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAClH,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,QAAQ;YAAE,KAAK,GAAG,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,0DAA0D;IAC5D,CAAC;IACD,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,GAAY,EAAE,CAAC,aAAa,EAAE,KAAK,QAAQ,CAAC"}
1
+ {"version":3,"file":"shadowLegacy.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/shadows/shadowLegacy.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,aAAa;IAC3B,MAAM,CAAC,GAAG,UAA6E,CAAC;IACxF,IAAI,KAAK,GAAG,CAAC,CAAC,kBAAkB,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAClH,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,QAAQ;YAAE,KAAK,GAAG,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,0DAA0D;IAC5D,CAAC;IACD,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,GAAY,EAAE,CAAC,aAAa,EAAE,KAAK,QAAQ,CAAC;AAE3E;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAE7C,8HAA8H;AAC9H,MAAM,UAAU,sBAAsB;IACpC,MAAM,CAAC,GAAG,UAAoF,CAAC;IAC/F,IAAI,KAAK,GAAG,CAAC,CAAC,yBAAyB,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnH,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI;YAAE,KAAK,GAAG,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,0DAA0D;IAC5D,CAAC;IACD,OAAO,KAAK,KAAK,KAAK,CAAC;AACzB,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Look-neutral bloom pass fusion settings (WebGL2 device). Enabled by the engine for `quality: "auto"` / `"cinematic"`
3
+ * only (`device.bloomFusedPasses`); `quality: "production"` never reads these. `AuraBloomFusion` (contracts/quality.ts)
4
+ * picks one of the two configs below. The separable default is the variant that kept the PBR viewer's software-GL frame
5
+ * time at or below the unfused chain while cutting draws (see evidence/vs-threejs/4.3.7/bloom-fusion-variants.json).
6
+ */
7
+ import { type AuraBloomFusion } from "../contracts/quality.js";
8
+ export interface BloomFusionConfig {
9
+ /** One-pass weighted mip sum; the full-resolution upsample is folded into the composite. */
10
+ readonly accumulate: boolean;
11
+ /** Mips at or above this level blur in one 2-D pass instead of two separable passes (5 or more = never). */
12
+ readonly blur2dFromLevel: number;
13
+ /** Bright extract folded into the level-0 downsample (needs an exact 2:1 source). */
14
+ readonly extract: boolean;
15
+ }
16
+ /** A mip blurs in one 2-D pass when (2r+1)^2 * width * height stays at or under this many texel fetches. */
17
+ export declare const BLOOM_FUSED_BLUR_TAP_BUDGET = 7000000;
18
+ /** Largest radius a single 2-D pass supports (the shader loops over a fixed window). */
19
+ export declare const BLOOM_FUSED_BLUR_MAX_RADIUS = 24;
20
+ /** `"separable"`: draw-removing folds that add no fill; 2-D blur only on the two smallest mips of a five-mip pyramid. */
21
+ export declare const SEPARABLE_BLOOM_FUSION: BloomFusionConfig;
22
+ /** `"fused-2d"`: mips 1..4 in one 2-D pass each. Opt-in until a real-GPU receipt exists. */
23
+ export declare const FUSED_2D_BLOOM_FUSION: BloomFusionConfig;
24
+ export declare const DEFAULT_BLOOM_FUSION: BloomFusionConfig;
25
+ export declare function resolveBloomFusionConfig(mode?: AuraBloomFusion): BloomFusionConfig;
26
+ /** Whether one mip takes the single 2-D blur pass (true) or the separable H+V pair (false). Shared by the pass code and the tests. */
27
+ export declare function bloomLevelBlursIn2d(fusion: BloomFusionConfig, level: number, size: {
28
+ readonly width: number;
29
+ readonly height: number;
30
+ }, radius: number): boolean;
31
+ //# sourceMappingURL=BloomFusion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BloomFusion.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/webgl2/BloomFusion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAA6B,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvF,MAAM,WAAW,iBAAiB;IAChC,4FAA4F;IAC5F,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,4GAA4G;IAC5G,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,qFAAqF;IACrF,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,4GAA4G;AAC5G,eAAO,MAAM,2BAA2B,UAAY,CAAC;AACrD,wFAAwF;AACxF,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,yHAAyH;AACzH,eAAO,MAAM,sBAAsB,EAAE,iBAA0F,CAAC;AAChI,4FAA4F;AAC5F,eAAO,MAAM,qBAAqB,EAAE,iBAA0F,CAAC;AAE/H,eAAO,MAAM,oBAAoB,EAAE,iBAA0C,CAAC;AAE9E,wBAAgB,wBAAwB,CAAC,IAAI,GAAE,eAA2C,GAAG,iBAAiB,CAE7G;AAED,sIAAsI;AACtI,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACzD,MAAM,EAAE,MAAM,GACb,OAAO,CAGT"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Look-neutral bloom pass fusion settings (WebGL2 device). Enabled by the engine for `quality: "auto"` / `"cinematic"`
3
+ * only (`device.bloomFusedPasses`); `quality: "production"` never reads these. `AuraBloomFusion` (contracts/quality.ts)
4
+ * picks one of the two configs below. The separable default is the variant that kept the PBR viewer's software-GL frame
5
+ * time at or below the unfused chain while cutting draws (see evidence/vs-threejs/4.3.7/bloom-fusion-variants.json).
6
+ */
7
+ import { DEFAULT_BLOOM_FUSION_MODE } from "../contracts/quality.js";
8
+ /** A mip blurs in one 2-D pass when (2r+1)^2 * width * height stays at or under this many texel fetches. */
9
+ export const BLOOM_FUSED_BLUR_TAP_BUDGET = 7_000_000;
10
+ /** Largest radius a single 2-D pass supports (the shader loops over a fixed window). */
11
+ export const BLOOM_FUSED_BLUR_MAX_RADIUS = 24;
12
+ /** `"separable"`: draw-removing folds that add no fill; 2-D blur only on the two smallest mips of a five-mip pyramid. */
13
+ export const SEPARABLE_BLOOM_FUSION = Object.freeze({ accumulate: true, blur2dFromLevel: 3, extract: true });
14
+ /** `"fused-2d"`: mips 1..4 in one 2-D pass each. Opt-in until a real-GPU receipt exists. */
15
+ export const FUSED_2D_BLOOM_FUSION = Object.freeze({ accumulate: true, blur2dFromLevel: 1, extract: true });
16
+ export const DEFAULT_BLOOM_FUSION = SEPARABLE_BLOOM_FUSION;
17
+ export function resolveBloomFusionConfig(mode = DEFAULT_BLOOM_FUSION_MODE) {
18
+ return mode === "fused-2d" ? FUSED_2D_BLOOM_FUSION : SEPARABLE_BLOOM_FUSION;
19
+ }
20
+ /** Whether one mip takes the single 2-D blur pass (true) or the separable H+V pair (false). Shared by the pass code and the tests. */
21
+ export function bloomLevelBlursIn2d(fusion, level, size, radius) {
22
+ const taps = (2 * radius + 1) * (2 * radius + 1) * size.width * size.height;
23
+ return level >= fusion.blur2dFromLevel && radius <= BLOOM_FUSED_BLUR_MAX_RADIUS && taps <= BLOOM_FUSED_BLUR_TAP_BUDGET;
24
+ }
25
+ //# sourceMappingURL=BloomFusion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BloomFusion.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/webgl2/BloomFusion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,yBAAyB,EAAwB,MAAM,sBAAsB,CAAC;AAWvF,4GAA4G;AAC5G,MAAM,CAAC,MAAM,2BAA2B,GAAG,SAAS,CAAC;AACrD,wFAAwF;AACxF,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAE9C,yHAAyH;AACzH,MAAM,CAAC,MAAM,sBAAsB,GAAsB,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAChI,4FAA4F;AAC5F,MAAM,CAAC,MAAM,qBAAqB,GAAsB,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAE/H,MAAM,CAAC,MAAM,oBAAoB,GAAsB,sBAAsB,CAAC;AAE9E,MAAM,UAAU,wBAAwB,CAAC,OAAwB,yBAAyB;IACxF,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,sBAAsB,CAAC;AAC9E,CAAC;AAED,sIAAsI;AACtI,MAAM,UAAU,mBAAmB,CACjC,MAAyB,EACzB,KAAa,EACb,IAAyD,EACzD,MAAc;IAEd,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;IAC5E,OAAO,KAAK,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,IAAI,2BAA2B,IAAI,IAAI,IAAI,2BAA2B,CAAC;AACzH,CAAC"}
@@ -67,6 +67,20 @@ export declare class WebGL2ContextLifecycle {
67
67
  clear(color: readonly [number, number, number, number]): void;
68
68
  clearRenderTarget(color: readonly [number, number, number, number], attachment?: number): void;
69
69
  endFrame(): void;
70
+ /** Frames after creation/restore in which the `sampled` mode reads the error every frame. */
71
+ static readonly ERROR_WARMUP_FRAMES = 30;
72
+ /** After warm-up, `sampled` mode reads the error on every Nth frame. */
73
+ static readonly ERROR_SAMPLE_INTERVAL = 60;
74
+ private framesEnded;
75
+ private lastEventSignature;
76
+ /**
77
+ * `gl.getError()` is a synchronous round trip to the GPU process (about 1 ms per frame on the software
78
+ * rasteriser, 0.1 to 0.3 ms on hardware). `frame` and `strict` read it every frame; `sampled` reads it
79
+ * when something that can fail happened (the first frames, a resource or program created or released, a
80
+ * pending error) and otherwise every ERROR_SAMPLE_INTERVAL frames, so a persistent GL fault is still
81
+ * caught within a second at 60 fps.
82
+ */
83
+ private shouldReadFrameError;
70
84
  captureTextureUnit0(): WebGL2TextureUnit0Snapshot;
71
85
  restoreTextureUnit0(snapshot: WebGL2TextureUnit0Snapshot): void;
72
86
  captureTextureUnitBinding(unit: number): WebGL2TextureUnitBindingSnapshot;
@@ -1 +1 @@
1
- {"version":3,"file":"ContextLifecycle.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/webgl2/ContextLifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContextLifecycle.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/webgl2/ContextLifecycle.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,7 @@ export class WebGL2ContextLifecycle {
26
26
  this.contextRestoredListener = (() => {
27
27
  this.host.contextLost = false;
28
28
  this.lastError = null;
29
+ this.framesEnded = 0;
29
30
  // PRD 11 Phase 5: registered restore hooks (GPU object invalidation,
30
31
  // C-29 ResourceRegistry.rebuild, C-02 precompile) must resolve BEFORE
31
32
  // onDeviceRestored listeners fire (C-29 semantics). With no hooks the
@@ -86,7 +87,11 @@ export class WebGL2ContextLifecycle {
86
87
  }
87
88
  }
88
89
  isDeviceLost() {
89
- return this.host.contextLost;
90
+ // The context can be gone before the webglcontextlost event is dispatched; WebGL reports that synchronously.
91
+ if (this.host.contextLost)
92
+ return true;
93
+ const gl = this.host.gl;
94
+ return typeof gl?.isContextLost === "function" && gl.isContextLost();
90
95
  }
91
96
  /** SC-01: viewport/scissor override and the render target it was set on (override applies only while that target is bound). */
92
97
  viewportOverride = null;
@@ -202,8 +207,6 @@ export class WebGL2ContextLifecycle {
202
207
  this.host.counters.drawCalls = 0;
203
208
  this.host.counters.nativeEnvironmentBindings = 0;
204
209
  this.host.counters.nativeShadowMapBindings = 0;
205
- this.host.samplers.activeTextureUnitIndex = -1;
206
- this.host.samplers.textureUnitBindings.clear();
207
210
  this.host.stateCache.invalidate();
208
211
  this.viewportWidth = width;
209
212
  this.viewportHeight = height;
@@ -246,7 +249,35 @@ export class WebGL2ContextLifecycle {
246
249
  endFrame() {
247
250
  this.assertFrame();
248
251
  this.frameActive = false;
249
- this.lastError = this.readError();
252
+ if (this.shouldReadFrameError())
253
+ this.lastError = this.readError();
254
+ }
255
+ /** Frames after creation/restore in which the `sampled` mode reads the error every frame. */
256
+ static ERROR_WARMUP_FRAMES = 30;
257
+ /** After warm-up, `sampled` mode reads the error on every Nth frame. */
258
+ static ERROR_SAMPLE_INTERVAL = 60;
259
+ framesEnded = 0;
260
+ lastEventSignature = -1;
261
+ /**
262
+ * `gl.getError()` is a synchronous round trip to the GPU process (about 1 ms per frame on the software
263
+ * rasteriser, 0.1 to 0.3 ms on hardware). `frame` and `strict` read it every frame; `sampled` reads it
264
+ * when something that can fail happened (the first frames, a resource or program created or released, a
265
+ * pending error) and otherwise every ERROR_SAMPLE_INTERVAL frames, so a persistent GL fault is still
266
+ * caught within a second at 60 fps.
267
+ */
268
+ shouldReadFrameError() {
269
+ this.framesEnded += 1;
270
+ const counters = this.host.counters;
271
+ const signature = this.host.renderTargets.size + this.host.buffers.size + this.host.shaders.size
272
+ + counters.programCompiles + counters.shaderProgramCreateCount + counters.shadowRenderTargetsAllocated + counters.releasedTextureHandles;
273
+ const changed = signature !== this.lastEventSignature;
274
+ this.lastEventSignature = signature;
275
+ if (this.host.errorCheckMode !== "sampled")
276
+ return true;
277
+ return changed
278
+ || this.lastError !== null
279
+ || this.framesEnded <= WebGL2ContextLifecycle.ERROR_WARMUP_FRAMES
280
+ || this.framesEnded % WebGL2ContextLifecycle.ERROR_SAMPLE_INTERVAL === 0;
250
281
  }
251
282
  captureTextureUnit0() {
252
283
  const activeTexture = this.host.gl.getParameter(this.host.gl.ACTIVE_TEXTURE);
@@ -291,7 +322,15 @@ export class WebGL2ContextLifecycle {
291
322
  }
292
323
  readError() {
293
324
  const error = this.host.gl.getError();
294
- return error === this.host.gl.NO_ERROR ? null : `0x${error.toString(16)}`;
325
+ if (error === this.host.gl.NO_ERROR)
326
+ return null;
327
+ // CONTEXT_LOST_WEBGL (0x9242) is the loss signal, not a GL fault: the lost/restored events own that state. Treating it as
328
+ // a fault threw "LDR postprocess presentation failed: 0x9242" from the frame in which the context went (top-tennis C8).
329
+ if (error === CONTEXT_LOST_WEBGL)
330
+ return null;
331
+ return `0x${error.toString(16)}`;
295
332
  }
296
333
  }
334
+ /** WebGL's context-lost error code (`WEBGL_lose_context` and real GPU resets). */
335
+ const CONTEXT_LOST_WEBGL = 0x9242;
297
336
  //# sourceMappingURL=ContextLifecycle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContextLifecycle.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/webgl2/ContextLifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContextLifecycle.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/webgl2/ContextLifecycle.ts"],"names":[],"mappings":"AAAA,qGAAqG;AAErG,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAqBpD,MAAM,OAAO,sBAAsB;IACZ;IAAiC;IAAtD,YAAqB,IAAsB,EAAW,MAA2C;QAA5E,SAAI,GAAJ,IAAI,CAAkB;QAAW,WAAM,GAAN,MAAM,CAAqC;QAC/F,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,KAAY,EAAE,EAAE;gBAC3C,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC7B,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC;gBAChC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBACzB,6FAA6F;gBAC7F,sFAAsF;gBACtF,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBACrD,IAAI,CAAC;wBACH,QAAQ,EAAE,CAAC;oBACb,CAAC;oBAAC,MAAM,CAAC;wBACP,iFAAiF;oBACnF,CAAC;gBACH,CAAC;YACH,CAAC,CAAkB,CAAC;YACpB,IAAI,CAAC,uBAAuB,GAAG,CAAC,GAAG,EAAE;gBACnC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;gBACrB,qEAAqE;gBACrE,sEAAsE;gBACtE,sEAAsE;gBACtE,sEAAsE;gBACtE,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;gBACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,IAAI,CAAC,uBAAuB,EAAE,CAAC;oBAC/B,OAAO;gBACT,CAAC;gBACD,MAAM,MAAM,GAAG,GAAS,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC1D,KAAK,CAAC,KAAK,IAAI,EAAE;oBACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,IAAI,CAAC;4BACH,MAAM,IAAI,EAAE,CAAC;wBACf,CAAC;wBAAC,MAAM,CAAC;4BACP,8DAA8D;4BAC9D,+DAA+D;wBACjE,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC5B,CAAC,CAAkB,CAAC;YACpB,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACtE,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAEQ,mBAAmB,CAAiB;IAEpC,uBAAuB,CAAiB;IAExC,mBAAmB,GAAG,IAAI,GAAG,EAAc,CAAC;IAE5C,uBAAuB,GAAG,IAAI,GAAG,EAAc,CAAC;IAEzD,8EAA8E;IACrE,aAAa,GAAG,IAAI,GAAG,EAA8B,CAAC;IAE/D,WAAW,GAAG,KAAK,CAAC;IAEpB,SAAS,GAAkB,IAAI,CAAC;IAEhC,cAAc,GAAG,CAAC,CAAC;IAEnB,aAAa,GAAG,CAAC,CAAC;IAElB,YAAY,CAAC,QAAoB;QAC/B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,gBAAgB,CAAC,QAAoB;QACnC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED,+EAA+E;IAC/E,cAAc,CAAC,IAAgC;QAC7C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAEO,uBAAuB;QAC7B,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC;gBACH,QAAQ,EAAE,CAAC;YACb,CAAC;YAAC,MAAM,CAAC;gBACP,iFAAiF;YACnF,CAAC;QACH,CAAC;IACH,CAAC;IAED,YAAY;QACV,6GAA6G;QAC7G,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QACvC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAgE,CAAC;QACtF,OAAO,OAAO,EAAE,EAAE,aAAa,KAAK,UAAU,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC;IACvE,CAAC;IAED,+HAA+H;IACvH,gBAAgB,GAAoB,IAAI,CAAC;IACzC,eAAe,GAAoB,IAAI,CAAC;IACxC,aAAa,GAAG,KAAK,CAAC;IACtB,eAAe,GAAY,IAAI,CAAC;IACxC,uGAAuG;IAC/F,mBAAmB,GAA4B,IAAI,CAAC;IACpD,YAAY,GAA+D,IAAI,CAAC;IACxF,gIAAgI;IACxH,sBAAsB,GAAoB,IAAI,CAAC;IAEvD,WAAW,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAE,OAA2C;QAC1G,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,iBAAiB,CAAC,sCAAsC,EAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7G,CAAC;QACD,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;YAChD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,oEAAoE;IACpE,aAAa;QACX,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,gHAAgH;IAChH,sBAAsB,CAAC,WAAoC,EAAE,KAAa,EAAE,MAAc;QACxF,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,WAAW,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,iBAAiB,CAAC,kDAAkD,EAAE,oBAAoB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3H,CAAC;QACD,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;YACvJ,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,uGAAuG;IACvG,kBAAkB;QAChB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,oEAAoE;IACpE,kBAAkB;QAChB,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;IAED,kJAAkJ;IAClJ,UAAU,CAAC,WAAoC,EAAE,KAAa,EAAE,MAAc;QAC5E,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAG,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7E,IAAI,UAAU;YAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;;YACxF,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,UAAU,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc;QAC5D,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,iBAAiB,CAAC,yCAAyC,EAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/G,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC/C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC;QAC5D,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,cAAc,CAAC,OAAgB;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC;QAC5D,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,yGAAyG;IACzG,gBAAgB;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,CAAC;QAC7E,OAAO,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1F,CAAC;IAED,sHAAsH;IACtH,cAAc;QACZ,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,KAAK,MAAM,CAAC;QAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,kBAAkB,CAAC,CAAC;QACpH,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,mBAAmB,CAAC,CAAC;QACzH,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC;QAC/D,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QACrI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3G,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,EAAE,GAAG,EAAE;YACtE,IAAI,OAAO;gBAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;;gBACnC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACxK,CAAC;IAED,UAAU,CAAC,KAAa,EAAE,MAAc;QACtC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,iBAAiB,CAAC,yBAAyB,EAAE,sBAAsB,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,iBAAiB,CAAC,mCAAmC,EAAE,oBAAoB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5G,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,yBAAyB,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,WAAW,IAAI,IAAI,CAAC,mBAAmB,CAAC;QAC/F,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACjK,0FAA0F;QAC1F,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QACnH,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACzG,CAAC;IAED,KAAK,CAAC,KAAgD;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;QAClF,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,IAAI,CAAC;IAClJ,CAAC;IAED,iBAAiB,CAAC,KAAgD,EAAE,UAAmB;QACrF,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,0EAA0E;YAC1E,sEAAsE;YACtE,gEAAgE;YAChE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YACpF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;QAClF,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,IAAI,CAAC;IAClJ,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IACrE,CAAC;IAED,6FAA6F;IAC7F,MAAM,CAAU,mBAAmB,GAAG,EAAE,CAAC;IACzC,wEAAwE;IACxE,MAAM,CAAU,qBAAqB,GAAG,EAAE,CAAC;IACnC,WAAW,GAAG,CAAC,CAAC;IAChB,kBAAkB,GAAG,CAAC,CAAC,CAAC;IAEhC;;;;;;OAMG;IACK,oBAAoB;QAC1B,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;cAC5F,QAAQ,CAAC,eAAe,GAAG,QAAQ,CAAC,wBAAwB,GAAG,QAAQ,CAAC,4BAA4B,GAAG,QAAQ,CAAC,sBAAsB,CAAC;QAC3I,MAAM,OAAO,GAAG,SAAS,KAAK,IAAI,CAAC,kBAAkB,CAAC;QACtD,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACpC,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACxD,OAAO,OAAO;eACT,IAAI,CAAC,SAAS,KAAK,IAAI;eACvB,IAAI,CAAC,WAAW,IAAI,sBAAsB,CAAC,mBAAmB;eAC9D,IAAI,CAAC,WAAW,GAAG,sBAAsB,CAAC,qBAAqB,KAAK,CAAC,CAAC;IAC7E,CAAC;IAED,mBAAmB;QACjB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAW,CAAC;QACvF,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAClD,OAAO;YACL,aAAa;YACb,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAwB;YAC5F,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAwB;SACxF,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,QAAoC;QACtD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,CAAC;IAED,yBAAyB,CAAC,IAAY;QACpC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;QACzD,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAwB;YAC5F,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAwB;SACxF,CAAC;IACJ,CAAC;IAED,yBAAyB,CAAC,IAAY,EAAE,QAA0C;QAChF,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvB,MAAM,IAAI,iBAAiB,CAAC,2BAA2B,EAAE,iBAAiB,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1B,MAAM,IAAI,iBAAiB,CAAC,wBAAwB,EAAE,cAAc,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,iBAAiB,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,SAAS;QACP,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QACjD,0HAA0H;QAC1H,wHAAwH;QACxH,IAAI,KAAK,KAAK,kBAAkB;YAAE,OAAO,IAAI,CAAC;QAC9C,OAAO,KAAK,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;IACnC,CAAC;;AAGH,kFAAkF;AAClF,MAAM,kBAAkB,GAAG,MAAM,CAAC"}
@@ -4,6 +4,7 @@ import { WebGL2RenderTarget, type WebGL2BloomDiagnostics } from "../WebGL2Device
4
4
  import { type BloomPyramidPlan, type BloomQualityPreset } from "../postprocess/NativeBloomPyramid.js";
5
5
  import type { WebGL2TextureUnit0Snapshot, WebGL2TextureUnitBindingSnapshot } from "./ContextLifecycle.js";
6
6
  import type { WebGL2DeviceHost } from "./DeviceHost.js";
7
+ import { BLOOM_FUSED_BLUR_TAP_BUDGET } from "./BloomFusion.js";
7
8
  import type { PostPipelineOptions } from "../contracts/post.js";
8
9
  import type { FrameCamera } from "../contracts/frameGraph.js";
9
10
  import { type LdrProgramVariant } from "./LdrPostprocessShader.js";
@@ -86,6 +87,11 @@ export interface WebGL2BloomPingPongResources {
86
87
  readonly textures: readonly [WebGLTexture, WebGLTexture];
87
88
  readonly framebuffers: readonly [WebGLFramebuffer, WebGLFramebuffer];
88
89
  }
90
+ /** Pass fusion (auto/cinematic): the fused mip sum samples at most this many mips in one pass. */
91
+ export declare const BLOOM_FUSED_MAX_MIPS = 5;
92
+ export { BLOOM_FUSED_BLUR_TAP_BUDGET };
93
+ /** Texture units the fullscreen presentation snapshot saves and restores: 0..4 (the fused bloom mip sum samples five). */
94
+ export declare const PRESENTATION_TEXTURE_UNITS = 5;
89
95
  export interface WebGL2BloomPyramidResources {
90
96
  readonly plan: BloomPyramidPlan;
91
97
  readonly hdr: boolean;
@@ -102,6 +108,11 @@ export interface WebGL2FullscreenPresentationStateSnapshot {
102
108
  readonly textureUnit0: WebGL2TextureUnit0Snapshot;
103
109
  readonly textureUnit1: WebGL2TextureUnitBindingSnapshot;
104
110
  readonly textureUnit2: WebGL2TextureUnitBindingSnapshot;
111
+ /** Units 3 and up that post passes bind (the fused bloom mip sum samples units 0..4), restored on exit. */
112
+ readonly extraTextureUnits: readonly {
113
+ readonly unit: number;
114
+ readonly binding: WebGL2TextureUnitBindingSnapshot;
115
+ }[];
105
116
  readonly vertexArray: WebGLVertexArrayObject | null;
106
117
  readonly viewport: Int32Array | readonly number[];
107
118
  readonly colorMask: readonly boolean[];
@@ -117,6 +128,13 @@ export declare class WebGL2LegacyPostPipeline {
117
128
  readonly host: WebGL2DeviceHost;
118
129
  constructor(host: WebGL2DeviceHost);
119
130
  bloomAccumulateProgram: WebGLProgram | null;
131
+ /** Look-neutral pass fusion (auto/cinematic only): single-pass 2-D Gaussian for small mips, one-pass weighted mip sum, upsample folded into the composite. */
132
+ bloomBlur2dProgram: WebGLProgram | null;
133
+ bloomFusedAccumulateProgram: WebGLProgram | null;
134
+ bloomFusedCompositeProgram: WebGLProgram | null;
135
+ bloomPrefilterDownsampleProgram: WebGLProgram | null;
136
+ /** True when the last `executeNativeBloomPyramidPasses` returned the level-0 accumulator (not a full-resolution copy). */
137
+ lastPyramidFused: boolean;
120
138
  bloomBlurProgram: WebGLProgram | null;
121
139
  bloomBrightExtractProgram: WebGLProgram | null;
122
140
  bloomBrightLutTexture: WebGLTexture | null;
@@ -217,6 +235,18 @@ export declare class WebGL2LegacyPostPipeline {
217
235
  ensureBloomBlurProgram(): WebGLProgram;
218
236
  ensureBloomCompositeProgram(): WebGLProgram;
219
237
  ensureBloomDownsampleProgram(): WebGLProgram;
238
+ /**
239
+ * Single-pass 2-D Gaussian: the product of the two normalised 1-D kernels the separable blur applies, with the same
240
+ * per-axis edge clamp, so it equals horizontal-then-vertical (up to the half-float round trip the two-pass version
241
+ * stores between passes). Used only for mips small enough that (2r+1)^2 taps cost less than a draw.
242
+ */
243
+ ensureBloomBlur2dProgram(): WebGLProgram;
244
+ /** Weighted sum of up to five blurred mips, bilinearly upsampled to level-0 size, in one pass (smallest mip first, like the sequential accumulate). */
245
+ ensureBloomFusedAccumulateProgram(): WebGLProgram;
246
+ /** HDR bloom composite that upsamples the level-0 accumulator itself (bilinear at the pixel centre) instead of reading a full-resolution copy. */
247
+ ensureBloomFusedCompositeProgram(): WebGLProgram;
248
+ /** Bright extract (HDR) + level-0 box downsample in one pass over an exactly 2:1 source; see `executeNativeBloomPyramidPasses`. */
249
+ ensureBloomPrefilterDownsampleProgram(): WebGLProgram;
220
250
  ensureBloomAccumulateProgram(): WebGLProgram;
221
251
  ensureOutlineProgram(): WebGLProgram;
222
252
  ensureSsaoProgram(): WebGLProgram;