pub struct HashPool { /* private fields */ }Expand description
A high-performance resource allocator.
§Bucket Strategy
The information for each lease request is the key for a HashMap of buckets. If no bucket
exists with the exact information provided a new bucket is created.
In practice this means that for a PoolInfo::image_capacity of 4, requests for a 1024x1024
image with certain attributes will store a maximum of 4 such images. Requests for any image
having a different size or attributes will store an additional maximum of 4 images.
§Memory Management
If requests for varying resources is common HashPool::clear_images_by_info and other memory
management functions are nessecery in order to avoid using all available device memory.
Implementations§
Source§impl HashPool
impl HashPool
Sourcepub fn clear_accel_structs(&mut self)
pub fn clear_accel_structs(&mut self)
Clears the pool of acceleration structure resources.
Sourcepub fn clear_accel_structs_by_info(
&mut self,
info: impl Into<AccelerationStructureInfo>,
)
pub fn clear_accel_structs_by_info( &mut self, info: impl Into<AccelerationStructureInfo>, )
Clears the pool of all acceleration structure resources matching the given information.
Sourcepub fn retain_accel_structs<F>(&mut self, f: F)
pub fn retain_accel_structs<F>(&mut self, f: F)
Retains only the acceleration structure resources specified by the predicate.
In other words, remove all acceleration structure resources for which f(AccelerationStructureInfo) returns false.
The elements are visited in unsorted (and unspecified) order.
§Performance
Provides the same performance guarantees as
HashMap::retain.
Source§impl HashPool
impl HashPool
Sourcepub fn clear_buffers(&mut self)
pub fn clear_buffers(&mut self)
Clears the pool of buffer resources.
Sourcepub fn clear_buffers_by_info(&mut self, info: impl Into<BufferInfo>)
pub fn clear_buffers_by_info(&mut self, info: impl Into<BufferInfo>)
Clears the pool of all buffer resources matching the given information.
Sourcepub fn retain_buffers<F>(&mut self, f: F)
pub fn retain_buffers<F>(&mut self, f: F)
Retains only the buffer resources specified by the predicate.
In other words, remove all buffer resources for which f(BufferInfo) returns false.
The elements are visited in unsorted (and unspecified) order.
§Performance
Provides the same performance guarantees as
HashMap::retain.
Source§impl HashPool
impl HashPool
Sourcepub fn clear_images(&mut self)
pub fn clear_images(&mut self)
Clears the pool of image resources.
Sourcepub fn clear_images_by_info(&mut self, info: impl Into<ImageInfo>)
pub fn clear_images_by_info(&mut self, info: impl Into<ImageInfo>)
Clears the pool of all image resources matching the given information.
Sourcepub fn retain_images<F>(&mut self, f: F)
pub fn retain_images<F>(&mut self, f: F)
Retains only the image resources specified by the predicate.
In other words, remove all image resources for which f(ImageInfo) returns false.
The elements are visited in unsorted (and unspecified) order.
§Performance
Provides the same performance guarantees as
HashMap::retain.