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

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 (213) hide show
  1. package/dist/adapter/helpers/accessor-to-format.js +1 -100
  2. package/dist/adapter/helpers/accessor-to-format.js.map +1 -0
  3. package/dist/adapter/helpers/convert-texture-format.d.ts +1 -1
  4. package/dist/adapter/helpers/convert-texture-format.js +5 -5
  5. package/dist/adapter/helpers/convert-texture-format.js.map +1 -0
  6. package/dist/adapter/helpers/generate-mipmaps.d.ts +1 -1
  7. package/dist/adapter/helpers/generate-mipmaps.js +85 -88
  8. package/dist/adapter/helpers/generate-mipmaps.js.map +1 -0
  9. package/dist/adapter/helpers/get-bind-group.d.ts +1 -1
  10. package/dist/adapter/helpers/get-bind-group.d.ts.map +1 -1
  11. package/dist/adapter/helpers/get-bind-group.js +39 -54
  12. package/dist/adapter/helpers/get-bind-group.js.map +1 -0
  13. package/dist/adapter/helpers/get-vertex-buffer-layout.d.ts +1 -1
  14. package/dist/adapter/helpers/get-vertex-buffer-layout.js +72 -97
  15. package/dist/adapter/helpers/get-vertex-buffer-layout.js.map +1 -0
  16. package/dist/adapter/helpers/webgpu-parameters.d.ts +1 -1
  17. package/dist/adapter/helpers/webgpu-parameters.js +125 -182
  18. package/dist/adapter/helpers/webgpu-parameters.js.map +1 -0
  19. package/dist/adapter/resources/webgpu-buffer.d.ts +2 -2
  20. package/dist/adapter/resources/webgpu-buffer.d.ts.map +1 -1
  21. package/dist/adapter/resources/webgpu-buffer.js +63 -57
  22. package/dist/adapter/resources/webgpu-buffer.js.map +1 -0
  23. package/dist/adapter/resources/webgpu-command-encoder.d.ts +2 -2
  24. package/dist/adapter/resources/webgpu-command-encoder.d.ts.map +1 -1
  25. package/dist/adapter/resources/webgpu-command-encoder.js +46 -47
  26. package/dist/adapter/resources/webgpu-command-encoder.js.map +1 -0
  27. package/dist/adapter/resources/webgpu-compute-pass.d.ts +2 -2
  28. package/dist/adapter/resources/webgpu-compute-pass.d.ts.map +1 -1
  29. package/dist/adapter/resources/webgpu-compute-pass.js +41 -51
  30. package/dist/adapter/resources/webgpu-compute-pass.js.map +1 -0
  31. package/dist/adapter/resources/webgpu-compute-pipeline.d.ts +2 -2
  32. package/dist/adapter/resources/webgpu-compute-pipeline.d.ts.map +1 -1
  33. package/dist/adapter/resources/webgpu-compute-pipeline.js +20 -22
  34. package/dist/adapter/resources/webgpu-compute-pipeline.js.map +1 -0
  35. package/dist/adapter/resources/webgpu-external-texture.d.ts +2 -2
  36. package/dist/adapter/resources/webgpu-external-texture.d.ts.map +1 -1
  37. package/dist/adapter/resources/webgpu-external-texture.js +20 -26
  38. package/dist/adapter/resources/webgpu-external-texture.js.map +1 -0
  39. package/dist/adapter/resources/webgpu-framebuffer.d.ts +2 -2
  40. package/dist/adapter/resources/webgpu-framebuffer.d.ts.map +1 -1
  41. package/dist/adapter/resources/webgpu-framebuffer.js +86 -89
  42. package/dist/adapter/resources/webgpu-framebuffer.js.map +1 -0
  43. package/dist/adapter/resources/webgpu-query.js +1 -42
  44. package/dist/adapter/resources/webgpu-query.js.map +1 -0
  45. package/dist/adapter/resources/webgpu-render-pass.d.ts +2 -2
  46. package/dist/adapter/resources/webgpu-render-pass.d.ts.map +1 -1
  47. package/dist/adapter/resources/webgpu-render-pass.js +70 -64
  48. package/dist/adapter/resources/webgpu-render-pass.js.map +1 -0
  49. package/dist/adapter/resources/webgpu-render-pipeline.d.ts +2 -2
  50. package/dist/adapter/resources/webgpu-render-pipeline.d.ts.map +1 -1
  51. package/dist/adapter/resources/webgpu-render-pipeline.js +118 -158
  52. package/dist/adapter/resources/webgpu-render-pipeline.js.map +1 -0
  53. package/dist/adapter/resources/webgpu-sampler.d.ts +3 -3
  54. package/dist/adapter/resources/webgpu-sampler.d.ts.map +1 -1
  55. package/dist/adapter/resources/webgpu-sampler.js +16 -16
  56. package/dist/adapter/resources/webgpu-sampler.js.map +1 -0
  57. package/dist/adapter/resources/webgpu-shader.d.ts +3 -3
  58. package/dist/adapter/resources/webgpu-shader.d.ts.map +1 -1
  59. package/dist/adapter/resources/webgpu-shader.js +44 -47
  60. package/dist/adapter/resources/webgpu-shader.js.map +1 -0
  61. package/dist/adapter/resources/webgpu-texture.d.ts +3 -2
  62. package/dist/adapter/resources/webgpu-texture.d.ts.map +1 -1
  63. package/dist/adapter/resources/webgpu-texture.js +87 -100
  64. package/dist/adapter/resources/webgpu-texture.js.map +1 -0
  65. package/dist/adapter/webgpu-canvas-context.d.ts +2 -2
  66. package/dist/adapter/webgpu-canvas-context.d.ts.map +1 -1
  67. package/dist/adapter/webgpu-canvas-context.js +68 -77
  68. package/dist/adapter/webgpu-canvas-context.js.map +1 -0
  69. package/dist/adapter/webgpu-device.d.ts +2 -2
  70. package/dist/adapter/webgpu-device.d.ts.map +1 -1
  71. package/dist/adapter/webgpu-device.js +194 -215
  72. package/dist/adapter/webgpu-device.js.map +1 -0
  73. package/dist/adapter/webgpu-types.js +2 -0
  74. package/dist/adapter/webgpu-types.js.map +1 -0
  75. package/dist/dist.dev.js +3061 -0
  76. package/dist/glsl/glsllang.js +6 -9
  77. package/dist/glsl/glsllang.js.map +1 -0
  78. package/dist/index.cjs +1442 -0
  79. package/dist/index.d.ts +1 -3
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +6 -10
  82. package/dist/index.js.map +1 -0
  83. package/dist.min.js +17 -0
  84. package/package.json +17 -8
  85. package/src/adapter/helpers/generate-mipmaps.ts +1 -1
  86. package/src/adapter/helpers/get-bind-group.ts +1 -1
  87. package/src/adapter/helpers/get-vertex-buffer-layout.ts +2 -2
  88. package/src/adapter/helpers/webgpu-parameters.ts +9 -9
  89. package/src/adapter/resources/webgpu-buffer.ts +1 -1
  90. package/src/adapter/resources/webgpu-command-encoder.ts +4 -4
  91. package/src/adapter/resources/webgpu-compute-pass.ts +1 -1
  92. package/src/adapter/resources/webgpu-compute-pipeline.ts +1 -1
  93. package/src/adapter/resources/webgpu-external-texture.ts +1 -1
  94. package/src/adapter/resources/webgpu-framebuffer.ts +6 -6
  95. package/src/adapter/resources/webgpu-query.ts +1 -1
  96. package/src/adapter/resources/webgpu-render-pass.ts +1 -1
  97. package/src/adapter/resources/webgpu-render-pipeline.ts +3 -3
  98. package/src/adapter/resources/webgpu-sampler.ts +1 -1
  99. package/src/adapter/resources/webgpu-shader.ts +3 -1
  100. package/src/adapter/resources/webgpu-texture.ts +1 -1
  101. package/src/adapter/webgpu-canvas-context.ts +1 -1
  102. package/src/adapter/webgpu-device.ts +3 -2
  103. package/src/index.ts +2 -5
  104. package/dist/bundle.d.ts +0 -2
  105. package/dist/bundle.d.ts.map +0 -1
  106. package/dist/bundle.js +0 -4
  107. package/dist/dist.js +0 -8051
  108. package/dist/dist.min.js +0 -1
  109. package/dist/es5/adapter/helpers/accessor-to-format.js +0 -2
  110. package/dist/es5/adapter/helpers/accessor-to-format.js.map +0 -1
  111. package/dist/es5/adapter/helpers/convert-texture-format.js +0 -13
  112. package/dist/es5/adapter/helpers/convert-texture-format.js.map +0 -1
  113. package/dist/es5/adapter/helpers/generate-mipmaps.js +0 -103
  114. package/dist/es5/adapter/helpers/generate-mipmaps.js.map +0 -1
  115. package/dist/es5/adapter/helpers/get-bind-group.js +0 -66
  116. package/dist/es5/adapter/helpers/get-bind-group.js.map +0 -1
  117. package/dist/es5/adapter/helpers/get-vertex-buffer-layout.js +0 -149
  118. package/dist/es5/adapter/helpers/get-vertex-buffer-layout.js.map +0 -1
  119. package/dist/es5/adapter/helpers/webgpu-parameters.js +0 -150
  120. package/dist/es5/adapter/helpers/webgpu-parameters.js.map +0 -1
  121. package/dist/es5/adapter/resources/webgpu-buffer.js +0 -131
  122. package/dist/es5/adapter/resources/webgpu-buffer.js.map +0 -1
  123. package/dist/es5/adapter/resources/webgpu-command-encoder.js +0 -90
  124. package/dist/es5/adapter/resources/webgpu-command-encoder.js.map +0 -1
  125. package/dist/es5/adapter/resources/webgpu-compute-pass.js +0 -85
  126. package/dist/es5/adapter/resources/webgpu-compute-pass.js.map +0 -1
  127. package/dist/es5/adapter/resources/webgpu-compute-pipeline.js +0 -48
  128. package/dist/es5/adapter/resources/webgpu-compute-pipeline.js.map +0 -1
  129. package/dist/es5/adapter/resources/webgpu-external-texture.js +0 -50
  130. package/dist/es5/adapter/resources/webgpu-external-texture.js.map +0 -1
  131. package/dist/es5/adapter/resources/webgpu-framebuffer.js +0 -126
  132. package/dist/es5/adapter/resources/webgpu-framebuffer.js.map +0 -1
  133. package/dist/es5/adapter/resources/webgpu-query.js +0 -2
  134. package/dist/es5/adapter/resources/webgpu-query.js.map +0 -1
  135. package/dist/es5/adapter/resources/webgpu-render-pass.js +0 -124
  136. package/dist/es5/adapter/resources/webgpu-render-pass.js.map +0 -1
  137. package/dist/es5/adapter/resources/webgpu-render-pipeline.js +0 -185
  138. package/dist/es5/adapter/resources/webgpu-render-pipeline.js.map +0 -1
  139. package/dist/es5/adapter/resources/webgpu-sampler.js +0 -45
  140. package/dist/es5/adapter/resources/webgpu-sampler.js.map +0 -1
  141. package/dist/es5/adapter/resources/webgpu-shader.js +0 -125
  142. package/dist/es5/adapter/resources/webgpu-shader.js.map +0 -1
  143. package/dist/es5/adapter/resources/webgpu-texture.js +0 -138
  144. package/dist/es5/adapter/resources/webgpu-texture.js.map +0 -1
  145. package/dist/es5/adapter/webgpu-canvas-context.js +0 -111
  146. package/dist/es5/adapter/webgpu-canvas-context.js.map +0 -1
  147. package/dist/es5/adapter/webgpu-device.js +0 -317
  148. package/dist/es5/adapter/webgpu-device.js.map +0 -1
  149. package/dist/es5/adapter/webgpu-types.js +0 -2
  150. package/dist/es5/adapter/webgpu-types.js.map +0 -1
  151. package/dist/es5/bundle.js +0 -6
  152. package/dist/es5/bundle.js.map +0 -1
  153. package/dist/es5/glsl/glsllang.js +0 -47
  154. package/dist/es5/glsl/glsllang.js.map +0 -1
  155. package/dist/es5/index.js +0 -44
  156. package/dist/es5/index.js.map +0 -1
  157. package/dist/es5/init.js +0 -7
  158. package/dist/es5/init.js.map +0 -1
  159. package/dist/esm/adapter/helpers/accessor-to-format.js +0 -2
  160. package/dist/esm/adapter/helpers/accessor-to-format.js.map +0 -1
  161. package/dist/esm/adapter/helpers/convert-texture-format.js +0 -7
  162. package/dist/esm/adapter/helpers/convert-texture-format.js.map +0 -1
  163. package/dist/esm/adapter/helpers/generate-mipmaps.js +0 -88
  164. package/dist/esm/adapter/helpers/generate-mipmaps.js.map +0 -1
  165. package/dist/esm/adapter/helpers/get-bind-group.js +0 -51
  166. package/dist/esm/adapter/helpers/get-bind-group.js.map +0 -1
  167. package/dist/esm/adapter/helpers/get-vertex-buffer-layout.js +0 -83
  168. package/dist/esm/adapter/helpers/get-vertex-buffer-layout.js.map +0 -1
  169. package/dist/esm/adapter/helpers/webgpu-parameters.js +0 -137
  170. package/dist/esm/adapter/helpers/webgpu-parameters.js.map +0 -1
  171. package/dist/esm/adapter/resources/webgpu-buffer.js +0 -70
  172. package/dist/esm/adapter/resources/webgpu-buffer.js.map +0 -1
  173. package/dist/esm/adapter/resources/webgpu-command-encoder.js +0 -49
  174. package/dist/esm/adapter/resources/webgpu-command-encoder.js.map +0 -1
  175. package/dist/esm/adapter/resources/webgpu-compute-pass.js +0 -44
  176. package/dist/esm/adapter/resources/webgpu-compute-pass.js.map +0 -1
  177. package/dist/esm/adapter/resources/webgpu-compute-pipeline.js +0 -23
  178. package/dist/esm/adapter/resources/webgpu-compute-pipeline.js.map +0 -1
  179. package/dist/esm/adapter/resources/webgpu-external-texture.js +0 -23
  180. package/dist/esm/adapter/resources/webgpu-external-texture.js.map +0 -1
  181. package/dist/esm/adapter/resources/webgpu-framebuffer.js +0 -93
  182. package/dist/esm/adapter/resources/webgpu-framebuffer.js.map +0 -1
  183. package/dist/esm/adapter/resources/webgpu-query.js +0 -2
  184. package/dist/esm/adapter/resources/webgpu-query.js.map +0 -1
  185. package/dist/esm/adapter/resources/webgpu-render-pass.js +0 -79
  186. package/dist/esm/adapter/resources/webgpu-render-pass.js.map +0 -1
  187. package/dist/esm/adapter/resources/webgpu-render-pipeline.js +0 -130
  188. package/dist/esm/adapter/resources/webgpu-render-pipeline.js.map +0 -1
  189. package/dist/esm/adapter/resources/webgpu-sampler.js +0 -20
  190. package/dist/esm/adapter/resources/webgpu-sampler.js.map +0 -1
  191. package/dist/esm/adapter/resources/webgpu-shader.js +0 -50
  192. package/dist/esm/adapter/resources/webgpu-shader.js.map +0 -1
  193. package/dist/esm/adapter/resources/webgpu-texture.js +0 -95
  194. package/dist/esm/adapter/resources/webgpu-texture.js.map +0 -1
  195. package/dist/esm/adapter/webgpu-canvas-context.js +0 -74
  196. package/dist/esm/adapter/webgpu-canvas-context.js.map +0 -1
  197. package/dist/esm/adapter/webgpu-device.js +0 -196
  198. package/dist/esm/adapter/webgpu-device.js.map +0 -1
  199. package/dist/esm/adapter/webgpu-types.js +0 -2
  200. package/dist/esm/adapter/webgpu-types.js.map +0 -1
  201. package/dist/esm/bundle.js +0 -4
  202. package/dist/esm/bundle.js.map +0 -1
  203. package/dist/esm/glsl/glsllang.js +0 -9
  204. package/dist/esm/glsl/glsllang.js.map +0 -1
  205. package/dist/esm/index.js +0 -8
  206. package/dist/esm/index.js.map +0 -1
  207. package/dist/esm/init.js +0 -4
  208. package/dist/esm/init.js.map +0 -1
  209. package/dist/init.d.ts +0 -2
  210. package/dist/init.d.ts.map +0 -1
  211. package/dist/init.js +0 -3
  212. package/src/bundle.ts +0 -4
  213. package/src/init.ts +0 -4
