@luma.gl/core 9.2.5 → 9.3.0-alpha.10

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 (280) hide show
  1. package/dist/adapter/canvas-context.d.ts +6 -162
  2. package/dist/adapter/canvas-context.d.ts.map +1 -1
  3. package/dist/adapter/canvas-context.js +5 -419
  4. package/dist/adapter/canvas-context.js.map +1 -1
  5. package/dist/adapter/canvas-observer.d.ts +32 -0
  6. package/dist/adapter/canvas-observer.d.ts.map +1 -0
  7. package/dist/adapter/canvas-observer.js +90 -0
  8. package/dist/adapter/canvas-observer.js.map +1 -0
  9. package/dist/adapter/canvas-surface.d.ts +150 -0
  10. package/dist/adapter/canvas-surface.d.ts.map +1 -0
  11. package/dist/adapter/canvas-surface.js +392 -0
  12. package/dist/adapter/canvas-surface.js.map +1 -0
  13. package/dist/adapter/device.d.ts +81 -16
  14. package/dist/adapter/device.d.ts.map +1 -1
  15. package/dist/adapter/device.js +196 -10
  16. package/dist/adapter/device.js.map +1 -1
  17. package/dist/adapter/luma.js +1 -1
  18. package/dist/adapter/luma.js.map +1 -1
  19. package/dist/adapter/presentation-context.d.ts +11 -0
  20. package/dist/adapter/presentation-context.d.ts.map +1 -0
  21. package/dist/adapter/presentation-context.js +12 -0
  22. package/dist/adapter/presentation-context.js.map +1 -0
  23. package/dist/adapter/resources/buffer.d.ts +5 -5
  24. package/dist/adapter/resources/buffer.d.ts.map +1 -1
  25. package/dist/adapter/resources/buffer.js +18 -7
  26. package/dist/adapter/resources/buffer.js.map +1 -1
  27. package/dist/adapter/resources/command-buffer.d.ts +3 -1
  28. package/dist/adapter/resources/command-buffer.d.ts.map +1 -1
  29. package/dist/adapter/resources/command-buffer.js +3 -1
  30. package/dist/adapter/resources/command-buffer.js.map +1 -1
  31. package/dist/adapter/resources/command-encoder.d.ts +30 -7
  32. package/dist/adapter/resources/command-encoder.d.ts.map +1 -1
  33. package/dist/adapter/resources/command-encoder.js +68 -2
  34. package/dist/adapter/resources/command-encoder.js.map +1 -1
  35. package/dist/adapter/resources/compute-pipeline.d.ts +2 -2
  36. package/dist/adapter/resources/compute-pipeline.d.ts.map +1 -1
  37. package/dist/adapter/resources/fence.d.ts +16 -0
  38. package/dist/adapter/resources/fence.d.ts.map +1 -0
  39. package/dist/adapter/resources/fence.js +17 -0
  40. package/dist/adapter/resources/fence.js.map +1 -0
  41. package/dist/adapter/resources/framebuffer.d.ts +1 -1
  42. package/dist/adapter/resources/framebuffer.d.ts.map +1 -1
  43. package/dist/adapter/resources/framebuffer.js +15 -12
  44. package/dist/adapter/resources/framebuffer.js.map +1 -1
  45. package/dist/adapter/resources/query-set.d.ts +17 -1
  46. package/dist/adapter/resources/query-set.d.ts.map +1 -1
  47. package/dist/adapter/resources/query-set.js.map +1 -1
  48. package/dist/adapter/resources/render-pipeline.d.ts +28 -10
  49. package/dist/adapter/resources/render-pipeline.d.ts.map +1 -1
  50. package/dist/adapter/resources/render-pipeline.js +21 -2
  51. package/dist/adapter/resources/render-pipeline.js.map +1 -1
  52. package/dist/adapter/resources/resource.d.ts +13 -0
  53. package/dist/adapter/resources/resource.d.ts.map +1 -1
  54. package/dist/adapter/resources/resource.js +243 -14
  55. package/dist/adapter/resources/resource.js.map +1 -1
  56. package/dist/adapter/resources/shader.js +27 -25
  57. package/dist/adapter/resources/shader.js.map +1 -1
  58. package/dist/adapter/resources/shared-render-pipeline.d.ts +22 -0
  59. package/dist/adapter/resources/shared-render-pipeline.d.ts.map +1 -0
  60. package/dist/adapter/resources/shared-render-pipeline.js +25 -0
  61. package/dist/adapter/resources/shared-render-pipeline.js.map +1 -0
  62. package/dist/adapter/resources/texture-view.d.ts +1 -1
  63. package/dist/adapter/resources/texture-view.d.ts.map +1 -1
  64. package/dist/adapter/resources/texture.d.ts +168 -28
  65. package/dist/adapter/resources/texture.d.ts.map +1 -1
  66. package/dist/adapter/resources/texture.js +284 -25
  67. package/dist/adapter/resources/texture.js.map +1 -1
  68. package/dist/adapter/types/attachments.d.ts +1 -1
  69. package/dist/adapter/types/attachments.d.ts.map +1 -1
  70. package/dist/adapter/types/buffer-layout.d.ts +1 -1
  71. package/dist/adapter/types/buffer-layout.d.ts.map +1 -1
  72. package/dist/adapter/types/parameters.d.ts +3 -1
  73. package/dist/adapter/types/parameters.d.ts.map +1 -1
  74. package/dist/adapter/types/parameters.js +1 -0
  75. package/dist/adapter/types/parameters.js.map +1 -1
  76. package/dist/adapter/types/shader-layout.d.ts +10 -6
  77. package/dist/adapter/types/shader-layout.d.ts.map +1 -1
  78. package/dist/adapter/types/uniforms.d.ts +6 -0
  79. package/dist/adapter/types/uniforms.d.ts.map +1 -1
  80. package/dist/adapter-utils/bind-groups.d.ts +9 -0
  81. package/dist/adapter-utils/bind-groups.d.ts.map +1 -0
  82. package/dist/adapter-utils/bind-groups.js +41 -0
  83. package/dist/adapter-utils/bind-groups.js.map +1 -0
  84. package/dist/adapter-utils/format-compiler-log.d.ts.map +1 -1
  85. package/dist/adapter-utils/format-compiler-log.js +23 -15
  86. package/dist/adapter-utils/format-compiler-log.js.map +1 -1
  87. package/dist/adapter-utils/get-attribute-from-layouts.d.ts +2 -2
  88. package/dist/adapter-utils/get-attribute-from-layouts.d.ts.map +1 -1
  89. package/dist/adapter-utils/get-attribute-from-layouts.js +6 -6
  90. package/dist/adapter-utils/get-attribute-from-layouts.js.map +1 -1
  91. package/dist/dist.dev.js +2692 -645
  92. package/dist/dist.min.js +10 -9
  93. package/dist/factories/bind-group-factory.d.ts +20 -0
  94. package/dist/factories/bind-group-factory.d.ts.map +1 -0
  95. package/dist/factories/bind-group-factory.js +79 -0
  96. package/dist/factories/bind-group-factory.js.map +1 -0
  97. package/dist/factories/core-module-state.d.ts +7 -0
  98. package/dist/factories/core-module-state.d.ts.map +1 -0
  99. package/dist/{shadertypes/data-types/shader-types.js → factories/core-module-state.js} +1 -1
  100. package/dist/factories/core-module-state.js.map +1 -0
  101. package/dist/factories/pipeline-factory.d.ts +54 -0
  102. package/dist/factories/pipeline-factory.d.ts.map +1 -0
  103. package/dist/factories/pipeline-factory.js +270 -0
  104. package/dist/factories/pipeline-factory.js.map +1 -0
  105. package/dist/factories/shader-factory.d.ts +20 -0
  106. package/dist/factories/shader-factory.d.ts.map +1 -0
  107. package/dist/factories/shader-factory.js +84 -0
  108. package/dist/factories/shader-factory.js.map +1 -0
  109. package/dist/index.cjs +2427 -554
  110. package/dist/index.cjs.map +4 -4
  111. package/dist/index.d.ts +30 -14
  112. package/dist/index.d.ts.map +1 -1
  113. package/dist/index.js +19 -7
  114. package/dist/index.js.map +1 -1
  115. package/dist/portable/shader-block-writer.d.ts +51 -0
  116. package/dist/portable/shader-block-writer.d.ts.map +1 -0
  117. package/dist/portable/shader-block-writer.js +185 -0
  118. package/dist/portable/shader-block-writer.js.map +1 -0
  119. package/dist/portable/uniform-block.d.ts +1 -1
  120. package/dist/portable/uniform-block.d.ts.map +1 -1
  121. package/dist/portable/uniform-store.d.ts +55 -24
  122. package/dist/portable/uniform-store.d.ts.map +1 -1
  123. package/dist/portable/uniform-store.js +73 -25
  124. package/dist/portable/uniform-store.js.map +1 -1
  125. package/dist/shadertypes/data-types/data-type-decoder.d.ts +20 -0
  126. package/dist/shadertypes/data-types/data-type-decoder.d.ts.map +1 -0
  127. package/dist/shadertypes/data-types/data-type-decoder.js +79 -0
  128. package/dist/shadertypes/data-types/data-type-decoder.js.map +1 -0
  129. package/dist/shadertypes/data-types/data-types.d.ts +31 -12
  130. package/dist/shadertypes/data-types/data-types.d.ts.map +1 -1
  131. package/dist/shadertypes/data-types/decode-data-types.d.ts.map +1 -1
  132. package/dist/shadertypes/data-types/decode-data-types.js +2 -1
  133. package/dist/shadertypes/data-types/decode-data-types.js.map +1 -1
  134. package/dist/{image-utils → shadertypes/image-types}/image-types.d.ts +0 -6
  135. package/dist/shadertypes/image-types/image-types.d.ts.map +1 -0
  136. package/dist/shadertypes/image-types/image-types.js.map +1 -0
  137. package/dist/shadertypes/shader-types/shader-block-layout.d.ts +72 -0
  138. package/dist/shadertypes/shader-types/shader-block-layout.d.ts.map +1 -0
  139. package/dist/shadertypes/shader-types/shader-block-layout.js +209 -0
  140. package/dist/shadertypes/shader-types/shader-block-layout.js.map +1 -0
  141. package/dist/shadertypes/shader-types/shader-type-decoder.d.ts +41 -0
  142. package/dist/shadertypes/shader-types/shader-type-decoder.d.ts.map +1 -0
  143. package/dist/shadertypes/{data-types/decode-shader-types.js → shader-types/shader-type-decoder.js} +43 -4
  144. package/dist/shadertypes/shader-types/shader-type-decoder.js.map +1 -0
  145. package/dist/shadertypes/shader-types/shader-types.d.ts +101 -0
  146. package/dist/shadertypes/shader-types/shader-types.d.ts.map +1 -0
  147. package/dist/shadertypes/shader-types/shader-types.js +30 -0
  148. package/dist/shadertypes/shader-types/shader-types.js.map +1 -0
  149. package/dist/shadertypes/texture-types/pixel-utils.d.ts.map +1 -0
  150. package/dist/shadertypes/{textures → texture-types}/pixel-utils.js +4 -4
  151. package/dist/shadertypes/texture-types/pixel-utils.js.map +1 -0
  152. package/dist/shadertypes/texture-types/texture-format-decoder.d.ts +36 -0
  153. package/dist/shadertypes/texture-types/texture-format-decoder.d.ts.map +1 -0
  154. package/dist/shadertypes/{textures → texture-types}/texture-format-decoder.js +109 -37
  155. package/dist/shadertypes/texture-types/texture-format-decoder.js.map +1 -0
  156. package/dist/shadertypes/texture-types/texture-format-generics.d.ts +34 -0
  157. package/dist/shadertypes/texture-types/texture-format-generics.d.ts.map +1 -0
  158. package/dist/shadertypes/texture-types/texture-format-generics.js.map +1 -0
  159. package/dist/shadertypes/texture-types/texture-format-table.d.ts.map +1 -0
  160. package/dist/shadertypes/{textures → texture-types}/texture-format-table.js +10 -9
  161. package/dist/shadertypes/texture-types/texture-format-table.js.map +1 -0
  162. package/dist/shadertypes/{textures → texture-types}/texture-formats.d.ts +51 -17
  163. package/dist/shadertypes/texture-types/texture-formats.d.ts.map +1 -0
  164. package/dist/shadertypes/{textures → texture-types}/texture-formats.js +1 -0
  165. package/dist/shadertypes/texture-types/texture-formats.js.map +1 -0
  166. package/dist/shadertypes/texture-types/texture-layout.d.ts +5 -0
  167. package/dist/shadertypes/texture-types/texture-layout.d.ts.map +1 -0
  168. package/dist/shadertypes/texture-types/texture-layout.js +41 -0
  169. package/dist/shadertypes/texture-types/texture-layout.js.map +1 -0
  170. package/dist/shadertypes/vertex-types/vertex-format-decoder.d.ts +24 -0
  171. package/dist/shadertypes/vertex-types/vertex-format-decoder.d.ts.map +1 -0
  172. package/dist/shadertypes/vertex-types/vertex-format-decoder.js +106 -0
  173. package/dist/shadertypes/vertex-types/vertex-format-decoder.js.map +1 -0
  174. package/dist/shadertypes/vertex-types/vertex-formats.d.ts +50 -0
  175. package/dist/shadertypes/vertex-types/vertex-formats.d.ts.map +1 -0
  176. package/dist/shadertypes/vertex-types/vertex-formats.js.map +1 -0
  177. package/dist/utils/array-equal.d.ts +1 -1
  178. package/dist/utils/array-equal.d.ts.map +1 -1
  179. package/dist/utils/array-equal.js +15 -9
  180. package/dist/utils/array-equal.js.map +1 -1
  181. package/dist/utils/assert.d.ts +5 -0
  182. package/dist/utils/assert.d.ts.map +1 -0
  183. package/dist/utils/assert.js +17 -0
  184. package/dist/utils/assert.js.map +1 -0
  185. package/dist/utils/stats-manager.d.ts.map +1 -1
  186. package/dist/utils/stats-manager.js +61 -1
  187. package/dist/utils/stats-manager.js.map +1 -1
  188. package/package.json +6 -6
  189. package/src/adapter/canvas-context.ts +7 -556
  190. package/src/adapter/canvas-observer.ts +130 -0
  191. package/src/adapter/canvas-surface.ts +521 -0
  192. package/src/adapter/device.ts +312 -24
  193. package/src/adapter/presentation-context.ts +16 -0
  194. package/src/adapter/resources/buffer.ts +19 -9
  195. package/src/adapter/resources/command-buffer.ts +4 -2
  196. package/src/adapter/resources/command-encoder.ts +101 -10
  197. package/src/adapter/resources/compute-pipeline.ts +2 -2
  198. package/src/adapter/resources/fence.ts +32 -0
  199. package/src/adapter/resources/framebuffer.ts +16 -13
  200. package/src/adapter/resources/query-set.ts +17 -1
  201. package/src/adapter/resources/render-pipeline.ts +52 -16
  202. package/src/adapter/resources/resource.ts +289 -14
  203. package/src/adapter/resources/shader.ts +28 -28
  204. package/src/adapter/resources/shared-render-pipeline.ts +40 -0
  205. package/src/adapter/resources/texture-view.ts +1 -1
  206. package/src/adapter/resources/texture.ts +427 -49
  207. package/src/adapter/types/attachments.ts +1 -1
  208. package/src/adapter/types/buffer-layout.ts +1 -1
  209. package/src/adapter/types/parameters.ts +4 -1
  210. package/src/adapter/types/shader-layout.ts +15 -9
  211. package/src/adapter/types/uniforms.ts +12 -0
  212. package/src/adapter-utils/bind-groups.ts +71 -0
  213. package/src/adapter-utils/format-compiler-log.ts +23 -15
  214. package/src/adapter-utils/get-attribute-from-layouts.ts +8 -11
  215. package/src/factories/bind-group-factory.ts +139 -0
  216. package/src/factories/core-module-state.ts +11 -0
  217. package/src/factories/pipeline-factory.ts +328 -0
  218. package/src/factories/shader-factory.ts +103 -0
  219. package/src/index.ts +70 -26
  220. package/src/portable/shader-block-writer.ts +254 -0
  221. package/src/portable/uniform-block.ts +1 -1
  222. package/src/portable/uniform-store.ts +98 -40
  223. package/src/shadertypes/data-types/data-type-decoder.ts +105 -0
  224. package/src/shadertypes/data-types/data-types.ts +100 -48
  225. package/src/shadertypes/data-types/decode-data-types.ts +2 -1
  226. package/src/{image-utils → shadertypes/image-types}/image-types.ts +0 -7
  227. package/src/shadertypes/shader-types/shader-block-layout.ts +340 -0
  228. package/src/shadertypes/{data-types/decode-shader-types.ts → shader-types/shader-type-decoder.ts} +88 -14
  229. package/src/shadertypes/shader-types/shader-types.ts +207 -0
  230. package/src/shadertypes/{textures → texture-types}/pixel-utils.ts +4 -4
  231. package/src/shadertypes/{textures → texture-types}/texture-format-decoder.ts +166 -45
  232. package/src/shadertypes/{textures → texture-types}/texture-format-generics.ts +42 -48
  233. package/src/shadertypes/{textures → texture-types}/texture-format-table.ts +10 -9
  234. package/src/shadertypes/{textures → texture-types}/texture-formats.ts +73 -17
  235. package/src/shadertypes/texture-types/texture-layout.ts +60 -0
  236. package/src/shadertypes/vertex-types/vertex-format-decoder.ts +131 -0
  237. package/src/shadertypes/vertex-types/vertex-formats.ts +183 -0
  238. package/src/utils/array-equal.ts +21 -9
  239. package/src/utils/assert.ts +18 -0
  240. package/src/utils/stats-manager.ts +76 -2
  241. package/dist/image-utils/image-types.d.ts.map +0 -1
  242. package/dist/image-utils/image-types.js.map +0 -1
  243. package/dist/portable/uniform-buffer-layout.d.ts +0 -28
  244. package/dist/portable/uniform-buffer-layout.d.ts.map +0 -1
  245. package/dist/portable/uniform-buffer-layout.js +0 -96
  246. package/dist/portable/uniform-buffer-layout.js.map +0 -1
  247. package/dist/shadertypes/data-types/decode-shader-types.d.ts +0 -17
  248. package/dist/shadertypes/data-types/decode-shader-types.d.ts.map +0 -1
  249. package/dist/shadertypes/data-types/decode-shader-types.js.map +0 -1
  250. package/dist/shadertypes/data-types/shader-types.d.ts +0 -45
  251. package/dist/shadertypes/data-types/shader-types.d.ts.map +0 -1
  252. package/dist/shadertypes/data-types/shader-types.js.map +0 -1
  253. package/dist/shadertypes/textures/pixel-utils.d.ts.map +0 -1
  254. package/dist/shadertypes/textures/pixel-utils.js.map +0 -1
  255. package/dist/shadertypes/textures/texture-format-decoder.d.ts +0 -18
  256. package/dist/shadertypes/textures/texture-format-decoder.d.ts.map +0 -1
  257. package/dist/shadertypes/textures/texture-format-decoder.js.map +0 -1
  258. package/dist/shadertypes/textures/texture-format-generics.d.ts +0 -33
  259. package/dist/shadertypes/textures/texture-format-generics.d.ts.map +0 -1
  260. package/dist/shadertypes/textures/texture-format-generics.js.map +0 -1
  261. package/dist/shadertypes/textures/texture-format-table.d.ts.map +0 -1
  262. package/dist/shadertypes/textures/texture-format-table.js.map +0 -1
  263. package/dist/shadertypes/textures/texture-formats.d.ts.map +0 -1
  264. package/dist/shadertypes/textures/texture-formats.js.map +0 -1
  265. package/dist/shadertypes/vertex-arrays/decode-vertex-format.d.ts +0 -18
  266. package/dist/shadertypes/vertex-arrays/decode-vertex-format.d.ts.map +0 -1
  267. package/dist/shadertypes/vertex-arrays/decode-vertex-format.js +0 -100
  268. package/dist/shadertypes/vertex-arrays/decode-vertex-format.js.map +0 -1
  269. package/dist/shadertypes/vertex-arrays/vertex-formats.d.ts +0 -27
  270. package/dist/shadertypes/vertex-arrays/vertex-formats.d.ts.map +0 -1
  271. package/dist/shadertypes/vertex-arrays/vertex-formats.js.map +0 -1
  272. package/src/portable/uniform-buffer-layout.ts +0 -118
  273. package/src/shadertypes/data-types/shader-types.ts +0 -87
  274. package/src/shadertypes/vertex-arrays/decode-vertex-format.ts +0 -124
  275. package/src/shadertypes/vertex-arrays/vertex-formats.ts +0 -91
  276. /package/dist/{image-utils → shadertypes/image-types}/image-types.js +0 -0
  277. /package/dist/shadertypes/{textures → texture-types}/pixel-utils.d.ts +0 -0
  278. /package/dist/shadertypes/{textures → texture-types}/texture-format-generics.js +0 -0
  279. /package/dist/shadertypes/{textures → texture-types}/texture-format-table.d.ts +0 -0
  280. /package/dist/shadertypes/{vertex-arrays → vertex-types}/vertex-formats.js +0 -0
