@luma.gl/engine 9.3.0-alpha.2 → 9.3.0-alpha.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-texture.d.ts","sourceRoot":"","sources":["../../src/dynamic-texture/dynamic-texture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynamic-texture.d.ts","sourceRoot":"","sources":["../../src/dynamic-texture/dynamic-texture.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { uid } from "../utils/uid.js";
6
6
  import { TEXTURE_CUBE_FACE_MAP,
7
7
  // Helpers
8
8
  getTextureSizeFromData, getTexture1DSubresources, getTexture2DSubresources, getTexture3DSubresources, getTextureCubeSubresources, getTextureArraySubresources, getTextureCubeArraySubresources } from "./texture-data.js";
9
+ import { generateMipmap } from "./mipmaps.js";
9
10
  /**
10
11
  * Dynamic Textures
11
12
  *
@@ -107,6 +108,12 @@ export class DynamicTexture {
107
108
  mipLevels: 1, // temporary; updated below
108
109
  data: undefined
109
110
  };
111
+ if (this.device.type === 'webgpu' && this.props.mipmaps) {
112
+ const requiredUsage = this.props.dimension === '3d'
113
+ ? Texture.SAMPLE | Texture.STORAGE | Texture.COPY_DST | Texture.COPY_SRC
114
+ : Texture.SAMPLE | Texture.RENDER | Texture.COPY_DST | Texture.COPY_SRC;
115
+ baseTextureProps.usage |= requiredUsage;
116
+ }
110
117
  // Compute mip levels (auto clamps to max)
111
118
  const maxMips = this.device.getMipLevelCount(baseTextureProps.width, baseTextureProps.height);
112
119
  const desired = this.props.mipLevels === 'auto'
@@ -165,13 +172,14 @@ export class DynamicTexture {
165
172
  this.destroyed = true;
166
173
  }
167
174
  generateMipmaps() {
168
- // Call the WebGL-style mipmap generation helper
169
- // WebGL implementation generates mipmaps, WebGPU logs a warning
170
175
  if (this.device.type === 'webgl') {
171
176
  this.texture.generateMipmapsWebGL();
172
177
  }
178
+ else if (this.device.type === 'webgpu') {
179
+ generateMipmap(this.device, this.texture);
180
+ }
173
181
  else {
174
- log.warn('Mipmap generation not yet implemented on WebGPU: your texture data will not be correctly initialized');
182
+ log.warn(`${this} mipmaps not supported on ${this.device.type}`);
175
183
  }
176
184
  }
177
185
  /** Set sampler or create one from props */
@@ -278,7 +286,15 @@ export class DynamicTexture {
278
286
  const { data } = subresource;
279
287
  // TODO - we are throwing away some of the info in data.
280
288
  // Did we not need it in the first place? Can we use it to validate?
281
- this.texture.copyImageData({ data: data.data, z, mipLevel });
289
+ this.texture.writeData(getAlignedUploadData(this.texture, data), {
290
+ x: 0,
291
+ y: 0,
292
+ z,
293
+ width: data.width,
294
+ height: data.height,
295
+ depthOrArrayLayers: 1,
296
+ mipLevel
297
+ });
282
298
  break;
283
299
  default:
284
300
  throw new Error('Unsupported 2D mip-level payload');
@@ -309,6 +325,23 @@ export class DynamicTexture {
309
325
  mipmaps: false
310
326
  };
311
327
  }
328
+ function getAlignedUploadData(texture, data) {
329
+ const { width, height, data: uploadData } = data;
330
+ const { bytesPerPixel } = texture.device.getTextureFormatInfo(texture.format);
331
+ const bytesPerRow = width * bytesPerPixel;
332
+ const alignedBytesPerRow = Math.ceil(bytesPerRow / texture.byteAlignment) * texture.byteAlignment;
333
+ if (alignedBytesPerRow === bytesPerRow) {
334
+ return uploadData;
335
+ }
336
+ const sourceBytes = new Uint8Array(uploadData.buffer, uploadData.byteOffset, uploadData.byteLength);
337
+ const paddedBytes = new Uint8Array(alignedBytesPerRow * height);
338
+ for (let row = 0; row < height; row++) {
339
+ const sourceOffset = row * bytesPerRow;
340
+ const destinationOffset = row * alignedBytesPerRow;
341
+ paddedBytes.set(sourceBytes.subarray(sourceOffset, sourceOffset + bytesPerRow), destinationOffset);
342
+ }
343
+ return paddedBytes;
344
+ }
312
345
  // HELPERS
