From da532f3f5a0e2c5a965c923ea3e5f2aa2ffb807b Mon Sep 17 00:00:00 2001 From: Yulong Wang <7679871+fs-eire@users.noreply.github.com> Date: Wed, 21 Jun 2023 15:50:08 -0700 Subject: [PATCH] [js/webgpu] fix GPU to GPU memcpy (#16393) ### Description Fixes a GPU to GPU memory copy bug which causes #16267 --- js/web/lib/wasm/jsep/webgpu/gpu-data-manager.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/js/web/lib/wasm/jsep/webgpu/gpu-data-manager.ts b/js/web/lib/wasm/jsep/webgpu/gpu-data-manager.ts index fed7e8412a..526ae68ac9 100644 --- a/js/web/lib/wasm/jsep/webgpu/gpu-data-manager.ts +++ b/js/web/lib/wasm/jsep/webgpu/gpu-data-manager.ts @@ -134,8 +134,11 @@ class GpuDataManagerImpl implements GpuDataManager { throw new Error('inconsistent source and destination gpu data size'); } const size = calcNormalizedBufferSize(sourceGpuDataCache.originalSize); + // GPU copy - this.backend.getCommandEncoder().copyBufferToBuffer( + const commandEncoder = this.backend.getCommandEncoder(); + this.backend.endComputePass(); + commandEncoder.copyBufferToBuffer( sourceGpuDataCache.gpuData.buffer, 0, destinationGpuDataCache.gpuData.buffer, 0, size); }