Struct gpu_alloc::GpuAllocator[][src]

pub struct GpuAllocator<M> { /* fields omitted */ }

Memory allocator for Vulkan-like APIs.

Implementations

impl<M> GpuAllocator<M> where
    M: MemoryBounds + 'static, 
[src]

pub fn new(config: Config, props: DeviceProperties<'_>) -> Self[src]

Creates new instance of GpuAllocator. Provided DeviceProperties should match properties of MemoryDevice that will be used with created GpuAllocator instance.

pub unsafe fn alloc(
    &mut self,
    device: &impl MemoryDevice<M>,
    request: Request
) -> Result<MemoryBlock<M>, AllocationError>
[src]

Allocates memory block from specified device according to the request.

Safety

  • device must be one with DeviceProperties that were provided to create this GpuAllocator instance.
  • Same device instance must be used for all interactions with one GpuAllocator instance and memory blocks allocated from it.

pub unsafe fn alloc_with_dedicated(
    &mut self,
    device: &impl MemoryDevice<M>,
    request: Request,
    dedicated: Dedicated
) -> Result<MemoryBlock<M>, AllocationError>
[src]

Allocates memory block from specified device according to the request. This function allows user to force specific allocation strategy. Improper use can lead to suboptimal performance or too large overhead. Prefer GpuAllocator::alloc if doubt.

Safety

  • device must be one with DeviceProperties that were provided to create this GpuAllocator instance.
  • Same device instance must be used for all interactions with one GpuAllocator instance and memory blocks allocated from it.

pub unsafe fn dealloc(
    &mut self,
    device: &impl MemoryDevice<M>,
    block: MemoryBlock<M>
)
[src]

Deallocates memory block previously allocated from this GpuAllocator instance.

Safety

  • Memory block must have been allocated by this GpuAllocator instance
  • device must be one with DeviceProperties that were provided to create this GpuAllocator instance
  • Same device instance must be used for all interactions with one GpuAllocator instance and memory blocks allocated from it

pub unsafe fn cleanup(&mut self, device: &impl MemoryDevice<M>)[src]

Deallocates leftover memory objects. Should be used before dropping.

Safety

  • device must be one with DeviceProperties that were provided to create this GpuAllocator instance
  • Same device instance must be used for all interactions with one GpuAllocator instance and memory blocks allocated from it

Trait Implementations

impl<M: Debug> Debug for GpuAllocator<M>[src]

Auto Trait Implementations

impl<M> RefUnwindSafe for GpuAllocator<M> where
    M: RefUnwindSafe

impl<M> Send for GpuAllocator<M> where
    M: Send

impl<M> Sync for GpuAllocator<M> where
    M: Sync

impl<M> Unpin for GpuAllocator<M>

impl<M> UnwindSafe for GpuAllocator<M> where
    M: RefUnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.