313
346
  /** Resolve all promises in a nested data structure */
314
347
  async function awaitAllPromises(x) {
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-texture.js","sourceRoot":"","sources":["../../src/dynamic-texture/dynamic-texture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynamic-texture.js","sourceRoot":"","sources":["../../src/dynamic-texture/dynamic-texture.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Device, Texture } from '@luma.gl/core';
2
+ /**
3
+ * Generates mip levels from level 0 to the last mip for an existing texture.
4
+ */
5
+ export declare function generateMipmap(device: Device, texture: Texture): void;
6
+ //# sourceMappingURL=mipmaps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mipmaps.d.ts","sourceRoot":"","sources":["../../src/dynamic-texture/mipmaps.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,MAAM,EAAE,OAAO,EAAoC,MAAM,eAAe,CAAC;AAsBtF;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAwBrE"}
@@ -0,0 +1,441 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { Buffer, textureFormatDecoder } from '@luma.gl/core';
5
+ import { Model } from "../model/model.js";
6
+ import { Computation } from "../compute/computation.js";
7
+ const RENDER_DIMENSIONS = [
8
+ '2d',
9
+ '2d-array',
10
+ 'cube',
11
+ 'cube-array'
12
+ ];
13
+ const WORKGROUP_SIZE = {
14
+ x: 4,
15
+ y: 4,
16
+ z: 4
17
+ };
18
+ /**
19
+ * Generates mip levels from level 0 to the last mip for an existing texture.
20
+ */
21
+ export function generateMipmap(device, texture) {
22
+ if (texture.mipLevels <= 1) {
23
+ return;
24
+ }
25
+ if (device.type !== 'webgpu') {
26
+ throw new Error(`Cannot generate mipmaps on device type "${device.type}". Use generateMipmapsWebGL for WebGL devices.`);
27
+ }
28
+ if (texture.dimension === '3d') {
29
+ generateMipmaps3D(device, texture);
30
+ return;
31
+ }
32
+ if (RENDER_DIMENSIONS.includes(texture.dimension)) {
33
+ generateMipmapsRender(device, texture);
34
+ return;
35
+ }
36
+ throw new Error(`Cannot generate mipmaps for texture dimension "${texture.dimension}" with WebGPU.`);
37
+ }
38
+ function generateMipmapsRender(device, texture) {
39
+ validateFormatCapabilities(device, texture, ['render', 'filter'], 'render');
40
+ const colorAttachmentFormat = getColorAttachmentFormat(texture.format, 'render', texture.dimension);
41
+ const viewDimension = texture.dimension;
42
+ const shader = getRenderMipmapWGSL(viewDimension);
43
+ const sampler = device.createSampler({ minFilter: 'linear', magFilter: 'linear' });
44
+ const uniformValues = new Uint32Array(1);
45
+ const uniformsBuffer = device.createBuffer({
46
+ byteLength: 16,
47
+ usage: Buffer.UNIFORM | Buffer.COPY_DST
48
+ });
49
+ const model = new Model(device, {
50
+ source: shader,
51
+ colorAttachmentFormats: [colorAttachmentFormat],
52
+ topology: 'triangle-list',
53
+ vertexCount: 3,
54
+ shaderLayout: {
55
+ attributes: [],
56
+ bindings: [
57
+ { type: 'sampler', name: 'sourceSampler', group: 0, location: 0 },
58
+ {
59
+ type: 'texture',
60
+ name: 'sourceTexture',
61
+ group: 0,
62
+ location: 1,
63
+ viewDimension,
64
+ sampleType: 'float'
65
+ },
66
+ { type: 'uniform', name: 'uniforms', group: 0, location: 2 }
67
+ ]
68
+ },
69
+ bindings: {
70
+ sourceSampler: sampler,
71
+ sourceTexture: texture,
72
+ uniforms: uniformsBuffer
73
+ }
74
+ });
75
+ let sourceWidth = texture.width;
76
+ let sourceHeight = texture.height;
77
+ const layerCount = texture.dimension === '2d' ? 1 : texture.depth;
78
+ try {
79
+ for (let baseMipLevel = 1; baseMipLevel < texture.mipLevels; ++baseMipLevel) {
80
+ validateFormatCapabilities(device, texture, ['render', 'filter'], 'render');
81
+ const sourceMipLevel = baseMipLevel - 1;
82
+ const destinationWidth = Math.max(1, sourceWidth >> 1);
83
+ const destinationHeight = Math.max(1, sourceHeight >> 1);
84
+ const sourceView = texture.createView({
85
+ dimension: viewDimension,
86
+ baseMipLevel: sourceMipLevel,
87
+ mipLevelCount: 1,
88
+ baseArrayLayer: 0,
89
+ arrayLayerCount: texture.depth
90
+ });
91
+ model.setBindings({ sourceTexture: sourceView });
92
+ for (let baseArrayLayer = 0; baseArrayLayer < layerCount; ++baseArrayLayer) {
93
+ uniformValues[0] = baseArrayLayer;
94
+ uniformsBuffer.write(uniformValues);
95
+ const destinationView = texture.createView({
96
+ dimension: '2d',
97
+ baseMipLevel,
98
+ mipLevelCount: 1,
99
+ baseArrayLayer,
100
+ arrayLayerCount: 1
101
+ });
102
+ const framebuffer = device.createFramebuffer({
103
+ colorAttachments: [destinationView]
104
+ });
105
+ const renderPass = device.beginRenderPass({
106
+ id: `mipmap-generation:${texture.format}:${baseMipLevel}:${baseArrayLayer}`,
107
+ framebuffer
108
+ });
109
+ renderPass.setParameters({
110
+ viewport: [0, 0, destinationWidth, destinationHeight, 0, 1],
111
+ scissorRect: [0, 0, destinationWidth, destinationHeight]
112
+ });
113
+ model.draw(renderPass);
114
+ renderPass.end();
115
+ device.submit();
116
+ destinationView.destroy();
117
+ framebuffer.destroy();
118
+ }
119
+ sourceView.destroy();
120
+ sourceWidth = destinationWidth;
121
+ sourceHeight = destinationHeight;
122
+ }
123
+ }
124
+ finally {
125
+ model.destroy();
126
+ sampler.destroy();
127
+ uniformsBuffer.destroy();
128
+ }
129
+ }
130
+ function getColorAttachmentFormat(format, path, dimension) {
131
+ if (textureFormatDecoder.isColor(format)) {
132
+ return format;
133
+ }
134
+ throw new Error(`Cannot run ${path} mipmap generation for ${dimension} texture with format "${format}". ` +
135
+ `Only color textures can be used for this operation. ` +
136
+ `Required capabilities: color. ` +
137
+ `Actual capabilities: color=false.`);
138
+ }
139
+ function generateMipmaps3D(device, texture) {
140
+ validateFormatCapabilities(device, texture, ['filter', 'store'], 'compute');
141
+ const format = getColorAttachmentFormat(texture.format, 'compute', texture.dimension);
142
+ const shaderSource = get3DComputeMipmapWGSL(format);
143
+ const uniformsBuffer = device.createBuffer({
144
+ byteLength: 32,
145
+ usage: Buffer.UNIFORM | Buffer.COPY_DST
146
+ });
147
+ const uniformValues = new Uint32Array(8);
148
+ let sourceWidth = texture.width;
149
+ let sourceHeight = texture.height;
150
+ let sourceDepth = texture.depth;
151
+ try {
152
+ for (let destinationMipLevel = 1; destinationMipLevel < texture.mipLevels; ++destinationMipLevel) {
153
+ validateFormatCapabilities(device, texture, ['filter', 'store'], 'compute');
154
+ const destinationWidth = Math.max(1, sourceWidth >> 1);
155
+ const destinationHeight = Math.max(1, sourceHeight >> 1);
156
+ const destinationDepth = Math.max(1, sourceDepth >> 1);
157
+ uniformValues[0] = sourceWidth;
158
+ uniformValues[1] = sourceHeight;
159
+ uniformValues[2] = sourceDepth;
160
+ uniformValues[3] = destinationWidth;
161
+ uniformValues[4] = destinationHeight;
162
+ uniformValues[5] = destinationDepth;
163
+ uniformValues[6] = 0;
164
+ uniformsBuffer.write(uniformValues);
165
+ const sourceView = texture.createView({
166
+ dimension: '3d',
167
+ baseMipLevel: destinationMipLevel - 1,
168
+ mipLevelCount: 1,
169
+ baseArrayLayer: 0,
170
+ arrayLayerCount: 1
171
+ });
172
+ const destinationView = texture.createView({
173
+ dimension: '3d',
174
+ baseMipLevel: destinationMipLevel,
175
+ mipLevelCount: 1,
176
+ baseArrayLayer: 0,
177
+ arrayLayerCount: 1
178
+ });
179
+ const computation = new Computation(device, {
180
+ source: shaderSource,
181
+ shaderLayout: {
182
+ bindings: [
183
+ {
184
+ type: 'texture',
185
+ name: 'sourceTexture',
186
+ group: 0,
187
+ location: 0,
188
+ viewDimension: '3d',
189
+ sampleType: 'float'
190
+ },
191
+ {
192
+ type: 'storage',
193
+ name: 'destinationTexture',
194
+ group: 0,
195
+ location: 1,
196
+ format,
197
+ viewDimension: '3d',
198
+ access: 'write-only'
199
+ },
200
+ { type: 'uniform', name: 'uniforms', group: 0, location: 2 }
201
+ ]
202
+ },
203
+ bindings: {
204
+ sourceTexture: sourceView,
205
+ destinationTexture: destinationView,
206
+ uniforms: uniformsBuffer
207
+ }
208
+ });
209
+ const workgroupsX = Math.ceil(destinationWidth / WORKGROUP_SIZE.x);
210
+ const workgroupsY = Math.ceil(destinationHeight / WORKGROUP_SIZE.y);
211
+ const workgroupsZ = Math.ceil(destinationDepth / WORKGROUP_SIZE.z);
212
+ const computePass = device.beginComputePass({});
213
+ computation.dispatch(computePass, workgroupsX, workgroupsY, workgroupsZ);
214
+ computePass.end();
215
+ device.submit();
216
+ computation.destroy();
217
+ sourceView.destroy();
218
+ destinationView.destroy();
219
+ sourceWidth = destinationWidth;
220
+ sourceHeight = destinationHeight;
221
+ sourceDepth = destinationDepth;
222
+ }
223
+ }
224
+ finally {
225
+ uniformsBuffer.destroy();
226
+ }
227
+ }
228
+ function validateFormatCapabilities(device, texture, requiredCapabilities, path) {
229
+ const { format, dimension } = texture;
230
+ const capabilities = device.getTextureFormatCapabilities(format);
231
+ const missingCapabilities = requiredCapabilities.filter(capability => !capabilities[capability]);
232
+ if (missingCapabilities.length > 0) {
233
+ const required = requiredCapabilities.join(' + ');
234
+ const actual = requiredCapabilities
235
+ .map(capability => `${capability}=${capabilities[capability]}`)
236
+ .join(', ');
237
+ throw new Error(`Cannot run ${path} mipmap generation for ${dimension} texture with format "${format}". ` +
238
+ `Required capabilities: ${required}. ` +
239
+ `Actual capabilities: ${actual}.`);
240
+ }
241
+ }
242
+ function getSourceTextureType(dimension) {
243
+ switch (dimension) {
244
+ case '2d':
245
+ return 'texture_2d<f32>';
246
+ case '2d-array':
247
+ return 'texture_2d_array<f32>';
248
+ case 'cube':
249
+ return 'texture_cube<f32>';
250
+ case 'cube-array':
251
+ return 'texture_cube_array<f32>';
252
+ default:
253
+ throw new Error(`Unsupported render dimension "${dimension}" for mipmap generation.`);
254
+ }
255
+ }
256
+ function getRenderMipmapWGSL(dimension) {
257
+ const sourceSnippet = getRenderMipmapSampleSnippet(dimension);
258
+ return `
259
+ struct MipmapUniforms {
260
+ sourceLayer: u32,
261
+ };
262
+
263
+ fn _touchUniform(uniforms: MipmapUniforms) {
264
+ let unusedSourceLayer = uniforms.sourceLayer;
265
+ }
266
+
267
+ const faceMat = array(
268
+ mat3x3f(
269
+ 0.0, 0.0, -2.0,
270
+ 0.0, -2.0, 0.0,
271
+ 1.0, 1.0, 1.0
272
+ ), // pos-x
273
+ mat3x3f(
274
+ 0.0, 0.0, 2.0,
275
+ 0.0, -2.0, 0.0,
276
+ -1.0, 1.0, -1.0
277
+ ), // neg-x
278
+ mat3x3f(
279
+ 2.0, 0.0, 0.0,
280
+ 0.0, 0.0, 2.0,
281
+ -1.0, 1.0, -1.0
282
+ ), // pos-y
283
+ mat3x3f(
284
+ 2.0, 0.0, 0.0,
285
+ 0.0, 0.0, -2.0,
286
+ -1.0, -1.0, 1.0
287
+ ), // neg-y
288
+ mat3x3f(
289
+ 2.0, 0.0, 0.0,
290
+ 0.0, -2.0, 0.0,
291
+ -1.0, 1.0, 1.0
292
+ ), // pos-z
293
+ mat3x3f(
294
+ -2.0, 0.0, 0.0,
295
+ 0.0, -2.0, 0.0,
296
+ 1.0, 1.0, -1.0
297
+ ) // neg-z
298
+ );
299
+
300
+ struct FragmentInputs {
301
+ @builtin(position) position: vec4f,
302
+ @location(0) texcoord: vec2f
303
+ };
304
+
305
+ struct VertexOutput {
306
+ @builtin(position) position: vec4f,
307
+ @location(0) texcoord: vec2f
308
+ };
309
+
310
+ @group(0) @binding(0) var sourceSampler: sampler;
311
+ @group(0) @binding(1) var sourceTexture: ${getSourceTextureType(dimension)};
312
+ @group(0) @binding(2) var<uniform> uniforms: MipmapUniforms;
313
+
314
+ @vertex
315
+ fn vertexMain(
316
+ @builtin(vertex_index) vertexIndex: u32
317
+ ) -> VertexOutput {
318
+ const positions = array(
319
+ vec2f(-1.0, -1.0),
320
+ vec2f(-1.0, 3.0),
321
+ vec2f( 3.0, -1.0)
322
+ );
323
+
324
+ let xy = positions[vertexIndex];
325
+ return VertexOutput(
326
+ vec4f(xy, 0.0, 1.0),
327
+ xy * vec2f(0.5, -0.5) + vec2f(0.5)
328
+ );
329
+ }
330
+
331
+ @fragment
332
+ fn fragmentMain(fsInput: VertexOutput) -> @location(0) vec4f {
333
+ _touchUniform(uniforms);
334
+ return ${sourceSnippet};
335
+ }
336
+ `;
337
+ }
338
+ function getRenderMipmapSampleSnippet(dimension) {
339
+ const layer = 'uniforms.sourceLayer';
340
+ switch (dimension) {
341
+ case '2d':
342
+ return 'textureSampleLevel(sourceTexture, sourceSampler, fsInput.texcoord, 0.0)';
343
+ case '2d-array':
344
+ return ('textureSampleLevel(sourceTexture, sourceSampler, fsInput.texcoord, ' +
345
+ `i32(${layer}), 0.0)`);
346
+ case 'cube':
347
+ return ('textureSampleLevel(sourceTexture, sourceSampler, ' +
348
+ `faceMat[i32(${layer})] * vec3f(fract(fsInput.texcoord), 1.0), 0.0)`);
349
+ case 'cube-array':
350
+ return ('textureSampleLevel(sourceTexture, sourceSampler, ' +
351
+ `faceMat[i32(${layer} % 6u)] * vec3f(fract(fsInput.texcoord), 1.0), ` +
352
+ `i32(${layer} / 6u), 0.0)`);
353
+ default:
354
+ throw new Error(`Unsupported render dimension "${dimension}" for mipmap generation.`);
355
+ }
356
+ }
357
+ function get3DComputeMipmapWGSL(format) {
358
+ return `
359
+ struct MipmapUniforms {
360
+ sourceWidth: u32,
361
+ sourceHeight: u32,
362
+ sourceDepth: u32,
363
+ destinationWidth: u32,
364
+ destinationHeight: u32,
365
+ destinationDepth: u32,
366
+ padding: u32,
367
+ };
368
+
369
+ @group(0) @binding(0) var sourceTexture: texture_3d<f32>;
370
+ @group(0) @binding(1) var destinationTexture: texture_storage_3d<${format}, write>;
371
+ @group(0) @binding(2) var<uniform> uniforms: MipmapUniforms;
372
+
373
+ @compute @workgroup_size(${WORKGROUP_SIZE.x}, ${WORKGROUP_SIZE.y}, ${WORKGROUP_SIZE.z})
374
+ fn main(@builtin(global_invocation_id) id: vec3<u32>) {
375
+ if (
376
+ id.x >= uniforms.destinationWidth ||
377
+ id.y >= uniforms.destinationHeight ||
378
+ id.z >= uniforms.destinationDepth
379
+ ) {
380
+ return;
381
+ }
382
+
383
+ let sourceBase = id * 2u;
384
+ let sourceX0 = min(sourceBase.x, uniforms.sourceWidth - 1u);
385
+ let sourceY0 = min(sourceBase.y, uniforms.sourceHeight - 1u);
386
+ let sourceZ0 = min(sourceBase.z, uniforms.sourceDepth - 1u);
387
+
388
+ let sourceX1 = min(sourceBase.x + 1u, uniforms.sourceWidth - 1u);
389
+ let sourceY1 = min(sourceBase.y + 1u, uniforms.sourceHeight - 1u);
390
+ let sourceZ1 = min(sourceBase.z + 1u, uniforms.sourceDepth - 1u);
391
+
392
+ var sum = textureLoad(
393
+ sourceTexture,
394
+ vec3<i32>(i32(sourceX0), i32(sourceY0), i32(sourceZ0)),
395
+ 0
396
+ );
397
+ sum += textureLoad(
398
+ sourceTexture,
399
+ vec3<i32>(i32(sourceX1), i32(sourceY0), i32(sourceZ0)),
400
+ 0
401
+ );
402
+ sum += textureLoad(
403
+ sourceTexture,
404
+ vec3<i32>(i32(sourceX0), i32(sourceY1), i32(sourceZ0)),
405
+ 0
406
+ );
407
+ sum += textureLoad(
408
+ sourceTexture,
409
+ vec3<i32>(i32(sourceX1), i32(sourceY1), i32(sourceZ0)),
410
+ 0
411
+ );
412
+ sum += textureLoad(
413
+ sourceTexture,
414
+ vec3<i32>(i32(sourceX0), i32(sourceY0), i32(sourceZ1)),
415
+ 0
416
+ );
417
+ sum += textureLoad(
418
+ sourceTexture,
419
+ vec3<i32>(i32(sourceX1), i32(sourceY0), i32(sourceZ1)),
420
+ 0
421
+ );
422
+ sum += textureLoad(
423
+ sourceTexture,
424
+ vec3<i32>(i32(sourceX0), i32(sourceY1), i32(sourceZ1)),
425
+ 0
426
+ );
427
+ sum += textureLoad(
428
+ sourceTexture,
429
+ vec3<i32>(i32(sourceX1), i32(sourceY1), i32(sourceZ1)),
430
+ 0
431
+ );
432
+
433
+ textureStore(
434
+ destinationTexture,
435
+ vec3<i32>(i32(id.x), i32(id.y), i32(id.z)),
436
+ vec4<f32>(sum.xyz / 8.0, sum.w / 8.0)
437
+ );
438
+ }
439
+ `;
440
+ }
441
+ //# sourceMappingURL=mipmaps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mipmaps.js","sourceRoot":"","sources":["../../src/dynamic-texture/mipmaps.ts"],"names":[],"mappings":"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"}
@@ -175,7 +175,7 @@ export function getTextureCubeArraySubresources(data) {
175
175
  data.forEach((cubeData, cubeIndex) => {
176
176
  for (const [face, faceData] of Object.entries(cubeData)) {
177
177
  const faceDepth = getCubeArrayFaceIndex(cubeIndex, face);
178
- getTexture2DSubresources(faceDepth, faceData);
178
+ subresources.push(...getTexture2DSubresources(faceDepth, faceData));
179
179
  }
180
180
  });
181
181
  return subresources;
@@ -1 +1 @@
1
- {"version":3,"file":"texture-data.js","sourceRoot":"","sources":["../../src/dynamic-texture/texture-data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"texture-data.js","sourceRoot":"","sources":["../../src/dynamic-texture/texture-data.ts"],"names":[],"mappings":"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"}