/// Configuration for [`GpuAllocator`] /// /// [`GpuAllocator`]: type.GpuAllocator #[derive(Clone, Copy, Debug, PartialEq, Eq)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pubstruct Config { /// Size in bytes of request that will be served by dedicated memory object. /// This value should be large enough to not exhaust memory object limit /// and not use slow memory object allocation when it is not necessary. pub dedicated_threshold: u64,
/// Size in bytes of request that will be served by dedicated memory object if preferred. /// This value should be large enough to not exhaust memory object limit /// and not use slow memory object allocation when it is not necessary. /// /// This won't make much sense if this value is larger than `dedicated_threshold`. pub preferred_dedicated_threshold: u64,
/// Size in bytes of transient memory request that will be served by dedicated memory object. /// This value should be large enough to not exhaust memory object limit /// and not use slow memory object allocation when it is not necessary. /// /// This won't make much sense if this value is lesser than `dedicated_threshold`. pub transient_dedicated_threshold: u64,
/// Size in bytes of first chunk in free-list allocator. pub starting_free_list_chunk: u64,
/// Upper limit for size in bytes of chunks in free-list allocator. pub final_free_list_chunk: u64,
/// Minimal size for buddy allocator. pub minimal_buddy_size: u64,
/// Initial memory object size for buddy allocator. /// If less than `minimal_buddy_size` then `minimal_buddy_size` is used instead. pub initial_buddy_dedicated_size: u64,
}
impl Config { /// Returns default configuration. /// /// This is not `Default` implementation to discourage usage outside of /// prototyping. /// /// Proper configuration should depend on hardware and intended usage.\ /// But those values can be used as starting point.\ /// Note that they can simply not work for some platforms with lesser /// memory capacity than today's "modern" GPU (year 2020). pubfn i_am_prototyping() -> Self { // Assume that today's modern GPU is made of 1024 potatoes. let potato = Config::i_am_potato();
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.