@@ -2,6 +2,57 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { uid } from "../../utils/uid.js";
5
+ const CPU_HOTSPOT_PROFILER_MODULE = 'cpu-hotspot-profiler';
6
+ const RESOURCE_COUNTS_STATS = 'GPU Resource Counts';
7
+ const LEGACY_RESOURCE_COUNTS_STATS = 'Resource Counts';
8
+ const GPU_TIME_AND_MEMORY_STATS = 'GPU Time and Memory';
9
+ const BASE_RESOURCE_COUNT_ORDER = [
10
+ 'Resources',
11
+ 'Buffers',
12
+ 'Textures',
13
+ 'Samplers',
14
+ 'TextureViews',
15
+ 'Framebuffers',
16
+ 'QuerySets',
17
+ 'Shaders',
18
+ 'RenderPipelines',
19
+ 'ComputePipelines',
20
+ 'PipelineLayouts',
21
+ 'VertexArrays',
22
+ 'RenderPasss',
23
+ 'ComputePasss',
24
+ 'CommandEncoders',
25
+ 'CommandBuffers'
26
+ ];
27
+ const WEBGL_RESOURCE_COUNT_ORDER = [
28
+ 'Resources',
29
+ 'Buffers',
30
+ 'Textures',
31
+ 'Samplers',
32
+ 'TextureViews',
33
+ 'Framebuffers',
34
+ 'QuerySets',
35
+ 'Shaders',
36
+ 'RenderPipelines',
37
+ 'SharedRenderPipelines',
38
+ 'ComputePipelines',
39
+ 'PipelineLayouts',
40
+ 'VertexArrays',
41
+ 'RenderPasss',
42
+ 'ComputePasss',
43
+ 'CommandEncoders',
44
+ 'CommandBuffers'
45
+ ];
46
+ const BASE_RESOURCE_COUNT_STAT_ORDER = BASE_RESOURCE_COUNT_ORDER.flatMap(resourceType => [
47
+ `${resourceType} Created`,
48
+ `${resourceType} Active`
49
+ ]);
50
+ const WEBGL_RESOURCE_COUNT_STAT_ORDER = WEBGL_RESOURCE_COUNT_ORDER.flatMap(resourceType => [
51
+ `${resourceType} Created`,
52
+ `${resourceType} Active`
53
+ ]);
54
+ const ORDERED_STATS_CACHE = new WeakMap();
55
+ const ORDERED_STAT_NAME_SET_CACHE = new WeakMap();
5
56
  /**
6
57
  * Base class for GPU (WebGPU/WebGL) Resources
7
58
  */
