@luma.gl/webgpu 9.0.0-alpha.14 → 9.0.0-alpha.16

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 (179) hide show
  1. package/dist/adapter/helpers/accessor-to-format.js +100 -1
  2. package/dist/adapter/helpers/convert-texture-format.js +5 -6
  3. package/dist/adapter/helpers/generate-mipmaps.js +88 -92
  4. package/dist/adapter/helpers/get-bind-group.js +54 -48
  5. package/dist/adapter/helpers/get-vertex-buffer-layout.js +97 -84
  6. package/dist/adapter/helpers/webgpu-parameters.d.ts.map +1 -1
  7. package/dist/adapter/helpers/webgpu-parameters.js +181 -129
  8. package/dist/adapter/resources/webgpu-buffer.js +57 -73
  9. package/dist/adapter/resources/webgpu-command-encoder.d.ts.map +1 -1
  10. package/dist/adapter/resources/webgpu-command-encoder.js +47 -63
  11. package/dist/adapter/resources/webgpu-compute-pass.d.ts +1 -1
  12. package/dist/adapter/resources/webgpu-compute-pass.d.ts.map +1 -1
  13. package/dist/adapter/resources/webgpu-compute-pass.js +51 -55
  14. package/dist/adapter/resources/webgpu-compute-pipeline.d.ts.map +1 -1
  15. package/dist/adapter/resources/webgpu-compute-pipeline.js +22 -24
  16. package/dist/adapter/resources/webgpu-external-texture.js +26 -27
  17. package/dist/adapter/resources/webgpu-framebuffer.d.ts.map +1 -1
  18. package/dist/adapter/resources/webgpu-framebuffer.js +89 -103
  19. package/dist/adapter/resources/webgpu-query.js +42 -1
  20. package/dist/adapter/resources/webgpu-render-pass.d.ts +1 -1
  21. package/dist/adapter/resources/webgpu-render-pass.d.ts.map +1 -1
  22. package/dist/adapter/resources/webgpu-render-pass.js +64 -89
  23. package/dist/adapter/resources/webgpu-render-pipeline.d.ts.map +1 -1
  24. package/dist/adapter/resources/webgpu-render-pipeline.js +158 -154
  25. package/dist/adapter/resources/webgpu-sampler.d.ts +1 -1
  26. package/dist/adapter/resources/webgpu-sampler.d.ts.map +1 -1
  27. package/dist/adapter/resources/webgpu-sampler.js +16 -22
  28. package/dist/adapter/resources/webgpu-shader.d.ts +1 -1
  29. package/dist/adapter/resources/webgpu-shader.d.ts.map +1 -1
  30. package/dist/adapter/resources/webgpu-shader.js +47 -58
  31. package/dist/adapter/resources/webgpu-texture.d.ts +0 -1
  32. package/dist/adapter/resources/webgpu-texture.d.ts.map +1 -1
  33. package/dist/adapter/resources/webgpu-texture.js +100 -103
  34. package/dist/adapter/webgpu-canvas-context.d.ts.map +1 -1
  35. package/dist/adapter/webgpu-canvas-context.js +77 -90
  36. package/dist/adapter/webgpu-device.js +215 -242
  37. package/dist/adapter/webgpu-types.js +0 -2
  38. package/dist/bundle.js +1 -2
  39. package/dist/dist.js +8051 -0
  40. package/dist/dist.min.js +1 -0
  41. package/dist/es5/adapter/helpers/accessor-to-format.js +2 -0
  42. package/dist/es5/adapter/helpers/accessor-to-format.js.map +1 -0
  43. package/dist/es5/adapter/helpers/convert-texture-format.js +13 -0
  44. package/dist/es5/adapter/helpers/convert-texture-format.js.map +1 -0
  45. package/dist/es5/adapter/helpers/generate-mipmaps.js +103 -0
  46. package/dist/es5/adapter/helpers/generate-mipmaps.js.map +1 -0
  47. package/dist/es5/adapter/helpers/get-bind-group.js +66 -0
  48. package/dist/es5/adapter/helpers/get-bind-group.js.map +1 -0
  49. package/dist/es5/adapter/helpers/get-vertex-buffer-layout.js +149 -0
  50. package/dist/es5/adapter/helpers/get-vertex-buffer-layout.js.map +1 -0
  51. package/dist/es5/adapter/helpers/webgpu-parameters.js +150 -0
  52. package/dist/es5/adapter/helpers/webgpu-parameters.js.map +1 -0
  53. package/dist/es5/adapter/resources/webgpu-buffer.js +131 -0
  54. package/dist/es5/adapter/resources/webgpu-buffer.js.map +1 -0
  55. package/dist/es5/adapter/resources/webgpu-command-encoder.js +90 -0
  56. package/dist/es5/adapter/resources/webgpu-command-encoder.js.map +1 -0
  57. package/dist/es5/adapter/resources/webgpu-compute-pass.js +85 -0
  58. package/dist/es5/adapter/resources/webgpu-compute-pass.js.map +1 -0
  59. package/dist/es5/adapter/resources/webgpu-compute-pipeline.js +48 -0
  60. package/dist/es5/adapter/resources/webgpu-compute-pipeline.js.map +1 -0
  61. package/dist/es5/adapter/resources/webgpu-external-texture.js +50 -0
  62. package/dist/es5/adapter/resources/webgpu-external-texture.js.map +1 -0
  63. package/dist/es5/adapter/resources/webgpu-framebuffer.js +126 -0
  64. package/dist/es5/adapter/resources/webgpu-framebuffer.js.map +1 -0
  65. package/dist/es5/adapter/resources/webgpu-query.js +2 -0
  66. package/dist/es5/adapter/resources/webgpu-query.js.map +1 -0
  67. package/dist/es5/adapter/resources/webgpu-render-pass.js +124 -0
  68. package/dist/es5/adapter/resources/webgpu-render-pass.js.map +1 -0
  69. package/dist/es5/adapter/resources/webgpu-render-pipeline.js +185 -0
  70. package/dist/es5/adapter/resources/webgpu-render-pipeline.js.map +1 -0
  71. package/dist/es5/adapter/resources/webgpu-sampler.js +45 -0
  72. package/dist/es5/adapter/resources/webgpu-sampler.js.map +1 -0
  73. package/dist/es5/adapter/resources/webgpu-shader.js +125 -0
  74. package/dist/es5/adapter/resources/webgpu-shader.js.map +1 -0
  75. package/dist/es5/adapter/resources/webgpu-texture.js +138 -0
  76. package/dist/es5/adapter/resources/webgpu-texture.js.map +1 -0
  77. package/dist/es5/adapter/webgpu-canvas-context.js +111 -0
  78. package/dist/es5/adapter/webgpu-canvas-context.js.map +1 -0
  79. package/dist/es5/adapter/webgpu-device.js +317 -0
  80. package/dist/es5/adapter/webgpu-device.js.map +1 -0
  81. package/dist/es5/adapter/webgpu-types.js +2 -0
  82. package/dist/es5/adapter/webgpu-types.js.map +1 -0
  83. package/dist/es5/bundle.js +6 -0
  84. package/dist/es5/bundle.js.map +1 -0
  85. package/dist/es5/glsl/glsllang.js +47 -0
  86. package/dist/es5/glsl/glsllang.js.map +1 -0
  87. package/dist/es5/index.js +44 -0
  88. package/dist/es5/index.js.map +1 -0
  89. package/dist/es5/init.js +7 -0
  90. package/dist/es5/init.js.map +1 -0
  91. package/dist/esm/adapter/helpers/accessor-to-format.js +2 -0
  92. package/dist/esm/adapter/helpers/accessor-to-format.js.map +1 -0
  93. package/dist/esm/adapter/helpers/convert-texture-format.js +7 -0
  94. package/dist/esm/adapter/helpers/convert-texture-format.js.map +1 -0
  95. package/dist/esm/adapter/helpers/generate-mipmaps.js +88 -0
  96. package/dist/esm/adapter/helpers/generate-mipmaps.js.map +1 -0
  97. package/dist/esm/adapter/helpers/get-bind-group.js +51 -0
  98. package/dist/esm/adapter/helpers/get-bind-group.js.map +1 -0
  99. package/dist/esm/adapter/helpers/get-vertex-buffer-layout.js +83 -0
  100. package/dist/esm/adapter/helpers/get-vertex-buffer-layout.js.map +1 -0
  101. package/dist/esm/adapter/helpers/webgpu-parameters.js +137 -0
  102. package/dist/esm/adapter/helpers/webgpu-parameters.js.map +1 -0
  103. package/dist/esm/adapter/resources/webgpu-buffer.js +70 -0
  104. package/dist/esm/adapter/resources/webgpu-buffer.js.map +1 -0
  105. package/dist/esm/adapter/resources/webgpu-command-encoder.js +49 -0
  106. package/dist/esm/adapter/resources/webgpu-command-encoder.js.map +1 -0
  107. package/dist/esm/adapter/resources/webgpu-compute-pass.js +44 -0
  108. package/dist/esm/adapter/resources/webgpu-compute-pass.js.map +1 -0
  109. package/dist/esm/adapter/resources/webgpu-compute-pipeline.js +23 -0
  110. package/dist/esm/adapter/resources/webgpu-compute-pipeline.js.map +1 -0
  111. package/dist/esm/adapter/resources/webgpu-external-texture.js +23 -0
  112. package/dist/esm/adapter/resources/webgpu-external-texture.js.map +1 -0
  113. package/dist/esm/adapter/resources/webgpu-framebuffer.js +93 -0
  114. package/dist/esm/adapter/resources/webgpu-framebuffer.js.map +1 -0
  115. package/dist/esm/adapter/resources/webgpu-query.js +2 -0
  116. package/dist/esm/adapter/resources/webgpu-query.js.map +1 -0
  117. package/dist/esm/adapter/resources/webgpu-render-pass.js +79 -0
  118. package/dist/esm/adapter/resources/webgpu-render-pass.js.map +1 -0
  119. package/dist/esm/adapter/resources/webgpu-render-pipeline.js +130 -0
  120. package/dist/esm/adapter/resources/webgpu-render-pipeline.js.map +1 -0
  121. package/dist/esm/adapter/resources/webgpu-sampler.js +20 -0
  122. package/dist/esm/adapter/resources/webgpu-sampler.js.map +1 -0
  123. package/dist/esm/adapter/resources/webgpu-shader.js +50 -0
  124. package/dist/esm/adapter/resources/webgpu-shader.js.map +1 -0
  125. package/dist/esm/adapter/resources/webgpu-texture.js +95 -0
  126. package/dist/esm/adapter/resources/webgpu-texture.js.map +1 -0
  127. package/dist/esm/adapter/webgpu-canvas-context.js +74 -0
  128. package/dist/esm/adapter/webgpu-canvas-context.js.map +1 -0
  129. package/dist/esm/adapter/webgpu-device.js +196 -0
  130. package/dist/esm/adapter/webgpu-device.js.map +1 -0
  131. package/dist/esm/adapter/webgpu-types.js +2 -0
  132. package/dist/esm/adapter/webgpu-types.js.map +1 -0
  133. package/dist/esm/bundle.js +4 -0
  134. package/dist/esm/bundle.js.map +1 -0
  135. package/dist/esm/glsl/glsllang.js +9 -0
  136. package/dist/esm/glsl/glsllang.js.map +1 -0
  137. package/dist/esm/index.js +8 -0
  138. package/dist/esm/index.js.map +1 -0
  139. package/dist/esm/init.js +4 -0
  140. package/dist/esm/init.js.map +1 -0
  141. package/dist/glsl/glsllang.js +9 -7
  142. package/dist/index.js +8 -6
  143. package/dist/init.js +1 -2
  144. package/package.json +8 -8
  145. package/src/adapter/helpers/webgpu-parameters.ts +7 -2
  146. package/src/adapter/resources/webgpu-command-encoder.ts +2 -1
  147. package/src/adapter/resources/webgpu-compute-pass.ts +4 -4
  148. package/src/adapter/resources/webgpu-compute-pipeline.ts +2 -1
  149. package/src/adapter/resources/webgpu-framebuffer.ts +3 -2
  150. package/src/adapter/resources/webgpu-render-pass.ts +2 -2
  151. package/src/adapter/resources/webgpu-render-pipeline.ts +2 -1
  152. package/src/adapter/resources/webgpu-shader.ts +1 -1
  153. package/src/adapter/webgpu-canvas-context.ts +3 -2
  154. package/src/adapter/webgpu-device.ts +2 -2
  155. package/dist/adapter/helpers/accessor-to-format.js.map +0 -1
  156. package/dist/adapter/helpers/convert-texture-format.js.map +0 -1
  157. package/dist/adapter/helpers/generate-mipmaps.js.map +0 -1
  158. package/dist/adapter/helpers/get-bind-group.js.map +0 -1
  159. package/dist/adapter/helpers/get-vertex-buffer-layout.js.map +0 -1
  160. package/dist/adapter/helpers/webgpu-parameters.js.map +0 -1
  161. package/dist/adapter/resources/webgpu-buffer.js.map +0 -1
  162. package/dist/adapter/resources/webgpu-command-encoder.js.map +0 -1
  163. package/dist/adapter/resources/webgpu-compute-pass.js.map +0 -1
  164. package/dist/adapter/resources/webgpu-compute-pipeline.js.map +0 -1
  165. package/dist/adapter/resources/webgpu-external-texture.js.map +0 -1
  166. package/dist/adapter/resources/webgpu-framebuffer.js.map +0 -1
  167. package/dist/adapter/resources/webgpu-query.js.map +0 -1
  168. package/dist/adapter/resources/webgpu-render-pass.js.map +0 -1
  169. package/dist/adapter/resources/webgpu-render-pipeline.js.map +0 -1
  170. package/dist/adapter/resources/webgpu-sampler.js.map +0 -1
  171. package/dist/adapter/resources/webgpu-shader.js.map +0 -1
  172. package/dist/adapter/resources/webgpu-texture.js.map +0 -1
  173. package/dist/adapter/webgpu-canvas-context.js.map +0 -1
  174. package/dist/adapter/webgpu-device.js.map +0 -1
  175. package/dist/adapter/webgpu-types.js.map +0 -1
  176. package/dist/bundle.js.map +0 -1
  177. package/dist/glsl/glsllang.js.map +0 -1
  178. package/dist/index.js.map +0 -1
  179. package/dist/init.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-render-pipeline.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-render-pipeline.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAC,OAAO,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AACtD,OAAO,EAAC,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAA2B,MAAM,cAAc,CAAC;AASnG,OAAO,KAAK,YAAY,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,YAAY,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,gBAAgB,MAAM,sBAAsB,CAAC;AAIzD,2DAA2D;AAC3D,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,cAAc;IAC9D,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;IAE1B,EAAE,EAAE,YAAY,CAAC;IACjB,EAAE,EAAE,YAAY,GAAG,IAAI,CAAQ;IAE/B,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,YAAY,CAA6B;IAIjD,4CAA4C;IAC5C,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,UAAU,CAA6B;gBAEnC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB;IAc5D,SAAS,CAAC,YAAY,IAAI,iBAAiB;IASlC,OAAO,IAAI,IAAI;IAIxB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAIzC,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAmBvD,uBAAuB;IACvB,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAapD,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAMhD,WAAW;IAIX,iDAAiD;IACjD,aAAa;IAKb,8DAA8D;IAC9D,SAAS,CAAC,4BAA4B;IA8CtC,IAAI,CAAC,OAAO,EAAE;QACZ,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,IAAI;IAmCR,oBAAoB,CAAC,gBAAgB,EAAE,gBAAgB;CAwCxD"}
