diff options
Diffstat (limited to 'dom/webgpu/tests/cts/checkout/src/webgpu/util/buffer.ts')
-rw-r--r-- | dom/webgpu/tests/cts/checkout/src/webgpu/util/buffer.ts | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/dom/webgpu/tests/cts/checkout/src/webgpu/util/buffer.ts b/dom/webgpu/tests/cts/checkout/src/webgpu/util/buffer.ts new file mode 100644 index 0000000000..a7d154a7e6 --- /dev/null +++ b/dom/webgpu/tests/cts/checkout/src/webgpu/util/buffer.ts @@ -0,0 +1,23 @@ +import { memcpy, TypedArrayBufferView } from '../../common/util/util.js'; + +import { align } from './math.js'; + +/** + * Creates a buffer with the contents of some TypedArray. + * The buffer size will always be aligned to 4 as we set mappedAtCreation === true when creating the + * buffer. + */ +export function makeBufferWithContents( + device: GPUDevice, + dataArray: TypedArrayBufferView, + usage: GPUBufferUsageFlags +): GPUBuffer { + const buffer = device.createBuffer({ + mappedAtCreation: true, + size: align(dataArray.byteLength, 4), + usage, + }); + memcpy({ src: dataArray }, { dst: buffer.getMappedRange() }); + buffer.unmap(); + return buffer; +} |