@@ -17,13 +68,18 @@ export class Resource {
17
68
  }
18
69
  /** props.id, for debugging. */
19
70
  id;
71
+ /** The props that this resource was created with */
20
72
  props;
73
+ /** User data object, reserved for the application */
21
74
  userData = {};
75
+ /** The device that this resource is associated with - TODO can we remove this dup? */
22
76
  _device;
23
77
  /** Whether this resource has been destroyed */
24
78
  destroyed = false;
25
79
  /** For resources that allocate GPU memory */
26
80
  allocatedBytes = 0;
81
+ /** Stats bucket currently holding the tracked allocation */
82
+ allocatedBytesName = null;
27
83
  /** Attached resources will be destroyed when this resource is destroyed. Tracks auto-created "sub" resources. */
28
84
  _attachedResources = new Set();
29
85
  /**
@@ -45,6 +101,9 @@ export class Resource {
45
101
  * destroy can be called on any resource to release it before it is garbage collected.
46
102
  */
47
103
  destroy() {
104
+ if (this.destroyed) {
105
+ return;
106
+ }
48
107
  this.destroyResource();
49
108
  }
50
109
  /** @deprecated Use destroy() */
@@ -83,7 +142,7 @@ export class Resource {
83
142
  }
84
143
  /** Destroy all owned resources. Make sure the resources are no longer needed before calling. */
