@@ -1063,6 +1063,7 @@ inline void toCPU(Context &ctx, Tensor &tensor, void *data, size_t bufferSize) {
1063
1063
wgpuCommandEncoderCopyBufferToBuffer (commandEncoder, tensor.data .buffer , 0 ,
1064
1064
op.readbackBuffer , 0 , bufferSize);
1065
1065
op.commandBuffer = wgpuCommandEncoderFinish (commandEncoder, nullptr );
1066
+ wgpuCommandEncoderRelease (commandEncoder);
1066
1067
check (op.commandBuffer , " Create command buffer" , __FILE__, __LINE__);
1067
1068
}
1068
1069
toCPU (ctx, tensor, data, bufferSize, op);
@@ -1107,6 +1108,7 @@ inline void toCPU(Context &ctx, WGPUBuffer buffer, void *data,
1107
1108
wgpuCommandEncoderCopyBufferToBuffer (commandEncoder, buffer, 0 ,
1108
1109
op.readbackBuffer , 0 , bufferSize);
1109
1110
op.commandBuffer = wgpuCommandEncoderFinish (commandEncoder, nullptr );
1111
+ wgpuCommandEncoderRelease (commandEncoder);
1110
1112
check (op.commandBuffer , " Create command buffer" , __FILE__, __LINE__);
1111
1113
}
1112
1114
wgpuQueueSubmit (ctx.queue , 1 , &op.commandBuffer );
@@ -1225,6 +1227,7 @@ inline void resetCommandBuffer(WGPUDevice &device, Kernel &op) {
1225
1227
op->totalWorkgroups [2 ]);
1226
1228
wgpuComputePassEncoderEnd (computePassEncoder);
1227
1229
op->commandBuffer = wgpuCommandEncoderFinish (commandEncoder, nullptr );
1230
+ wgpuCommandEncoderRelease (commandEncoder);
1228
1231
op->used = false ;
1229
1232
}
1230
1233
}
0 commit comments