@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
@@ -20,13 +20,30 @@ export class WebGL2StateCache {
20
20
  currentBlendFunc = null;
21
21
  currentBlendEquation = null;
22
22
  enabledCaps = new Map();
23
+ /** Texture bindings keyed by `(activeUnit + 1) * 0x10000 + target` (no per-call string key). */
23
24
  textureBindings = new Map();
25
+ /** Buffer / framebuffer targets other than ARRAY, ELEMENT_ARRAY and FRAMEBUFFER, keyed by target. */
26
+ otherBufferBindings = new Map();
27
+ otherFramebufferBindings = new Map();
28
+ totalIssued = 0;
29
+ totalSkipped = 0;
24
30
  samplerBindings = new Map();
25
31
  operationStats = new Map();
26
32
  constructor(descriptor) {
27
33
  this.descriptor = descriptor;
28
34
  }
35
+ /**
36
+ * Other GL state shadows that must be forgotten together with this one (the sampler registry's active-unit and
37
+ * per-unit texture bindings). `invalidate()` is the single entry point: every site that leaves GL state behind calls
38
+ * it, so a dependent registered here can never survive an invalidation with stale entries.
39
+ */
40
+ dependents = [];
41
+ onInvalidate(reset) {
42
+ this.dependents.push(reset);
43
+ }
29
44
  invalidate() {
45
+ for (const reset of this.dependents)
46
+ reset();
30
47
  this.currentProgram = UNSET;
31
48
  this.currentVertexArray = UNSET;
32
49
  this.currentArrayBuffer = UNSET;
@@ -47,10 +64,14 @@ export class WebGL2StateCache {
47
64
  this.currentBlendEquation = null;
48
65
  this.enabledCaps.clear();
49
66
  this.textureBindings.clear();
67
+ this.otherBufferBindings.clear();
68
+ this.otherFramebufferBindings.clear();
50
69
  this.samplerBindings.clear();
51
70
  }
52
71
  resetStats() {
53
72
  this.operationStats.clear();
73
+ this.totalIssued = 0;
74
+ this.totalSkipped = 0;
54
75
  }
55
76
  useProgram(program, apply) {
56
77
  if (this.currentProgram === program)
@@ -70,25 +91,23 @@ export class WebGL2StateCache {
70
91
  this.currentElementArrayBuffer = buffer;
71
92
  }
72
93
  else {
73
- const key = `buffer:${target}`;
74
- if (this.textureBindings.get(key) === buffer)
94
+ if (this.otherBufferBindings.get(target) === buffer)
75
95
  return this.skip("bindBuffer");
76
- this.textureBindings.set(key, buffer);
96
+ this.otherBufferBindings.set(target, buffer);
77
97
  }
78
98
  return this.issue("bindBuffer", apply);
79
99
  }
80
100
  bindFramebuffer(target, framebuffer, apply) {
81
- const key = `framebuffer:${target}`;
82
101
  if (target === FRAMEBUFFER_TARGET) {
83
102
  if (this.currentFramebuffer === framebuffer)
84
103
  return this.skip("bindFramebuffer");
85
104
  this.currentFramebuffer = framebuffer;
86
105
  }
87
- else if (this.textureBindings.get(key) === framebuffer) {
106
+ else if (this.otherFramebufferBindings.get(target) === framebuffer) {
88
107
  return this.skip("bindFramebuffer");
89
108
  }
90
109
  else {
91
- this.textureBindings.set(key, framebuffer);
110
+ this.otherFramebufferBindings.set(target, framebuffer);
92
111
  }
93
112
  return this.issue("bindFramebuffer", apply);
94
113
  }
@@ -100,38 +119,37 @@ export class WebGL2StateCache {
100
119
  return this.issue("bindVertexArray", apply);
101
120
  }
102
121
  viewport(x, y, width, height, apply) {
103
- const next = [x, y, width, height];
104
- if (this.currentViewport && tuple4Equals(this.currentViewport, next))
122
+ const current = this.currentViewport;
123
+ if (current && current[0] === x && current[1] === y && current[2] === width && current[3] === height)
105
124
  return this.skip("viewport");
106
- this.currentViewport = next;
125
+ this.currentViewport = [x, y, width, height];
107
126
  return this.issue("viewport", apply);
108
127
  }
109
128
  scissor(x, y, width, height, apply) {
110
- const next = [x, y, width, height];
111
- if (this.currentScissor && tuple4Equals(this.currentScissor, next))
129
+ const current = this.currentScissor;
130
+ if (current && current[0] === x && current[1] === y && current[2] === width && current[3] === height)
112
131
  return this.skip("scissor");
113
- this.currentScissor = next;
132
+ this.currentScissor = [x, y, width, height];
114
133
  return this.issue("scissor", apply);
115
134
  }
116
135
  colorMask(red, green, blue, alpha, apply) {
117
- const next = [red, green, blue, alpha];
118
- if (this.currentColorMask && boolTuple4Equals(this.currentColorMask, next))
136
+ const current = this.currentColorMask;
137
+ if (current && current[0] === red && current[1] === green && current[2] === blue && current[3] === alpha)
119
138
  return this.skip("colorMask");
120
- this.currentColorMask = next;
139
+ this.currentColorMask = [red, green, blue, alpha];
121
140
  return this.issue("colorMask", apply);
122
141
  }
123
142
  polygonOffset(factor, units, apply) {
124
- const next = [factor, units];
125
143
  if (this.currentPolygonOffset && this.currentPolygonOffset[0] === factor && this.currentPolygonOffset[1] === units)
126
144
  return this.skip("polygonOffset");
127
- this.currentPolygonOffset = next;
145
+ this.currentPolygonOffset = [factor, units];
128
146
  return this.issue("polygonOffset", apply);
129
147
  }
130
148
  stencilFunc(func, reference, mask, apply) {
131
- const next = [func, reference, mask];
132
- if (this.currentStencilFunc && tuple3Equals(this.currentStencilFunc, next))
149
+ const current = this.currentStencilFunc;
150
+ if (current && current[0] === func && current[1] === reference && current[2] === mask)
133
151
  return this.skip("stencilFunc");
134
- this.currentStencilFunc = next;
152
+ this.currentStencilFunc = [func, reference, mask];
135
153
  return this.issue("stencilFunc", apply);
136
154
  }
137
155
  stencilMask(mask, apply) {
@@ -141,10 +159,10 @@ export class WebGL2StateCache {
141
159
  return this.issue("stencilMask", apply);
142
160
  }
143
161
  stencilOp(fail, depthFail, depthPass, apply) {
144
- const next = [fail, depthFail, depthPass];
145
- if (this.currentStencilOp && tuple3Equals(this.currentStencilOp, next))
162
+ const current = this.currentStencilOp;
163
+ if (current && current[0] === fail && current[1] === depthFail && current[2] === depthPass)
146
164
  return this.skip("stencilOp");
147
- this.currentStencilOp = next;
165
+ this.currentStencilOp = [fail, depthFail, depthPass];
148
166
  return this.issue("stencilOp", apply);
149
167
  }
150
168
  setEnabled(capability, enabled, apply) {
@@ -173,26 +191,25 @@ export class WebGL2StateCache {
173
191
  }
174
192
  /** gl.blendFunc(src, dst) — identical factors for color and alpha. */
175
193
  blendFunc(src, dst, apply) {
176
- const next = [src, dst, src, dst];
177
- if (this.currentBlendFunc && next.every((value, i) => this.currentBlendFunc[i] === value))
194
+ const current = this.currentBlendFunc;
195
+ if (current && current[0] === src && current[1] === dst && current[2] === src && current[3] === dst)
178
196
  return this.skip("blendFunc");
179
- this.currentBlendFunc = next;
197
+ this.currentBlendFunc = [src, dst, src, dst];
180
198
  return this.issue("blendFunc", apply);
181
199
  }
182
200
  /** gl.blendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha) — C-04 dedupe. */
183
201
  blendFuncSeparate(srcRgb, dstRgb, srcAlpha, dstAlpha, apply) {
184
- const next = [srcRgb, dstRgb, srcAlpha, dstAlpha];
185
- if (this.currentBlendFunc && next.every((value, i) => this.currentBlendFunc[i] === value))
202
+ const current = this.currentBlendFunc;
203
+ if (current && current[0] === srcRgb && current[1] === dstRgb && current[2] === srcAlpha && current[3] === dstAlpha)
186
204
  return this.skip("blendFunc");
187
- this.currentBlendFunc = next;
205
+ this.currentBlendFunc = [srcRgb, dstRgb, srcAlpha, dstAlpha];
188
206
  return this.issue("blendFunc", apply);
189
207
  }
190
208
  /** gl.blendEquationSeparate(modeRGB, modeAlpha) — C-04 dedupe. */
191
209
  blendEquation(modeRgb, modeAlpha, apply) {
192
- const next = [modeRgb, modeAlpha];
193
210
  if (this.currentBlendEquation && this.currentBlendEquation[0] === modeRgb && this.currentBlendEquation[1] === modeAlpha)
194
211
  return this.skip("blendEquation");
195
- this.currentBlendEquation = next;
212
+ this.currentBlendEquation = [modeRgb, modeAlpha];
196
213
  return this.issue("blendEquation", apply);
197
214
  }
198
215
  /**
@@ -211,7 +228,7 @@ export class WebGL2StateCache {
211
228
  return this.issue("activeTexture", apply);
212
229
  }
213
230
  bindTexture(target, texture, apply) {
214
- const key = `${this.currentActiveTextureUnit ?? -1}:${target}`;
231
+ const key = ((this.currentActiveTextureUnit ?? -1) + 1) * 0x10000 + target;
215
232
  if (this.textureBindings.get(key) === texture)
216
233
  return this.skip("bindTexture");
217
234
  this.textureBindings.set(key, texture);
@@ -244,11 +261,30 @@ export class WebGL2StateCache {
244
261
  blendFunc: this.currentBlendFunc,
245
262
  blendEquation: this.currentBlendEquation,
246
263
  enabled: Object.fromEntries(this.enabledCaps.entries()),
247
- textures: Object.fromEntries(this.textureBindings.entries()),
264
+ textures: this.textureSnapshot(),
248
265
  samplers: Object.fromEntries(this.samplerBindings.entries()),
249
266
  stats: this.stats()
250
267
  };
251
268
  }
269
+ /** Texture/buffer/framebuffer binding shadow in the string-keyed shape the snapshot has always had. */
270
+ textureSnapshot() {
271
+ const out = {};
272
+ for (const [key, texture] of this.textureBindings)
273
+ out[`${Math.floor(key / 0x10000) - 1}:${key % 0x10000}`] = texture;
274
+ for (const [target, buffer] of this.otherBufferBindings)
275
+ out[`buffer:${target}`] = buffer;
276
+ for (const [target, framebuffer] of this.otherFramebufferBindings)
277
+ out[`framebuffer:${target}`] = framebuffer;
278
+ return out;
279
+ }
280
+ /** Total issued/skipped calls, without building the per-operation record `stats()` returns. */
281
+ totals() {
282
+ return { issued: this.totalIssued, skipped: this.totalSkipped };
283
+ }
284
+ /** Issued count for one operation (0 if never seen), without allocating. */
285
+ issuedCount(operation) {
286
+ return this.operationStats.get(operation)?.issued ?? 0;
287
+ }
252
288
  stats() {
253
289
  let issued = 0;
254
290
  let skipped = 0;
@@ -262,11 +298,13 @@ export class WebGL2StateCache {
262
298
  }
263
299
  issue(operation, apply) {
264
300
  this.statsFor(operation).issued += 1;
301
+ this.totalIssued += 1;
265
302
  apply();
266
303
  return true;
267
304
  }
268
305
  skip(operation) {
269
306
  this.statsFor(operation).skipped += 1;
307
+ this.totalSkipped += 1;
270
308
  return false;
271
309
  }
272
310
  statsFor(operation) {
@@ -282,13 +320,4 @@ const UNSET = Symbol("unset-webgl-state");
282
320
  const ARRAY_BUFFER_TARGET = 0x8892;
283
321
  const ELEMENT_ARRAY_BUFFER_TARGET = 0x8893;
284
322
  const FRAMEBUFFER_TARGET = 0x8d40;
285
- function tuple4Equals(left, right) {
286
- return left[0] === right[0] && left[1] === right[1] && left[2] === right[2] && left[3] === right[3];
287
- }
288
- function tuple3Equals(left, right) {
289
- return left[0] === right[0] && left[1] === right[1] && left[2] === right[2];
290
- }
291
- function boolTuple4Equals(left, right) {
292
- return left[0] === right[0] && left[1] === right[1] && left[2] === right[2] && left[3] === right[3];
293
- }
294
323
  //# sourceMappingURL=WebGL2StateCache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WebGL2StateCache.js","sourceRoot":"","sources":["../../../../packages/rendering/src/WebGL2StateCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebGL2StateCache.js","sourceRoot":"","sources":["../../../../packages/rendering/src/WebGL2StateCache.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,KAAK,GACb,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAC7E,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAExE,MAAM,MAAM,UAAU,GAAG,KAAK,MAAM,EAAE,CAAC;AAEvC,4CAA4C;AAC5C,MAAM,MAAM,UAAU,GAClB,aAAa,GAAG,iBAAiB,GAAG,aAAa,GAAG,kBAAkB,GAAG,eAAe,GACxF,kBAAkB,GAAG,YAAY,GAAG,eAAe,GAAG,aAAa,GAAG,cAAc,GACpF,cAAc,GAAG,eAAe,GAAG,cAAc,GAAG,iBAAiB,GAAG,eAAe,GAIvF,oBAAoB,GAAG,qBAAqB,GAAG,qBAAqB,GACpE,qBAAqB,GAAG,kBAAkB,GAAG,oBAAoB,GACjE,UAAU,MAAM,IAAI,MAAM,EAAE,CAAC;AAEjC,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3C,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACpE,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,mHAAmH;IACnH,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACvB,4GAA4G;IAC5G,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC;CACxB;AA8BD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAE9G;AAED,uGAAuG;AACvG,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,aAAa;IAC/C,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC;IAC/B,2DAA2D;IAC3D,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC;IACrC,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC;CACrB;AA6BD,wBAAgB,cAAc,CAAC,CAAC,SAAS,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAEjF"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,KAAK,GACb,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAC7E,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAExE,MAAM,MAAM,UAAU,GAAG,KAAK,MAAM,EAAE,CAAC;AAEvC,4CAA4C;AAC5C,MAAM,MAAM,UAAU,GAClB,aAAa,GAAG,iBAAiB,GAAG,aAAa,GAAG,kBAAkB,GAAG,eAAe,GACxF,kBAAkB,GAAG,YAAY,GAAG,eAAe,GAAG,aAAa,GAAG,cAAc,GACpF,cAAc,GAAG,eAAe,GAAG,cAAc,GAAG,iBAAiB,GAAG,eAAe,GAIvF,oBAAoB,GAAG,qBAAqB,GAAG,qBAAqB,GACpE,qBAAqB,GAAG,kBAAkB,GAAG,oBAAoB,GACjE,UAAU,MAAM,IAAI,MAAM,EAAE,CAAC;AAEjC,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3C,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACpE,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,mHAAmH;IACnH,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACvB,4GAA4G;IAC5G,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC;CACxB;AA8BD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAE9G;AAED,uGAAuG;AACvG,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,aAAa;IAC/C,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC;IAC/B,2DAA2D;IAC3D,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC;IACrC,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC;CACrB;AA+CD,wBAAgB,cAAc,CAAC,CAAC,SAAS,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAEjF"}
@@ -41,6 +41,14 @@ export function defineContractSlot(id, owner, flag, stub) {
41
41
  class RegistryImpl {
42
42
  name;
43
43
  entries = new Map();
44
+ /** Bumped by every register/unregister so a memoised `active()` list never outlives a registry change. */
45
+ version = 0;
46
+ /**
47
+ * `active(flags)` runs several times per frame (frame contributors, shader features, material lobes) and rebuilt, filtered
48
+ * and sorted the registry each time. Resolved `QrFlags` are immutable (their `values` map is frozen), so the list for one
49
+ * flags object only changes when the registry does. Flags objects without a frozen `values` map (test doubles) are never cached.
50
+ */
51
+ activeMemo = new WeakMap();
44
52
  constructor(name) {
45
53
  this.name = name;
46
54
  }
@@ -49,16 +57,28 @@ class RegistryImpl {
49
57
  throw new Error(`REGISTRY_DUPLICATE:${entry.id}`);
50
58
  }
51
59
  this.entries.set(entry.id, entry);
60
+ this.version += 1;
52
61
  return () => {
53
62
  if (this.entries.get(entry.id) === entry) {
54
63
  this.entries.delete(entry.id);
64
+ this.version += 1;
55
65
  }
56
66
  };
57
67
  }
58
68
  active(flags) {
59
- return [...this.entries.values()]
69
+ const values = flags.values;
70
+ const cacheable = typeof values === "object" && values !== null && Object.isFrozen(values);
71
+ if (cacheable) {
72
+ const hit = this.activeMemo.get(flags);
73
+ if (hit !== undefined && hit.version === this.version)
74
+ return hit.result;
75
+ }
76
+ const result = Object.freeze([...this.entries.values()]
60
77
  .filter((entry) => flags.on(entry.flag))
61
- .sort((a, b) => (a.order ?? 0) - (b.order ?? 0) || (a.id < b.id ? -1 : a.id > b.id ? 1 : 0));
78
+ .sort((a, b) => (a.order ?? 0) - (b.order ?? 0) || (a.id < b.id ? -1 : a.id > b.id ? 1 : 0)));
79
+ if (cacheable)
80
+ this.activeMemo.set(flags, { version: this.version, result });
81
+ return result;
62
82
  }
63
83
  all() {
64
84
  return [...this.entries.values()];
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/core.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/program.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  * C-02 — ProgramFeatures, ShaderFeature/chunk registry, ProgramCache (CONTRACTS.md).
3
3
  * Provider: PRD 01. File: packages/rendering/src/contracts/program.ts.
4
4
  */
5
+ import { StructuralMemo } from "./structuralMemo.js";
5
6
  /** Deterministic, order-independent program key: canonical JSON with sorted keys at every level. */
6
7
  function stableSerialize(value) {
7
8
  if (value === null || typeof value !== "object") {
@@ -15,8 +16,14 @@ function stableSerialize(value) {
15
16
  .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0));
16
17
  return `{${entries.map(([k, v]) => `${JSON.stringify(k)}:${stableSerialize(v)}`).join(",")}}`;
17
18
  }
19
+ /**
20
+ * Program keys are asked for several times per draw per frame (warm-up, `acquire`, the draw's own lookup) with records that
21
+ * are rebuilt each time but identical from frame to frame. Serialising one costs ~15 us; comparing it with a recent record
22
+ * costs ~1 us. A small ring of recent (record snapshot, key) pairs turns the steady state into compares only.
23
+ */
24
+ const keyMemo = new StructuralMemo(24);
18
25
  export function computeProgramKey(features) {
19
- return stableSerialize(features);
26
+ return keyMemo.resolve(features, () => stableSerialize(features));
20
27
  }
21
28
  import { createRegistry } from "./core.js";
22
29
  const shaderChunks = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/program.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,27 @@
5
5
  */
6
6
  export type AuraQualityTier = "low" | "medium" | "high" | "ultra";
7
7
  export type AuraFeatureLevel = "off" | "low" | "medium" | "high";
8
+ /**
9
+ * Bloom pass-fusion selection (PRD beat-threejs-2, contract 2.1). Applies only under `quality: "auto"` / `"cinematic"`;
10
+ * `quality: "production"` never fuses and keeps the original pass sequence.
11
+ *
12
+ * - `"separable"` (default): the draw-removing fusions that add no fill. The bright extract is folded into the level-0
13
+ * downsample, the five-mip sum is one pass, and the last full-resolution upsample is folded into the composite. Mips 0..2
14
+ * keep their separable H+V blur; the two smallest mips (3 and 4, about 1.8M texel fetches at 640x360) blur in one 2-D pass.
15
+ * Measured on the PBR viewer (software WebGL2, 640x360): 25 draws; frame time at parity with production within runner noise
16
+ * (fastest rep 0.98 to 0.99 of production in three runs, median of reps 0.97 / 1.02 / 0.97; rep-to-rep spread is up to 25%, so
17
+ * a strict "<= production" is not established; evidence/vs-threejs/bloom-fusion-cost.json). Without the 2-D pass on mips 3
18
+ * and 4 the same viewer has 27 draws. At 1440x900 the 90x57 mip exceeds the tap budget and the viewer has 26 draws.
19
+ * - `"fused-2d"`: mips 1..4 blur in one 2-D pass each (23 draws). The extra fill made the PBR viewer +53% to +56% slower (median of reps, three runs) on a
20
+ * software rasteriser, so it is opt-in until an owner-run real-GPU receipt exists.
21
+ *
22
+ * A 2-D pass is only taken while (2r+1)^2 * width * height stays within the tap budget, so large canvases fall back to the
23
+ * separable pair per mip in either mode.
24
+ */
25
+ export type AuraBloomFusion = "separable" | "fused-2d";
26
+ export declare const BLOOM_FUSIONS: readonly AuraBloomFusion[];
27
+ export declare const DEFAULT_BLOOM_FUSION_MODE: AuraBloomFusion;
28
+ export declare function isBloomFusion(value: unknown): value is AuraBloomFusion;
8
29
  export interface AuraQualityTierSettings {
9
30
  readonly maxPixelRatio: number;
10
31
  readonly minRenderScale: number;
@@ -1 +1 @@
1
- {"version":3,"file":"quality.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/quality.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quality.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/quality.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,11 @@
3
3
  * Engine re-export lives in packages/engine/src/contracts/quality re-exports? —
4
4
  * consumers import from @aura3d/rendering/contracts.
5
5
  */
6
+ export const BLOOM_FUSIONS = ["separable", "fused-2d"];
7
+ export const DEFAULT_BLOOM_FUSION_MODE = "separable";
8
+ export function isBloomFusion(value) {
9
+ return value === "separable" || value === "fused-2d";
10
+ }
6
11
  const MiB = 1024 * 1024;
7
12
  /**
8
13
  * Frozen QUALITY_TIERS: PRD 11 §6.3 table values with the R9, R10 and R11
@@ -1 +1 @@
1
- {"version":3,"file":"quality.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/quality.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quality.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/quality.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,12 @@ export interface RenderItem {
42
42
  readonly instanceColors?: Float32Array | readonly number[];
43
43
  readonly instanceAttributes?: readonly RenderItemInstanceAttribute[];
44
44
  readonly boundingBoxCenter?: readonly [number, number, number];
45
+ /**
46
+ * Coarser stand-in for the shadow depth passes (same vertex format as `geometry`). A dense instanced node is drawn once per cascade
47
+ * as well as once for the camera, and a shadow silhouette needs far fewer triangles than the lit surface. Ignored when the item
48
+ * carries a `drawRange`; absent means the depth pass draws `geometry`.
49
+ */
50
+ readonly shadowGeometry?: Geometry;
45
51
  /** Exclude supporting/decorative geometry from renderer-owned shadow depth passes. */
46
52
  readonly castShadow?: boolean;
47
53
  readonly receiveShadow?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"renderItem.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/renderItem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderItem.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/renderItem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Allocation-free structural equality over own enumerable keys. Two values that are equal here have equal own-entry sets, so
3
+ * any serialisation that reads exactly those entries (and ignores key order) gives the same string for both; the converse is
4
+ * not required, so a record that only differs by an `undefined`-valued key is a miss, never a wrong hit.
5
+ */
6
+ export declare function sameStructure(a: unknown, b: unknown): boolean;
7
+ /** Plain-data deep copy (objects, arrays, primitives): a memo must not alias a record the caller may mutate later. */
8
+ export declare function snapshotOf<T>(value: T): T;
9
+ /**
10
+ * A small ring of recent (record snapshot, result) pairs for a pure function of a plain-data record. A frame asks for the
11
+ * same few records in the same order every time, so the search starts after the last hit.
12
+ */
13
+ export declare class StructuralMemo<V> {
14
+ private readonly capacity;
15
+ private readonly records;
16
+ private readonly values;
17
+ private next;
18
+ private cursor;
19
+ constructor(capacity: number);
20
+ /** Compute `compute(record)` once per structurally distinct record. */
21
+ resolve(record: unknown, compute: () => V): V;
22
+ }
23
+ //# sourceMappingURL=structuralMemo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structuralMemo.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/structuralMemo.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAkB7D;AAED,sHAAsH;AACtH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAQzC;AAED;;;GAGG;AACH,qBAAa,cAAc,CAAC,CAAC;IAKf,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAK;gBACU,QAAQ,EAAE,MAAM;IAE7C,uEAAuE;IACvE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC;CAgB9C"}