1
+ {"version":3,"file":"webgpu-render-pipeline.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-render-pipeline.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAC,OAAO,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AACtD,OAAO,EAAC,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAA2B,MAAM,cAAc,CAAC;AASnG,OAAO,KAAK,YAAY,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,YAAY,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,gBAAgB,MAAM,sBAAsB,CAAC;AAIzD,2DAA2D;AAC3D,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,cAAc;IAC9D,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;IAE1B,EAAE,EAAE,YAAY,CAAC;IACjB,EAAE,EAAE,YAAY,GAAG,IAAI,CAAQ;IAE/B,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,YAAY,CAA6B;IAIjD,4CAA4C;IAC5C,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,UAAU,CAA6B;gBAEnC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB;IAc5D,SAAS,CAAC,YAAY,IAAI,iBAAiB;IASlC,OAAO,IAAI,IAAI;IAIxB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAIzC,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAmBvD,uBAAuB;IACvB,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAapD,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAMhD,WAAW;IAIX,iDAAiD;IACjD,aAAa;IAKb,8DAA8D;IAC9D,SAAS,CAAC,4BAA4B;IA+CtC,IAAI,CAAC,OAAO,EAAE;QACZ,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,IAAI;IAmCR,oBAAoB,CAAC,gBAAgB,EAAE,gBAAgB;CAwCxD"}
@@ -1,166 +1,170 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
1
  import { RenderPipeline, cast, log, isObjectEmpty } from '@luma.gl/api';
