21 BufferCache(MTL::Device*
device);
24 MTL::Buffer* reuse_from_cache(
size_t size);
25 void recycle_to_cache(MTL::Buffer* buf);
26 int release_cached_buffers(
size_t min_bytes_to_free);
35 BufferHolder(MTL::Buffer* buf_) : buf(buf_), prev(
nullptr), next(
nullptr) {}
42 void add_at_head(BufferHolder* to_add);
43 void remove_from_list(BufferHolder* to_remove);
47 std::multimap<size_t, BufferHolder*> buffer_pool_;
62 return active_memory_;
68 std::unique_lock lk(mutex_);
72 return buffer_cache_.cache_size();
85 BufferCache buffer_cache_;
92 size_t active_memory_{0};
93 size_t peak_memory_{0};
94 size_t max_pool_size_;
95 size_t wired_limit_{0};
97 size_t num_resources_{0};
98 size_t resource_limit_{0};
Definition allocator.h:39
Definition allocator.h:12