diff --git a/onnxruntime/core/providers/webgpu/buffer_manager.cc b/onnxruntime/core/providers/webgpu/buffer_manager.cc index e8140a4d59eab..113a3f31be7f9 100644 --- a/onnxruntime/core/providers/webgpu/buffer_manager.cc +++ b/onnxruntime/core/providers/webgpu/buffer_manager.cc @@ -193,27 +193,21 @@ class BucketCacheManager : public IBufferCacheManager { } void ReleaseBuffer(WGPUBuffer buffer) override { - pending_buffers_.emplace_back(buffer); - } + auto buffer_size = static_cast(wgpuBufferGetSize(buffer)); - void OnRefresh(GraphCaptureState /*graph_capture_state*/) override { - for (auto& buffer : pending_buffers_) { - auto buffer_size = static_cast(wgpuBufferGetSize(buffer)); - auto it = buckets_.find(buffer_size); - if (it != buckets_.end() && it->second.size() < buckets_limit_[buffer_size]) { - it->second.emplace_back(buffer); - } else { - wgpuBufferRelease(buffer); - } + auto it = buckets_.find(buffer_size); + if (it != buckets_.end() && it->second.size() < buckets_limit_[buffer_size]) { + it->second.emplace_back(buffer); + } else { + wgpuBufferRelease(buffer); } + } - pending_buffers_.clear(); + void OnRefresh(GraphCaptureState /*graph_capture_state*/) override { + // no-op } ~BucketCacheManager() { - for (auto& buffer : pending_buffers_) { - wgpuBufferRelease(buffer); - } for (auto& pair : buckets_) { for (auto& buffer : pair.second) { wgpuBufferRelease(buffer); @@ -242,7 +236,6 @@ class BucketCacheManager : public IBufferCacheManager { } std::unordered_map buckets_limit_; std::unordered_map> buckets_; - std::vector pending_buffers_; std::vector buckets_keys_; };