3
- import { applyParametersToRenderPipelineDescriptor } from '../helpers/webgpu-parameters';
4
- import { getWebGPUTextureFormat } from '../helpers/convert-texture-format';
5
- import { getBindGroup } from '../helpers/get-bind-group';
6
- import { getVertexBufferLayout, getBufferSlots } from '../helpers/get-vertex-buffer-layout';
2
+ import { applyParametersToRenderPipelineDescriptor } from '../helpers/webgpu-parameters.js';
3
+ import { getWebGPUTextureFormat } from '../helpers/convert-texture-format.js';
4
+ import { getBindGroup } from '../helpers/get-bind-group.js';
5
+ import { getVertexBufferLayout, getBufferSlots } from '../helpers/get-vertex-buffer-layout.js';
6
+ // RENDER PIPELINE
7
+ /** Creates a new render pipeline when parameters change */
7
8
  export default class WebGPURenderPipeline extends RenderPipeline {
8
- constructor(device, props) {
9
- super(device, props);
10
-
11
- _defineProperty(this, "device", void 0);
12
-
13
- _defineProperty(this, "handle", void 0);
14
-
15
- _defineProperty(this, "vs", void 0);
16
-
17
- _defineProperty(this, "fs", null);
18
-
19
- _defineProperty(this, "_bufferSlots", void 0);
20
-
21
- _defineProperty(this, "_buffers", void 0);
22
-
23
- _defineProperty(this, "_indexBuffer", null);
24
-
25
- _defineProperty(this, "_bindGroupLayout", void 0);
26
-
27
- _defineProperty(this, "_bindGroup", null);
28
-
29
- this.device = device;
30
- this.handle = this.props.handle || this.createHandle();
31
- this.handle.label = this.props.id;
32
- this.vs = cast(props.vs);
33
- this.fs = cast(props.fs);
34
- this._bufferSlots = getBufferSlots(this.props.layout, this.props.bufferMap);
35
- this._buffers = new Array(Object.keys(this._bufferSlots).length).fill(null);
36
- this._bindGroupLayout = this.handle.getBindGroupLayout(0);
37
- }
38
-
39
- createHandle() {
40
- const descriptor = this._getRenderPipelineDescriptor();
41
-
42
- const renderPipeline = this.device.handle.createRenderPipeline(descriptor);
43
- log.groupCollapsed(1, "new WebGPRenderPipeline(".concat(this.id, ")"))();
44
- log.log(1, JSON.stringify(descriptor, null, 2))();
45
- log.groupEnd(1)();
46
- return renderPipeline;
47
- }
48
-
49
- destroy() {}
50
-
51
- setIndexBuffer(indexBuffer) {
52
- this._indexBuffer = cast(indexBuffer);
53
- }
54
-
55
- setAttributes(attributes) {
56
- for (const [name, buffer] of Object.entries(attributes)) {
57
- const bufferIndex = this._bufferSlots[name];
58
-
59
- if (bufferIndex >= 0) {
60
- this._buffers[bufferIndex] = buffer;
61
- } else {
62
- throw new Error("Setting attribute '".concat(name, "' not listed in shader layout for program ").concat(this.id));
63
- }
9
+ constructor(device, props) {
10
+ super(device, props);
11
+ this.fs = null;
12
+ this._indexBuffer = null;
13
+ this._bindGroup = null;
14
+ this.device = device;
15
+ this.handle = this.props.handle || this.createHandle();
16
+ this.handle.label = this.props.id;
17
+ this.vs = cast(props.vs);
18
+ this.fs = cast(props.fs);
19
+ this._bufferSlots = getBufferSlots(this.props.layout, this.props.bufferMap);
20
+ this._buffers = new Array(Object.keys(this._bufferSlots).length).fill(null);
21
+ this._bindGroupLayout = this.handle.getBindGroupLayout(0);
64
22
  }
65
- }
66
-
67
- setBindings(bindings) {
68
- if (!isObjectEmpty(this.props.bindings)) {
69
- Object.assign(this.props.bindings, bindings);
70
- this._bindGroup = getBindGroup(this.device.handle, this._bindGroupLayout, this.props.layout, this.props.bindings);
23
+ createHandle() {
24
+ const descriptor = this._getRenderPipelineDescriptor();
25
+ const renderPipeline = this.device.handle.createRenderPipeline(descriptor);
26
+ log.groupCollapsed(1, `new WebGPRenderPipeline(${this.id})`)();
27
+ log.log(1, JSON.stringify(descriptor, null, 2))();
28
+ log.groupEnd(1)();
29
+ return renderPipeline;
71
30
  }
72
- }
73
-
74
- setUniforms(uniforms) {
75
- if (!isObjectEmpty(uniforms)) {
76
- throw new Error('WebGPU does not support uniforms');
31
+ destroy() {
32
+ // WebGPURenderPipeline has no destroy method.
77
33
  }
78
- }
79
-
80
- _getBuffers() {
81
- return this._buffers;
82
- }
83
-
84
- _getBindGroup() {
85
- return this._bindGroup;
86
- }
87
-
88
- _getRenderPipelineDescriptor() {
89
- const vertex = {
90
- module: cast(this.props.vs).handle,
91
- entryPoint: this.props.vsEntryPoint || 'main',
92
- buffers: getVertexBufferLayout(this.props.layout, this.props.bufferMap)
93
- };
94
- let fragment;
95
-
96
- if (this.props.fs) {
97
- var _this$device, _this$device$canvasCo;
98
-
99
- fragment = {
100
- module: cast(this.props.fs).handle,
101
- entryPoint: this.props.fsEntryPoint || 'main',
102
- targets: [{
103
- format: getWebGPUTextureFormat((_this$device = this.device) === null || _this$device === void 0 ? void 0 : (_this$device$canvasCo = _this$device.canvasContext) === null || _this$device$canvasCo === void 0 ? void 0 : _this$device$canvasCo.format)
104
- }]
105
- };
34
+ setIndexBuffer(indexBuffer) {
35
+ this._indexBuffer = cast(indexBuffer);
106
36
  }
107
-
108
- switch (this.props.topology) {
109
- case 'triangle-fan':
110
- case 'line-loop':
111
- throw new Error("WebGPU does not support primitive topology ".concat(this.props.topology));
112
-
113
- default:
37
+ setAttributes(attributes) {
38
+ for (const [name, buffer] of Object.entries(attributes)) {
39
+ const bufferIndex = this._bufferSlots[name];
40
+ if (bufferIndex >= 0) {
41
+ this._buffers[bufferIndex] = buffer;
42
+ }
43
+ else {
44
+ throw new Error(`Setting attribute '${name}' not listed in shader layout for program ${this.id}`);
45
+ }
46
+ }
47
+ // for (let i = 0; i < this._bufferSlots.length; ++i) {
48
+ // const bufferName = this._bufferSlots[i];
49
+ // if (attributes[bufferName]) {
50
+ // this.handle
51
+ // }
52
+ // }
114
53
  }
115
-
116
- let descriptor = {
117
- vertex,
118
- fragment,
119
- primitive: {
120
- topology: this.props.topology
121
- }
122
- };
123
- applyParametersToRenderPipelineDescriptor(descriptor, this.props.parameters);
124
- return descriptor;
125
- }
126
-
127
- draw(options) {
128
- const webgpuRenderPass = cast(options.renderPass) || this.device.getDefaultRenderPass();
129
- webgpuRenderPass.handle.setPipeline(this.handle);
130
-
131
- const bindGroup = this._getBindGroup();
132
-
133
- if (bindGroup) {
134
- webgpuRenderPass.handle.setBindGroup(0, bindGroup);
54
+ /** Set the bindings */
55
+ setBindings(bindings) {
56
+ if (!isObjectEmpty(this.props.bindings)) {
57
+ Object.assign(this.props.bindings, bindings);
58
+ // Set up the bindings
59
+ this._bindGroup = getBindGroup(this.device.handle, this._bindGroupLayout, this.props.layout, this.props.bindings);
60
+ }
135
61
  }
136
-
137
- this._setAttributeBuffers(webgpuRenderPass);
138
-
139
- if (options.indexCount) {
140
- webgpuRenderPass.handle.drawIndexed(options.indexCount, options.instanceCount, options.firstIndex, options.baseVertex, options.firstInstance);
141
- } else {
142
- webgpuRenderPass.handle.draw(options.vertexCount || 0, options.instanceCount, options.firstIndex, options.firstInstance);
62
+ setUniforms(uniforms) {
63
+ if (!isObjectEmpty(uniforms)) {
64
+ throw new Error('WebGPU does not support uniforms');
65
+ }
143
66
  }
144
- }
145
-
146
- _setAttributeBuffers(webgpuRenderPass) {
147
- if (this._indexBuffer) {
148
- webgpuRenderPass.handle.setIndexBuffer(this._indexBuffer.handle, this._indexBuffer.props.indexType);
67
+ _getBuffers() {
68
+ return this._buffers;
149
69
  }
150
-
151
- const buffers = this._getBuffers();
152
-
153
- for (let i = 0; i < buffers.length; ++i) {
154
- const buffer = cast(buffers[i]);
155
-
156
- if (!buffer) {
157
- const attribute = this.props.layout.attributes.find(attribute => attribute.location === i);
158
- throw new Error("No buffer provided for attribute '".concat((attribute === null || attribute === void 0 ? void 0 : attribute.name) || '', "' in Model '").concat(this.props.id, "'"));
159
- }
160
-
161
- webgpuRenderPass.handle.setVertexBuffer(i, buffer.handle);
70
+ /** Return a bind group created by setBindings */
71
+ _getBindGroup() {
72
+ // assert(this._bindGroup);
73
+ return this._bindGroup;
74
+ }
75
+ /** Populate the complex WebGPU GPURenderPipelineDescriptor */
76
+ _getRenderPipelineDescriptor() {
77
+ // Set up the vertex stage
78
+ const vertex = {
79
+ module: cast(this.props.vs).handle,
80
+ entryPoint: this.props.vsEntryPoint || 'main',
81
+ buffers: getVertexBufferLayout(this.props.layout, this.props.bufferMap)
82
+ };
83
+ // Set up the fragment stage
84
+ let fragment;
85
+ if (this.props.fs) {
86
+ fragment = {
87
+ module: cast(this.props.fs).handle,
88
+ entryPoint: this.props.fsEntryPoint || 'main',
89
+ targets: [
90
+ {
91
+ // TODO exclamation mark hack!
92
+ format: getWebGPUTextureFormat(this.device?.canvasContext?.format)
93
+ }
94
+ ]
95
+ };
96
+ }
97
+ // WebGPU has more restrictive topology support than WebGL
98
+ switch (this.props.topology) {
99
+ case 'triangle-fan':
100
+ case 'line-loop':
101
+ throw new Error(`WebGPU does not support primitive topology ${this.props.topology}`);
102
+ default:
103
+ }
104
+ // Create a partially populated descriptor
105
+ let descriptor = {
106
+ vertex,
107
+ fragment,
108
+ primitive: {
109
+ topology: this.props.topology
110
+ },
111
+ layout: 'auto'
112
+ };
113
+ // Set parameters on the descriptor
114
+ applyParametersToRenderPipelineDescriptor(descriptor, this.props.parameters);
115
+ return descriptor;
116
+ }
117
+ draw(options) {
118
+ const webgpuRenderPass = cast(options.renderPass) || this.device.getDefaultRenderPass();
119
+ // Set pipeline
120
+ webgpuRenderPass.handle.setPipeline(this.handle);
121
+ // Set bindings (uniform buffers, textures etc)
122
+ const bindGroup = this._getBindGroup();
123
+ if (bindGroup) {
124
+ webgpuRenderPass.handle.setBindGroup(0, bindGroup);
125
+ }
126
+ // Set attributes
127
+ this._setAttributeBuffers(webgpuRenderPass);
128
+ // Draw
129
+ if (options.indexCount) {
130
+ webgpuRenderPass.handle.drawIndexed(options.indexCount, options.instanceCount, options.firstIndex, options.baseVertex, options.firstInstance);
131
+ }
132
+ else {
133
+ webgpuRenderPass.handle.draw(options.vertexCount || 0, options.instanceCount, options.firstIndex, options.firstInstance);
134
+ }
135
+ }
136
+ _setAttributeBuffers(webgpuRenderPass) {
137
+ if (this._indexBuffer) {
138
+ webgpuRenderPass.handle.setIndexBuffer(this._indexBuffer.handle, this._indexBuffer.props.indexType);
139
+ }
140
+ const buffers = this._getBuffers();
141
+ for (let i = 0; i < buffers.length; ++i) {
142
+ const buffer = cast(buffers[i]);
143
+ if (!buffer) {
144
+ const attribute = this.props.layout.attributes.find((attribute) => attribute.location === i);
145
+ throw new Error(`No buffer provided for attribute '${attribute?.name || ''}' in Model '${this.props.id}'`);
146
+ }
147
+ webgpuRenderPass.handle.setVertexBuffer(i, buffer.handle);
148
+ }
149
+ // TODO - HANDLE buffer maps
150
+ /*
151
+ for (const [bufferName, attributeMapping] of Object.entries(this.props.bufferMap)) {
152
+ const buffer = cast<WebGPUBuffer>(this.props.attributes[bufferName]);
153
+ if (!buffer) {
154
+ log.warn(`Missing buffer for buffer map ${bufferName}`)();
155
+ continue;
156
+ }
157
+
158
+ if ('location' in attributeMapping) {
159
+ // @ts-expect-error TODO model must not depend on webgpu
160
+ renderPass.handle.setVertexBuffer(layout.location, buffer.handle);
161
+ } else {
162
+ for (const [bufferName, mapping] of Object.entries(attributeMapping)) {
163
+ // @ts-expect-error TODO model must not depend on webgpu
164
+ renderPass.handle.setVertexBuffer(field.location, buffer.handle);
165
+ }
166
+ }
167
+ }
168
+ */
162
169
  }
163
- }
164
-
165
170
  }
166
- //# sourceMappingURL=webgpu-render-pipeline.js.map
@@ -1,7 +1,7 @@
1
1
  /// <reference types="@webgpu/types" />
2
2
  import { Sampler, SamplerProps } from '@luma.gl/api';
3
3
  import type WebGPUDevice from '../webgpu-device';
4
- export declare type WebGPUSamplerProps = SamplerProps & {
4
+ export type WebGPUSamplerProps = SamplerProps & {
5
5
  handle?: GPUSampler;
6
6
  };
7
7
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-sampler.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-sampler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,OAAO,EAAE,YAAY,EAAC,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,YAAY,MAAM,kBAAkB,CAAC;AAEjD,oBAAY,kBAAkB,GAAG,YAAY,GAAG;IAC9C,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAChD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;gBAEhB,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,kBAAkB;IAclD,OAAO,IAAI,IAAI;CAGzB"}
1
+ {"version":3,"file":"webgpu-sampler.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-sampler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,OAAO,EAAE,YAAY,EAAC,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,YAAY,MAAM,kBAAkB,CAAC;AAEjD,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG;IAC9C,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAChD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;gBAEhB,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,kBAAkB;IAclD,OAAO,IAAI,IAAI;CAGzB"}
@@ -1,26 +1,20 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
1
  import { Sampler } from '@luma.gl/api';
2
+ /**
3
+ *
4
+ */
3
5
  export default class WebGPUSampler extends Sampler {
4
- constructor(device, props) {
5
- super(device, props);
6
-
7
- _defineProperty(this, "device", void 0);
8
-
9
- _defineProperty(this, "handle", void 0);
10
-
11
- this.device = device;
12
- const samplerProps = { ...this.props
13
- };
14
-
15
- if (samplerProps.type !== 'comparison-sampler') {
16
- delete samplerProps.compare;
6
+ constructor(device, props) {
7
+ super(device, props);
8
+ this.device = device;
9
+ // Prepare sampler props
10
+ const samplerProps = { ...this.props };
11
+ if (samplerProps.type !== 'comparison-sampler') {
12
+ delete samplerProps.compare;
13
+ }
14
+ this.handle = this.handle || this.device.handle.createSampler(samplerProps);
15
+ this.handle.label = this.props.id;
16
+ }
17
+ destroy() {
18
+ // this.handle.destroy();
17
19
  }
18
-
19
- this.handle = this.handle || this.device.handle.createSampler(samplerProps);
20
- this.handle.label = this.props.id;
21
- }
22
-
23
- destroy() {}
24
-
25
20
  }
26
- //# sourceMappingURL=webgpu-sampler.js.map
@@ -2,7 +2,7 @@
2
2
  import type { ShaderProps, CompilerMessage } from '@luma.gl/api';
3
3
  import { Shader } from '@luma.gl/api';
4
4
  import type WebGPUDevice from '../webgpu-device';
5
- export declare type WebGPUShaderProps = ShaderProps & {
5
+ export type WebGPUShaderProps = ShaderProps & {
6
6
  handle?: GPUShaderModule;
7
7
  };
8
8
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-shader.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-shader.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAC,WAAW,EAAE,eAAe,EAAC,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAC,MAAM,EAAM,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,YAAY,MAAM,kBAAkB,CAAC;AAEjD,oBAAY,iBAAiB,GAAG,WAAW,GAAG;IAC5C,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,MAAM;IAC9C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;gBAErB,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,iBAAiB;IAYpD,sBAAsB,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAWxE,OAAO,IAAI,IAAI;IAIxB,SAAS,CAAC,YAAY,IAAI,eAAe;IAwBzC,+CAA+C;IACzC,eAAe,IAAI,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC;CAI7D"}
1
+ {"version":3,"file":"webgpu-shader.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-shader.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAC,WAAW,EAAE,eAAe,EAAC,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAC,MAAM,EAAM,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,YAAY,MAAM,kBAAkB,CAAC;AAEjD,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG;IAC5C,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,MAAM;IAC9C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;gBAErB,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,iBAAiB;IAYpD,sBAAsB,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAWxE,OAAO,IAAI,IAAI;IAIxB,SAAS,CAAC,YAAY,IAAI,eAAe;IAwBzC,+CAA+C;IACzC,eAAe,IAAI,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC;CAI7D"}
@@ -1,64 +1,53 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
1
  import { Shader, log } from '@luma.gl/api';
2
+ /**
3
+ * Immutable shader
4
+ */
3
5
  export default class WebGPUShader extends Shader {
4
- constructor(device, props) {
5
- super(device, props);
6
-
7
- _defineProperty(this, "device", void 0);
8
-
9
- _defineProperty(this, "handle", void 0);
10
-
11
- this.device = device;
12
- this.device.handle.pushErrorScope('validation');
13
- this.handle = this.props.handle || this.createHandle();
14
- this.handle.label = this.props.id;
15
-
16
- this._checkCompilationError(this.device.handle.popErrorScope());
17
- }
18
-
19
- async _checkCompilationError(errorScope) {
20
- const error = await errorScope;
21
-
22
- if (error) {
23
- const shaderLog = await this.compilationInfo();
24
- log.error("Shader compilation error: ".concat(error.message), shaderLog)();
25
- throw new Error("Shader compilation error: ".concat(error.message));
6
+ constructor(device, props) {
7
+ super(device, props);
8
+ this.device = device;
9
+ this.device.handle.pushErrorScope('validation');
10
+ this.handle = this.props.handle || this.createHandle();
11
+ this.handle.label = this.props.id;
12
+ this._checkCompilationError(this.device.handle.popErrorScope());
26
13
  }
27
- }
28
-
29
- destroy() {}
30
-
31
- createHandle() {
32
- const {
33
- source
34
- } = this.props;
35
- let language = this.props.language;
36
-
37
- if (!language) {
38
- language = source.includes('->') ? 'wgsl' : 'glsl';
14
+ async _checkCompilationError(errorScope) {
15
+ const error = await errorScope;
16
+ if (error) {
17
+ const shaderLog = await this.compilationInfo();
18
+ log.error(`Shader compilation error: ${error.message}`, shaderLog)();
19
+ // Note: Even though this error is asynchronous and thrown after the constructor completes,
20
+ // it will result in a useful stack trace leading back to the constructor
21
+ throw new Error(`Shader compilation error: ${error.message}`);
22
+ }
39
23
  }
40
-
41
- switch (language) {
42
- case 'wgsl':
43
- return this.device.handle.createShaderModule({
44
- code: source
45
- });
46
-
47
- case 'glsl':
48
- return this.device.handle.createShaderModule({
49
- code: source,
50
- transform: glsl => this.device.glslang.compileGLSL(glsl, type)
51
- });
52
-
53
- default:
54
- throw new Error(language);
24
+ destroy() {
25
+ // this.handle.destroy();
26
+ }
27
+ createHandle() {
28
+ const { source } = this.props;
29
+ let language = this.props.language;
30
+ // Compile from src
31
+ if (!language) {
32
+ // wgsl uses C++ "auto" style arrow notation
33
+ language = source.includes('->') ? 'wgsl' : 'glsl';
34
+ }
35
+ switch (language) {
36
+ case 'wgsl':
37
+ return this.device.handle.createShaderModule({ code: source });
38
+ case 'glsl':
39
+ return this.device.handle.createShaderModule({
40
+ code: source,
41
+ // @ts-expect-error
42
+ transform: (glsl) => this.device.glslang.compileGLSL(glsl, type)
43
+ });
44
+ default:
45
+ throw new Error(language);
46
+ }
47
+ }
48
+ /** Returns compilation info for this shader */
49
+ async compilationInfo() {
50
+ const compilationInfo = await this.handle.getCompilationInfo();
51
+ return compilationInfo.messages;
55
52
  }
56
- }
57
-
58
- async compilationInfo() {
59
- const compilationInfo = await this.handle.compilationInfo();
60
- return compilationInfo.messages;
61
- }
62
-
63
53
  }
64
- //# sourceMappingURL=webgpu-shader.js.map
@@ -1,5 +1,4 @@
1
1
  /// <reference types="@webgpu/types" />
2
- /// <reference types="offscreencanvas" />
3
2
  import { Texture, TextureProps, Sampler, SamplerProps } from '@luma.gl/api';
4
3
  import type WebGPUDevice from '../webgpu-device';
5
4
  import WebGPUSampler from './webgpu-sampler';
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-texture.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-texture.ts"],"names":[],"mappings":";;AACA,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAC,MAAM,cAAc,CAAC;AAE1E,OAAO,KAAK,YAAY,MAAM,kBAAkB,CAAC;AACjD,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAW7C,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAChD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,OAAO,EAAE,aAAa,CAAC;gBASX,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY;IA+BrD,SAAS,CAAC,YAAY,IAAI,UAAU;IAyB3B,OAAO,IAAI,IAAI;IAIxB;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI;IAKjD,OAAO,CAAC,OAAO,EAAE;QACf,IAAI,EAAE,GAAG,CAAC;KACX;IAID,gBAAgB;IAChB,QAAQ,CAAC,OAAO,EAAE;QAChB,MAAM,EAAE,WAAW,GAAG,iBAAiB,GAAG,eAAe,CAAC;QAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,MAAM,CAAC,EAAE,KAAK,GAAG,cAAc,GAAG,YAAY,CAAC;QAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,GAAG,IAAI;CA6HT"}
1
+ {"version":3,"file":"webgpu-texture.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-texture.ts"],"names":[],"mappings":";AACA,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAC,MAAM,cAAc,CAAC;AAE1E,OAAO,KAAK,YAAY,MAAM,kBAAkB,CAAC;AACjD,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAW7C,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAChD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,OAAO,EAAE,aAAa,CAAC;gBASX,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY;IA+BrD,SAAS,CAAC,YAAY,IAAI,UAAU;IAyB3B,OAAO,IAAI,IAAI;IAIxB;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI;IAKjD,OAAO,CAAC,OAAO,EAAE;QACf,IAAI,EAAE,GAAG,CAAC;KACX;IAID,gBAAgB;IAChB,QAAQ,CAAC,OAAO,EAAE;QAChB,MAAM,EAAE,WAAW,GAAG,iBAAiB,GAAG,eAAe,CAAC;QAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,MAAM,CAAC,EAAE,KAAK,GAAG,cAAc,GAAG,YAAY,CAAC;QAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,GAAG,IAAI;CA6HT"}