@@ -1,196 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { Device, CanvasContext, log, uid } from '@luma.gl/api';
3
- import WebGPUBuffer from './resources/webgpu-buffer';
4
- import WebGPUTexture from './resources/webgpu-texture';
5
- import WebGPUExternalTexture from './resources/webgpu-external-texture';
6
- import WebGPUSampler from './resources/webgpu-sampler';
7
- import WebGPUShader from './resources/webgpu-shader';
8
- import WebGPURenderPipeline from './resources/webgpu-render-pipeline';
9
- import WebGPUComputePipeline from './resources/webgpu-compute-pipeline';
10
- import WebGPURenderPass from './resources/webgpu-render-pass';
11
- import WebGPUComputePass from './resources/webgpu-compute-pass';
12
- import WebGPUCanvasContext from './webgpu-canvas-context';
13
- export default class WebGPUDevice extends Device {
14
- static isSupported() {
15
- return Boolean(typeof navigator !== 'undefined' && navigator.gpu);
16
- }
17
- static async create(props) {
18
- if (!navigator.gpu) {
19
- throw new Error('WebGPU not available. Open in Chrome Canary and turn on chrome://flags/#enable-unsafe-webgpu');
20
- }
21
- log.groupCollapsed(1, 'WebGPUDevice created')();
22
- const adapter = await navigator.gpu.requestAdapter({
23
- powerPreference: 'high-performance'
24
- });
25
- if (!adapter) {
26
- throw new Error('Failed to request WebGPU adapter');
27
- }
28
- log.probe(1, 'Adapter available')();
29
- const gpuDevice = await adapter.requestDevice({
30
- requiredFeatures: adapter.features
31
- });
32
- log.probe(1, 'GPUDevice available')();
33
- if (typeof props.canvas === 'string') {
34
- await CanvasContext.pageLoaded;
35
- log.probe(1, 'DOM is loaded')();
36
- }
37
- const device = new WebGPUDevice(gpuDevice, adapter, props);
38
- log.probe(1, 'Device created', device.info)();
39
- log.table(1, device.info)();
40
- log.groupEnd(1)();
41
- return device;
42
- }
43
- constructor(device, adapter, props) {
44
- super({
45
- ...props,
46
- id: props.id || uid('webgpu-device')
47
- });
48
- _defineProperty(this, "handle", void 0);
49
- _defineProperty(this, "adapter", void 0);
50
- _defineProperty(this, "lost", void 0);
51
- _defineProperty(this, "canvasContext", null);
52
- _defineProperty(this, "commandEncoder", null);
53
- _defineProperty(this, "renderPass", null);
54
- _defineProperty(this, "_info", void 0);
55
- _defineProperty(this, "_isLost", false);
56
- _defineProperty(this, "features", void 0);
57
- this.handle = device;
58
- this.adapter = adapter;
59
- this._info = {
60
- type: 'webgpu',
61
- vendor: this.adapter.__brand,
62
- renderer: '',
63
- version: '',
64
- gpu: 'unknown',
65
- shadingLanguages: ['glsl', 'wgsl'],
66
- shadingLanguageVersions: {
67
- glsl: '450',
68
- wgsl: '100'
69
- },
70
- vendorMasked: '',
71
- rendererMasked: ''
72
- };
73
- this.lost = new Promise(async resolve => {
74
- const lostInfo = await this.handle.lost;
75
- this._isLost = true;
76
- resolve({
77
- reason: 'destroyed',
78
- message: lostInfo.message
79
- });
80
- });
81
- if (props.canvas) {
82
- this.canvasContext = new WebGPUCanvasContext(this, this.adapter, {
83
- canvas: props.canvas
84
- });
85
- }
86
- this.features = this._getFeatures();
87
- }
88
- destroy() {
89
- this.handle.destroy();
90
- }
91
- get info() {
92
- return this._info;
93
- }
94
- get limits() {
95
- return this.handle.limits;
96
- }
97
- isTextureFormatSupported(format) {
98
- return !format.includes('webgl');
99
- }
100
- isTextureFormatFilterable(format) {
101
- return this.isTextureFormatSupported(format);
102
- }
103
- isTextureFormatRenderable(format) {
104
- return this.isTextureFormatSupported(format);
105
- }
106
- get isLost() {
107
- return this._isLost;
108
- }
109
- _createBuffer(props) {
110
- return new WebGPUBuffer(this, props);
111
- }
112
- _createTexture(props) {
113
- return new WebGPUTexture(this, props);
114
- }
115
- createExternalTexture(props) {
116
- return new WebGPUExternalTexture(this, props);
117
- }
118
- createShader(props) {
119
- return new WebGPUShader(this, props);
120
- }
121
- createSampler(props) {
122
- return new WebGPUSampler(this, props);
123
- }
124
- createRenderPipeline(props) {
125
- return new WebGPURenderPipeline(this, props);
126
- }
127
- createFramebuffer(props) {
128
- throw new Error('Not implemented');
129
- }
130
- createComputePipeline(props) {
131
- return new WebGPUComputePipeline(this, props);
132
- }
133
- beginRenderPass(props) {
134
- this.commandEncoder = this.commandEncoder || this.handle.createCommandEncoder();
135
- return new WebGPURenderPass(this, props);
136
- }
137
- beginComputePass(props) {
138
- this.commandEncoder = this.commandEncoder || this.handle.createCommandEncoder();
139
- return new WebGPUComputePass(this, props);
140
- }
141
- createCanvasContext(props) {
142
- return new WebGPUCanvasContext(this, this.adapter, props);
143
- }
144
- getDefaultRenderPass() {
145
- var _this$canvasContext;
146
- this.renderPass = this.renderPass || this.beginRenderPass({
147
- framebuffer: (_this$canvasContext = this.canvasContext) === null || _this$canvasContext === void 0 ? void 0 : _this$canvasContext.getCurrentFramebuffer()
148
- });
149
- return this.renderPass;
150
- }
151
- submit() {
152
- var _this$renderPass, _this$commandEncoder;
153
- (_this$renderPass = this.renderPass) === null || _this$renderPass === void 0 ? void 0 : _this$renderPass.end();
154
- const commandBuffer = (_this$commandEncoder = this.commandEncoder) === null || _this$commandEncoder === void 0 ? void 0 : _this$commandEncoder.finish();
155
- if (commandBuffer) {
156
- this.handle.queue.submit([commandBuffer]);
157
- }
158
- this.commandEncoder = null;
159
- this.renderPass = null;
160
- }
161
- _getFeatures() {
162
- const features = new Set(this.handle.features);
163
- if (features.has('depth-clamping')) {
164
- features.delete('depth-clamping');
165
- features.add('depth-clip-control');
166
- }
167
- if (features.has('texture-compression-bc')) {
168
- features.add('texture-compression-bc5-webgl');
169
- }
170
- features.add('webgpu');
171
- features.add('timer-query-webgl');
172
- features.add('vertex-array-object-webgl1');
173
- features.add('instanced-rendering-webgl1');
174
- features.add('multiple-render-targets-webgl1');
175
- features.add('index-uint32-webgl1');
176
- features.add('blend-minmax-webgl1');
177
- features.add('texture-blend-float-webgl1');
178
- features.add('texture-formats-srgb-webgl1');
179
- features.add('texture-formats-depth-webgl1');
180
- features.add('texture-formats-float32-webgl1');
181
- features.add('texture-formats-float16-webgl1');
182
- features.add('texture-filter-linear-float32-webgl');
183
- features.add('texture-filter-linear-float16-webgl');
184
- features.add('texture-filter-anisotropic-webgl');
185
- features.add('texture-renderable-rgba32float-webgl');
186
- features.add('texture-renderable-float32-webgl');
187
- features.add('texture-renderable-float16-webgl');
188
- features.add('glsl-frag-data');
189
- features.add('glsl-frag-depth');
190
- features.add('glsl-derivatives');
191
- features.add('glsl-texture-lod');
192
- return features;
193
- }
194
- }
195
- _defineProperty(WebGPUDevice, "type", 'webgpu');
196
- //# sourceMappingURL=webgpu-device.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webgpu-device.js","names":["Device","CanvasContext","log","uid","WebGPUBuffer","WebGPUTexture","WebGPUExternalTexture","WebGPUSampler","WebGPUShader","WebGPURenderPipeline","WebGPUComputePipeline","WebGPURenderPass","WebGPUComputePass","WebGPUCanvasContext","WebGPUDevice","isSupported","Boolean","navigator","gpu","create","props","Error","groupCollapsed","adapter","requestAdapter","powerPreference","probe","gpuDevice","requestDevice","requiredFeatures","features","canvas","pageLoaded","device","info","table","groupEnd","constructor","id","_defineProperty","handle","_info","type","vendor","__brand","renderer","version","shadingLanguages","shadingLanguageVersions","glsl","wgsl","vendorMasked","rendererMasked","lost","Promise","resolve","lostInfo","_isLost","reason","message","canvasContext","_getFeatures","destroy","limits","isTextureFormatSupported","format","includes","isTextureFormatFilterable","isTextureFormatRenderable","isLost","_createBuffer","_createTexture","createExternalTexture","createShader","createSampler","createRenderPipeline","createFramebuffer","createComputePipeline","beginRenderPass","commandEncoder","createCommandEncoder","beginComputePass","createCanvasContext","getDefaultRenderPass","_this$canvasContext","renderPass","framebuffer","getCurrentFramebuffer","submit","_this$renderPass","_this$commandEncoder","end","commandBuffer","finish","queue","Set","has","delete","add"],"sources":["../../../src/adapter/webgpu-device.ts"],"sourcesContent":["/// <reference types=\"@webgpu/types\" />\n\nimport type {\n DeviceProps,\n DeviceInfo,\n DeviceLimits,\n DeviceFeature,\n CanvasContextProps,\n BufferProps,\n SamplerProps,\n ShaderProps,\n TextureProps,\n TextureFormat,\n ExternalTextureProps,\n FramebufferProps,\n RenderPipelineProps,\n ComputePipelineProps,\n RenderPassProps,\n ComputePassProps\n} from '@luma.gl/api';\nimport {Device, CanvasContext, log, uid} from '@luma.gl/api';\nimport WebGPUBuffer from './resources/webgpu-buffer';\nimport WebGPUTexture from './resources/webgpu-texture';\nimport WebGPUExternalTexture from './resources/webgpu-external-texture';\nimport WebGPUSampler from './resources/webgpu-sampler';\nimport WebGPUShader from './resources/webgpu-shader';\nimport WebGPURenderPipeline from './resources/webgpu-render-pipeline';\nimport WebGPUFramebuffer from './resources/webgpu-framebuffer';\nimport WebGPUComputePipeline from './resources/webgpu-compute-pipeline';\nimport WebGPURenderPass from './resources/webgpu-render-pass';\nimport WebGPUComputePass from './resources/webgpu-compute-pass';\n\nimport WebGPUCanvasContext from './webgpu-canvas-context';\n// import {loadGlslangModule} from '../glsl/glslang';\n\n/** WebGPU Device implementation */\nexport default class WebGPUDevice extends Device {\n readonly handle: GPUDevice;\n readonly adapter: GPUAdapter;\n readonly lost: Promise<{reason: 'destroyed'; message: string}>;\n canvasContext: WebGPUCanvasContext | null = null;\n\n commandEncoder: GPUCommandEncoder | null = null;\n renderPass: WebGPURenderPass | null = null;\n\n private _info: DeviceInfo;\n private _isLost: boolean = false;\n\n static type: string = 'webgpu';\n\n /** Check if WebGPU is available */\n static isSupported(): boolean {\n return Boolean(typeof navigator !== 'undefined' && navigator.gpu);\n }\n\n static async create(props: DeviceProps): Promise<WebGPUDevice> {\n if (!navigator.gpu) {\n throw new Error(\n 'WebGPU not available. Open in Chrome Canary and turn on chrome://flags/#enable-unsafe-webgpu'\n );\n }\n log.groupCollapsed(1, 'WebGPUDevice created')();\n const adapter = await navigator.gpu.requestAdapter({\n powerPreference: 'high-performance'\n // forceSoftware: false\n });\n if (!adapter) {\n throw new Error('Failed to request WebGPU adapter');\n }\n\n log.probe(1, 'Adapter available')();\n\n const gpuDevice = await adapter.requestDevice({\n requiredFeatures: adapter.features as ReadonlySet<GPUFeatureName>\n // TODO ensure we obtain best limits\n // requiredLimits: adapter.limits\n });\n log.probe(1, 'GPUDevice available')();\n\n if (typeof props.canvas === 'string') {\n await CanvasContext.pageLoaded;\n log.probe(1, 'DOM is loaded')();\n }\n\n const device = new WebGPUDevice(gpuDevice, adapter, props);\n log.probe(1, 'Device created', device.info)();\n log.table(1, device.info)();\n log.groupEnd(1)();\n return device;\n }\n\n constructor(device: GPUDevice, adapter: GPUAdapter, props: DeviceProps) {\n super({...props, id: props.id || uid('webgpu-device')});\n this.handle = device;\n this.adapter = adapter;\n\n this._info = {\n type: 'webgpu',\n vendor: this.adapter.__brand,\n renderer: '',\n version: '',\n gpu: 'unknown', // 'nvidia' | 'amd' | 'intel' | 'apple' | 'unknown',\n shadingLanguages: ['glsl', 'wgsl'],\n shadingLanguageVersions: {\n glsl: '450',\n wgsl: '100'\n },\n vendorMasked: '',\n rendererMasked: ''\n };\n\n // \"Context\" loss handling\n this.lost = new Promise<{reason: 'destroyed'; message: string}>(async (resolve) => {\n const lostInfo = await this.handle.lost;\n this._isLost = true;\n resolve({reason: 'destroyed', message: lostInfo.message});\n });\n\n // Note: WebGPU devices can be created without a canvas, for compute shader purposes\n if (props.canvas) {\n this.canvasContext = new WebGPUCanvasContext(this, this.adapter, {canvas: props.canvas});\n }\n\n this.features = this._getFeatures();\n }\n\n // TODO\n // Load the glslang module now so that it is available synchronously when compiling shaders\n // const {glsl = true} = props;\n // this.glslang = glsl && await loadGlslangModule();\n\n destroy(): void {\n this.handle.destroy();\n }\n\n get info(): DeviceInfo {\n return this._info;\n }\n\n features: Set<DeviceFeature>;\n\n get limits(): DeviceLimits {\n return this.handle.limits;\n }\n\n isTextureFormatSupported(format: TextureFormat): boolean {\n return !format.includes('webgl');\n }\n\n /** @todo implement proper check? */\n isTextureFormatFilterable(format: TextureFormat): boolean {\n return this.isTextureFormatSupported(format);\n }\n\n /** @todo implement proper check? */\n isTextureFormatRenderable(format: TextureFormat): boolean {\n return this.isTextureFormatSupported(format);\n }\n\n get isLost(): boolean {\n return this._isLost;\n }\n\n _createBuffer(props: BufferProps): WebGPUBuffer {\n return new WebGPUBuffer(this, props);\n }\n\n _createTexture(props: TextureProps): WebGPUTexture {\n return new WebGPUTexture(this, props);\n }\n\n createExternalTexture(props: ExternalTextureProps): WebGPUExternalTexture {\n return new WebGPUExternalTexture(this, props);\n }\n\n createShader(props: ShaderProps): WebGPUShader {\n return new WebGPUShader(this, props);\n }\n\n createSampler(props: SamplerProps): WebGPUSampler {\n return new WebGPUSampler(this, props);\n }\n\n createRenderPipeline(props: RenderPipelineProps): WebGPURenderPipeline {\n return new WebGPURenderPipeline(this, props);\n }\n\n createFramebuffer(props: FramebufferProps): WebGPUFramebuffer {\n throw new Error('Not implemented');\n }\n\n createComputePipeline(props: ComputePipelineProps): WebGPUComputePipeline {\n return new WebGPUComputePipeline(this, props);\n }\n\n // WebGPU specifics\n\n /**\n * Allows a render pass to begin against a canvas context\n * @todo need to support a \"Framebuffer\" equivalent (aka preconfigured RenderPassDescriptors?).\n */\n beginRenderPass(props: RenderPassProps): WebGPURenderPass {\n this.commandEncoder = this.commandEncoder || this.handle.createCommandEncoder();\n return new WebGPURenderPass(this, props);\n }\n\n beginComputePass(props: ComputePassProps): WebGPUComputePass {\n this.commandEncoder = this.commandEncoder || this.handle.createCommandEncoder();\n return new WebGPUComputePass(this, props);\n }\n\n createCanvasContext(props: CanvasContextProps): WebGPUCanvasContext {\n return new WebGPUCanvasContext(this, this.adapter, props);\n }\n\n /**\n * Gets default renderpass encoder.\n * Creates a new encoder against default canvasContext if not already created\n * @note Called internally by Model.\n */\n getDefaultRenderPass(): WebGPURenderPass {\n this.renderPass =\n this.renderPass ||\n this.beginRenderPass({\n framebuffer: this.canvasContext?.getCurrentFramebuffer()\n });\n return this.renderPass;\n }\n\n submit(): void {\n this.renderPass?.end();\n const commandBuffer = this.commandEncoder?.finish();\n if (commandBuffer) {\n this.handle.queue.submit([commandBuffer]);\n }\n this.commandEncoder = null;\n this.renderPass = null;\n }\n\n _getFeatures() {\n // WebGPU Features\n const features = new Set<DeviceFeature>(this.handle.features as Set<DeviceFeature>);\n\n // Fixups for pre-standard names: https://github.com/webgpu-native/webgpu-headers/issues/133\n // @ts-expect-error Chrome Canary v99\n if (features.has('depth-clamping')) {\n // @ts-expect-error Chrome Canary v99\n features.delete('depth-clamping');\n features.add('depth-clip-control');\n }\n\n // Add subsets\n if (features.has('texture-compression-bc')) {\n features.add('texture-compression-bc5-webgl');\n }\n\n features.add('webgpu');\n\n features.add('timer-query-webgl');\n\n // WEBGL1 SUPPORT\n features.add('vertex-array-object-webgl1');\n features.add('instanced-rendering-webgl1');\n features.add('multiple-render-targets-webgl1');\n features.add('index-uint32-webgl1');\n features.add('blend-minmax-webgl1');\n features.add('texture-blend-float-webgl1');\n\n // TEXTURES, RENDERBUFFERS\n features.add('texture-formats-srgb-webgl1');\n\n // TEXTURES\n features.add('texture-formats-depth-webgl1');\n features.add('texture-formats-float32-webgl1');\n features.add('texture-formats-float16-webgl1');\n\n features.add('texture-filter-linear-float32-webgl');\n features.add('texture-filter-linear-float16-webgl');\n features.add('texture-filter-anisotropic-webgl');\n\n // FRAMEBUFFERS, TEXTURES AND RENDERBUFFERS\n features.add('texture-renderable-rgba32float-webgl');\n features.add('texture-renderable-float32-webgl');\n features.add('texture-renderable-float16-webgl');\n\n // GLSL extensions\n features.add('glsl-frag-data');\n features.add('glsl-frag-depth');\n features.add('glsl-derivatives');\n features.add('glsl-texture-lod');\n\n return features;\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
-
2
- //# sourceMappingURL=webgpu-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webgpu-types.js","names":[],"sources":["../../../src/adapter/webgpu-types.ts"],"sourcesContent":[""],"mappings":""}
@@ -1,4 +0,0 @@
1
- const moduleExports = require('./index');
2
- globalThis.luma = globalThis.luma || {};
3
- module.exports = Object.assign(globalThis.luma, moduleExports);
4
- //# sourceMappingURL=bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle.js","names":["moduleExports","require","globalThis","luma","module","exports","Object","assign"],"sources":["../../src/bundle.ts"],"sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.luma = globalThis.luma || {};\nmodule.exports = Object.assign(globalThis.luma, moduleExports);\n"],"mappings":"AACA,MAAMA,aAAa,GAAGC,OAAO,CAAC,SAAS,CAAC;AACxCC,UAAU,CAACC,IAAI,GAAGD,UAAU,CAACC,IAAI,IAAI,CAAC,CAAC;AACvCC,MAAM,CAACC,OAAO,GAAGC,MAAM,CAACC,MAAM,CAACL,UAAU,CAACC,IAAI,EAAEH,aAAa,CAAC"}
@@ -1,9 +0,0 @@
1
- let glslang;
2
- export async function loadGlslangModule() {
3
- if (!glslang) {
4
- const glslangModule = await import('https://unpkg.com/@webgpu/glslang@0.0.15/dist/web-devel/glslang.js');
5
- glslang = await glslangModule.default();
6
- }
7
- return glslang;
8
- }
9
- //# sourceMappingURL=glsllang.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"glsllang.js","names":["glslang","loadGlslangModule","glslangModule","default"],"sources":["../../../src/glsl/glsllang.ts"],"sourcesContent":["// Inspired by webgpu samples at https://github.com/austinEng/webgpu-samples/blob/master/src/glslang.ts\n// under BSD 3-clause license\n\nlet glslang: unknown;\n\n/** Dynamically load the GLSL compiler */\nexport async function loadGlslangModule() {\n if (!glslang) {\n // @ts-ignore\n const glslangModule = await import(/* webpackIgnore: true */ 'https://unpkg.com/@webgpu/glslang@0.0.15/dist/web-devel/glslang.js');\n glslang = await glslangModule.default();\n }\n return glslang;\n}\n"],"mappings":"AAGA,IAAIA,OAAgB;AAGpB,OAAO,eAAeC,iBAAiBA,CAAA,EAAG;EACxC,IAAI,CAACD,OAAO,EAAE;IAEZ,MAAME,aAAa,GAAG,MAAM,MAAM,CAA2B,oEAAoE,CAAC;IAClIF,OAAO,GAAG,MAAME,aAAa,CAACC,OAAO,EAAE;EACzC;EACA,OAAOH,OAAO;AAChB"}
package/dist/esm/index.js DELETED
@@ -1,8 +0,0 @@
1
- import '@luma.gl/api';
2
- import './init';
3
- export { default as WebGPUDevice } from './adapter/webgpu-device';
4
- export { default as WebGPUBuffer } from './adapter/resources/webgpu-buffer';
5
- export { default as WebGPUTexture } from './adapter/resources/webgpu-texture';
6
- export { default as WebGPUSampler } from './adapter/resources/webgpu-sampler';
7
- export { default as WebGPUShader } from './adapter/resources/webgpu-shader';
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["default","WebGPUDevice","WebGPUBuffer","WebGPUTexture","WebGPUSampler","WebGPUShader"],"sources":["../../src/index.ts"],"sourcesContent":["\n// Initialize any global state\nimport '@luma.gl/api';\nimport './init'\n\n// WEBGPU ADAPTER\nexport {default as WebGPUDevice} from './adapter/webgpu-device';\n\n// WEBGPU CLASSES (typically not accessed directly)\nexport {default as WebGPUBuffer} from './adapter/resources/webgpu-buffer';\nexport {default as WebGPUTexture} from './adapter/resources/webgpu-texture';\nexport {default as WebGPUSampler} from './adapter/resources/webgpu-sampler';\nexport {default as WebGPUShader} from './adapter/resources/webgpu-shader';\n"],"mappings":"AAEA,OAAO,cAAc;AACrB,OAAO,QAAQ;AAGf,SAAQA,OAAO,IAAIC,YAAY,QAAO,yBAAyB;AAG/D,SAAQD,OAAO,IAAIE,YAAY,QAAO,mCAAmC;AACzE,SAAQF,OAAO,IAAIG,aAAa,QAAO,oCAAoC;AAC3E,SAAQH,OAAO,IAAII,aAAa,QAAO,oCAAoC;AAC3E,SAAQJ,OAAO,IAAIK,YAAY,QAAO,mCAAmC"}
package/dist/esm/init.js DELETED
@@ -1,4 +0,0 @@
1
- import { luma } from '@luma.gl/api';
2
- import WebGPUDevice from './adapter/webgpu-device';
3
- luma.registerDevices([WebGPUDevice]);
4
- //# sourceMappingURL=init.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.js","names":["luma","WebGPUDevice","registerDevices"],"sources":["../../src/init.ts"],"sourcesContent":["import {luma} from '@luma.gl/api';\nimport WebGPUDevice from './adapter/webgpu-device';\n\nluma.registerDevices([WebGPUDevice]);\n"],"mappings":"AAAA,SAAQA,IAAI,QAAO,cAAc;AACjC,OAAOC,YAAY,MAAM,yBAAyB;AAElDD,IAAI,CAACE,eAAe,CAAC,CAACD,YAAY,CAAC,CAAC"}
package/dist/init.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=init.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":""}
package/dist/init.js DELETED
@@ -1,3 +0,0 @@
1
- import { luma } from '@luma.gl/api';
2
- import WebGPUDevice from './adapter/webgpu-device.js';
3
- luma.registerDevices([WebGPUDevice]);
package/src/bundle.ts DELETED
@@ -1,4 +0,0 @@
1
- // @ts-nocheck
2
- const moduleExports = require('./index');
3
- globalThis.luma = globalThis.luma || {};
4
- module.exports = Object.assign(globalThis.luma, moduleExports);
package/src/init.ts DELETED
@@ -1,4 +0,0 @@
1
- import {luma} from '@luma.gl/api';
2
- import WebGPUDevice from './adapter/webgpu-device';
3
-
4
- luma.registerDevices([WebGPUDevice]);