85
144
  destroyAttachedResources() {
86
- for (const resource of Object.values(this._attachedResources)) {
145
+ for (const resource of this._attachedResources) {
87
146
  resource.destroy();
88
147
  }
89
148
  // don't remove while we are iterating
@@ -92,37 +151,111 @@ export class Resource {
92
151
  // PROTECTED METHODS
93
152
  /** Perform all destroy steps. Can be called by derived resources when overriding destroy() */
94
153
  destroyResource() {
154
+ if (this.destroyed) {
155
+ return;
156
+ }
95
157
  this.destroyAttachedResources();
96
158
  this.removeStats();
97
159
  this.destroyed = true;
98
160
  }
99
161
  /** Called by .destroy() to track object destruction. Subclass must call if overriding destroy() */
100
162
  removeStats() {
101
- const stats = this._device.statsManager.getStats('Resource Counts');
102
- const name = this[Symbol.toStringTag];
103
- stats.get(`${name}s Active`).decrementCount();
163
+ const profiler = getCpuHotspotProfiler(this._device);
164
+ const startTime = profiler ? getTimestamp() : 0;
165
+ const statsObjects = [
166
+ this._device.statsManager.getStats(RESOURCE_COUNTS_STATS),
167
+ this._device.statsManager.getStats(LEGACY_RESOURCE_COUNTS_STATS)
168
+ ];
169
+ const orderedStatNames = getResourceCountStatOrder(this._device);
170
+ for (const stats of statsObjects) {
171
+ initializeStats(stats, orderedStatNames);
172
+ }
173
+ const name = this.getStatsName();
174
+ for (const stats of statsObjects) {
175
+ stats.get('Resources Active').decrementCount();
176
+ stats.get(`${name}s Active`).decrementCount();
177
+ }
178
+ if (profiler) {
179
+ profiler.statsBookkeepingCalls = (profiler.statsBookkeepingCalls || 0) + 1;
180
+ profiler.statsBookkeepingTimeMs =
181
+ (profiler.statsBookkeepingTimeMs || 0) + (getTimestamp() - startTime);
182
+ }
104
183
  }
105
184
  /** Called by subclass to track memory allocations */
106
- trackAllocatedMemory(bytes, name = this[Symbol.toStringTag]) {
107
- const stats = this._device.statsManager.getStats('Resource Counts');
185
+ trackAllocatedMemory(bytes, name = this.getStatsName()) {
186
+ const profiler = getCpuHotspotProfiler(this._device);
187
+ const startTime = profiler ? getTimestamp() : 0;
188
+ const stats = this._device.statsManager.getStats(GPU_TIME_AND_MEMORY_STATS);
189
+ if (this.allocatedBytes > 0 && this.allocatedBytesName) {
190
+ stats.get('GPU Memory').subtractCount(this.allocatedBytes);
191
+ stats.get(`${this.allocatedBytesName} Memory`).subtractCount(this.allocatedBytes);
192
+ }
108
193
  stats.get('GPU Memory').addCount(bytes);
109
194
  stats.get(`${name} Memory`).addCount(bytes);
195
+ if (profiler) {
196
+ profiler.statsBookkeepingCalls = (profiler.statsBookkeepingCalls || 0) + 1;
197
+ profiler.statsBookkeepingTimeMs =
198
+ (profiler.statsBookkeepingTimeMs || 0) + (getTimestamp() - startTime);
199
+ }
110
200
  this.allocatedBytes = bytes;
201
+ this.allocatedBytesName = name;
202
+ }
203
+ /** Called by subclass to track handle-backed memory allocations separately from owned allocations */
204
+ trackReferencedMemory(bytes, name = this.getStatsName()) {
205
+ this.trackAllocatedMemory(bytes, `Referenced ${name}`);
111
206
  }
112
207
  /** Called by subclass to track memory deallocations */
113
- trackDeallocatedMemory(name = this[Symbol.toStringTag]) {
114
- const stats = this._device.statsManager.getStats('Resource Counts');
208
+ trackDeallocatedMemory(name = this.getStatsName()) {
209
+ if (this.allocatedBytes === 0) {
210
+ this.allocatedBytesName = null;
211
+ return;
212
+ }
213
+ const profiler = getCpuHotspotProfiler(this._device);
214
+ const startTime = profiler ? getTimestamp() : 0;
215
+ const stats = this._device.statsManager.getStats(GPU_TIME_AND_MEMORY_STATS);
115
216
  stats.get('GPU Memory').subtractCount(this.allocatedBytes);
116
- stats.get(`${name} Memory`).subtractCount(this.allocatedBytes);
217
+ stats.get(`${this.allocatedBytesName || name} Memory`).subtractCount(this.allocatedBytes);
218
+ if (profiler) {
219
+ profiler.statsBookkeepingCalls = (profiler.statsBookkeepingCalls || 0) + 1;
220
+ profiler.statsBookkeepingTimeMs =
221
+ (profiler.statsBookkeepingTimeMs || 0) + (getTimestamp() - startTime);
222
+ }
117
223
  this.allocatedBytes = 0;
224
+ this.allocatedBytesName = null;
225
+ }
226
+ /** Called by subclass to deallocate handle-backed memory tracked via trackReferencedMemory() */
227
+ trackDeallocatedReferencedMemory(name = this.getStatsName()) {
228
+ this.trackDeallocatedMemory(`Referenced ${name}`);
118
229
  }
119
230
  /** Called by resource constructor to track object creation */
120
231
  addStats() {
121
- const stats = this._device.statsManager.getStats('Resource Counts');
122
- const name = this[Symbol.toStringTag];
123
- stats.get('Resources Created').incrementCount();
124
- stats.get(`${name}s Created`).incrementCount();
125
- stats.get(`${name}s Active`).incrementCount();
232
+ const name = this.getStatsName();
233
+ const profiler = getCpuHotspotProfiler(this._device);
234
+ const startTime = profiler ? getTimestamp() : 0;
235
+ const statsObjects = [
236
+ this._device.statsManager.getStats(RESOURCE_COUNTS_STATS),
237
+ this._device.statsManager.getStats(LEGACY_RESOURCE_COUNTS_STATS)
238
+ ];
239
+ const orderedStatNames = getResourceCountStatOrder(this._device);
240
+ for (const stats of statsObjects) {
241
+ initializeStats(stats, orderedStatNames);
242
+ }
243
+ for (const stats of statsObjects) {
244
+ stats.get('Resources Created').incrementCount();
245
+ stats.get('Resources Active').incrementCount();
246
+ stats.get(`${name}s Created`).incrementCount();
247
+ stats.get(`${name}s Active`).incrementCount();
248
+ }
249
+ if (profiler) {
250
+ profiler.statsBookkeepingCalls = (profiler.statsBookkeepingCalls || 0) + 1;
251
+ profiler.statsBookkeepingTimeMs =
252
+ (profiler.statsBookkeepingTimeMs || 0) + (getTimestamp() - startTime);
253
+ }
254
+ recordTransientCanvasResourceCreate(this._device, name);
255
+ }
256
+ /** Canonical resource name used for stats buckets. */
257
+ getStatsName() {
258
+ return getCanonicalResourceName(this);
126
259
  }
127
260
  }
128
261
  /**
@@ -140,4 +273,100 @@ function selectivelyMerge(props, defaultProps) {
140
273
  }
141
274
  return mergedProps;
142
275
  }
276
+ function initializeStats(stats, orderedStatNames) {
277
+ const statsMap = stats.stats;
278
+ let addedOrderedStat = false;
279
+ for (const statName of orderedStatNames) {
280
+ if (!statsMap[statName]) {
281
+ stats.get(statName);
282
+ addedOrderedStat = true;
283
+ }
284
+ }
285
+ const statCount = Object.keys(statsMap).length;
286
+ const cachedStats = ORDERED_STATS_CACHE.get(stats);
287
+ if (!addedOrderedStat &&
288
+ cachedStats?.orderedStatNames === orderedStatNames &&
289
+ cachedStats.statCount === statCount) {
290
+ return;
291
+ }
292
+ const reorderedStats = {};
293
+ let orderedStatNamesSet = ORDERED_STAT_NAME_SET_CACHE.get(orderedStatNames);
294
+ if (!orderedStatNamesSet) {
295
+ orderedStatNamesSet = new Set(orderedStatNames);
296
+ ORDERED_STAT_NAME_SET_CACHE.set(orderedStatNames, orderedStatNamesSet);
297
+ }
298
+ for (const statName of orderedStatNames) {
299
+ if (statsMap[statName]) {
300
+ reorderedStats[statName] = statsMap[statName];
301
+ }
302
+ }
303
+ for (const [statName, stat] of Object.entries(statsMap)) {
304
+ if (!orderedStatNamesSet.has(statName)) {
305
+ reorderedStats[statName] = stat;
306
+ }
307
+ }
308
+ for (const statName of Object.keys(statsMap)) {
309
+ delete statsMap[statName];
310
+ }
311
+ Object.assign(statsMap, reorderedStats);
312
+ ORDERED_STATS_CACHE.set(stats, { orderedStatNames, statCount });
313
+ }
314
+ function getResourceCountStatOrder(device) {
315
+ return device.type === 'webgl' ? WEBGL_RESOURCE_COUNT_STAT_ORDER : BASE_RESOURCE_COUNT_STAT_ORDER;
316
+ }
317
+ function getCpuHotspotProfiler(device) {
318
+ const profiler = device.userData[CPU_HOTSPOT_PROFILER_MODULE];
319
+ return profiler?.enabled ? profiler : null;
320
+ }
321
+ function getTimestamp() {
322
+ return globalThis.performance?.now?.() ?? Date.now();
323
+ }
324
+ function recordTransientCanvasResourceCreate(device, name) {
325
+ const profiler = getCpuHotspotProfiler(device);
326
+ if (!profiler || !profiler.activeDefaultFramebufferAcquireDepth) {
327
+ return;
328
+ }
329
+ profiler.transientCanvasResourceCreates = (profiler.transientCanvasResourceCreates || 0) + 1;
330
+ switch (name) {
331
+ case 'Texture':
332
+ profiler.transientCanvasTextureCreates = (profiler.transientCanvasTextureCreates || 0) + 1;
333
+ break;
334
+ case 'TextureView':
335
+ profiler.transientCanvasTextureViewCreates =
336
+ (profiler.transientCanvasTextureViewCreates || 0) + 1;
337
+ break;
338
+ case 'Sampler':
339
+ profiler.transientCanvasSamplerCreates = (profiler.transientCanvasSamplerCreates || 0) + 1;
340
+ break;
341
+ case 'Framebuffer':
342
+ profiler.transientCanvasFramebufferCreates =
343
+ (profiler.transientCanvasFramebufferCreates || 0) + 1;
344
+ break;
345
+ default:
346
+ break;
347
+ }
348
+ }
349
+ function getCanonicalResourceName(resource) {
350
+ let prototype = Object.getPrototypeOf(resource);
351
+ while (prototype) {
352
+ const parentPrototype = Object.getPrototypeOf(prototype);
353
+ if (!parentPrototype || parentPrototype === Resource.prototype) {
354
+ return (getPrototypeToStringTag(prototype) ||
355
+ resource[Symbol.toStringTag] ||
356
+ resource.constructor.name);
357
+ }
358
+ prototype = parentPrototype;
359
+ }
360
+ return resource[Symbol.toStringTag] || resource.constructor.name;
361
+ }
362
+ function getPrototypeToStringTag(prototype) {
363
+ const descriptor = Object.getOwnPropertyDescriptor(prototype, Symbol.toStringTag);
364
+ if (typeof descriptor?.get === 'function') {
365
+ return descriptor.get.call(prototype);
366
+ }
367
+ if (typeof descriptor?.value === 'string') {
368
+ return descriptor.value;
369
+ }
370
+ return null;
371
+ }
143
372
  //# sourceMappingURL=resource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource.js","sourceRoot":"","sources":["../../../src/adapter/resources/resource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource.js","sourceRoot":"","sources":["../../../src/adapter/resources/resource.ts"],"names":[],"mappings":"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"}
@@ -69,35 +69,37 @@ export class Shader extends Resource {
69
69
  }
70
70
  const shaderName = shaderId; // getShaderName(this.source) || ;
71
71
  const shaderTitle = `${this.stage} shader "${shaderName}"`;
72
- let htmlLog = formatCompilerLog(messages, this.source, { showSourceCode: 'all', html: true });
72
+ const htmlLog = formatCompilerLog(messages, this.source, { showSourceCode: 'all', html: true });
73
73
  // Show translated source if available
74
74
  const translatedSource = this.getTranslatedSource();
75
+ const container = document.createElement('div');
76
+ container.innerHTML = `\
77
+ <h1>Compilation error in ${shaderTitle}</h1>
78
+ <div style="display:flex;position:fixed;top:10px;right:20px;gap:2px;">
79
+ <button id="copy">Copy source</button><br/>
80
+ <button id="close">Close</button>
81
+ </div>
82
+ <code><pre>${htmlLog}</pre></code>`;
75
83
  if (translatedSource) {
76
- htmlLog += `<br /><br /><h1>Translated Source</h1><br /><br /><code style="user-select:text;"><pre>${translatedSource}</pre></code>`;
84
+ container.innerHTML += `<br /><h1>Translated Source</h1><br /><br /><code><pre>${translatedSource}</pre></code>`;
77
85
  }
78
- // Make it clickable so we can copy to clipboard
79
- const button = document.createElement('Button');
80
- button.innerHTML = `
81
- <h1>Compilation error in ${shaderTitle}</h1><br /><br />
82
- <code style="user-select:text;"><pre>
83
- ${htmlLog}
84
- </pre></code>`;
85
- button.style.top = '10px';
86
- button.style.left = '10px';
87
- button.style.position = 'absolute';
88
- button.style.zIndex = '9999';
89
- button.style.width = '100%';
90
- button.style.textAlign = 'left';
91
- document.body.appendChild(button);
92
- const errors = document.getElementsByClassName('luma-compiler-log-error');
93
- errors[0]?.scrollIntoView();
94
- // TODO - add a small embedded copy button (instead of main button)
95
- button.onclick = () => {
96
- // const source = this.source.replaceAll('\n', '<br />');
97
- const dataURI = `data:text/plain,${encodeURIComponent(this.source)}`;
98
- navigator.clipboard.writeText(dataURI);
86
+ container.style.top = '0';
87
+ container.style.left = '0';
88
+ container.style.background = 'white';
89
+ container.style.position = 'fixed';
90
+ container.style.zIndex = '9999';
91
+ container.style.maxWidth = '100vw';
92
+ container.style.maxHeight = '100vh';
93
+ container.style.overflowY = 'auto';
94
+ document.body.appendChild(container);
95
+ const error = container.querySelector('.luma-compiler-log-error');
96
+ error?.scrollIntoView();
97
+ container.querySelector('button#close').onclick = () => {
98
+ container.remove();
99
+ };
100
+ container.querySelector('button#copy').onclick = () => {
101
+ navigator.clipboard.writeText(this.source);
99
102
  };
100
- // TODO - add a small embedded close button
101
103
  }
102
104
  static defaultProps = {
103
105
  ...Resource.defaultProps,
@@ -118,6 +120,6 @@ function getShaderIdFromProps(props) {
118
120
  function getShaderName(shader, defaultName = 'unnamed') {
119
121
  const SHADER_NAME_REGEXP = /#define[\s*]SHADER_NAME[\s*]([A-Za-z0-9_-]+)[\s*]/;
120
122
  const match = SHADER_NAME_REGEXP.exec(shader);
121
- return match ? match[1] : defaultName;
123
+ return match?.[1] ?? defaultName;
122
124
  }
123
125
  //# sourceMappingURL=shader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shader.js","sourceRoot":"","sources":["../../../src/adapter/resources/shader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shader.js","sourceRoot":"","sources":["../../../src/adapter/resources/shader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { Device } from "../device.js";
2
+ import type { Shader } from "./shader.js";
3
+ import { Resource, type ResourceProps } from "./resource.js";
4
+ export type SharedRenderPipelineProps = ResourceProps & {
5
+ handle?: unknown;
6
+ vs: Shader;
7
+ fs: Shader;
8
+ varyings?: string[];
9
+ bufferMode?: number;
10
+ };
11
+ /**
12
+ * Internal base class for backend-specific shared render-pipeline implementations.
13
+ * Backends may use this to share expensive linked/program state across multiple
14
+ * `RenderPipeline` wrappers.
15
+ */
16
+ export declare abstract class SharedRenderPipeline extends Resource<SharedRenderPipelineProps> {
17
+ get [Symbol.toStringTag](): string;
18
+ abstract readonly device: Device;
19
+ abstract readonly handle: unknown;
20
+ constructor(device: Device, props: SharedRenderPipelineProps);
21
+ }
22
+ //# sourceMappingURL=shared-render-pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-render-pipeline.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/shared-render-pipeline.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAC,qBAAkB;AACtC,OAAO,KAAK,EAAC,MAAM,EAAC,oBAAiB;AACrC,OAAO,EAAC,QAAQ,EAAE,KAAK,aAAa,EAAC,sBAAmB;AAExD,MAAM,MAAM,yBAAyB,GAAG,aAAa,GAAG;IACtD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;;GAIG;AACH,8BAAsB,oBAAqB,SAAQ,QAAQ,CAAC,yBAAyB,CAAC;IACpF,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAE1C;IAED,kBAA2B,MAAM,EAAE,MAAM,CAAC;IAC1C,kBAA2B,MAAM,EAAE,OAAO,CAAC;gBAE/B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,yBAAyB;CAU7D"}
@@ -0,0 +1,25 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { Resource } from "./resource.js";
5
+ /**
6
+ * Internal base class for backend-specific shared render-pipeline implementations.
7
+ * Backends may use this to share expensive linked/program state across multiple
8
+ * `RenderPipeline` wrappers.
9
+ */
10
+ export class SharedRenderPipeline extends Resource {
11
+ get [Symbol.toStringTag]() {
12
+ return 'SharedRenderPipeline';
13
+ }
14
+ constructor(device, props) {
15
+ super(device, props, {
16
+ ...Resource.defaultProps,
17
+ handle: undefined,
18
+ vs: undefined,
19
+ fs: undefined,
20
+ varyings: undefined,
21
+ bufferMode: undefined
22
+ });
23
+ }
24
+ }
25
+ //# sourceMappingURL=shared-render-pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-render-pipeline.js","sourceRoot":"","sources":["../../../src/adapter/resources/shared-render-pipeline.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,QAAQ,EAAqB,sBAAmB;AAUxD;;;;GAIG;AACH,MAAM,OAAgB,oBAAqB,SAAQ,QAAmC;IACpF,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC;QAC/B,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAKD,YAAY,MAAc,EAAE,KAAgC;QAC1D,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE;YACnB,GAAG,QAAQ,CAAC,YAAY;YACxB,MAAM,EAAE,SAAU;YAClB,EAAE,EAAE,SAAU;YACd,EAAE,EAAE,SAAU;YACd,QAAQ,EAAE,SAAU;YACpB,UAAU,EAAE,SAAU;SACvB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,6 +1,6 @@
1
1
  import type { Device } from "../device.js";
2
2
  import type { Texture } from "./texture.js";
3
- import type { TextureFormat } from "../../shadertypes/textures/texture-formats.js";
3
+ import type { TextureFormat } from "../../shadertypes/texture-types/texture-formats.js";
4
4
  import { Resource, ResourceProps } from "./resource.js";
5
5
  /** Properties for initializing a texture view */
6
6
  export type TextureViewProps = ResourceProps & {
@@ -1 +1 @@
1
- {"version":3,"file":"texture-view.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/texture-view.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAC,qBAAkB;AACtC,OAAO,KAAK,EAAC,OAAO,EAAC,qBAAkB;AACvC,OAAO,KAAK,EAAC,aAAa,EAAC,sDAAmD;AAC9E,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,sBAAmB;AAEnD,iDAAiD;AACjD,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,wIAAwI;IACxI,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;IACpE,sFAAsF;IACtF,MAAM,CAAC,EAAE,KAAK,GAAG,cAAc,GAAG,YAAY,CAAC;IAC/C,uFAAuF;IACvF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8FAA8F;IAC9F,aAAa,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+FAA+F;IAC/F,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,mCAAmC;AACnC,8BAAsB,WAAY,SAAQ,QAAQ,CAAC,gBAAgB,CAAC;IAClE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAE1C;IAED,0EAA0E;gBAC9D,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG;QAAC,OAAO,EAAE,OAAO,CAAA;KAAC;IAIxE,OAAgB,YAAY,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAStD;CACH"}
1
+ {"version":3,"file":"texture-view.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/texture-view.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAC,qBAAkB;AACtC,OAAO,KAAK,EAAC,OAAO,EAAC,qBAAkB;AACvC,OAAO,KAAK,EAAC,aAAa,EAAC,2DAAwD;AACnF,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,sBAAmB;AAEnD,iDAAiD;AACjD,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,wIAAwI;IACxI,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;IACpE,sFAAsF;IACtF,MAAM,CAAC,EAAE,KAAK,GAAG,cAAc,GAAG,YAAY,CAAC;IAC/C,uFAAuF;IACvF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8FAA8F;IAC9F,aAAa,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+FAA+F;IAC/F,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,mCAAmC;AACnC,8BAAsB,WAAY,SAAQ,QAAQ,CAAC,gBAAgB,CAAC;IAClE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAE1C;IAED,0EAA0E;gBAC9D,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG;QAAC,OAAO,EAAE,OAAO,CAAA;KAAC;IAIxE,OAAgB,YAAY,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAStD;CACH"}