From e6e41b706d813248686b4ed0a64e9fd6294e8856 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Beaufort?= Date: Tue, 1 Apr 2025 13:35:59 +0200 Subject: [PATCH] Use copyBufferToBuffer overload --- package-lock.json | 11 ++++++----- package.json | 2 +- sample/a-buffer/main.ts | 8 +------- sample/bitonicSort/main.ts | 16 +++------------- sample/computeBoids/main.ts | 8 +------- sample/occlusionQuery/main.ts | 2 +- sample/timestampQuery/TimestampQueryManager.ts | 5 +---- sample/workloadSimulator/index.html | 2 +- 8 files changed, 15 insertions(+), 39 deletions(-) diff --git a/package-lock.json b/package-lock.json index 706b1b69..c1da7cdd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,7 +31,7 @@ "@types/showdown": "^2.0.6", "@types/stats.js": "^0.17.3", "@typescript-eslint/eslint-plugin": "^7.18.0", - "@webgpu/types": "^0.1.53", + "@webgpu/types": "^0.1.60", "chokidar": "^4.0.3", "eslint": "^8.57.1", "eslint-config-prettier": "^8.10.0", @@ -1092,10 +1092,11 @@ "dev": true }, "node_modules/@webgpu/types": { - "version": "0.1.53", - "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.53.tgz", - "integrity": "sha512-x+BLw/opaz9LiVyrMsP75nO1Rg0QfrACUYIbVSfGwY/w0DiWIPYYrpte6us//KZXinxFAOJl0+C17L1Vi2vmDw==", - "dev": true + "version": "0.1.60", + "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.60.tgz", + "integrity": "sha512-8B/tdfRFKdrnejqmvq95ogp8tf52oZ51p3f4QD5m5Paey/qlX4Rhhy5Y8tgFMi7Ms70HzcMMw3EQjH/jdhTwlA==", + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/accepts": { "version": "1.3.8", diff --git a/package.json b/package.json index 6b5eafb2..5a59c37d 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "@types/showdown": "^2.0.6", "@types/stats.js": "^0.17.3", "@typescript-eslint/eslint-plugin": "^7.18.0", - "@webgpu/types": "^0.1.53", + "@webgpu/types": "^0.1.60", "chokidar": "^4.0.3", "eslint": "^8.57.1", "eslint-config-prettier": "^8.10.0", diff --git a/sample/a-buffer/main.ts b/sample/a-buffer/main.ts index 05fce610..c07dc3c8 100644 --- a/sample/a-buffer/main.ts +++ b/sample/a-buffer/main.ts @@ -575,13 +575,7 @@ const configure = () => { for (let slice = 0; slice < numSlices; ++slice) { // initialize the heads buffer - commandEncoder.copyBufferToBuffer( - headsInitBuffer, - 0, - headsBuffer, - 0, - headsInitBuffer.size - ); + commandEncoder.copyBufferToBuffer(headsInitBuffer, headsBuffer); const scissorX = 0; const scissorY = slice * sliceHeight; diff --git a/sample/bitonicSort/main.ts b/sample/bitonicSort/main.ts index e3525469..5373d548 100644 --- a/sample/bitonicSort/main.ts +++ b/sample/bitonicSort/main.ts @@ -756,10 +756,7 @@ SampleInitFactoryWebGPU( ); commandEncoder.copyBufferToBuffer( timestampQueryResolveBuffer, - 0, - timestampQueryResultBuffer, - 0, - 2 * BigInt64Array.BYTES_PER_ELEMENT + timestampQueryResultBuffer ); } settings['Step Index'] = settings['Step Index'] + 1; @@ -803,18 +800,11 @@ SampleInitFactoryWebGPU( // Copy GPU accessible buffers to CPU accessible buffers commandEncoder.copyBufferToBuffer( elementsOutputBuffer, - 0, - elementsStagingBuffer, - 0, - elementsBufferSize + elementsStagingBuffer ); - commandEncoder.copyBufferToBuffer( atomicSwapsOutputBuffer, - 0, - atomicSwapsStagingBuffer, - 0, - Uint32Array.BYTES_PER_ELEMENT + atomicSwapsStagingBuffer ); } device.queue.submit([commandEncoder.finish()]); diff --git a/sample/computeBoids/main.ts b/sample/computeBoids/main.ts index f74b2a84..088f88d4 100644 --- a/sample/computeBoids/main.ts +++ b/sample/computeBoids/main.ts @@ -289,13 +289,7 @@ function frame() { usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ, }); commandEncoder.resolveQuerySet(querySet, 0, 4, resolveBuffer, 0); - commandEncoder.copyBufferToBuffer( - resolveBuffer, - 0, - resultBuffer, - 0, - resultBuffer.size - ); + commandEncoder.copyBufferToBuffer(resolveBuffer, resultBuffer); } device.queue.submit([commandEncoder.finish()]); diff --git a/sample/occlusionQuery/main.ts b/sample/occlusionQuery/main.ts index 5df06ec4..95b19cda 100644 --- a/sample/occlusionQuery/main.ts +++ b/sample/occlusionQuery/main.ts @@ -311,7 +311,7 @@ function render(now: number) { pass.end(); encoder.resolveQuerySet(querySet, 0, objectInfos.length, resolveBuf, 0); if (resultBuf.mapState === 'unmapped') { - encoder.copyBufferToBuffer(resolveBuf, 0, resultBuf, 0, resultBuf.size); + encoder.copyBufferToBuffer(resolveBuf, resultBuf); } device.queue.submit([encoder.finish()]); diff --git a/sample/timestampQuery/TimestampQueryManager.ts b/sample/timestampQuery/TimestampQueryManager.ts index 86f4a322..9e281b55 100644 --- a/sample/timestampQuery/TimestampQueryManager.ts +++ b/sample/timestampQuery/TimestampQueryManager.ts @@ -77,10 +77,7 @@ export default class TimestampQueryManager { // Copy values to the mappable buffer commandEncoder.copyBufferToBuffer( this.#timestampBuffer, - 0, - this.#timestampMapBuffer, - 0, - this.#timestampBuffer.size + this.#timestampMapBuffer ); } } diff --git a/sample/workloadSimulator/index.html b/sample/workloadSimulator/index.html index ce8933bc..65da1fe7 100644 --- a/sample/workloadSimulator/index.html +++ b/sample/workloadSimulator/index.html @@ -778,7 +778,7 @@

Web graphics workload simulator

new Float32Array(buffer.getMappedRange()).set(mapAsyncArray); buffer.unmap(); const commandEncoder = device.createCommandEncoder(); - commandEncoder.copyBufferToBuffer(buffer, 0, mapAsyncTargetBuffer, 0, mapAsyncArray.byteLength); + commandEncoder.copyBufferToBuffer(buffer, mapAsyncTargetBuffer); // TODO: combine this submit with the main one, but we'll have to delay calling mapAsync until after the submit. device.queue.submit([commandEncoder.finish()]); // TODO: use this data during rendering.